From 7fa7dfc82c8eba421345117a800f58b079343a16 Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Wed, 15 Jul 2020 18:35:30 +0200 Subject: [PATCH] Use application index in menu items --- .../gotify/messages/MessagesActivity.java | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/github/gotify/messages/MessagesActivity.java b/app/src/main/java/com/github/gotify/messages/MessagesActivity.java index 618198a3..0b680a1b 100644 --- a/app/src/main/java/com/github/gotify/messages/MessagesActivity.java +++ b/app/src/main/java/com/github/gotify/messages/MessagesActivity.java @@ -222,13 +222,9 @@ protected void onUpdateApps(List applications) { menu.removeGroup(R.id.apps); targetReferences.clear(); updateMessagesAndStopLoading(messages.get(appId)); - for (Application app : applications) { - MenuItem item = - menu.add( - R.id.apps, - Utils.longToInt(app.getId()), - APPLICATION_ORDER, - app.getName()); + for (int i = 0; i < applications.size(); i++) { + Application app = applications.get(i); + MenuItem item = menu.add(R.id.apps, i, APPLICATION_ORDER, app.getName()); item.setCheckable(true); Target t = Utils.toDrawable(getResources(), item::setIcon); targetReferences.add(t); @@ -289,7 +285,8 @@ public boolean onNavigationItemSelected(MenuItem item) { int id = item.getItemId(); if (item.getGroupId() == R.id.apps) { - selectAppIdOnDrawerClose = (long) id; + Application app = appsHolder.get().get(id); + selectAppIdOnDrawerClose = app != null ? app.getId() : MessageState.ALL_MESSAGES; startLoading(); toolbar.setSubtitle(item.getTitle()); } else if (id == R.id.nav_all_messages) { @@ -343,13 +340,17 @@ protected void onResume() { filter.addAction(WebSocketService.NEW_MESSAGE_BROADCAST); registerReceiver(receiver, filter); new UpdateMissedMessages().execute(messages.getLastReceivedMessage()); - navigationView - .getMenu() - .findItem( - appId == MessageState.ALL_MESSAGES - ? R.id.nav_all_messages - : Utils.longToInt(appId)) - .setChecked(true); + + int selectedIndex = R.id.nav_all_messages; + if (appId != MessageState.ALL_MESSAGES) { + for (int i = 0; i < appsHolder.get().size(); i++) { + if (appsHolder.get().get(i).getId() == appId) { + selectedIndex = i; + } + } + } + + navigationView.getMenu().findItem(selectedIndex).setChecked(true); super.onResume(); }