Implement RestrictedPreferenceHelperProvider for restricted preference

Bug: 377600992
Flag: EXEMPT library
Test: Manual
Change-Id: I73e60ea7a392aac96e701b9d7f0ff617e449f3b2
This commit is contained in:
Jacky Wang
2024-11-06 11:43:42 +08:00
parent 5585690b00
commit 3551614baf
5 changed files with 41 additions and 5 deletions

View File

@@ -27,6 +27,7 @@ import androidx.preference.PreferenceViewHolder;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedPreferenceHelper;
import com.android.settingslib.RestrictedPreferenceHelperProvider;
import com.android.settingslib.widget.AppPreference;
/**
@@ -34,7 +35,8 @@ import com.android.settingslib.widget.AppPreference;
* {@link com.android.settingslib.RestrictedPreferenceHelper}.
* Used to show policy transparency on {@link AppPreference}.
*/
public class RestrictedAppPreference extends AppPreference {
public class RestrictedAppPreference extends AppPreference implements
RestrictedPreferenceHelperProvider {
private RestrictedPreferenceHelper mHelper;
private String userRestriction;
@@ -58,6 +60,11 @@ public class RestrictedAppPreference extends AppPreference {
this.userRestriction = userRestriction;
}
@Override
public @NonNull RestrictedPreferenceHelper getRestrictedPreferenceHelper() {
return mHelper;
}
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);

View File

@@ -23,12 +23,14 @@ import android.util.AttributeSet;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import androidx.annotation.NonNull;
import androidx.preference.PreferenceViewHolder;
import androidx.preference.TwoStatePreference;
import com.android.settings.R;
import com.android.settings.widget.SettingsMainSwitchBar.OnBeforeCheckedChangeListener;
import com.android.settingslib.RestrictedPreferenceHelper;
import com.android.settingslib.RestrictedPreferenceHelperProvider;
import com.android.settingslib.core.instrumentation.SettingsJankMonitor;
import java.util.ArrayList;
@@ -40,7 +42,7 @@ import java.util.List;
* to enable or disable the preferences on the page.
*/
public class SettingsMainSwitchPreference extends TwoStatePreference implements
OnCheckedChangeListener {
OnCheckedChangeListener, RestrictedPreferenceHelperProvider {
private final List<OnBeforeCheckedChangeListener> mBeforeCheckedChangeListeners =
new ArrayList<>();
@@ -71,6 +73,11 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
init(context, attrs);
}
@Override
public @NonNull RestrictedPreferenceHelper getRestrictedPreferenceHelper() {
return mRestrictedHelper;
}
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);