Merge "Fix unable to toggle off Pause app activity" into tm-dev am: bc2e0f5fc4

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/18581945

Change-Id: I348919ec56e2f4ba3a28db987b205cddeb44463a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Chaohui Wang
2022-05-27 05:26:26 +00:00
committed by Automerger Merge Worker

View File

@@ -33,13 +33,9 @@ import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.permission.PermissionControllerManager; import android.permission.PermissionControllerManager;
import android.provider.DeviceConfig; import android.provider.DeviceConfig;
import android.text.TextUtils;
import android.util.Slog; import android.util.Slog;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
@@ -49,8 +45,7 @@ import com.google.common.annotations.VisibleForTesting;
* A PreferenceController handling the logic for exempting hibernation of app * A PreferenceController handling the logic for exempting hibernation of app
*/ */
public final class HibernationSwitchPreferenceController extends AppInfoPreferenceControllerBase public final class HibernationSwitchPreferenceController extends AppInfoPreferenceControllerBase
implements LifecycleObserver, AppOpsManager.OnOpChangedListener, implements Preference.OnPreferenceChangeListener {
Preference.OnPreferenceChangeListener {
private static final String TAG = "HibernationSwitchPrefController"; private static final String TAG = "HibernationSwitchPrefController";
private String mPackageName; private String mPackageName;
private final AppOpsManager mAppOpsManager; private final AppOpsManager mAppOpsManager;
@@ -69,19 +64,6 @@ public final class HibernationSwitchPreferenceController extends AppInfoPreferen
mPermissionControllerManager = context.getSystemService(PermissionControllerManager.class); mPermissionControllerManager = context.getSystemService(PermissionControllerManager.class);
} }
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
public void onResume() {
if (mIsPackageSet) {
mAppOpsManager.startWatchingMode(
OPSTR_AUTO_REVOKE_PERMISSIONS_IF_UNUSED, mPackageName, this);
}
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
public void onPause() {
mAppOpsManager.stopWatchingMode(this);
}
@Override @Override
public int getAvailabilityStatus() { public int getAvailabilityStatus() {
return isHibernationEnabled() && mIsPackageSet ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; return isHibernationEnabled() && mIsPackageSet ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
@@ -148,14 +130,6 @@ public final class HibernationSwitchPreferenceController extends AppInfoPreferen
return mode == MODE_DEFAULT ? mIsPackageExemptByDefault : mode != MODE_ALLOWED; return mode == MODE_DEFAULT ? mIsPackageExemptByDefault : mode != MODE_ALLOWED;
} }
@Override
public void onOpChanged(String op, String packageName) {
if (OPSTR_AUTO_REVOKE_PERMISSIONS_IF_UNUSED.equals(op)
&& TextUtils.equals(mPackageName, packageName)) {
updateState(mPreference);
}
}
@Override @Override
public boolean onPreferenceChange(Preference preference, Object isChecked) { public boolean onPreferenceChange(Preference preference, Object isChecked) {
try { try {