Slices feature supports firmware version.

- Migrate FirmwareVersionPreferenceController to BasePreferenceController class.
- Because slices feature needs an unique uri,
  we should avoid same firmware key in my_device_info.xml and device_info_settings.xml.
- Modify test case for new firmware version controller.

Test: slice uri > content://android.settings.slices/intent/my_device_firmware_version
Test: make RunSettingsRoboTests -j
      atest UniquePreferenceTest SettingsGatewayTest
Change-Id: If516bbdb3ddb823db9909123ef694a2beaf5dc66
This commit is contained in:
tmfang
2018-04-23 17:37:14 +08:00
committed by Fan Zhang
parent 8efbe6e255
commit 1f37d190c0
7 changed files with 115 additions and 82 deletions

View File

@@ -19,48 +19,37 @@ package com.android.settings.deviceinfo.firmwareversion;
import android.app.Fragment;
import android.content.Context;
import android.os.Build;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import android.text.TextUtils;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settings.core.BasePreferenceController;
public class FirmwareVersionPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin {
import androidx.preference.Preference;
private final static String FIRMWARE_VERSION_KEY = "firmware_version";
public class FirmwareVersionPreferenceController extends BasePreferenceController {
private final Fragment mFragment;
private Fragment mFragment;
public FirmwareVersionPreferenceController(Context context, Fragment fragment) {
super(context);
public FirmwareVersionPreferenceController(Context context, String key) {
super(context, key);
}
public void setHost(Fragment fragment) {
mFragment = fragment;
}
@Override
public boolean isAvailable() {
return true;
public int getAvailabilityStatus() {
return AVAILABLE;
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
final Preference pref = screen.findPreference(getPreferenceKey());
if (pref != null) {
pref.setSummary(Build.VERSION.RELEASE);
}
}
@Override
public String getPreferenceKey() {
return FIRMWARE_VERSION_KEY;
public CharSequence getSummary() {
return Build.VERSION.RELEASE;
}
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
if (!TextUtils.equals(preference.getKey(), mPreferenceKey)) {
return false;
}