Make ApplicationsState.Session lifecycle-aware

Bug: 66682989
Test: RunSettingsRoboTests
Change-Id: Idf56788fcae22639b7bf604a8c73cd5f0ff2da16
This commit is contained in:
Tony Mantler
2017-09-21 15:50:27 -07:00
parent 10ba1f1ee7
commit 76cbd4b3b2
8 changed files with 13 additions and 55 deletions

View File

@@ -92,7 +92,7 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
mApplicationFeatureProvider = FeatureFactory.getFactory(activity)
.getApplicationFeatureProvider(activity);
mState = ApplicationsState.getInstance(activity.getApplication());
mSession = mState.newSession(this);
mSession = mState.newSession(this, getLifecycle());
mDpm = new DevicePolicyManagerWrapper(
(DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE));
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
@@ -107,7 +107,6 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
@Override
public void onResume() {
super.onResume();
mSession.resume();
mAppsControlDisallowedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(getActivity(),
UserManager.DISALLOW_APPS_CONTROL, mUserId);
mAppsControlDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
@@ -118,16 +117,10 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
}
}
@Override
public void onPause() {
mSession.pause();
super.onPause();
}
@Override
public void onDestroy() {
stopListeningToPackageRemove();
mSession.release();
super.onDestroy();
}

View File

@@ -50,15 +50,15 @@ public abstract class AppStateBaseBridge implements ApplicationsState.Callbacks
public void resume() {
mHandler.sendEmptyMessage(BackgroundHandler.MSG_LOAD_ALL);
mAppSession.resume();
mAppSession.onResume();
}
public void pause() {
mAppSession.pause();
mAppSession.onPause();
}
public void release() {
mAppSession.release();
mAppSession.onDestroy();
}
public void forceUpdate(String pkg, int uid) {

View File

@@ -988,7 +988,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
if (DEBUG) Log.i(TAG, "Resume! mResumed=" + mResumed);
if (!mResumed) {
mResumed = true;
mSession.resume();
mSession.onResume();
mLastSortMode = sort;
if (mExtraInfoBridge != null) {
mExtraInfoBridge.resume();
@@ -1002,7 +1002,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
public void pause() {
if (mResumed) {
mResumed = false;
mSession.pause();
mSession.onPause();
if (mExtraInfoBridge != null) {
mExtraInfoBridge.pause();
}
@@ -1015,7 +1015,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
}
public void release() {
mSession.release();
mSession.onDestroy();
if (mExtraInfoBridge != null) {
mExtraInfoBridge.release();
}

View File

@@ -66,7 +66,7 @@ public class ManageDomainUrls extends SettingsPreferenceFragment
setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext()));
mApplicationsState = ApplicationsState.getInstance(
(Application) getContext().getApplicationContext());
mSession = mApplicationsState.newSession(this);
mSession = mApplicationsState.newSession(this, getLifecycle());
setHasOptionsMenu(true);
}
@@ -75,24 +75,6 @@ public class ManageDomainUrls extends SettingsPreferenceFragment
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onResume() {
super.onResume();
mSession.resume();
}
@Override
public void onPause() {
super.onPause();
mSession.pause();
}
@Override
public void onDestroy() {
super.onDestroy();
mSession.release();
}
@Override
public void onRunningStateChanged(boolean running) {
}

View File

@@ -32,7 +32,6 @@ import com.android.settings.DividerPreference;
import com.android.settings.R;
import com.android.settings.applications.AppStateBaseBridge.Callback;
import com.android.settings.applications.AppStateSmsPremBridge.SmsState;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.notification.EmptyTextSettings;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.applications.ApplicationsState;
@@ -53,7 +52,7 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
super.onCreate(icicle);
mApplicationsState = ApplicationsState.getInstance((Application)
getContext().getApplicationContext());
mSession = mApplicationsState.newSession(this);
mSession = mApplicationsState.newSession(this, getLifecycle());
mSmsBackend = new AppStateSmsPremBridge(getContext(), mApplicationsState, this);
}
@@ -66,21 +65,18 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
@Override
public void onResume() {
super.onResume();
mSession.resume();
mSmsBackend.resume();
}
@Override
public void onPause() {
mSmsBackend.pause();
mSession.pause();
super.onPause();
}
@Override
public void onDestroy() {
mSmsBackend.release();
mSession.release();
super.onDestroy();
}

View File

@@ -61,7 +61,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment
(Application) getContext().getApplicationContext());
mDataSaverBackend = new DataSaverBackend(getContext());
mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend);
mSession = mApplicationsState.newSession(this);
mSession = mApplicationsState.newSession(this, getLifecycle());
}
@Override
@@ -78,7 +78,6 @@ public class DataSaverSummary extends SettingsPreferenceFragment
mDataSaverBackend.refreshWhitelist();
mDataSaverBackend.refreshBlacklist();
mDataSaverBackend.addListener(this);
mSession.resume();
mDataUsageBridge.resume();
}
@@ -87,7 +86,6 @@ public class DataSaverSummary extends SettingsPreferenceFragment
super.onPause();
mDataSaverBackend.remListener(this);
mDataUsageBridge.pause();
mSession.pause();
}
@Override

View File

@@ -64,7 +64,7 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment
(Application) getContext().getApplicationContext());
mDataSaverBackend = new DataSaverBackend(getContext());
mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend);
mSession = mApplicationsState.newSession(this);
mSession = mApplicationsState.newSession(this, getLifecycle());
mShowSystem = icicle != null && icicle.getBoolean(EXTRA_SHOW_SYSTEM);
mFilter = mShowSystem ? ApplicationsState.FILTER_ALL_ENABLED
: ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER;
@@ -109,7 +109,6 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment
@Override
public void onResume() {
super.onResume();
mSession.resume();
mDataUsageBridge.resume();
}
@@ -117,13 +116,11 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment
public void onPause() {
super.onPause();
mDataUsageBridge.pause();
mSession.pause();
}
@Override
public void onDestroy() {
super.onDestroy();
mSession.release();
mDataUsageBridge.release();
}

View File

@@ -28,7 +28,6 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.net.Uri;
import android.os.AsyncTask;
@@ -77,7 +76,7 @@ import java.util.List;
*/
//TODO(b/35810915): Make InstalledAppDetails use this controller
public class AppButtonsPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause, OnDestroy,
PreferenceControllerMixin, LifecycleObserver, OnResume, OnDestroy,
ApplicationsState.Callbacks {
public static final String APP_CHG = "chg";
@@ -144,7 +143,7 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
if (packageName != null) {
mAppEntry = mState.getEntry(packageName, mUserId);
mSession = mState.newSession(this);
mSession = mState.newSession(this, lifecycle);
lifecycle.addObserver(this);
} else {
mFinishing = true;
@@ -179,7 +178,6 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
@Override
public void onResume() {
mSession.resume();
if (isAvailable() && !mFinishing) {
mAppsControlDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(mActivity,
UserManager.DISALLOW_APPS_CONTROL, mUserId);
@@ -192,15 +190,9 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
}
}
@Override
public void onPause() {
mSession.pause();
}
@Override
public void onDestroy() {
stopListeningToPackageRemove();
mSession.release();
}
private class UninstallAndDisableButtonListener implements View.OnClickListener {