Merge "Slices feature supports firmware version."
This commit is contained in:
committed by
Android (Google) Code Review
commit
0e6977da39
@@ -9468,7 +9468,7 @@
|
|||||||
<string name="fingerprint_swipe_for_notifications_suggestion_title">See notifications quickly</string>
|
<string name="fingerprint_swipe_for_notifications_suggestion_title">See notifications quickly</string>
|
||||||
|
|
||||||
<!-- Title text for the assist gesture [CHAR LIMIT=60] DO NOT TRANSLATE -->
|
<!-- Title text for the assist gesture [CHAR LIMIT=60] DO NOT TRANSLATE -->
|
||||||
<string name="assist_gesture_title" translatable="false"></string>
|
<string name="assist_gesture_title" translatable="false">Assist gesture</string>
|
||||||
|
|
||||||
<!-- Switch text for each gesture setting state -->
|
<!-- Switch text for each gesture setting state -->
|
||||||
<string name="gesture_setting_on">On</string>
|
<string name="gesture_setting_on">On</string>
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
android:key="phone_number"
|
android:key="phone_number"
|
||||||
android:order="0"
|
android:order="0"
|
||||||
android:title="@string/status_number"
|
android:title="@string/status_number"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder" />
|
||||||
|
|
||||||
<!-- SIM status -->
|
<!-- SIM status -->
|
||||||
<Preference
|
<Preference
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
android:order="10"
|
android:order="10"
|
||||||
android:title="@string/sim_status_title"
|
android:title="@string/sim_status_title"
|
||||||
settings:keywords="@string/keywords_sim_status"
|
settings:keywords="@string/keywords_sim_status"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder" />
|
||||||
|
|
||||||
<!-- Model & hardware -->
|
<!-- Model & hardware -->
|
||||||
<Preference
|
<Preference
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
android:order="21"
|
android:order="21"
|
||||||
android:title="@string/hardware_info"
|
android:title="@string/hardware_info"
|
||||||
settings:keywords="@string/keywords_model_and_hardware"
|
settings:keywords="@string/keywords_model_and_hardware"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder" />
|
||||||
|
|
||||||
<!-- IMEI -->
|
<!-- IMEI -->
|
||||||
<Preference
|
<Preference
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
android:order="22"
|
android:order="22"
|
||||||
android:title="@string/status_imei"
|
android:title="@string/status_imei"
|
||||||
settings:keywords="@string/keywords_imei_info"
|
settings:keywords="@string/keywords_imei_info"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder" />
|
||||||
|
|
||||||
<!-- Android version -->
|
<!-- Android version -->
|
||||||
<Preference
|
<Preference
|
||||||
@@ -58,7 +58,9 @@
|
|||||||
android:order="32"
|
android:order="32"
|
||||||
android:title="@string/firmware_version"
|
android:title="@string/firmware_version"
|
||||||
settings:keywords="@string/keywords_android_version"
|
settings:keywords="@string/keywords_android_version"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder"
|
||||||
|
settings:controller=
|
||||||
|
"com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController" />
|
||||||
|
|
||||||
<!--IP address -->
|
<!--IP address -->
|
||||||
<Preference
|
<Preference
|
||||||
@@ -66,21 +68,21 @@
|
|||||||
android:order="34"
|
android:order="34"
|
||||||
android:title="@string/wifi_ip_address"
|
android:title="@string/wifi_ip_address"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
settings:allowDividerAbove="true"/>
|
settings:allowDividerAbove="true" />
|
||||||
|
|
||||||
<!-- Wi-Fi MAC address -->
|
<!-- Wi-Fi MAC address -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="wifi_mac_address"
|
android:key="wifi_mac_address"
|
||||||
android:order="35"
|
android:order="35"
|
||||||
android:title="@string/status_wifi_mac_address"
|
android:title="@string/status_wifi_mac_address"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder" />
|
||||||
|
|
||||||
<!-- Bluetooth address -->
|
<!-- Bluetooth address -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="bt_address"
|
android:key="bt_address"
|
||||||
android:order="36"
|
android:order="36"
|
||||||
android:title="@string/status_bt_address"
|
android:title="@string/status_bt_address"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder" />
|
||||||
|
|
||||||
|
|
||||||
<!-- Legal information -->
|
<!-- Legal information -->
|
||||||
@@ -89,14 +91,14 @@
|
|||||||
android:order="37"
|
android:order="37"
|
||||||
android:title="@string/legal_information"
|
android:title="@string/legal_information"
|
||||||
android:fragment="com.android.settings.LegalSettings"
|
android:fragment="com.android.settings.LegalSettings"
|
||||||
settings:allowDividerAbove="true"/>
|
settings:allowDividerAbove="true" />
|
||||||
|
|
||||||
<!-- Regulatory labels -->
|
<!-- Regulatory labels -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="regulatory_info"
|
android:key="regulatory_info"
|
||||||
android:order="38"
|
android:order="38"
|
||||||
android:title="@string/regulatory_labels">
|
android:title="@string/regulatory_labels">
|
||||||
<intent android:action="android.settings.SHOW_REGULATORY_INFO"/>
|
<intent android:action="android.settings.SHOW_REGULATORY_INFO" />
|
||||||
</Preference>
|
</Preference>
|
||||||
|
|
||||||
<!-- Safety & regulatory manual -->
|
<!-- Safety & regulatory manual -->
|
||||||
@@ -104,7 +106,7 @@
|
|||||||
android:key="safety_info"
|
android:key="safety_info"
|
||||||
android:order="39"
|
android:order="39"
|
||||||
android:title="@string/safety_and_regulatory_info">
|
android:title="@string/safety_and_regulatory_info">
|
||||||
<intent android:action="android.settings.SHOW_SAFETY_AND_REGULATORY_INFO"/>
|
<intent android:action="android.settings.SHOW_SAFETY_AND_REGULATORY_INFO" />
|
||||||
</Preference>
|
</Preference>
|
||||||
|
|
||||||
<!-- Manual -->
|
<!-- Manual -->
|
||||||
@@ -112,21 +114,21 @@
|
|||||||
android:key="manual"
|
android:key="manual"
|
||||||
android:order="40"
|
android:order="40"
|
||||||
android:title="@string/manual">
|
android:title="@string/manual">
|
||||||
<intent android:action="android.settings.SHOW_MANUAL"/>
|
<intent android:action="android.settings.SHOW_MANUAL" />
|
||||||
</Preference>
|
</Preference>
|
||||||
|
|
||||||
<!-- Feedback on the device -->
|
<!-- Feedback on the device -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="device_feedback"
|
android:key="device_feedback"
|
||||||
android:order="41"
|
android:order="41"
|
||||||
android:title="@string/device_feedback"/>
|
android:title="@string/device_feedback" />
|
||||||
|
|
||||||
<!-- Device FCC equipment id -->
|
<!-- Device FCC equipment id -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="fcc_equipment_id"
|
android:key="fcc_equipment_id"
|
||||||
android:order="42"
|
android:order="42"
|
||||||
android:title="@string/fcc_equipment_id"
|
android:title="@string/fcc_equipment_id"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder" />
|
||||||
|
|
||||||
<!-- Build number -->
|
<!-- Build number -->
|
||||||
<Preference
|
<Preference
|
||||||
@@ -134,6 +136,6 @@
|
|||||||
android:order="43"
|
android:order="43"
|
||||||
android:title="@string/build_number"
|
android:title="@string/build_number"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
settings:allowDividerAbove="true"/>
|
settings:allowDividerAbove="true" />
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
@@ -99,11 +99,13 @@
|
|||||||
|
|
||||||
<!-- Android version -->
|
<!-- Android version -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="firmware_version"
|
android:key="my_device_firmware_version"
|
||||||
android:order="32"
|
android:order="32"
|
||||||
android:title="@string/firmware_version"
|
android:title="@string/firmware_version"
|
||||||
settings:keywords="@string/keywords_android_version"
|
settings:keywords="@string/keywords_android_version"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder"
|
||||||
|
settings:controller=
|
||||||
|
"com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController" />
|
||||||
|
|
||||||
<!--IP address -->
|
<!--IP address -->
|
||||||
<Preference
|
<Preference
|
||||||
|
@@ -53,6 +53,12 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final int NON_SIM_PREFERENCES_COUNT = 2;
|
static final int NON_SIM_PREFERENCES_COUNT = 2;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAttach(Context context) {
|
||||||
|
super.onAttach(context);
|
||||||
|
use(FirmwareVersionPreferenceController.class).setHost(this /*parent*/);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return MetricsEvent.DEVICEINFO;
|
return MetricsEvent.DEVICEINFO;
|
||||||
@@ -130,7 +136,6 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
|
|||||||
controllers.add(new SimStatusPreferenceController(context, fragment));
|
controllers.add(new SimStatusPreferenceController(context, fragment));
|
||||||
controllers.add(new DeviceModelPreferenceController(context, fragment));
|
controllers.add(new DeviceModelPreferenceController(context, fragment));
|
||||||
controllers.add(new ImeiInfoPreferenceController(context, fragment));
|
controllers.add(new ImeiInfoPreferenceController(context, fragment));
|
||||||
controllers.add(new FirmwareVersionPreferenceController(context, fragment));
|
|
||||||
controllers.add(new IpAddressPreferenceController(context, lifecycle));
|
controllers.add(new IpAddressPreferenceController(context, lifecycle));
|
||||||
controllers.add(new WifiMacAddressPreferenceController(context, lifecycle));
|
controllers.add(new WifiMacAddressPreferenceController(context, lifecycle));
|
||||||
controllers.add(new BluetoothAddressPreferenceController(context, lifecycle));
|
controllers.add(new BluetoothAddressPreferenceController(context, lifecycle));
|
||||||
|
@@ -63,8 +63,8 @@ import java.util.List;
|
|||||||
@SearchIndexable
|
@SearchIndexable
|
||||||
public class MyDeviceInfoFragment extends DashboardFragment
|
public class MyDeviceInfoFragment extends DashboardFragment
|
||||||
implements DeviceNamePreferenceController.DeviceNamePreferenceHost {
|
implements DeviceNamePreferenceController.DeviceNamePreferenceHost {
|
||||||
private static final String LOG_TAG = "MyDeviceInfoFragment";
|
|
||||||
|
|
||||||
|
private static final String LOG_TAG = "MyDeviceInfoFragment";
|
||||||
private static final String KEY_MY_DEVICE_INFO_HEADER = "my_device_info_header";
|
private static final String KEY_MY_DEVICE_INFO_HEADER = "my_device_info_header";
|
||||||
private static final String KEY_LEGAL_CONTAINER = "legal_container";
|
private static final String KEY_LEGAL_CONTAINER = "legal_container";
|
||||||
|
|
||||||
@@ -79,8 +79,14 @@ public class MyDeviceInfoFragment extends DashboardFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onAttach(Context context) {
|
||||||
super.onResume();
|
super.onAttach(context);
|
||||||
|
use(FirmwareVersionPreferenceController.class).setHost(this /*parent*/);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
super.onStart();
|
||||||
initHeader();
|
initHeader();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,9 +107,7 @@ public class MyDeviceInfoFragment extends DashboardFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static List<AbstractPreferenceController> buildPreferenceControllers(
|
private static List<AbstractPreferenceController> buildPreferenceControllers(
|
||||||
Context context,
|
Context context, Activity activity, MyDeviceInfoFragment fragment,
|
||||||
Activity activity,
|
|
||||||
MyDeviceInfoFragment fragment,
|
|
||||||
Lifecycle lifecycle) {
|
Lifecycle lifecycle) {
|
||||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||||
controllers.add(new EmergencyInfoPreferenceController(context));
|
controllers.add(new EmergencyInfoPreferenceController(context));
|
||||||
@@ -120,7 +124,6 @@ public class MyDeviceInfoFragment extends DashboardFragment
|
|||||||
controllers.add(new SimStatusPreferenceController(context, fragment));
|
controllers.add(new SimStatusPreferenceController(context, fragment));
|
||||||
controllers.add(new DeviceModelPreferenceController(context, fragment));
|
controllers.add(new DeviceModelPreferenceController(context, fragment));
|
||||||
controllers.add(new ImeiInfoPreferenceController(context, fragment));
|
controllers.add(new ImeiInfoPreferenceController(context, fragment));
|
||||||
controllers.add(new FirmwareVersionPreferenceController(context, fragment));
|
|
||||||
controllers.add(new IpAddressPreferenceController(context, lifecycle));
|
controllers.add(new IpAddressPreferenceController(context, lifecycle));
|
||||||
controllers.add(new WifiMacAddressPreferenceController(context, lifecycle));
|
controllers.add(new WifiMacAddressPreferenceController(context, lifecycle));
|
||||||
controllers.add(new BluetoothAddressPreferenceController(context, lifecycle));
|
controllers.add(new BluetoothAddressPreferenceController(context, lifecycle));
|
||||||
@@ -137,7 +140,7 @@ public class MyDeviceInfoFragment extends DashboardFragment
|
|||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
final BuildNumberPreferenceController buildNumberPreferenceController =
|
final BuildNumberPreferenceController buildNumberPreferenceController =
|
||||||
use(BuildNumberPreferenceController.class);
|
use(BuildNumberPreferenceController.class);
|
||||||
if (buildNumberPreferenceController.onActivityResult(requestCode, resultCode, data)) {
|
if (buildNumberPreferenceController.onActivityResult(requestCode, resultCode, data)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -151,7 +154,7 @@ public class MyDeviceInfoFragment extends DashboardFragment
|
|||||||
final View appSnippet = headerPreference.findViewById(R.id.entity_header);
|
final View appSnippet = headerPreference.findViewById(R.id.entity_header);
|
||||||
final Activity context = getActivity();
|
final Activity context = getActivity();
|
||||||
final Bundle bundle = getArguments();
|
final Bundle bundle = getArguments();
|
||||||
EntityHeaderController controller = EntityHeaderController
|
final EntityHeaderController controller = EntityHeaderController
|
||||||
.newInstance(context, this, appSnippet)
|
.newInstance(context, this, appSnippet)
|
||||||
.setRecyclerView(getListView(), getLifecycle())
|
.setRecyclerView(getListView(), getLifecycle())
|
||||||
.setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
|
.setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
|
||||||
@@ -160,9 +163,10 @@ public class MyDeviceInfoFragment extends DashboardFragment
|
|||||||
// TODO: There may be an avatar setting action we can use here.
|
// TODO: There may be an avatar setting action we can use here.
|
||||||
final int iconId = bundle.getInt("icon_id", 0);
|
final int iconId = bundle.getInt("icon_id", 0);
|
||||||
if (iconId == 0) {
|
if (iconId == 0) {
|
||||||
UserManager userManager = (UserManager) getActivity().getSystemService(
|
final UserManager userManager = (UserManager) getActivity().getSystemService(
|
||||||
Context.USER_SERVICE);
|
Context.USER_SERVICE);
|
||||||
UserInfo info = Utils.getExistingUser(userManager, android.os.Process.myUserHandle());
|
final UserInfo info = Utils.getExistingUser(userManager,
|
||||||
|
android.os.Process.myUserHandle());
|
||||||
controller.setLabel(info.name);
|
controller.setLabel(info.name);
|
||||||
controller.setIcon(
|
controller.setIcon(
|
||||||
com.android.settingslib.Utils.getUserIcon(getActivity(), userManager, info));
|
com.android.settingslib.Utils.getUserIcon(getActivity(), userManager, info));
|
||||||
|
@@ -19,48 +19,37 @@ package com.android.settings.deviceinfo.firmwareversion;
|
|||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import androidx.preference.Preference;
|
|
||||||
import androidx.preference.PreferenceScreen;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
|
||||||
|
|
||||||
public class FirmwareVersionPreferenceController extends AbstractPreferenceController implements
|
import androidx.preference.Preference;
|
||||||
PreferenceControllerMixin {
|
|
||||||
|
|
||||||
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) {
|
public FirmwareVersionPreferenceController(Context context, String key) {
|
||||||
super(context);
|
super(context, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHost(Fragment fragment) {
|
||||||
mFragment = fragment;
|
mFragment = fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAvailable() {
|
public int getAvailabilityStatus() {
|
||||||
return true;
|
return AVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public CharSequence getSummary() {
|
||||||
super.displayPreference(screen);
|
return Build.VERSION.RELEASE;
|
||||||
final Preference pref = screen.findPreference(getPreferenceKey());
|
|
||||||
if (pref != null) {
|
|
||||||
pref.setSummary(Build.VERSION.RELEASE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getPreferenceKey() {
|
|
||||||
return FIRMWARE_VERSION_KEY;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean handlePreferenceTreeClick(Preference preference) {
|
public boolean handlePreferenceTreeClick(Preference preference) {
|
||||||
if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
|
if (!TextUtils.equals(preference.getKey(), mPreferenceKey)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -17,74 +17,105 @@
|
|||||||
package com.android.settings.deviceinfo.firmwareversion;
|
package com.android.settings.deviceinfo.firmwareversion;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.never;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.app.FragmentManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import androidx.preference.Preference;
|
|
||||||
import androidx.preference.PreferenceScreen;
|
|
||||||
|
|
||||||
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Answers;
|
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
|
import org.robolectric.annotation.Config;
|
||||||
|
import org.robolectric.annotation.Implementation;
|
||||||
|
import org.robolectric.annotation.Implements;
|
||||||
|
import org.robolectric.annotation.Resetter;
|
||||||
|
|
||||||
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceManager;
|
||||||
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
public class FirmwareVersionPreferenceControllerTest {
|
public class FirmwareVersionPreferenceControllerTest {
|
||||||
|
|
||||||
@Mock
|
private final String KEY = "firmware_key";
|
||||||
private Preference mPreference;
|
|
||||||
@Mock
|
|
||||||
private PreferenceScreen mScreen;
|
|
||||||
@Mock
|
@Mock
|
||||||
private Fragment mFragment;
|
private Fragment mFragment;
|
||||||
|
|
||||||
private Context mContext;
|
private Preference mPreference;
|
||||||
|
private PreferenceScreen mScreen;
|
||||||
private FirmwareVersionPreferenceController mController;
|
private FirmwareVersionPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = RuntimeEnvironment.application;
|
final Context context = RuntimeEnvironment.application;
|
||||||
mController = new FirmwareVersionPreferenceController(mContext, mFragment);
|
final PreferenceManager preferenceManager = new PreferenceManager(context);
|
||||||
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
|
mController = new FirmwareVersionPreferenceController(context, KEY);
|
||||||
|
mController.setHost(mFragment);
|
||||||
|
mPreference = new Preference(context);
|
||||||
|
mPreference.setKey(KEY);
|
||||||
|
mScreen = preferenceManager.createPreferenceScreen(context);
|
||||||
|
mScreen.addPreference(mPreference);
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void tearDown() {
|
||||||
|
ShadowFirmwareVersionDialogFragment.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void displayPreference_shouldSetSummaryToBuildNumber() {
|
public void firmwareVersion_shouldAlwaysBeShown() {
|
||||||
mController.displayPreference(mScreen);
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||||
|
BasePreferenceController.AVAILABLE);
|
||||||
verify(mPreference).setSummary(Build.VERSION.RELEASE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
public void updatePreference_shouldSetSummaryToBuildNumber() {
|
||||||
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
|
assertThat(mPreference.getSummary()).isEqualTo(Build.VERSION.RELEASE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Config(shadows = ShadowFirmwareVersionDialogFragment.class)
|
||||||
public void handlePreferenceTreeClick_samePreferenceKey_shouldStartDialogFragment() {
|
public void handlePreferenceTreeClick_samePreferenceKey_shouldStartDialogFragment() {
|
||||||
when(mPreference.getKey()).thenReturn(mController.getPreferenceKey());
|
final boolean result = mController.handlePreferenceTreeClick(mPreference);
|
||||||
when(mFragment.getChildFragmentManager()).thenReturn(
|
|
||||||
mock(FragmentManager.class, Answers.RETURNS_DEEP_STUBS));
|
|
||||||
|
|
||||||
mController.handlePreferenceTreeClick(mPreference);
|
assertThat(ShadowFirmwareVersionDialogFragment.isShowing).isTrue();
|
||||||
|
assertThat(result).isTrue();
|
||||||
verify(mFragment).getChildFragmentManager();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void handlePreferenceTreeClick_unknownPreferenceKey_shouldDoNothingAndReturnFalse() {
|
public void handlePreferenceTreeClick_unknownPreferenceKey_shouldDoNothingAndReturnFalse() {
|
||||||
when(mPreference.getKey()).thenReturn("foobar");
|
mPreference.setKey("foobar");
|
||||||
|
|
||||||
final boolean result = mController.handlePreferenceTreeClick(mPreference);
|
final boolean result = mController.handlePreferenceTreeClick(mPreference);
|
||||||
|
|
||||||
|
assertThat(ShadowFirmwareVersionDialogFragment.isShowing).isFalse();
|
||||||
assertThat(result).isFalse();
|
assertThat(result).isFalse();
|
||||||
verify(mFragment, never()).getChildFragmentManager();
|
}
|
||||||
|
|
||||||
|
@Implements(FirmwareVersionDialogFragment.class)
|
||||||
|
public static class ShadowFirmwareVersionDialogFragment {
|
||||||
|
|
||||||
|
private static boolean isShowing = false;
|
||||||
|
|
||||||
|
@Implementation
|
||||||
|
public static void show(Fragment fragemnt) {
|
||||||
|
isShowing = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Resetter
|
||||||
|
public static void reset() {
|
||||||
|
isShowing = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user