From a11e73b95ac5d664d57e860fa41a00c7a50720b7 Mon Sep 17 00:00:00 2001 From: Todd Volkert Date: Fri, 10 Jul 2015 14:09:15 -0700 Subject: Don't flash "No apps" while loading permissions screens on TV This borrows from the work done in ag/722429, and: 1) makes it work for TV 2) fixes a bug in ag/722429 whereby we would show loading forever if preference count was 0 (as opposed to correctly showing "No apps" / "No permissions") b/22090283 Change-Id: I7e2d8a4b99f99e2d1a933a2ac87494e38d2f77b9 --- res/layout-television/permissions_frame.xml | 22 ++++++++++++++-------- .../permission/ui/AppPermissionsFragment.java | 7 +++---- .../permission/ui/ManagePermissionsFragment.java | 6 ++++-- .../permission/ui/PermissionAppsFragment.java | 16 ++++++++++------ .../permission/ui/PermissionsFrameFragment.java | 9 +++++---- 5 files changed, 36 insertions(+), 24 deletions(-) diff --git a/res/layout-television/permissions_frame.xml b/res/layout-television/permissions_frame.xml index 14cb0883..da0b2555 100644 --- a/res/layout-television/permissions_frame.xml +++ b/res/layout-television/permissions_frame.xml @@ -22,20 +22,26 @@ android:filterTouchesWhenObscured="true"> - + android:layout_height="match_parent"> + + + + diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java index 2125db37..af4992b0 100644 --- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java @@ -85,7 +85,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setLoading(true, false); + setLoading(true /* loading */, false /* animate */); mHasConfirmedRevoke = false; setHasOptionsMenu(true); final ActionBar ab = getActivity().getActionBar(); @@ -267,9 +267,8 @@ public final class AppPermissionsFragment extends SettingsWithHeader R.plurals.additional_permissions_more, count, count)); screen.addPreference(extraPerms); } - if (screen.getPreferenceCount() != 0) { - setLoading(false, true); - } + + setLoading(false /* loading */, true /* animate */); } @Override diff --git a/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java index 051676a8..9cea63af 100644 --- a/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java @@ -68,7 +68,7 @@ public final class ManagePermissionsFragment extends PermissionsFrameFragment @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); - setLoading(true, false); + setLoading(true /* loading */, false /* animate */); setHasOptionsMenu(true); final ActionBar ab = getActivity().getActionBar(); if (ab != null) { @@ -260,13 +260,14 @@ public final class ManagePermissionsFragment extends PermissionsFrameFragment screen.addPreference(extraScreenPreference); } if (screen.getPreferenceCount() != 0) { - setLoading(false, true); + setLoading(false /* loading */, true /* animate */); } } public static class AdditionalPermissionsFragment extends PermissionsFrameFragment { @Override public void onCreate(Bundle icicle) { + setLoading(true /* loading */, false /* animate */); super.onCreate(icicle); getActivity().setTitle(R.string.additional_permissions); setHasOptionsMenu(true); @@ -297,6 +298,7 @@ public final class ManagePermissionsFragment extends PermissionsFrameFragment @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferenceScreen(((ManagePermissionsFragment) getTargetFragment()).mExtraScreen); + setLoading(false /* loading */, true /* animate */); } } } diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java index 2b014b23..33462aef 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java @@ -88,7 +88,7 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setLoading(true, false); + setLoading(true /* loading */, false /* animate */); setHasOptionsMenu(true); final ActionBar ab = getActivity().getActionBar(); if (ab != null) { @@ -295,9 +295,7 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple } } - if (screen.getPreferenceCount() != 0) { - setLoading(false, true); - } + setLoading(false /* loading */, true /* animate */); if (mOnPermissionsLoadedListener != null) { mOnPermissionsLoadedListener.onPermissionsLoaded(permissionApps); @@ -384,13 +382,14 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple @Override public void onCreate(Bundle savedInstanceState) { mOuterFragment = (PermissionAppsFragment) getTargetFragment(); + setLoading(true /* loading */, false /* animate */); super.onCreate(savedInstanceState); } @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { if (mOuterFragment.mExtraScreen != null) { - setPreferenceScreen(mOuterFragment.mExtraScreen); + setPreferenceScreen(); } else { mOuterFragment.setOnPermissionsLoadedListener(this); } @@ -406,8 +405,13 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple @Override public void onPermissionsLoaded(PermissionApps permissionApps) { - setPreferenceScreen(mOuterFragment.mExtraScreen); + setPreferenceScreen(); mOuterFragment.setOnPermissionsLoadedListener(null); } + + private void setPreferenceScreen() { + setPreferenceScreen(mOuterFragment.mExtraScreen); + setLoading(false /* loading */, true /* animate */); + } } } diff --git a/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java index 88eda41f..e6b18944 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java +++ b/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java @@ -72,11 +72,12 @@ public abstract class PermissionsFrameFragment extends PreferenceFragment { private void setLoading(boolean loading, boolean animate, boolean force) { if (mIsLoading != loading || force) { mIsLoading = loading; - if (mLoadingView == null) { - return; + if (mPrefsView != null) { + setViewShown(mPrefsView, !loading, animate); + } + if (mLoadingView != null) { + setViewShown(mLoadingView, loading, animate); } - setViewShown(mPrefsView, !loading, animate); - setViewShown(mLoadingView, loading, animate); } } -- cgit v1.2.3