diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-10-24 18:15:13 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-10-24 18:15:13 +0000 |
commit | 36d39e5e898a4d6264749bd519cd4b5e7ee30561 (patch) | |
tree | 7caeedd8c3ff11f75e9244c97babb3b1036b2f9e | |
parent | ab2e1ec8e5eac06f3288d57a9591a609cd0ece8e (diff) | |
parent | 274d2fc11d0dddbfc2f4da5e1c579da72de9e32e (diff) | |
download | android_packages_apps_PackageInstaller-36d39e5e898a4d6264749bd519cd4b5e7ee30561.tar.gz android_packages_apps_PackageInstaller-36d39e5e898a4d6264749bd519cd4b5e7ee30561.tar.bz2 android_packages_apps_PackageInstaller-36d39e5e898a4d6264749bd519cd4b5e7ee30561.zip |
Merge "Fix crash when role data isn't loaded after restoring state." into qt-qpr1-dev
-rw-r--r-- | src/com/android/packageinstaller/role/ui/RequestRoleFragment.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/com/android/packageinstaller/role/ui/RequestRoleFragment.java b/src/com/android/packageinstaller/role/ui/RequestRoleFragment.java index 7991a2fb..d4a09bc5 100644 --- a/src/com/android/packageinstaller/role/ui/RequestRoleFragment.java +++ b/src/com/android/packageinstaller/role/ui/RequestRoleFragment.java @@ -226,7 +226,7 @@ public class RequestRoleFragment extends DialogFragment { // Postponed to onStart() so that the list view in dialog is created. mViewModel = ViewModelProviders.of(this, new RequestRoleViewModel.Factory(mRole, requireActivity().getApplication())).get(RequestRoleViewModel.class); - mViewModel.getRoleLiveData().observe(this, mAdapter::replace); + mViewModel.getRoleLiveData().observe(this, this::onRoleDataChanged); mViewModel.getManageRoleHolderStateLiveData().observe(this, this::onManageRoleHolderStateChanged); } @@ -262,6 +262,12 @@ public class RequestRoleFragment extends DialogFragment { setDeniedOnceAndFinish(); } + private void onRoleDataChanged( + @NonNull List<Pair<ApplicationInfo, Boolean>> qualifyingApplications) { + mAdapter.replace(qualifyingApplications); + updateUi(); + } + private void onItemClicked(int position) { mAdapter.onItemClicked(position); updateUi(); @@ -344,8 +350,9 @@ public class RequestRoleFragment extends DialogFragment { boolean dontAskAgain = mDontAskAgainCheck != null && mDontAskAgainCheck.isChecked(); mAdapter.setDontAskAgain(dontAskAgain); AlertDialog dialog = getDialog(); - dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(enabled && (dontAskAgain - || !mAdapter.isHolderApplicationChecked())); + boolean hasRoleData = mViewModel.getRoleLiveData().getValue() != null; + dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(enabled && hasRoleData + && (dontAskAgain || !mAdapter.isHolderApplicationChecked())); dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setEnabled(enabled); } |