diff options
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java')
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java index 879e6082a..6245c9229 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/ManageStandardPermissionsFragment.java @@ -77,6 +77,9 @@ public final class ManageStandardPermissionsFragment extends ManagePermissionsFr mPermissionGroups = mViewModel.getUiDataLiveData().getValue(); mViewModel.getUiDataLiveData().observe(this, permissionGroups -> { + // Once we have loaded data for the first time, further loads should be staggered, + // for performance reasons. + mViewModel.getUiDataLiveData().setLoadStaggered(true); if (permissionGroups != null) { mPermissionGroups = permissionGroups; updatePermissionsUi(); @@ -84,6 +87,11 @@ public final class ManageStandardPermissionsFragment extends ManagePermissionsFr Log.e(LOG_TAG, "ViewModel returned null data, exiting"); getActivity().finishAfterTransition(); } + + // If we've loaded all LiveDatas, no need to prioritize loading any particular one + if (!mViewModel.getUiDataLiveData().isStale()) { + mViewModel.getUiDataLiveData().setFirstLoadGroup(null); + } }); mViewModel.getNumCustomPermGroups().observe(this, permNames -> updatePermissionsUi()); @@ -209,6 +217,9 @@ public final class ManageStandardPermissionsFragment extends ManagePermissionsFr @Override public void showPermissionApps(String permissionGroupName) { + // If we return to this page within a reasonable time, prioritize loading data from the + // permission group whose page we are going to, as that is group most likely to have changed + mViewModel.getUiDataLiveData().setFirstLoadGroup(permissionGroupName); mViewModel.showPermissionApps(this, PermissionAppsFragment.createArgs( permissionGroupName, getArguments().getLong(EXTRA_SESSION_ID))); } |