summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-07-08 13:59:14 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-08 13:59:15 +0000
commit897860e4651157a475e308760e9e509d9155183c (patch)
tree82e36d308b2796930fe8cedf745a271fe5b67de7 /src/com/android
parent7ffc31e4e75544dddb57040e6b56542c005d32b3 (diff)
parent39e9a82e0d5ea964f6ad187669e4358da40a132a (diff)
downloadandroid_packages_apps_PackageInstaller-897860e4651157a475e308760e9e509d9155183c.tar.gz
android_packages_apps_PackageInstaller-897860e4651157a475e308760e9e509d9155183c.tar.bz2
android_packages_apps_PackageInstaller-897860e4651157a475e308760e9e509d9155183c.zip
Merge "Add loading screens to permissions" into mnc-dev
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java4
-rw-r--r--src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java4
-rw-r--r--src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java4
-rw-r--r--src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java63
4 files changed, 70 insertions, 5 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
index 92ad7c8a..52a2c8e1 100644
--- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java
@@ -82,6 +82,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setLoading(true, false);
mHasConfirmedRevoke = false;
setHasOptionsMenu(true);
final ActionBar ab = getActivity().getActionBar();
@@ -247,6 +248,9 @@ public final class AppPermissionsFragment extends SettingsWithHeader
mExtraScreen.getPreferenceCount()));
screen.addPreference(extraPerms);
}
+ if (screen.getPreferenceCount() != 0) {
+ setLoading(false, true);
+ }
}
@Override
diff --git a/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java
index d0609fd0..a814550c 100644
--- a/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java
@@ -68,6 +68,7 @@ public final class ManagePermissionsFragment extends PermissionsFrameFragment
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ setLoading(true, false);
setHasOptionsMenu(true);
final ActionBar ab = getActivity().getActionBar();
if (ab != null) {
@@ -257,6 +258,9 @@ public final class ManagePermissionsFragment extends PermissionsFrameFragment
mExtraScreen.getPreferenceCount()));
screen.addPreference(extraScreenPreference);
}
+ if (screen.getPreferenceCount() != 0) {
+ setLoading(false, true);
+ }
}
public static class AdditionalPermissionsFragment extends PermissionsFrameFragment {
diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
index d0fff16c..92c53fb6 100644
--- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
@@ -77,6 +77,7 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setLoading(true, false);
setHasOptionsMenu(true);
final ActionBar ab = getActivity().getActionBar();
if (ab != null) {
@@ -198,6 +199,9 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple
}
pref.setChecked(app.areRuntimePermissionsGranted());
}
+ if (preferences.getPreferenceCount() != 0) {
+ setLoading(false, true);
+ }
}
@Override
diff --git a/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java
index 2abdbd2a..88eda41f 100644
--- a/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java
@@ -11,6 +11,9 @@ import android.support.v7.widget.RecyclerView.AdapterDataObserver;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.animation.Animation;
+import android.view.animation.Animation.AnimationListener;
+import android.view.animation.AnimationUtils;
import android.widget.TextView;
import com.android.packageinstaller.R;
@@ -24,6 +27,10 @@ public abstract class PermissionsFrameFragment extends PreferenceFragment {
// TV-specific instance variables
@Nullable private VerticalGridView mGridView;
+ private View mLoadingView;
+ private ViewGroup mPrefsView;
+ private boolean mIsLoading;
+
/**
* Returns the view group that holds the preferences objects. This will
* only be set after {@link #onCreateView} has been called.
@@ -37,13 +44,15 @@ public abstract class PermissionsFrameFragment extends PreferenceFragment {
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.permissions_frame, container,
false);
- ViewGroup prefsContainer = (ViewGroup) rootView.findViewById(R.id.prefs_container);
- if (prefsContainer == null) {
- prefsContainer = rootView;
+ mPrefsView = (ViewGroup) rootView.findViewById(R.id.prefs_container);
+ if (mPrefsView == null) {
+ mPrefsView = rootView;
}
+ mLoadingView = rootView.findViewById(R.id.loading_container);
mPreferencesContainer = (ViewGroup) super.onCreateView(
- inflater, prefsContainer, savedInstanceState);
- prefsContainer.addView(mPreferencesContainer);
+ inflater, mPrefsView, savedInstanceState);
+ setLoading(mIsLoading, false, true /* force */);
+ mPrefsView.addView(mPreferencesContainer);
return rootView;
}
@@ -56,6 +65,50 @@ public abstract class PermissionsFrameFragment extends PreferenceFragment {
}
}
+ protected void setLoading(boolean loading, boolean animate) {
+ setLoading(loading, animate, false);
+ }
+
+ private void setLoading(boolean loading, boolean animate, boolean force) {
+ if (mIsLoading != loading || force) {
+ mIsLoading = loading;
+ if (mLoadingView == null) {
+ return;
+ }
+ setViewShown(mPrefsView, !loading, animate);
+ setViewShown(mLoadingView, loading, animate);
+ }
+ }
+
+ private void setViewShown(final View view, boolean shown, boolean animate) {
+ if (animate) {
+ Animation animation = AnimationUtils.loadAnimation(getContext(),
+ shown ? android.R.anim.fade_in : android.R.anim.fade_out);
+ if (shown) {
+ view.setVisibility(View.VISIBLE);
+ } else {
+ animation.setAnimationListener(new AnimationListener() {
+ @Override
+ public void onAnimationStart(Animation animation) {
+ }
+
+ @Override
+ public void onAnimationRepeat(Animation animation) {
+ }
+
+ @Override
+ public void onAnimationEnd(Animation animation) {
+ view.setVisibility(View.INVISIBLE);
+ }
+ });
+ }
+ view.startAnimation(animation);
+ } else {
+ view.clearAnimation();
+ view.setVisibility(shown ? View.VISIBLE : View.INVISIBLE);
+ }
+ }
+
@Override
public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
Bundle savedInstanceState) {