Implement RestrictedPreferenceHelperProvider for restricted preference
Bug: 377600992 Flag: EXEMPT library Test: Manual Change-Id: I73e60ea7a392aac96e701b9d7f0ff617e449f3b2
This commit is contained in:
@@ -33,6 +33,7 @@ import android.widget.CheckedTextView;
|
|||||||
import android.widget.ListAdapter;
|
import android.widget.ListAdapter;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.appcompat.app.AlertDialog.Builder;
|
import androidx.appcompat.app.AlertDialog.Builder;
|
||||||
import androidx.preference.ListPreferenceDialogFragmentCompat;
|
import androidx.preference.ListPreferenceDialogFragmentCompat;
|
||||||
@@ -40,11 +41,14 @@ import androidx.preference.PreferenceViewHolder;
|
|||||||
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedPreferenceHelper;
|
import com.android.settingslib.RestrictedPreferenceHelper;
|
||||||
|
import com.android.settingslib.RestrictedPreferenceHelperProvider;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class RestrictedListPreference extends CustomListPreference {
|
public class RestrictedListPreference extends CustomListPreference implements
|
||||||
|
RestrictedPreferenceHelperProvider {
|
||||||
|
|
||||||
private final RestrictedPreferenceHelper mHelper;
|
private final RestrictedPreferenceHelper mHelper;
|
||||||
private final List<RestrictedItem> mRestrictedItems = new ArrayList<>();
|
private final List<RestrictedItem> mRestrictedItems = new ArrayList<>();
|
||||||
private boolean mRequiresActiveUnlockedProfile = false;
|
private boolean mRequiresActiveUnlockedProfile = false;
|
||||||
@@ -61,6 +65,11 @@ public class RestrictedListPreference extends CustomListPreference {
|
|||||||
mHelper = new RestrictedPreferenceHelper(context, this, attrs);
|
mHelper = new RestrictedPreferenceHelper(context, this, attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NonNull RestrictedPreferenceHelper getRestrictedPreferenceHelper() {
|
||||||
|
return mHelper;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(PreferenceViewHolder holder) {
|
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||||
super.onBindViewHolder(holder);
|
super.onBindViewHolder(holder);
|
||||||
|
@@ -30,6 +30,7 @@ import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
|
|||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
import com.android.settingslib.RestrictedPreferenceHelper;
|
import com.android.settingslib.RestrictedPreferenceHelper;
|
||||||
|
import com.android.settingslib.RestrictedPreferenceHelperProvider;
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.applications.ApplicationsState;
|
import com.android.settingslib.applications.ApplicationsState;
|
||||||
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
import com.android.settingslib.applications.ApplicationsState.AppEntry;
|
||||||
@@ -37,7 +38,7 @@ import com.android.settingslib.utils.ThreadUtils;
|
|||||||
import com.android.settingslib.widget.AppSwitchPreference;
|
import com.android.settingslib.widget.AppSwitchPreference;
|
||||||
|
|
||||||
public class UnrestrictedDataAccessPreference extends AppSwitchPreference implements
|
public class UnrestrictedDataAccessPreference extends AppSwitchPreference implements
|
||||||
DataSaverBackend.Listener {
|
DataSaverBackend.Listener, RestrictedPreferenceHelperProvider {
|
||||||
private static final String ECM_SETTING_IDENTIFIER = "android:unrestricted_data_access";
|
private static final String ECM_SETTING_IDENTIFIER = "android:unrestricted_data_access";
|
||||||
|
|
||||||
private final ApplicationsState mApplicationsState;
|
private final ApplicationsState mApplicationsState;
|
||||||
@@ -78,6 +79,11 @@ public class UnrestrictedDataAccessPreference extends AppSwitchPreference implem
|
|||||||
return entry.info.packageName + "|" + entry.info.uid;
|
return entry.info.packageName + "|" + entry.info.uid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NonNull RestrictedPreferenceHelper getRestrictedPreferenceHelper() {
|
||||||
|
return mHelper;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttached() {
|
public void onAttached() {
|
||||||
super.onAttached();
|
super.onAttached();
|
||||||
|
@@ -33,11 +33,13 @@ import androidx.preference.PreferenceViewHolder;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedPreferenceHelper;
|
import com.android.settingslib.RestrictedPreferenceHelper;
|
||||||
|
import com.android.settingslib.RestrictedPreferenceHelperProvider;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A tri-state preference allowing a user to specify what gets to bubble.
|
* A tri-state preference allowing a user to specify what gets to bubble.
|
||||||
*/
|
*/
|
||||||
public class BubblePreference extends Preference implements RadioGroup.OnCheckedChangeListener {
|
public class BubblePreference extends Preference implements RadioGroup.OnCheckedChangeListener,
|
||||||
|
RestrictedPreferenceHelperProvider {
|
||||||
RestrictedPreferenceHelper mHelper;
|
RestrictedPreferenceHelper mHelper;
|
||||||
|
|
||||||
private int mSelectedPreference;
|
private int mSelectedPreference;
|
||||||
@@ -64,6 +66,11 @@ public class BubblePreference extends Preference implements RadioGroup.OnChecked
|
|||||||
setLayoutResource(R.layout.bubble_preference);
|
setLayoutResource(R.layout.bubble_preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NonNull RestrictedPreferenceHelper getRestrictedPreferenceHelper() {
|
||||||
|
return mHelper;
|
||||||
|
}
|
||||||
|
|
||||||
public void setSelectedPreference(int preference) {
|
public void setSelectedPreference(int preference) {
|
||||||
mSelectedPreference = preference;
|
mSelectedPreference = preference;
|
||||||
notifyChanged();
|
notifyChanged();
|
||||||
|
@@ -27,6 +27,7 @@ import androidx.preference.PreferenceViewHolder;
|
|||||||
|
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.android.settingslib.RestrictedPreferenceHelper;
|
import com.android.settingslib.RestrictedPreferenceHelper;
|
||||||
|
import com.android.settingslib.RestrictedPreferenceHelperProvider;
|
||||||
import com.android.settingslib.widget.AppPreference;
|
import com.android.settingslib.widget.AppPreference;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,7 +35,8 @@ import com.android.settingslib.widget.AppPreference;
|
|||||||
* {@link com.android.settingslib.RestrictedPreferenceHelper}.
|
* {@link com.android.settingslib.RestrictedPreferenceHelper}.
|
||||||
* Used to show policy transparency on {@link AppPreference}.
|
* Used to show policy transparency on {@link AppPreference}.
|
||||||
*/
|
*/
|
||||||
public class RestrictedAppPreference extends AppPreference {
|
public class RestrictedAppPreference extends AppPreference implements
|
||||||
|
RestrictedPreferenceHelperProvider {
|
||||||
private RestrictedPreferenceHelper mHelper;
|
private RestrictedPreferenceHelper mHelper;
|
||||||
private String userRestriction;
|
private String userRestriction;
|
||||||
|
|
||||||
@@ -58,6 +60,11 @@ public class RestrictedAppPreference extends AppPreference {
|
|||||||
this.userRestriction = userRestriction;
|
this.userRestriction = userRestriction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NonNull RestrictedPreferenceHelper getRestrictedPreferenceHelper() {
|
||||||
|
return mHelper;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(PreferenceViewHolder holder) {
|
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||||
super.onBindViewHolder(holder);
|
super.onBindViewHolder(holder);
|
||||||
|
@@ -23,12 +23,14 @@ import android.util.AttributeSet;
|
|||||||
import android.widget.CompoundButton;
|
import android.widget.CompoundButton;
|
||||||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.preference.PreferenceViewHolder;
|
import androidx.preference.PreferenceViewHolder;
|
||||||
import androidx.preference.TwoStatePreference;
|
import androidx.preference.TwoStatePreference;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.widget.SettingsMainSwitchBar.OnBeforeCheckedChangeListener;
|
import com.android.settings.widget.SettingsMainSwitchBar.OnBeforeCheckedChangeListener;
|
||||||
import com.android.settingslib.RestrictedPreferenceHelper;
|
import com.android.settingslib.RestrictedPreferenceHelper;
|
||||||
|
import com.android.settingslib.RestrictedPreferenceHelperProvider;
|
||||||
import com.android.settingslib.core.instrumentation.SettingsJankMonitor;
|
import com.android.settingslib.core.instrumentation.SettingsJankMonitor;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -40,7 +42,7 @@ import java.util.List;
|
|||||||
* to enable or disable the preferences on the page.
|
* to enable or disable the preferences on the page.
|
||||||
*/
|
*/
|
||||||
public class SettingsMainSwitchPreference extends TwoStatePreference implements
|
public class SettingsMainSwitchPreference extends TwoStatePreference implements
|
||||||
OnCheckedChangeListener {
|
OnCheckedChangeListener, RestrictedPreferenceHelperProvider {
|
||||||
|
|
||||||
private final List<OnBeforeCheckedChangeListener> mBeforeCheckedChangeListeners =
|
private final List<OnBeforeCheckedChangeListener> mBeforeCheckedChangeListeners =
|
||||||
new ArrayList<>();
|
new ArrayList<>();
|
||||||
@@ -71,6 +73,11 @@ public class SettingsMainSwitchPreference extends TwoStatePreference implements
|
|||||||
init(context, attrs);
|
init(context, attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @NonNull RestrictedPreferenceHelper getRestrictedPreferenceHelper() {
|
||||||
|
return mRestrictedHelper;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(PreferenceViewHolder holder) {
|
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||||
super.onBindViewHolder(holder);
|
super.onBindViewHolder(holder);
|
||||||
|
Reference in New Issue
Block a user