diff options
author | Jordan Jozwiak <jjoz@google.com> | 2021-11-15 15:51:19 -0800 |
---|---|---|
committer | Jordan Jozwiak <jjoz@google.com> | 2021-11-16 17:57:45 +0000 |
commit | 6ce5f9ece75dec3a3b9a3478aa910b8d10b7e86c (patch) | |
tree | 4cbc9773ebc1bf7397802051d9409cd721f8eeb4 /PermissionController/src/com/android/permissioncontroller/permission/ui/auto/AutoAppPermissionsFragment.java | |
parent | a0dd8a7b2bc2398ac26bda71ec5d14a9043cc738 (diff) | |
download | Permission-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.java | 21 |
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<>(); |