Merge "Add PrefController in XML support"

This commit is contained in:
TreeHugger Robot
2017-12-13 00:02:35 +00:00
committed by Android (Google) Code Review
13 changed files with 353 additions and 70 deletions

View File

@@ -22,31 +22,29 @@ import android.os.UserManager;
import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class BackupSettingsActivityPreferenceController extends
AbstractPreferenceController implements PreferenceControllerMixin {
public class BackupSettingsActivityPreferenceController extends BasePreferenceController {
private static final String TAG = "BackupSettingActivityPC";
private static final String KEY_BACKUP_SETTINGS = "backup_settings";
private static final String TAG = "BackupSettingActivityPC" ;
private final UserManager mUm;
private final BackupManager mBackupManager;
public BackupSettingsActivityPreferenceController(Context context) {
super(context);
super(context, KEY_BACKUP_SETTINGS);
mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
mBackupManager = new BackupManager(context);
}
@Override
public boolean isAvailable() {
return mUm.isAdminUser();
}
@Override
public String getPreferenceKey() {
return KEY_BACKUP_SETTINGS;
public int getAvailabilityStatus() {
return mUm.isAdminUser()
? AVAILABLE
: DISABLED_UNSUPPORTED;
}
@Override
@@ -57,4 +55,4 @@ public class BackupSettingsActivityPreferenceController extends
? R.string.accessibility_feature_state_on
: R.string.accessibility_feature_state_off);
}
}
}

View File

@@ -17,26 +17,23 @@ package com.android.settings.deviceinfo;
import android.content.Context;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
public class AdditionalSystemUpdatePreferenceController extends
AbstractPreferenceController implements PreferenceControllerMixin {
public class AdditionalSystemUpdatePreferenceController extends BasePreferenceController {
private static final String KEY_UPDATE_SETTING = "additional_system_update_settings";
public AdditionalSystemUpdatePreferenceController(Context context) {
super(context);
super(context, KEY_UPDATE_SETTING);
}
@Override
public boolean isAvailable() {
public int getAvailabilityStatus() {
return mContext.getResources().getBoolean(
com.android.settings.R.bool.config_additional_system_update_setting_enable);
com.android.settings.R.bool.config_additional_system_update_setting_enable)
? AVAILABLE
: DISABLED_UNSUPPORTED;
}
@Override
public String getPreferenceKey() {
return KEY_UPDATE_SETTING;
}
}
}

View File

@@ -30,11 +30,9 @@ import android.util.Log;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settings.core.BasePreferenceController;
public class SystemUpdatePreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
public class SystemUpdatePreferenceController extends BasePreferenceController {
private static final String TAG = "SysUpdatePrefContr";
@@ -42,19 +40,16 @@ public class SystemUpdatePreferenceController extends AbstractPreferenceControll
private final UserManager mUm;
public SystemUpdatePreferenceController(Context context, UserManager um) {
super(context);
mUm = um;
public SystemUpdatePreferenceController(Context context) {
super(context, KEY_SYSTEM_UPDATE_SETTINGS);
mUm = UserManager.get(context);
}
@Override
public boolean isAvailable() {
return mUm.isAdminUser();
}
@Override
public String getPreferenceKey() {
return KEY_SYSTEM_UPDATE_SETTINGS;
public int getAvailabilityStatus() {
return mUm.isAdminUser()
? AVAILABLE
: DISABLED_UNSUPPORTED;
}
@Override
@@ -62,14 +57,14 @@ public class SystemUpdatePreferenceController extends AbstractPreferenceControll
super.displayPreference(screen);
if (isAvailable()) {
Utils.updatePreferenceToSpecificActivityOrRemove(mContext, screen,
KEY_SYSTEM_UPDATE_SETTINGS,
getPreferenceKey(),
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
}
}
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (KEY_SYSTEM_UPDATE_SETTINGS.equals(preference.getKey())) {
if (TextUtils.equals(getPreferenceKey(), preference.getKey())) {
CarrierConfigManager configManager =
(CarrierConfigManager) mContext.getSystemService(CARRIER_CONFIG_SERVICE);
PersistableBundle b = configManager.getConfig();
@@ -108,4 +103,4 @@ public class SystemUpdatePreferenceController extends AbstractPreferenceControll
mContext.getApplicationContext().sendBroadcast(intent);
}
}
}
}

View File

@@ -23,27 +23,26 @@ import android.support.v7.preference.Preference;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List;
public class GesturesSettingPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
private static final String KEY_GESTURES_SETTINGS = "gesture_settings";
public class GesturesSettingPreferenceController extends BasePreferenceController {
private final AssistGestureFeatureProvider mFeatureProvider;
private List<AbstractPreferenceController> mGestureControllers;
private static final String KEY_GESTURES_SETTINGS = "gesture_settings";
public GesturesSettingPreferenceController(Context context) {
super(context);
super(context, KEY_GESTURES_SETTINGS);
mFeatureProvider = FeatureFactory.getFactory(context).getAssistGestureFeatureProvider();
}
@Override
public boolean isAvailable() {
public int getAvailabilityStatus() {
if (mGestureControllers == null) {
mGestureControllers = GestureSettings.buildPreferenceControllers(mContext,
null /* lifecycle */, new AmbientDisplayConfiguration(mContext));
@@ -52,12 +51,9 @@ public class GesturesSettingPreferenceController extends AbstractPreferenceContr
for (AbstractPreferenceController controller : mGestureControllers) {
isAvailable = isAvailable || controller.isAvailable();
}
return isAvailable;
}
@Override
public String getPreferenceKey() {
return KEY_GESTURES_SETTINGS;
return isAvailable
? AVAILABLE
: DISABLED_UNSUPPORTED;
}
@Override
@@ -83,5 +79,4 @@ public class GesturesSettingPreferenceController extends AbstractPreferenceContr
}
preference.setSummary(summary);
}
}
}

View File

@@ -71,6 +71,10 @@ public class XmlParserUtils {
return getData(context, attrs, R.styleable.Preference, R.styleable.Preference_keywords);
}
public static String getController(Context context, AttributeSet attrs) {
return getData(context, attrs, R.styleable.Preference, R.styleable.Preference_controller);
}
public static int getDataIcon(Context context, AttributeSet attrs) {
final TypedArray ta = context.obtainStyledAttributes(attrs,
com.android.internal.R.styleable.Preference);

View File

@@ -82,7 +82,7 @@ public class SystemDashboardFragment extends DashboardFragment {
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new SystemUpdatePreferenceController(context, UserManager.get(context)));
controllers.add(new SystemUpdatePreferenceController(context));
controllers.add(new AdditionalSystemUpdatePreferenceController(context));
controllers.add(new BackupSettingsActivityPreferenceController(context));
controllers.add(new GesturesSettingPreferenceController(context));
@@ -124,10 +124,10 @@ public class SystemDashboardFragment extends DashboardFragment {
@Override
public List<String> getNonIndexableKeys(Context context) {
List<String> keys = super.getNonIndexableKeys(context);
keys.add((new BackupSettingsActivityPreferenceController(context)
.getPreferenceKey()));
keys.add((new BackupSettingsActivityPreferenceController(
context).getPreferenceKey()));
keys.add(KEY_RESET);
return keys;
}
};
}
}