summaryrefslogtreecommitdiff
path: root/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java
diff options
context:
space:
mode:
authorJordan Jozwiak <jjoz@google.com>2021-11-15 15:51:19 -0800
committerJordan Jozwiak <jjoz@google.com>2021-11-16 17:57:45 +0000
commit6ce5f9ece75dec3a3b9a3478aa910b8d10b7e86c (patch)
tree4cbc9773ebc1bf7397802051d9409cd721f8eeb4 /PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java
parenta0dd8a7b2bc2398ac26bda71ec5d14a9043cc738 (diff)
downloadPermission-6ce5f9ece75dec3a3b9a3478aa910b8d10b7e86c.tar.gz
Handle null from unitialized live data
In the onPermissionUsagesChanged() callback we weren't checking whether getPackagePermGroupsLiveData().getValue() was null. However, we were checking in another instance. Make usage consistent by annotating the parameter as Nullable and properly handling null. Bug: 205195921 Test: Manual testing Change-Id: I6d4a2b79492ab4fa5a3df0f3f6b1d85a1331d8e5
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java')
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java21
1 files changed, 12 insertions, 9 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java
index 659ed3d65..ad28bc1a9 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java
@@ -37,6 +37,7 @@ import android.util.Log;
import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
@@ -137,9 +138,7 @@ public class AutoAppPermissionsFragment extends AutoSettingsFrameFragment implem
createPreferenceCategories(packageInfo);
mViewModel.getPackagePermGroupsLiveData().observe(this, this::updatePreferences);
- if (mViewModel.getPackagePermGroupsLiveData().getValue() != null) {
- updatePreferences(mViewModel.getPackagePermGroupsLiveData().getValue());
- }
+ updatePreferences(mViewModel.getPackagePermGroupsLiveData().getValue());
if (SdkLevel.isAtLeastS()) {
mPermissionUsages = new PermissionUsages(getContext());
@@ -206,20 +205,24 @@ public class AutoAppPermissionsFragment extends AutoSettingsFrameFragment implem
bindUi(packageInfo);
}
- private void updatePreferences(
+ private void updatePreferences(@Nullable
Map<Category, List<AppPermissionGroupsViewModel.GroupUiInfo>> groupMap) {
- Context context = getPreferenceManager().getContext();
- if (context == null) {
- return;
- }
-
if (groupMap == null && mViewModel.getPackagePermGroupsLiveData().isInitialized()) {
+ // null because explicitly set to null
Toast.makeText(
getActivity(), R.string.app_not_found_dlg_title, Toast.LENGTH_LONG).show();
Log.w(LOG_TAG, "invalid package " + mPackageName);
getActivity().finish();
return;
+ } else if (groupMap == null) {
+ // null because uninitialized
+ return;
+ }
+
+ Context context = getPreferenceManager().getContext();
+ if (context == null) {
+ return;
}
Map<String, Long> groupUsageLastAccessTime = new HashMap<>();