docs: private void addMenuItems(Menu mMenu, boolean subMenu) {
          int groupId = R.id.material_drawer_menu_default_group;
          for (int i = 0; i < mMenu.size(); i++) {
              MenuItem mMenuItem = mMenu.getItem(i);
              IDrawerItem iDrawerItem;
              if (!subMenu && mMenuItem.getGroupId() != groupId && mMenuItem.getGroupId() != 0) {
                  groupId = mMenuItem.getGroupId();
                  iDrawerItem = new DividerDrawerItem();
                  getItemAdapter().add(iDrawerItem);
              }
              if (mMenuItem.hasSubMenu()) {
                  iDrawerItem = new PrimaryDrawerItem()
                          .withName(mMenuItem.getTitle().toString())
                          .withIcon(mMenuItem.getIcon())
                          .withIdentifier(mMenuItem.getItemId())
                          .withEnabled(mMenuItem.isEnabled())
                          .withSelectable(false);
                  getItemAdapter().add(iDrawerItem);
                  addMenuItems(mMenuItem.getSubMenu(), true);
              } else if (mMenuItem.getGroupId() != 0 || subMenu) {
                  iDrawerItem = new SecondaryDrawerItem()
                          .withName(mMenuItem.getTitle().toString())
                          .withIcon(mMenuItem.getIcon())
                          .withIdentifier(mMenuItem.getItemId())
                          .withEnabled(mMenuItem.isEnabled());
                  getItemAdapter().add(iDrawerItem);
              } else {
                  iDrawerItem = new PrimaryDrawerItem()
                          .withName(mMenuItem.getTitle().toString())
                          .withIcon(mMenuItem.getIcon())
                          .withIdentifier(mMenuItem.getItemId())
                          .withEnabled(mMenuItem.isEnabled());
                  getItemAdapter().add(iDrawerItem);
              }
          }
      }