Adding a dropdown list to select sim color from sim settings UI.
Change-Id: I26da0a79f5b1edf829fc5d46af2c0c23962226b8
</LinearLayout>
<LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/sim_dialog_margin_top"
+ android:paddingStart="@dimen/sim_label_padding"
+ android:text="@string/color_title"
+ style="?android:attr/textAppearanceMedium" />
+
+ <Spinner
+ android:id="@+id/spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/sim_dialog_margin_top"
+ android:paddingStart="@dimen/sim_label_padding" />
+
+ </LinearLayout>
+
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<item>Cached (empty)</item>
</string-array>
- <!-- Multi-SIM titles for captioning color preference. -->
- <string-array name="sim_info_picker_color_titles" translatable="false" >
- <item>@string/color_blue</item>
- <item>@string/color_green</item>
- <item>@string/color_purple</item>
- <item>@string/color_red</item>
- <item>@string/color_orange</item>
+ <!-- Array storing rgb values of sim colors for multi-sim -->
+ <array name="sim_colors">
+ <item>@color/Teal_700</item>
+ <item>@color/Blue_700</item>
+ <item>@color/Indigo_700</item>
+ <item>@color/Purple_700</item>
+ <item>@color/Pink_700</item>
+ <item>@color/Red_700</item>
+ </array>
+
+ <!-- Array of titles for sim color for multi-sim -->
+ <string-array name="color_picker">
+ <item>Teal</item>
+ <item>Blue</item>
+ <item>Indigo</item>
+ <item>Purple</item>
+ <item>Pink</item>
+ <item>Red</item>
</string-array>
-
- <!-- Multi-SIM colors. -->
- <integer-array name="sim_info_picker_color_values" translatable="false" >
- <item>@color/blue_500</item>
- <item>@color/green_500</item>
- <item>@color/purple_500</item>
- <item>@color/red_500</item>
- <item>@color/orange_500</item>
- </integer-array>
</resources>
<color name="wifi_divider">#ffe0e0e0</color>
- <!-- Multi-SIM colors -->
- <color name="blue_500">#5677fc</color>
- <color name="green_500">#259b24</color>
- <color name="purple_500">#9c27b0</color>
- <color name="red_500">#e51c23</color>
- <color name="orange_500">#ff9800</color>
+ <!-- Multi-SIM colors Todo: To check whether to append 00 or FF before color values-->
+ <color name="Teal_700">#0000796b</color>
+ <color name="Blue_700">#003367d6</color>
+ <color name="Indigo_700">#00303f9f</color>
+ <color name="Purple_700">#007b1fa2</color>
+ <color name="Pink_700">#00c2185b</color>
+ <color name="Red_700">#00c53929</color>
+
</resources>
<!-- Label for the default device locale. [CHAR LIMIT=35] -->
<string name="locale_default">Default</string>
+ <!-- Label for color selection title in sim settings [CHAR LIMIT=35] -->
+ <string name = "color_title">Color</string>
<!-- Label for default color. This lets the app pick the color. [CHAR LIMIT=35] -->
<string name="color_unspecified">Default</string>
<!-- Label for no color (transparent). [CHAR LIMIT=35] -->
package com.android.settings.sim;
+import android.graphics.Color;
import android.provider.SearchIndexableResource;
import com.android.settings.R;
private class SimPreference extends Preference{
private SubInfoRecord mSubInfoRecord;
private int mSlotId;
+ private int[] colorArr;
public SimPreference(Context context, SubInfoRecord subInfoRecord, int slotId) {
super(context);
mSlotId = slotId;
setKey("sim" + mSlotId);
update();
+ colorArr = context.getResources().getIntArray(R.array.sim_colors);
}
public void update() {
EditText nameText = (EditText)dialogLayout.findViewById(R.id.sim_name);
nameText.setText(mSubInfoRecord.displayName);
+ final Spinner colorSpinner = (Spinner) dialogLayout.findViewById(R.id.spinner);
+ ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getContext(),
+ R.array.color_picker, android.R.layout.simple_spinner_item);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ colorSpinner.setAdapter(adapter);
+
+ for (int i = 0; i < colorArr.length; i++) {
+ if (colorArr[i] == mSubInfoRecord.color) {
+ colorSpinner.setSelection(i);
+ break;
+ }
+ }
+
+ colorSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View view,
+ int pos, long id){
+ colorSpinner.setSelection(pos);
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
+ }
+ });
+
TextView numberView = (TextView)dialogLayout.findViewById(R.id.number);
numberView.setText(simPref.getFormattedPhoneNumber());
mSubInfoRecord.displayName = nameText.getText().toString();
SubscriptionManager.setDisplayName(mSubInfoRecord.displayName,
mSubInfoRecord.subId);
-
findRecordBySubId(mSubInfoRecord.subId).displayName =
nameText.getText().toString();
+ final int colorSelected = colorSpinner.getSelectedItemPosition();
+ mSubInfoRecord.color = colorArr[colorSelected];
+ SubscriptionManager.setColor(colorArr[colorSelected], mSubInfoRecord.subId);
+ findRecordBySubId(mSubInfoRecord.subId).color = colorArr[colorSelected];
+
updateAllOptions();
update();
}