diff --git a/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageInboxFragment.java b/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageInboxFragment.java index 4b8bece2..34d4ed1c 100644 --- a/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageInboxFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageInboxFragment.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.IntentFilter; import android.content.res.Configuration; import android.os.Bundle; +import android.os.Handler; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -104,6 +105,11 @@ public class DirectMessageInboxFragment extends Fragment implements SwipeRefresh public void onPause() { super.onPause(); unregisterReceiver(); + isPendingRequestTotalBadgeAttached = false; + if (pendingRequestTotalBadgeDrawable != null) { + BadgeUtils.detachBadgeDrawable(pendingRequestTotalBadgeDrawable, fragmentActivity.getToolbar(), pendingRequestsMenuItem.getItemId()); + pendingRequestTotalBadgeDrawable = null; + } } @Override @@ -124,21 +130,13 @@ public class DirectMessageInboxFragment extends Fragment implements SwipeRefresh public void onDestroyView() { super.onDestroyView(); unregisterReceiver(); - isPendingRequestTotalBadgeAttached = false; - if (pendingRequestTotalBadgeDrawable != null) { - BadgeUtils.detachBadgeDrawable(pendingRequestTotalBadgeDrawable, fragmentActivity.getToolbar(), pendingRequestsMenuItem.getItemId()); - pendingRequestTotalBadgeDrawable = null; - } } @Override public void onCreateOptionsMenu(@NonNull final Menu menu, @NonNull final MenuInflater inflater) { - super.onCreateOptionsMenu(menu, inflater); - pendingRequestsMenuItem = menu.add(Menu.NONE, R.id.pending_requests, Menu.NONE, "Pending requests"); - pendingRequestsMenuItem.setIcon(R.drawable.ic_account_clock_24) - .setVisible(false) - .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS); - attachPendingRequestsBadge(viewModel.getPendingRequestsTotal().getValue()); + inflater.inflate(R.menu.dm_inbox_menu, menu); + pendingRequestsMenuItem = menu.findItem(R.id.pending_requests); + pendingRequestsMenuItem.setVisible(isPendingRequestTotalBadgeAttached); } @Override @@ -213,7 +211,16 @@ public class DirectMessageInboxFragment extends Fragment implements SwipeRefresh @SuppressLint("UnsafeExperimentalUsageError") private void attachPendingRequestsBadge(@Nullable final Integer count) { - if (pendingRequestsMenuItem == null) return; + if (pendingRequestsMenuItem == null) { + final Handler handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + attachPendingRequestsBadge(count); + } + }, 500); + return; + } if (pendingRequestTotalBadgeDrawable == null) { final Context context = getContext(); if (context == null) return; diff --git a/app/src/main/res/menu/dm_inbox_menu.xml b/app/src/main/res/menu/dm_inbox_menu.xml new file mode 100644 index 00000000..041ebda7 --- /dev/null +++ b/app/src/main/res/menu/dm_inbox_menu.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml index ecb381cf..7319700f 100644 --- a/app/src/main/res/values/ids.xml +++ b/app/src/main/res/values/ids.xml @@ -4,5 +4,4 @@ - \ No newline at end of file