OSDN Git Service

Add sim color selection in settings
authorSanket Padawe <sanketpadawe@google.com>
Tue, 28 Oct 2014 21:01:50 +0000 (14:01 -0700)
committerSanket Padawe <sanketpadawe@google.com>
Tue, 28 Oct 2014 21:01:50 +0000 (14:01 -0700)
Adding a dropdown list to select sim color from sim settings UI.

Change-Id: I26da0a79f5b1edf829fc5d46af2c0c23962226b8

res/layout/multi_sim_dialog.xml
res/values/arrays.xml
res/values/colors.xml
res/values/strings.xml
src/com/android/settings/sim/SimSettings.java

index 4f9dd6c..c373edd 100644 (file)
         </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">
index 580143e..e613617 100644 (file)
         <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>
index da54c3e..5ccae84 100644 (file)
 
     <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>
index 211de80..0c0d190 100644 (file)
     <!-- 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] -->
index 8a96ac7..edad591 100644 (file)
@@ -16,6 +16,7 @@
 
 package com.android.settings.sim;
 
+import android.graphics.Color;
 import android.provider.SearchIndexableResource;
 import com.android.settings.R;
 
@@ -463,6 +464,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
     private class SimPreference extends Preference{
         private SubInfoRecord mSubInfoRecord;
         private int mSlotId;
+        private int[] colorArr;
 
         public SimPreference(Context context, SubInfoRecord subInfoRecord, int slotId) {
             super(context);
@@ -471,6 +473,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
             mSlotId = slotId;
             setKey("sim" + mSlotId);
             update();
+            colorArr = context.getResources().getIntArray(R.array.sim_colors);
         }
 
         public void update() {
@@ -530,6 +533,31 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
             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());
 
@@ -547,10 +575,14 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable
                     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();
                 }