diff 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
line wrap: on
line diff
--- a/android/DWindows.kt	Thu May 13 19:54:15 2021 +0000
+++ b/android/DWindows.kt	Thu May 13 20:46:07 2021 +0000
@@ -40,6 +40,7 @@
 import androidx.core.app.NotificationCompat
 import androidx.core.app.NotificationManagerCompat
 import androidx.core.content.res.ResourcesCompat
+import androidx.core.view.MenuCompat
 import androidx.recyclerview.widget.RecyclerView
 import androidx.viewpager2.widget.ViewPager2
 import com.google.android.material.tabs.TabLayout
@@ -419,21 +420,34 @@
             menu = newmenu
         }
         if(menu != null) {
+            var group: Int = 0
+
+            // Enable group dividers for separators
+            MenuCompat.setGroupDividerEnabled(menu, true);
+
             for (menuitem in children) {
                 // Submenus on Android can't have submenus, so stop at depth 1
                 if (menuitem.submenu != null && menu !is SubMenu) {
                     if(menuitem.submenuitem == null) {
-                        menuitem.submenuitem = menu?.addSubMenu(0, menuitem.id, 0, menuitem.title)
+                        menuitem.submenuitem = menu?.addSubMenu(group, menuitem.id, 0, menuitem.title)
                     }
                     menuitem.submenu!!.createMenu(menuitem.submenuitem)
                 } else if(menuitem.submenu == null) {
-                    if(menuitem.menuitem == null) {
-                        menuitem.menuitem = menu?.add(0, menuitem.id, 0, menuitem.title)
+                    if(menuitem.title!!.isEmpty()) {
+                        group += 1
+                    } else if(menuitem.menuitem == null) {
+                        menuitem.menuitem = menu?.add(group, menuitem.id, 0, menuitem.title)
+                        menuitem.menuitem!!.setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener { item: MenuItem? ->
+                            eventHandlerSimple(menuitem, 8)
+                            true
+                        })
                     }
                 }
             }
         }
     }
+
+    external fun eventHandlerSimple(item: DWMenuItem, message: Int)
 }
 
 class DWindows : AppCompatActivity() {