From b5aa73f46f812ba03518a6d1ac218e3af5975236 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 31 Mar 2015 12:59:33 -0400 Subject: [PATCH] Fix loading screens for manage and running apps Also add loading screen to manage permissions as this can take a long time to load in some circumstances. Build loading screens into Utils and SettingsPreferenceFragment so that it can be easily used other places in the future. Change-Id: I7febd06695487e02ced793a9fd418051b5f0eab8 --- res/layout/loading_container.xml | 36 +++++++++++++++++ res/layout/manage_applications_apps.xml | 20 +--------- res/layout/manage_applications_running.xml | 20 +--------- res/layout/preference_list_fragment.xml | 35 +++++++++------- .../settings/SettingsPreferenceFragment.java | 5 +++ src/com/android/settings/Utils.java | 40 ++++++++++++++++++- .../applications/ManageApplications.java | 16 +++++--- .../applications/ManagePermissions.java | 8 +++- .../applications/RunningServices.java | 20 ++-------- 9 files changed, 123 insertions(+), 77 deletions(-) create mode 100644 res/layout/loading_container.xml diff --git a/res/layout/loading_container.xml b/res/layout/loading_container.xml new file mode 100644 index 00000000000..eb67044a380 --- /dev/null +++ b/res/layout/loading_container.xml @@ -0,0 +1,36 @@ + + + + + + + + + + diff --git a/res/layout/manage_applications_apps.xml b/res/layout/manage_applications_apps.xml index 1e0518dada2..044cdb4b925 100644 --- a/res/layout/manage_applications_apps.xml +++ b/res/layout/manage_applications_apps.xml @@ -52,25 +52,7 @@ - - - - - - - + diff --git a/res/layout/manage_applications_running.xml b/res/layout/manage_applications_running.xml index 485523abb53..6a9d4e53d75 100644 --- a/res/layout/manage_applications_running.xml +++ b/res/layout/manage_applications_running.xml @@ -29,25 +29,7 @@ android:layout_height="match_parent" android:visibility="gone" /> - - - - - - - + diff --git a/res/layout/preference_list_fragment.xml b/res/layout/preference_list_fragment.xml index b47e175d2ad..6e8ad911032 100644 --- a/res/layout/preference_list_fragment.xml +++ b/res/layout/preference_list_fragment.xml @@ -29,20 +29,27 @@ android:layout_height="wrap_content" android:visibility="gone" /> - + + + + + + + allApps = mSession.getAllApps(); for (int i = 0; i < allApps.size(); i++) { diff --git a/src/com/android/settings/applications/ManagePermissions.java b/src/com/android/settings/applications/ManagePermissions.java index 8fb3e62578f..a6d29c5b59f 100644 --- a/src/com/android/settings/applications/ManagePermissions.java +++ b/src/com/android/settings/applications/ManagePermissions.java @@ -36,7 +36,6 @@ public class ManagePermissions extends SettingsPreferenceFragment private static final String TAG = "ManagePermissions"; - private boolean mLoadComplete; private PermissionsInfo mPermissionsInfo; @Override @@ -46,6 +45,13 @@ public class ManagePermissions extends SettingsPreferenceFragment mPermissionsInfo = new PermissionsInfo(getActivity(), this); } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + showLoadingWhenEmpty(); + } + private void refreshUi() { PreferenceScreen screen = getPreferenceScreen(); if (screen == null) { diff --git a/src/com/android/settings/applications/RunningServices.java b/src/com/android/settings/applications/RunningServices.java index a4cd4a7635e..1841f134f06 100644 --- a/src/com/android/settings/applications/RunningServices.java +++ b/src/com/android/settings/applications/RunningServices.java @@ -23,9 +23,9 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.animation.AnimationUtils; import com.android.settings.R; +import com.android.settings.Utils; public class RunningServices extends Fragment { @@ -69,12 +69,7 @@ public class RunningServices extends Fragment { public void onResume() { super.onResume(); boolean haveData = mRunningProcessesView.doResume(this, mRunningProcessesAvail); - if (haveData) { - mRunningProcessesView.setVisibility(View.VISIBLE); - mLoadingContainer.setVisibility(View.INVISIBLE); - } else { - mLoadingContainer.setVisibility(View.VISIBLE); - } + Utils.handleLoadingContainer(mLoadingContainer, mRunningProcessesView, haveData, false); } @Override @@ -110,19 +105,10 @@ public class RunningServices extends Fragment { mOptionsMenu.findItem(SHOW_BACKGROUND_PROCESSES).setVisible(!showingBackground); } - private void handleRunningProcessesAvail() { - mLoadingContainer.startAnimation(AnimationUtils.loadAnimation(getActivity(), - android.R.anim.fade_out)); - mRunningProcessesView.startAnimation(AnimationUtils.loadAnimation(getActivity(), - android.R.anim.fade_in)); - mRunningProcessesView.setVisibility(View.VISIBLE); - mLoadingContainer.setVisibility(View.GONE); - } - private final Runnable mRunningProcessesAvail = new Runnable() { @Override public void run() { - handleRunningProcessesAvail(); + Utils.handleLoadingContainer(mLoadingContainer, mRunningProcessesView, true, true); } };