From eb47dd1af1e4fa94a523071753d50593ff48ff64 Mon Sep 17 00:00:00 2001 From: Patrick Zedler Date: Fri, 11 Aug 2023 00:30:27 +0200 Subject: [PATCH] Fix NPE of MenuItem in ProductOverviewBottomSheet, fixes #750 --- .../ProductOverviewBottomSheet.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/xyz/zedler/patrick/grocy/fragment/bottomSheetDialog/ProductOverviewBottomSheet.java b/app/src/main/java/xyz/zedler/patrick/grocy/fragment/bottomSheetDialog/ProductOverviewBottomSheet.java index b38c94d7c..42b7e24bb 100644 --- a/app/src/main/java/xyz/zedler/patrick/grocy/fragment/bottomSheetDialog/ProductOverviewBottomSheet.java +++ b/app/src/main/java/xyz/zedler/patrick/grocy/fragment/bottomSheetDialog/ProductOverviewBottomSheet.java @@ -26,6 +26,7 @@ import android.os.Handler; import android.os.Looper; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; @@ -164,10 +165,14 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat boolean isInStock = stockItem != null && stockItem.getAmountDouble() > 0; MenuCompat.setGroupDividerEnabled(binding.toolbar.getMenu(), true); // disable actions if necessary - binding.toolbar.getMenu().findItem(R.id.action_consume_all).setEnabled(isInStock); - binding.toolbar.getMenu().findItem(R.id.action_consume_spoiled).setEnabled( - isInStock && product.getEnableTareWeightHandlingInt() == 0 - ); + MenuItem itemConsumeAll = binding.toolbar.getMenu().findItem(R.id.action_consume_all); + if (itemConsumeAll != null) { + itemConsumeAll.setEnabled(isInStock); + } + MenuItem itemConsumeSpoiled = binding.toolbar.getMenu().findItem(R.id.action_consume_spoiled); + if (itemConsumeSpoiled != null) { + itemConsumeSpoiled.setEnabled(isInStock && product.getEnableTareWeightHandlingInt() == 0); + } BaseFragment fragmentCurrent = activity.getCurrentFragment(); binding.toolbar.setOnMenuItemClickListener(item -> { if (item.getItemId() == R.id.action_add_to_shopping_list) { @@ -698,7 +703,10 @@ private void showDeleteConfirmationDialog() { private void hideDisabledFeatures() { if (!isFeatureEnabled(Constants.PREF.FEATURE_SHOPPING_LIST)) { - binding.toolbar.getMenu().findItem(R.id.action_add_to_shopping_list).setVisible(false); + MenuItem item = binding.toolbar.getMenu().findItem(R.id.action_add_to_shopping_list); + if (item != null) { + item.setVisible(false); + } } if (!isFeatureEnabled(Constants.PREF.FEATURE_STOCK_BBD_TRACKING)) { binding.itemDueDate.setVisibility(View.GONE);