Add isSliceable API to BasePrefController

Only support explicitly approved Settings Slices,
dictated by controllers which return true for the new
method isSliceable.

Updating the supported settings to a whitelist means that
the method to return all available slices must be updated,
and checking slicability when we index slices.

Test: robotests
Change-Id: I85848c2cdf3e151fa94b33dd1dc5c0374ef94b5b
Merged-In: Ib2b9690cdd0036b5cc4a1cb846c52bce7c824ab9
Fixes: 79779103
This commit is contained in:
Matthew Fritze
2018-05-18 17:59:26 -07:00
committed by Andrew Sapperstein
parent a419c4717d
commit 1dd25fd87c
47 changed files with 471 additions and 16 deletions

View File

@@ -19,6 +19,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.TextUtils;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
@@ -53,6 +54,11 @@ public class AmbientDisplayAlwaysOnPreferenceController extends TogglePreference
return isAvailable(mConfig) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
public boolean isSliceable() {
return TextUtils.equals(getPreferenceKey(), "ambient_display_always_on");
}
@Override
public boolean isChecked() {
return mConfig.alwaysOnEnabled(MY_USER);

View File

@@ -23,6 +23,7 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import android.text.TextUtils;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
@@ -89,6 +90,11 @@ public class AmbientDisplayNotificationsPreferenceController extends
return mConfig.pulseOnNotificationAvailable() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
public boolean isSliceable() {
return TextUtils.equals(getPreferenceKey(), "ambient_display_notification");
}
@Override
//TODO (b/69808376): Remove result payload
public ResultPayload getResultPayload() {

View File

@@ -16,6 +16,7 @@ package com.android.settings.display;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
import android.text.TextUtils;
import com.android.settings.DisplaySettings;
import com.android.settings.core.TogglePreferenceController;
@@ -60,6 +61,11 @@ public class AutoBrightnessPreferenceController extends TogglePreferenceControll
: UNSUPPORTED_ON_DEVICE;
}
@Override
public boolean isSliceable() {
return TextUtils.equals(getPreferenceKey(), "auto_brightness");
}
@Override
public ResultPayload getResultPayload() {
// TODO remove result payload

View File

@@ -15,6 +15,7 @@ package com.android.settings.display;
import android.content.Context;
import android.support.v7.preference.Preference;
import android.text.TextUtils;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.view.RotationPolicy;
@@ -71,7 +72,12 @@ public class AutoRotatePreferenceController extends TogglePreferenceController i
@Override
public int getAvailabilityStatus() {
return RotationPolicy.isRotationLockToggleVisible(mContext)
? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
public boolean isSliceable() {
return TextUtils.equals(getPreferenceKey(), "auto_rotate");
}
@Override

View File

@@ -19,6 +19,7 @@ package com.android.settings.display;
import android.content.Context;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
@@ -53,6 +54,11 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
return ColorDisplayController.isAvailable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
public boolean isSliceable() {
return TextUtils.equals(getPreferenceKey(), "night_display_activated");
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);

View File

@@ -19,6 +19,8 @@ package com.android.settings.display;
import android.content.Context;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import com.android.internal.app.ColorDisplayController;
import com.android.settings.core.SliderPreferenceController;
import com.android.settings.widget.SeekBarPreference;
@@ -42,6 +44,11 @@ public class NightDisplayIntensityPreferenceController extends SliderPreferenceC
return AVAILABLE;
}
@Override
public boolean isSliceable() {
return TextUtils.equals(getPreferenceKey(), "night_display_temperature");
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);