Revert "Fixes 'no ripple effect' issue for screen attention setting"
This reverts commit 20d1da2b62
.
Reason for revert: Based on bisection, this is the likely root cause of b/186904496
Bug: 186904496
Change-Id: I0eaa026b52610d7ef4543c32791531971e68f8e6
This commit is contained in:
@@ -37,18 +37,26 @@ public class AdaptiveSleepPermissionPreferenceController {
|
||||
@VisibleForTesting
|
||||
BannerMessagePreference mPreference;
|
||||
private final PackageManager mPackageManager;
|
||||
private final Context mContext;
|
||||
|
||||
public AdaptiveSleepPermissionPreferenceController(Context context) {
|
||||
final String packageName = context.getPackageManager().getAttentionServicePackageName();
|
||||
mPackageManager = context.getPackageManager();
|
||||
mContext = context;
|
||||
final Intent intent = new Intent(
|
||||
android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||
intent.setData(Uri.parse("package:" + packageName));
|
||||
mPreference = new BannerMessagePreference(context);
|
||||
mPreference.setTitle(R.string.adaptive_sleep_title_no_permission);
|
||||
mPreference.setSummary(R.string.adaptive_sleep_summary_no_permission);
|
||||
mPreference.setPositiveButtonText(R.string.adaptive_sleep_manage_permission_button);
|
||||
mPreference.setPositiveButtonOnClickListener(p -> {
|
||||
context.startActivity(intent);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the controlled preference to the provided preference screen.
|
||||
*/
|
||||
public void addToScreen(PreferenceScreen screen) {
|
||||
initializePreference();
|
||||
if (!hasSufficientPermission(mPackageManager)) {
|
||||
screen.addPreference(mPreference);
|
||||
}
|
||||
@@ -60,19 +68,4 @@ public class AdaptiveSleepPermissionPreferenceController {
|
||||
public void updateVisibility() {
|
||||
mPreference.setVisible(!hasSufficientPermission(mPackageManager));
|
||||
}
|
||||
|
||||
private void initializePreference() {
|
||||
final String packageName = mContext.getPackageManager().getAttentionServicePackageName();
|
||||
final Intent intent = new Intent(
|
||||
android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||
intent.setData(Uri.parse("package:" + packageName));
|
||||
mPreference = new BannerMessagePreference(mContext);
|
||||
mPreference.setTitle(R.string.adaptive_sleep_title_no_permission);
|
||||
mPreference.setSummary(R.string.adaptive_sleep_summary_no_permission);
|
||||
mPreference.setPositiveButtonText(R.string.adaptive_sleep_manage_permission_button);
|
||||
mPreference.setPositiveButtonOnClickListener(p -> {
|
||||
mContext.startActivity(intent);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -49,10 +49,10 @@ public class AdaptiveSleepPreferenceController {
|
||||
public static final String PREFERENCE_KEY = "adaptive_sleep";
|
||||
private static final int DEFAULT_VALUE = 0;
|
||||
private final SensorPrivacyManager mPrivacyManager;
|
||||
private final RestrictionUtils mRestrictionUtils;
|
||||
private final PackageManager mPackageManager;
|
||||
private final Context mContext;
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
private RestrictionUtils mRestrictionUtils;
|
||||
private PackageManager mPackageManager;
|
||||
private Context mContext;
|
||||
private MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
|
||||
@VisibleForTesting
|
||||
RestrictedSwitchPreference mPreference;
|
||||
@@ -62,6 +62,19 @@ public class AdaptiveSleepPreferenceController {
|
||||
mRestrictionUtils = restrictionUtils;
|
||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
mPrivacyManager = SensorPrivacyManager.getInstance(context);
|
||||
mPreference = new RestrictedSwitchPreference(context);
|
||||
mPreference.setTitle(R.string.adaptive_sleep_title);
|
||||
mPreference.setSummary(R.string.adaptive_sleep_description);
|
||||
mPreference.setChecked(isChecked());
|
||||
mPreference.setKey(PREFERENCE_KEY);
|
||||
mPreference.setOnPreferenceClickListener(preference -> {
|
||||
final boolean isChecked = ((RestrictedSwitchPreference) preference).isChecked();
|
||||
mMetricsFeatureProvider.action(context, SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
|
||||
isChecked);
|
||||
Settings.Secure.putInt(context.getContentResolver(),
|
||||
Settings.Secure.ADAPTIVE_SLEEP, isChecked ? 1 : DEFAULT_VALUE);
|
||||
return true;
|
||||
});
|
||||
mPackageManager = context.getPackageManager();
|
||||
}
|
||||
|
||||
@@ -73,7 +86,6 @@ public class AdaptiveSleepPreferenceController {
|
||||
* Adds the controlled preference to the provided preference screen.
|
||||
*/
|
||||
public void addToScreen(PreferenceScreen screen) {
|
||||
initializePreference();
|
||||
updatePreference();
|
||||
screen.addPreference(mPreference);
|
||||
}
|
||||
@@ -91,23 +103,6 @@ public class AdaptiveSleepPreferenceController {
|
||||
}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void initializePreference() {
|
||||
mPreference = new RestrictedSwitchPreference(mContext);
|
||||
mPreference.setTitle(R.string.adaptive_sleep_title);
|
||||
mPreference.setSummary(R.string.adaptive_sleep_description);
|
||||
mPreference.setChecked(isChecked());
|
||||
mPreference.setKey(PREFERENCE_KEY);
|
||||
mPreference.setOnPreferenceChangeListener((preference, value) -> {
|
||||
final boolean isChecked = (Boolean) value;
|
||||
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
|
||||
isChecked);
|
||||
Settings.Secure.putInt(mContext.getContentResolver(),
|
||||
Settings.Secure.ADAPTIVE_SLEEP, isChecked ? 1 : DEFAULT_VALUE);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
boolean isChecked() {
|
||||
return hasSufficientPermission(mContext.getPackageManager()) && !isCameraLocked()
|
||||
|
@@ -71,15 +71,11 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
|
||||
private CharSequence[] mInitialEntries;
|
||||
private CharSequence[] mInitialValues;
|
||||
private FooterPreference mPrivacyPreference;
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
private MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
private SensorPrivacyManager mPrivacyManager;
|
||||
|
||||
@VisibleForTesting
|
||||
Context mContext;
|
||||
|
||||
@VisibleForTesting
|
||||
RestrictedLockUtils.EnforcedAdmin mAdmin;
|
||||
|
||||
@VisibleForTesting
|
||||
Preference mDisableOptionsPreference;
|
||||
|
||||
@@ -101,7 +97,6 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
mContext = context;
|
||||
mInitialEntries = getResources().getStringArray(R.array.screen_timeout_entries);
|
||||
mInitialValues = getResources().getStringArray(R.array.screen_timeout_values);
|
||||
mAdaptiveSleepController = new AdaptiveSleepPreferenceController(context);
|
||||
@@ -109,6 +104,11 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
|
||||
context);
|
||||
mAdaptiveSleepCameraStatePreferenceController =
|
||||
new AdaptiveSleepCameraStatePreferenceController(context);
|
||||
mPrivacyPreference = new FooterPreference(context);
|
||||
mPrivacyPreference.setIcon(R.drawable.ic_privacy_shield_24dp);
|
||||
mPrivacyPreference.setTitle(R.string.adaptive_sleep_privacy);
|
||||
mPrivacyPreference.setSelectable(false);
|
||||
mPrivacyPreference.setLayoutResource(R.layout.preference_footer);
|
||||
mPrivacyManager = SensorPrivacyManager.getInstance(context);
|
||||
mPrivacyManager.addSensorPrivacyListener(CAMERA,
|
||||
(sensor, enabled) -> mAdaptiveSleepController.updatePreference());
|
||||
@@ -167,12 +167,6 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
|
||||
preferenceWithLargestTimeout.setChecked(true);
|
||||
}
|
||||
|
||||
mPrivacyPreference = new FooterPreference(mContext);
|
||||
mPrivacyPreference.setIcon(R.drawable.ic_privacy_shield_24dp);
|
||||
mPrivacyPreference.setTitle(R.string.adaptive_sleep_privacy);
|
||||
mPrivacyPreference.setSelectable(false);
|
||||
mPrivacyPreference.setLayoutResource(R.layout.preference_footer);
|
||||
|
||||
if (isScreenAttentionAvailable(getContext())) {
|
||||
mAdaptiveSleepPermissionController.addToScreen(screen);
|
||||
mAdaptiveSleepCameraStatePreferenceController.addToScreen(screen);
|
||||
|
@@ -84,7 +84,6 @@ public class AdaptiveSleepPreferenceControllerTest {
|
||||
eq(UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT))).thenReturn(null);
|
||||
|
||||
mController = new AdaptiveSleepPreferenceController(mContext, mRestrictionUtils);
|
||||
mController.initializePreference();
|
||||
when(mController.isCameraLocked()).thenReturn(false);
|
||||
}
|
||||
|
||||
|
@@ -60,6 +60,8 @@ public class ScreenTimeoutSettingsTest {
|
||||
private ScreenTimeoutSettings mSettings;
|
||||
private Context mContext;
|
||||
private ContentResolver mContentResolver;
|
||||
|
||||
@Mock
|
||||
private Resources mResources;
|
||||
|
||||
@Mock
|
||||
@@ -83,9 +85,7 @@ public class ScreenTimeoutSettingsTest {
|
||||
FakeFeatureFactory.setupForTest();
|
||||
mContext = spy(getApplicationContext());
|
||||
mSettings = spy(new ScreenTimeoutSettings());
|
||||
mSettings.mContext = mContext;
|
||||
mContentResolver = mContext.getContentResolver();
|
||||
mResources = spy(mContext.getResources());
|
||||
|
||||
doReturn(TIMEOUT_ENTRIES).when(mResources).getStringArray(R.array.screen_timeout_entries);
|
||||
doReturn(TIMEOUT_VALUES).when(mResources).getStringArray(R.array.screen_timeout_entries);
|
||||
|
Reference in New Issue
Block a user