Update DeviceModelPreferenceController
- Added serial number to the dialog for about phone v2 - prefixed model to the preference summary for about phone v2 Bug: 36458278 Test: make RunSettingsRoboTests -j40 Change-Id: Ic2950adcecf940ad8c9256688dc70b662ad5f0d6
This commit is contained in:
@@ -39,6 +39,20 @@
|
|||||||
android:paddingBottom="24dp"
|
android:paddingBottom="24dp"
|
||||||
android:textAppearance="@android:style/TextAppearance.Material.Body2" />
|
android:textAppearance="@android:style/TextAppearance.Material.Body2" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/serial_number_label"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textAppearance="@android:style/TextAppearance.Material.Body1"
|
||||||
|
android:textColor="?android:attr/textColorSecondary"
|
||||||
|
android:text="@string/status_serial_number" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/serial_number_value"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingBottom="24dp"
|
||||||
|
android:textAppearance="@android:style/TextAppearance.Material.Body2" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/hardware_rev_label"
|
android:id="@+id/hardware_rev_label"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@@ -2619,6 +2619,8 @@
|
|||||||
<string name="security_patch">Android security patch level</string>
|
<string name="security_patch">Android security patch level</string>
|
||||||
<!-- About phone screen, status item label [CHAR LIMIT=40] -->
|
<!-- About phone screen, status item label [CHAR LIMIT=40] -->
|
||||||
<string name="model_info">Model</string>
|
<string name="model_info">Model</string>
|
||||||
|
<!-- About phone screen, status item summary [CHAR LIMIT=40] -->
|
||||||
|
<string name="model_summary">Model: %1$s</string>
|
||||||
<!-- About phone screen, dialog title for showing hardware information such as model, serial number, etc.[CHAR LIMIT=60] -->
|
<!-- About phone screen, dialog title for showing hardware information such as model, serial number, etc.[CHAR LIMIT=60] -->
|
||||||
<string name="hardware_info">Model & hardware</string>
|
<string name="hardware_info">Model & hardware</string>
|
||||||
<!-- Label for device's hardware revision value [CHAR LIMIT=40] -->
|
<!-- Label for device's hardware revision value [CHAR LIMIT=40] -->
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
<!-- Model & hardware -->
|
<!-- Model & hardware -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="model_and_hardware"
|
android:key="device_model"
|
||||||
android:title="@string/hardware_info"
|
android:title="@string/hardware_info"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder"/>
|
||||||
|
|
||||||
|
@@ -49,10 +49,11 @@ import java.util.List;
|
|||||||
|
|
||||||
public class DeviceInfoSettings extends DashboardFragment implements Indexable {
|
public class DeviceInfoSettings extends DashboardFragment implements Indexable {
|
||||||
|
|
||||||
|
public static final String DEVICE_INFO_V2_FEATURE_FLAG = "device_info_v2";
|
||||||
|
|
||||||
private static final String LOG_TAG = "DeviceInfoSettings";
|
private static final String LOG_TAG = "DeviceInfoSettings";
|
||||||
|
|
||||||
private static final String KEY_LEGAL_CONTAINER = "legal_container";
|
private static final String KEY_LEGAL_CONTAINER = "legal_container";
|
||||||
private static final String DEVICE_INFO_V2_FEATURE_FLAG = "device_info_v2";
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
@@ -127,7 +128,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
|
|||||||
|
|
||||||
// SIM status
|
// SIM status
|
||||||
|
|
||||||
// Model & hardware
|
controllers.add(new DeviceModelPreferenceController(context, fragment));
|
||||||
|
|
||||||
// IMEI
|
// IMEI
|
||||||
|
|
||||||
|
@@ -21,7 +21,10 @@ import android.os.Build;
|
|||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.support.v7.preference.PreferenceScreen;
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.FeatureFlagUtils;
|
||||||
|
|
||||||
|
import com.android.settings.DeviceInfoSettings;
|
||||||
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
import com.android.settingslib.DeviceInfoUtils;
|
import com.android.settingslib.DeviceInfoUtils;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
@@ -48,9 +51,14 @@ public class DeviceModelPreferenceController extends AbstractPreferenceControlle
|
|||||||
super.displayPreference(screen);
|
super.displayPreference(screen);
|
||||||
final Preference pref = screen.findPreference(KEY_DEVICE_MODEL);
|
final Preference pref = screen.findPreference(KEY_DEVICE_MODEL);
|
||||||
if (pref != null) {
|
if (pref != null) {
|
||||||
|
if (FeatureFlagUtils.isEnabled(DeviceInfoSettings.DEVICE_INFO_V2_FEATURE_FLAG)) {
|
||||||
|
pref.setSummary(mContext.getResources().getString(R.string.model_summary,
|
||||||
|
getDeviceModel()));
|
||||||
|
} else {
|
||||||
pref.setSummary(getDeviceModel());
|
pref.setSummary(getDeviceModel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPreferenceKey() {
|
public String getPreferenceKey() {
|
||||||
|
@@ -18,15 +18,18 @@ package com.android.settings.deviceinfo;
|
|||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.support.annotation.VisibleForTesting;
|
import android.support.annotation.VisibleForTesting;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.FeatureFlagUtils;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
|
import com.android.settings.DeviceInfoSettings;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
|
|
||||||
@@ -54,6 +57,15 @@ public class HardwareInfoDialogFragment extends InstrumentedDialogFragment {
|
|||||||
// Model
|
// Model
|
||||||
setText(content, R.id.model_label, R.id.model_value,
|
setText(content, R.id.model_label, R.id.model_value,
|
||||||
DeviceModelPreferenceController.getDeviceModel());
|
DeviceModelPreferenceController.getDeviceModel());
|
||||||
|
|
||||||
|
// Serial number
|
||||||
|
if (FeatureFlagUtils.isEnabled(DeviceInfoSettings.DEVICE_INFO_V2_FEATURE_FLAG)) {
|
||||||
|
setText(content, R.id.serial_number_label, R.id.serial_number_value, getSerialNumber());
|
||||||
|
} else {
|
||||||
|
content.findViewById(R.id.serial_number_label).setVisibility(View.GONE);
|
||||||
|
content.findViewById(R.id.serial_number_value).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
// Hardware rev
|
// Hardware rev
|
||||||
setText(content, R.id.hardware_rev_label, R.id.hardware_rev_value,
|
setText(content, R.id.hardware_rev_label, R.id.hardware_rev_value,
|
||||||
SystemProperties.get("ro.boot.hardware.revision"));
|
SystemProperties.get("ro.boot.hardware.revision"));
|
||||||
@@ -77,4 +89,9 @@ public class HardwareInfoDialogFragment extends InstrumentedDialogFragment {
|
|||||||
valueView.setVisibility(View.GONE);
|
valueView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
String getSerialNumber() {
|
||||||
|
return Build.getSerial();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,10 @@ import com.android.settingslib.deviceinfo.AbstractSerialNumberPreferenceControll
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Preference controller for displaying device serial number. Wraps {@link Build#getSerial()}.
|
* Preference controller for displaying device serial number. Wraps {@link Build#getSerial()}.
|
||||||
|
*
|
||||||
|
* deprecated because this preference is no longer used in About Phone V2
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public class SerialNumberPreferenceController extends
|
public class SerialNumberPreferenceController extends
|
||||||
AbstractSerialNumberPreferenceController implements
|
AbstractSerialNumberPreferenceController implements
|
||||||
PreferenceControllerMixin {
|
PreferenceControllerMixin {
|
||||||
|
@@ -16,13 +16,20 @@
|
|||||||
|
|
||||||
package com.android.settings.deviceinfo;
|
package com.android.settings.deviceinfo;
|
||||||
|
|
||||||
|
import static org.mockito.Matchers.any;
|
||||||
|
import static org.mockito.Matchers.anyString;
|
||||||
|
import static org.mockito.Matchers.eq;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
|
||||||
import com.android.settings.TestConfig;
|
import com.android.settings.TestConfig;
|
||||||
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -30,12 +37,6 @@ import org.junit.runner.RunWith;
|
|||||||
import org.robolectric.Robolectric;
|
import org.robolectric.Robolectric;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
import static org.mockito.Matchers.any;
|
|
||||||
import static org.mockito.Matchers.anyString;
|
|
||||||
import static org.mockito.Matchers.eq;
|
|
||||||
import static org.mockito.Mockito.spy;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
|
|
||||||
@RunWith(SettingsRobolectricTestRunner.class)
|
@RunWith(SettingsRobolectricTestRunner.class)
|
||||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||||
public class HardwareInfoDialogFragmentTest {
|
public class HardwareInfoDialogFragmentTest {
|
||||||
@@ -53,6 +54,7 @@ public class HardwareInfoDialogFragmentTest {
|
|||||||
SystemProperties.set("ro.boot.hardware.revision", TEST_HARDWARE_REV);
|
SystemProperties.set("ro.boot.hardware.revision", TEST_HARDWARE_REV);
|
||||||
|
|
||||||
final HardwareInfoDialogFragment fragment = spy(HardwareInfoDialogFragment.newInstance());
|
final HardwareInfoDialogFragment fragment = spy(HardwareInfoDialogFragment.newInstance());
|
||||||
|
doReturn("").when(fragment).getSerialNumber();
|
||||||
fragment.show(mActivity.getFragmentManager(), HardwareInfoDialogFragment.TAG);
|
fragment.show(mActivity.getFragmentManager(), HardwareInfoDialogFragment.TAG);
|
||||||
|
|
||||||
verify(fragment).setText(
|
verify(fragment).setText(
|
||||||
|
Reference in New Issue
Block a user