From 8dec2efc67d45e846573c6eb8b43033566a26bad Mon Sep 17 00:00:00 2001 From: changbetty Date: Mon, 30 Aug 2021 06:49:01 +0000 Subject: [PATCH] Change the SIM color for passing the GAR Bug: 195710292 Test: Manual test Test: make RunSettingsRoboTests ROBOTEST_FILTER=RenameMobileNetworkDialogFragmentTest Change-Id: I7b7a3e1b6d72709acbae0a0433af897a28d73afc Merged-In: I7b7a3e1b6d72709acbae0a0433af897a28d73afc --- res/values/arrays.xml | 16 +++++- res/values/colors.xml | 20 +++++-- .../RenameMobileNetworkDialogFragment.java | 55 +++++++++++++------ ...RenameMobileNetworkDialogFragmentTest.java | 30 +++++++++- 4 files changed, 95 insertions(+), 26 deletions(-) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 7d6745cb755..97c6a546379 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 */