diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 4a8d9333680..1ecddf5a79f 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1179,14 +1179,24 @@
- Cached (empty)
+
+
+ - @color/SIM_color_cyan
+ - @color/SIM_color_blue800
+ - @color/SIM_color_green800
+ - @color/SIM_color_purple800
+ - @color/SIM_color_pink800
+ - @color/SIM_color_orange
+
+
- - Teal
+ - Cyan
- Blue
- - Indigo
+ - Green
- Purple
- Pink
- - Red
+ - Orange
#ffd32f2f
+
+ #ff006D74
+ #ff185ABC
+ #ff137333
+ #ff7627bb
+ #ffb80672
+ #ff995400
+
- #ff80cbc4
- #ff90caf9
- #ffc5cae9
- #ffe1bee7
- #fff48fb1
- #ffef9a9a
+ #ff4DD0E1
+ #ff8AB4F8
+ #ff81C995
+ #ffC58AF9
+ #ffff8bcb
+ #fffcad70
@*android:color/surface_header_light
diff --git a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
index c782b66c677..8e65605eecc 100644
--- a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
+++ b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
@@ -52,6 +52,7 @@ import com.android.settingslib.DeviceInfoUtils;
import com.google.common.collect.ImmutableMap;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -108,18 +109,18 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen
mSubId = getArguments().getInt(KEY_SUBSCRIPTION_ID);
Resources res = context.getResources();
mLightDarkMap = ImmutableMap.builder()
- .put(res.getInteger(R.color.SIM_color_teal),
- res.getInteger(R.color.SIM_dark_mode_color_teal))
- .put(res.getInteger(R.color.SIM_color_blue),
+ .put(res.getInteger(R.color.SIM_color_cyan),
+ res.getInteger(R.color.SIM_dark_mode_color_cyan))
+ .put(res.getInteger(R.color.SIM_color_blue800),
res.getInteger(R.color.SIM_dark_mode_color_blue))
- .put(res.getInteger(R.color.SIM_color_indigo),
- res.getInteger(R.color.SIM_dark_mode_color_indigo))
- .put(res.getInteger(R.color.SIM_color_purple),
+ .put(res.getInteger(R.color.SIM_color_green800),
+ res.getInteger(R.color.SIM_dark_mode_color_green))
+ .put(res.getInteger(R.color.SIM_color_purple800),
res.getInteger(R.color.SIM_dark_mode_color_purple))
- .put(res.getInteger(R.color.SIM_color_pink),
+ .put(res.getInteger(R.color.SIM_color_pink800),
res.getInteger(R.color.SIM_dark_mode_color_pink))
- .put(res.getInteger(R.color.SIM_color_red),
- res.getInteger(R.color.SIM_dark_mode_color_red))
+ .put(res.getInteger(R.color.SIM_color_orange),
+ res.getInteger(R.color.SIM_dark_mode_color_orange))
.build();
}
@@ -175,12 +176,7 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen
final ColorAdapter adapter = new ColorAdapter(getContext(),
R.layout.dialog_mobile_network_color_picker_item, mColors);
mColorSpinner.setAdapter(adapter);
- for (int i = 0; i < mColors.length; i++) {
- if (mColors[i].getColor() == info.getIconTint()) {
- mColorSpinner.setSelection(i);
- break;
- }
- }
+ mColorSpinner.setSelection(getSimColorIndex(info.getIconTint()));
final TextView operatorName = view.findViewById(R.id.operator_name_value);
mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId);
@@ -239,7 +235,7 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen
private Color[] getColors() {
final Resources res = getContext().getResources();
- final int[] colorInts = res.getIntArray(com.android.internal.R.array.sim_colors);
+ final int[] colorInts = res.getIntArray(R.array.sim_color_light);
final String[] colorStrings = res.getStringArray(R.array.color_picker);
final int iconSize = res.getDimensionPixelSize(R.dimen.color_swatch_size);
final int strokeWidth = res.getDimensionPixelSize(R.dimen.color_swatch_stroke_width);
@@ -286,4 +282,31 @@ public class RenameMobileNetworkDialogFragment extends InstrumentedDialogFragmen
private int getDarkColor(int lightColor) {
return mLightDarkMap.getOrDefault(lightColor, lightColor);
}
+
+ /*
+ * Get the color index from previous color that defined in Android OS
+ * (frameworks/base/core/res/res/values/arrays.xml). If can't find the color, continue to look
+ * for it in the new color plattee. If not, give it the first index.
+ */
+
+ private int getSimColorIndex(int color) {
+ int index = -1;
+ final int[] previousSimColorInts =
+ getContext().getResources().getIntArray(com.android.internal.R.array.sim_colors);
+ for (int i = 0; i < previousSimColorInts.length; i++) {
+ if (previousSimColorInts[i] == color) {
+ index = i;
+ }
+ }
+
+ if (index == -1) {
+ for (int i = 0; i < mColors.length; i++) {
+ if (mColors[i].getColor() == color) {
+ index = i;
+ }
+ }
+ }
+
+ return index == -1 ? 0 : index;
+ }
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java b/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java
index d0df92ec8a7..70b05981370 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java
@@ -159,7 +159,7 @@ public class RenameMobileNetworkDialogFragmentTest {
eq(SubscriptionManager.NAME_SOURCE_USER_INPUT));
assertThat(captor.getValue()).isEqualTo("test2");
verify(mSubscriptionMgr)
- .setIconTint(eq(Color.parseColor("#ff00796b" /* teal */)), eq(mSubscriptionId));
+ .setIconTint(eq(Color.parseColor("#ff006D74" /* cyan */)), eq(mSubscriptionId));
}
@Test
@@ -174,6 +174,34 @@ public class RenameMobileNetworkDialogFragmentTest {
assertThat(view.findViewById(R.id.number_label).getVisibility()).isEqualTo(View.GONE);
}
+ @Test
+ public void populateView_getPreviousSimColor_setCorrectSelection() {
+ final View view = LayoutInflater.from(mActivity).inflate(
+ R.layout.dialog_mobile_network_rename, null);
+ when(mSubscriptionInfo.getIconTint())
+ .thenReturn(Color.parseColor("#ff3367d6"/* blue700 */));
+
+ startDialog();
+ mFragment.populateView(view);
+
+ final Spinner colorSpinnerView = mFragment.getColorSpinnerView();
+ assertThat(colorSpinnerView.getSelectedItemPosition()).isEqualTo(1);
+ }
+
+ @Test
+ public void populateView_getUpdatedSimColor_setCorrectSelection() {
+ final View view = LayoutInflater.from(mActivity).inflate(
+ R.layout.dialog_mobile_network_rename, null);
+ when(mSubscriptionInfo.getIconTint())
+ .thenReturn(Color.parseColor("#ff137333"/* Green800 */));
+
+ startDialog();
+ mFragment.populateView(view);
+
+ final Spinner colorSpinnerView = mFragment.getColorSpinnerView();
+ assertThat(colorSpinnerView.getSelectedItemPosition()).isEqualTo(2);
+ }
+
/**
* Helper method to start the dialog
*/