Make ApplicationsState.Session lifecycle-aware
Bug: 66682989 Test: RunSettingsRoboTests Change-Id: Idf56788fcae22639b7bf604a8c73cd5f0ff2da16
This commit is contained in:
@@ -92,7 +92,7 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
|||||||
mApplicationFeatureProvider = FeatureFactory.getFactory(activity)
|
mApplicationFeatureProvider = FeatureFactory.getFactory(activity)
|
||||||
.getApplicationFeatureProvider(activity);
|
.getApplicationFeatureProvider(activity);
|
||||||
mState = ApplicationsState.getInstance(activity.getApplication());
|
mState = ApplicationsState.getInstance(activity.getApplication());
|
||||||
mSession = mState.newSession(this);
|
mSession = mState.newSession(this, getLifecycle());
|
||||||
mDpm = new DevicePolicyManagerWrapper(
|
mDpm = new DevicePolicyManagerWrapper(
|
||||||
(DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
(DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE));
|
||||||
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
|
||||||
@@ -107,7 +107,6 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
mSession.resume();
|
|
||||||
mAppsControlDisallowedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(getActivity(),
|
mAppsControlDisallowedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(getActivity(),
|
||||||
UserManager.DISALLOW_APPS_CONTROL, mUserId);
|
UserManager.DISALLOW_APPS_CONTROL, mUserId);
|
||||||
mAppsControlDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
|
mAppsControlDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
|
||||||
@@ -118,16 +117,10 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPause() {
|
|
||||||
mSession.pause();
|
|
||||||
super.onPause();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
stopListeningToPackageRemove();
|
stopListeningToPackageRemove();
|
||||||
mSession.release();
|
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -50,15 +50,15 @@ public abstract class AppStateBaseBridge implements ApplicationsState.Callbacks
|
|||||||
|
|
||||||
public void resume() {
|
public void resume() {
|
||||||
mHandler.sendEmptyMessage(BackgroundHandler.MSG_LOAD_ALL);
|
mHandler.sendEmptyMessage(BackgroundHandler.MSG_LOAD_ALL);
|
||||||
mAppSession.resume();
|
mAppSession.onResume();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void pause() {
|
public void pause() {
|
||||||
mAppSession.pause();
|
mAppSession.onPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void release() {
|
public void release() {
|
||||||
mAppSession.release();
|
mAppSession.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void forceUpdate(String pkg, int uid) {
|
public void forceUpdate(String pkg, int uid) {
|
||||||
|
@@ -988,7 +988,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
if (DEBUG) Log.i(TAG, "Resume! mResumed=" + mResumed);
|
if (DEBUG) Log.i(TAG, "Resume! mResumed=" + mResumed);
|
||||||
if (!mResumed) {
|
if (!mResumed) {
|
||||||
mResumed = true;
|
mResumed = true;
|
||||||
mSession.resume();
|
mSession.onResume();
|
||||||
mLastSortMode = sort;
|
mLastSortMode = sort;
|
||||||
if (mExtraInfoBridge != null) {
|
if (mExtraInfoBridge != null) {
|
||||||
mExtraInfoBridge.resume();
|
mExtraInfoBridge.resume();
|
||||||
@@ -1002,7 +1002,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
public void pause() {
|
public void pause() {
|
||||||
if (mResumed) {
|
if (mResumed) {
|
||||||
mResumed = false;
|
mResumed = false;
|
||||||
mSession.pause();
|
mSession.onPause();
|
||||||
if (mExtraInfoBridge != null) {
|
if (mExtraInfoBridge != null) {
|
||||||
mExtraInfoBridge.pause();
|
mExtraInfoBridge.pause();
|
||||||
}
|
}
|
||||||
@@ -1015,7 +1015,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void release() {
|
public void release() {
|
||||||
mSession.release();
|
mSession.onDestroy();
|
||||||
if (mExtraInfoBridge != null) {
|
if (mExtraInfoBridge != null) {
|
||||||
mExtraInfoBridge.release();
|
mExtraInfoBridge.release();
|
||||||
}
|
}
|
||||||
|
@@ -66,7 +66,7 @@ public class ManageDomainUrls extends SettingsPreferenceFragment
|
|||||||
setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext()));
|
setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext()));
|
||||||
mApplicationsState = ApplicationsState.getInstance(
|
mApplicationsState = ApplicationsState.getInstance(
|
||||||
(Application) getContext().getApplicationContext());
|
(Application) getContext().getApplicationContext());
|
||||||
mSession = mApplicationsState.newSession(this);
|
mSession = mApplicationsState.newSession(this, getLifecycle());
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,24 +75,6 @@ public class ManageDomainUrls extends SettingsPreferenceFragment
|
|||||||
super.onViewCreated(view, savedInstanceState);
|
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
|
@Override
|
||||||
public void onRunningStateChanged(boolean running) {
|
public void onRunningStateChanged(boolean running) {
|
||||||
}
|
}
|
||||||
|
@@ -32,7 +32,6 @@ import com.android.settings.DividerPreference;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.applications.AppStateBaseBridge.Callback;
|
import com.android.settings.applications.AppStateBaseBridge.Callback;
|
||||||
import com.android.settings.applications.AppStateSmsPremBridge.SmsState;
|
import com.android.settings.applications.AppStateSmsPremBridge.SmsState;
|
||||||
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
|
|
||||||
import com.android.settings.notification.EmptyTextSettings;
|
import com.android.settings.notification.EmptyTextSettings;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
@@ -53,7 +52,7 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
|
|||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
mApplicationsState = ApplicationsState.getInstance((Application)
|
mApplicationsState = ApplicationsState.getInstance((Application)
|
||||||
getContext().getApplicationContext());
|
getContext().getApplicationContext());
|
||||||
mSession = mApplicationsState.newSession(this);
|
mSession = mApplicationsState.newSession(this, getLifecycle());
|
||||||
mSmsBackend = new AppStateSmsPremBridge(getContext(), mApplicationsState, this);
|
mSmsBackend = new AppStateSmsPremBridge(getContext(), mApplicationsState, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,21 +65,18 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
mSession.resume();
|
|
||||||
mSmsBackend.resume();
|
mSmsBackend.resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
mSmsBackend.pause();
|
mSmsBackend.pause();
|
||||||
mSession.pause();
|
|
||||||
super.onPause();
|
super.onPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
mSmsBackend.release();
|
mSmsBackend.release();
|
||||||
mSession.release();
|
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -61,7 +61,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment
|
|||||||
(Application) getContext().getApplicationContext());
|
(Application) getContext().getApplicationContext());
|
||||||
mDataSaverBackend = new DataSaverBackend(getContext());
|
mDataSaverBackend = new DataSaverBackend(getContext());
|
||||||
mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend);
|
mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend);
|
||||||
mSession = mApplicationsState.newSession(this);
|
mSession = mApplicationsState.newSession(this, getLifecycle());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -78,7 +78,6 @@ public class DataSaverSummary extends SettingsPreferenceFragment
|
|||||||
mDataSaverBackend.refreshWhitelist();
|
mDataSaverBackend.refreshWhitelist();
|
||||||
mDataSaverBackend.refreshBlacklist();
|
mDataSaverBackend.refreshBlacklist();
|
||||||
mDataSaverBackend.addListener(this);
|
mDataSaverBackend.addListener(this);
|
||||||
mSession.resume();
|
|
||||||
mDataUsageBridge.resume();
|
mDataUsageBridge.resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +86,6 @@ public class DataSaverSummary extends SettingsPreferenceFragment
|
|||||||
super.onPause();
|
super.onPause();
|
||||||
mDataSaverBackend.remListener(this);
|
mDataSaverBackend.remListener(this);
|
||||||
mDataUsageBridge.pause();
|
mDataUsageBridge.pause();
|
||||||
mSession.pause();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -64,7 +64,7 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment
|
|||||||
(Application) getContext().getApplicationContext());
|
(Application) getContext().getApplicationContext());
|
||||||
mDataSaverBackend = new DataSaverBackend(getContext());
|
mDataSaverBackend = new DataSaverBackend(getContext());
|
||||||
mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend);
|
mDataUsageBridge = new AppStateDataUsageBridge(mApplicationsState, this, mDataSaverBackend);
|
||||||
mSession = mApplicationsState.newSession(this);
|
mSession = mApplicationsState.newSession(this, getLifecycle());
|
||||||
mShowSystem = icicle != null && icicle.getBoolean(EXTRA_SHOW_SYSTEM);
|
mShowSystem = icicle != null && icicle.getBoolean(EXTRA_SHOW_SYSTEM);
|
||||||
mFilter = mShowSystem ? ApplicationsState.FILTER_ALL_ENABLED
|
mFilter = mShowSystem ? ApplicationsState.FILTER_ALL_ENABLED
|
||||||
: ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER;
|
: ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER;
|
||||||
@@ -109,7 +109,6 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
mSession.resume();
|
|
||||||
mDataUsageBridge.resume();
|
mDataUsageBridge.resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,13 +116,11 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment
|
|||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
mDataUsageBridge.pause();
|
mDataUsageBridge.pause();
|
||||||
mSession.pause();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
mSession.release();
|
|
||||||
mDataUsageBridge.release();
|
mDataUsageBridge.release();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -28,7 +28,6 @@ import android.content.pm.ApplicationInfo;
|
|||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.pm.UserInfo;
|
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
@@ -77,7 +76,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
//TODO(b/35810915): Make InstalledAppDetails use this controller
|
//TODO(b/35810915): Make InstalledAppDetails use this controller
|
||||||
public class AppButtonsPreferenceController extends AbstractPreferenceController implements
|
public class AppButtonsPreferenceController extends AbstractPreferenceController implements
|
||||||
PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause, OnDestroy,
|
PreferenceControllerMixin, LifecycleObserver, OnResume, OnDestroy,
|
||||||
ApplicationsState.Callbacks {
|
ApplicationsState.Callbacks {
|
||||||
public static final String APP_CHG = "chg";
|
public static final String APP_CHG = "chg";
|
||||||
|
|
||||||
@@ -144,7 +143,7 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
|
|||||||
|
|
||||||
if (packageName != null) {
|
if (packageName != null) {
|
||||||
mAppEntry = mState.getEntry(packageName, mUserId);
|
mAppEntry = mState.getEntry(packageName, mUserId);
|
||||||
mSession = mState.newSession(this);
|
mSession = mState.newSession(this, lifecycle);
|
||||||
lifecycle.addObserver(this);
|
lifecycle.addObserver(this);
|
||||||
} else {
|
} else {
|
||||||
mFinishing = true;
|
mFinishing = true;
|
||||||
@@ -179,7 +178,6 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
mSession.resume();
|
|
||||||
if (isAvailable() && !mFinishing) {
|
if (isAvailable() && !mFinishing) {
|
||||||
mAppsControlDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(mActivity,
|
mAppsControlDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(mActivity,
|
||||||
UserManager.DISALLOW_APPS_CONTROL, mUserId);
|
UserManager.DISALLOW_APPS_CONTROL, mUserId);
|
||||||
@@ -192,15 +190,9 @@ public class AppButtonsPreferenceController extends AbstractPreferenceController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPause() {
|
|
||||||
mSession.pause();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
stopListeningToPackageRemove();
|
stopListeningToPackageRemove();
|
||||||
mSession.release();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UninstallAndDisableButtonListener implements View.OnClickListener {
|
private class UninstallAndDisableButtonListener implements View.OnClickListener {
|
||||||
|
Reference in New Issue
Block a user