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
This commit is contained in:
@@ -358,6 +358,7 @@ public class ManageApplications extends InstrumentedFragment
|
||||
updateOptionsMenu();
|
||||
if (mApplications != null) {
|
||||
mApplications.resume(mSortOrder);
|
||||
mApplications.updateLoading();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -746,17 +747,20 @@ public class ManageApplications extends InstrumentedFragment
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
|
||||
if (entries == null) {
|
||||
mManageApplications.mListContainer.setVisibility(View.INVISIBLE);
|
||||
mManageApplications.mLoadingContainer.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mManageApplications.mListContainer.setVisibility(View.VISIBLE);
|
||||
mManageApplications.mLoadingContainer.setVisibility(View.GONE);
|
||||
if (mEntries.size() != 0
|
||||
&& mManageApplications.mListContainer.getVisibility() != View.VISIBLE) {
|
||||
Utils.handleLoadingContainer(mManageApplications.mLoadingContainer,
|
||||
mManageApplications.mListContainer, true, true);
|
||||
}
|
||||
|
||||
mManageApplications.setHasDisabled(hasDisabledApps());
|
||||
}
|
||||
|
||||
private void updateLoading() {
|
||||
Utils.handleLoadingContainer(mManageApplications.mLoadingContainer,
|
||||
mManageApplications.mListContainer, mEntries.size() != 0, false);
|
||||
}
|
||||
|
||||
private boolean hasDisabledApps() {
|
||||
ArrayList<AppEntry> allApps = mSession.getAllApps();
|
||||
for (int i = 0; i < allApps.size(); i++) {
|
||||
|
@@ -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) {
|
||||
|
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user