comparison android/DWindows.kt @ 2544:dbfcc0e357d6

Android: Clean up the menus... add separator, remove tildes and implement callbacks.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 13 May 2021 20:46:07 +0000
parents f9367eb9a6e7
children f803f3b164cf
comparison
equal deleted inserted replaced
2543:f9367eb9a6e7 2544:dbfcc0e357d6
38 import androidx.appcompat.widget.AppCompatEditText 38 import androidx.appcompat.widget.AppCompatEditText
39 import androidx.collection.SimpleArrayMap 39 import androidx.collection.SimpleArrayMap
40 import androidx.core.app.NotificationCompat 40 import androidx.core.app.NotificationCompat
41 import androidx.core.app.NotificationManagerCompat 41 import androidx.core.app.NotificationManagerCompat
42 import androidx.core.content.res.ResourcesCompat 42 import androidx.core.content.res.ResourcesCompat
43 import androidx.core.view.MenuCompat
43 import androidx.recyclerview.widget.RecyclerView 44 import androidx.recyclerview.widget.RecyclerView
44 import androidx.viewpager2.widget.ViewPager2 45 import androidx.viewpager2.widget.ViewPager2
45 import com.google.android.material.tabs.TabLayout 46 import com.google.android.material.tabs.TabLayout
46 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener 47 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener
47 import com.google.android.material.tabs.TabLayoutMediator 48 import com.google.android.material.tabs.TabLayoutMediator
417 fun createMenu(newmenu: Menu?) { 418 fun createMenu(newmenu: Menu?) {
418 if(menu == null) { 419 if(menu == null) {
419 menu = newmenu 420 menu = newmenu
420 } 421 }
421 if(menu != null) { 422 if(menu != null) {
423 var group: Int = 0
424
425 // Enable group dividers for separators
426 MenuCompat.setGroupDividerEnabled(menu, true);
427
422 for (menuitem in children) { 428 for (menuitem in children) {
423 // Submenus on Android can't have submenus, so stop at depth 1 429 // Submenus on Android can't have submenus, so stop at depth 1
424 if (menuitem.submenu != null && menu !is SubMenu) { 430 if (menuitem.submenu != null && menu !is SubMenu) {
425 if(menuitem.submenuitem == null) { 431 if(menuitem.submenuitem == null) {
426 menuitem.submenuitem = menu?.addSubMenu(0, menuitem.id, 0, menuitem.title) 432 menuitem.submenuitem = menu?.addSubMenu(group, menuitem.id, 0, menuitem.title)
427 } 433 }
428 menuitem.submenu!!.createMenu(menuitem.submenuitem) 434 menuitem.submenu!!.createMenu(menuitem.submenuitem)
429 } else if(menuitem.submenu == null) { 435 } else if(menuitem.submenu == null) {
430 if(menuitem.menuitem == null) { 436 if(menuitem.title!!.isEmpty()) {
431 menuitem.menuitem = menu?.add(0, menuitem.id, 0, menuitem.title) 437 group += 1
438 } else if(menuitem.menuitem == null) {
439 menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title)
440 menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? ->
441 eventHandlerSimple(menuitem, 8)
442 true
443 })
432 } 444 }
433 } 445 }
434 } 446 }
435 } 447 }
436 } 448 }
449
450 external fun eventHandlerSimple(item: DWMenuItem, message: Int)
437 } 451 }
438 452
439 class DWindows : AppCompatActivity() { 453 class DWindows : AppCompatActivity() {
440 var firstWindow: Boolean = true 454 var firstWindow: Boolean = true
441 var windowLayout: LinearLayout? = null 455 var windowLayout: LinearLayout? = null