Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a11e73b9 authored by Todd Volkert's avatar Todd Volkert
Browse files

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
parent 57b5d43f
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -22,12 +22,16 @@
    android:filterTouchesWhenObscured="true">

    <FrameLayout
        android:id="@+id/prefs_container"
        android:layout_width="@dimen/lb_action_section_width"
        android:layout_height="match_parent"
        android:layout_alignParentEnd="true"
        android:background="@color/lb_action_fragment_background">

        <FrameLayout
            android:id="@+id/prefs_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/no_permissions"
                android:layout_width="match_parent"
@@ -39,6 +43,8 @@

        </FrameLayout>

    </FrameLayout>

    <RelativeLayout
        android:layout_width="@dimen/lb_content_section_width"
        android:layout_height="match_parent"
+3 −4
Original line number Diff line number Diff line
@@ -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
+4 −2
Original line number Diff line number Diff line
@@ -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 */);
        }
    }
}
+10 −6
Original line number Diff line number Diff line
@@ -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 */);
        }
    }
}
+5 −4
Original line number Diff line number Diff line
@@ -72,13 +72,14 @@ 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);
            }
        }
    }

    private void setViewShown(final View view, boolean shown, boolean animate) {
        if (animate) {