OSDN Git Service

Minor UI tweaks in contacts preferences UI.
authorDmitri Plotnikov <dplotnikov@google.com>
Fri, 5 Feb 2010 01:17:44 +0000 (17:17 -0800)
committerDmitri Plotnikov <dplotnikov@google.com>
Fri, 5 Feb 2010 01:17:44 +0000 (17:17 -0800)
Change-Id: I28f2d3bf49e20a80c493c79dbcee906793f9f4f0

AndroidManifest.xml
res/layout-finger/horizontal_divider.xml [new file with mode: 0644]
res/layout/contacts_preferences.xml [moved from res/layout/act_display_groups.xml with 100% similarity]
src/com/android/contacts/ContactsListActivity.java
src/com/android/contacts/ui/ContactsPreferencesActivity.java [moved from src/com/android/contacts/ui/DisplayGroupsActivity.java with 96% similarity]

index 0c59b5d..b54d417 100644 (file)
 
 
         <!-- Used to select display and sync groups -->
-        <activity android:name=".ui.DisplayGroupsActivity" android:label="@string/displayGroups" />
+        <activity android:name=".ui.ContactsPreferencesActivity" android:label="@string/displayGroups" />
 
         <activity
             android:name=".ui.ShowOrCreateActivity"
diff --git a/res/layout-finger/horizontal_divider.xml b/res/layout-finger/horizontal_divider.xml
new file mode 100644 (file)
index 0000000..202e663
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+  
+          http://www.apache.org/licenses/LICENSE-2.0
+  
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<View xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@*android:drawable/divider_horizontal_dark_opaque"
+/>
index 756ab97..40e048f 100644 (file)
@@ -20,8 +20,8 @@ import com.android.contacts.TextHighlightingAnimation.TextWithHighlighting;
 import com.android.contacts.model.ContactsSource;
 import com.android.contacts.model.Sources;
 import com.android.contacts.ui.ContactsPreferences;
-import com.android.contacts.ui.DisplayGroupsActivity;
-import com.android.contacts.ui.DisplayGroupsActivity.Prefs;
+import com.android.contacts.ui.ContactsPreferencesActivity;
+import com.android.contacts.ui.ContactsPreferencesActivity.Prefs;
 import com.android.contacts.util.AccountSelectionUtil;
 import com.android.contacts.util.Constants;
 
@@ -930,7 +930,7 @@ public class ContactsListActivity extends ListActivity implements
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.menu_display_groups: {
-                final Intent intent = new Intent(this, DisplayGroupsActivity.class);
+                final Intent intent = new Intent(this, ContactsPreferencesActivity.class);
                 startActivityForResult(intent, SUBACTIVITY_DISPLAY_GROUP);
                 return true;
             }
@@ -76,7 +76,7 @@ import java.util.Iterator;
  * Shows a list of all available {@link Groups} available, letting the user
  * select which ones they want to be visible.
  */
-public final class DisplayGroupsActivity extends ExpandableListActivity implements
+public final class ContactsPreferencesActivity extends ExpandableListActivity implements
         AdapterView.OnItemClickListener, View.OnClickListener {
     private static final String TAG = "DisplayGroupsActivity";
 
@@ -111,7 +111,7 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
     @Override
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        setContentView(R.layout.act_display_groups);
+        setContentView(R.layout.contacts_preferences);
 
         mList = getExpandableListView();
         mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
@@ -119,6 +119,28 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
 
         final LayoutInflater inflater = getLayoutInflater();
 
+        addWithPhonesOnlyPreferenceView(inflater);
+        addDivider(inflater);
+        addSortOrderPreferenceView(inflater);
+        addDivider(inflater);
+        addDisplayOrderPreferenceView(inflater);
+        addDisplayGroupHeader(inflater);
+
+        findViewById(R.id.btn_done).setOnClickListener(this);
+        findViewById(R.id.btn_discard).setOnClickListener(this);
+
+        // Catch clicks on the header views
+        mList.setOnItemClickListener(this);
+        mList.setOnCreateContextMenuListener(this);
+
+        mSortOrder = mContactsPrefs.getSortOrder();
+        mDisplayOrder = mContactsPrefs.getDisplayOrder();
+
+        // Start background query to find account details
+        new QueryGroupsTask(this).execute();
+    }
+
+    private LayoutInflater addWithPhonesOnlyPreferenceView(LayoutInflater inflater) {
         // Add the "Only contacts with phones" header modifier.
         mHeaderPhones = inflater.inflate(R.layout.display_options_phones_only, mList, false);
         mHeaderPhones.setId(R.id.header_phones);
@@ -133,35 +155,12 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
         }
 
         mList.addHeaderView(mHeaderPhones, null, true);
-
-        addSortOrderView();
-        addDisplayOrderView();
-
-        // Add the separator before showing the detailed group list.
-        mHeaderSeparator = inflater.inflate(R.layout.list_separator, mList, false);
-        {
-            final TextView text1 = (TextView)mHeaderSeparator;
-            text1.setText(R.string.headerContactGroups);
-        }
-        mList.addHeaderView(mHeaderSeparator, null, false);
-
-        findViewById(R.id.btn_done).setOnClickListener(this);
-        findViewById(R.id.btn_discard).setOnClickListener(this);
-
-        // Catch clicks on the header views
-        mList.setOnItemClickListener(this);
-        mList.setOnCreateContextMenuListener(this);
-
-        mSortOrder = mContactsPrefs.getSortOrder();
-        mDisplayOrder = mContactsPrefs.getDisplayOrder();
-
-        // Start background query to find account details
-        new QueryGroupsTask(this).execute();
+        return inflater;
     }
 
-    private void addSortOrderView() {
-        final LayoutInflater inflater = getLayoutInflater();
+    private void addSortOrderPreferenceView(LayoutInflater inflater) {
         mSortOrderView = inflater.inflate(R.layout.preference_with_more_button, mList, false);
+
         View preferenceLayout = mSortOrderView.findViewById(R.id.preference);
         preferenceLayout.setOnClickListener(new View.OnClickListener() {
 
@@ -177,9 +176,7 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
         mList.addHeaderView(mSortOrderView, null, false);
     }
 
-    private void addDisplayOrderView() {
-        final LayoutInflater inflater = getLayoutInflater();
-
+    private void addDisplayOrderPreferenceView(LayoutInflater inflater) {
         mDisplayOrderView = inflater.inflate(R.layout.preference_with_more_button, mList, false);
         View preferenceLayout = mDisplayOrderView.findViewById(R.id.preference);
         preferenceLayout.setOnClickListener(new View.OnClickListener() {
@@ -196,6 +193,21 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
         mList.addHeaderView(mDisplayOrderView, null, false);
     }
 
+    private void addDivider(LayoutInflater inflater) {
+        View divider = inflater.inflate(R.layout.horizontal_divider, mList, false);
+        mList.addHeaderView(divider, null, false);
+    }
+
+    private void addDisplayGroupHeader(LayoutInflater inflater) {
+        // Add the separator before showing the detailed group list.
+        mHeaderSeparator = inflater.inflate(R.layout.list_separator, mList, false);
+        {
+            final TextView text1 = (TextView)mHeaderSeparator;
+            text1.setText(R.string.headerContactGroups);
+        }
+        mList.addHeaderView(mHeaderSeparator, null, false);
+    }
+
     @Override
     protected void onResume() {
         super.onResume();
@@ -215,7 +227,7 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
     }
 
     @Override
-    protected Dialog onCreateDialog(int id) {
+    protected Dialog onCreateDialog(int id, Bundle args) {
         switch (id) {
             case DIALOG_SORT_ORDER:
                 return createSortOrderDialog();
@@ -233,7 +245,7 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
         };
 
         return new AlertDialog.Builder(this)
-            .setIcon(android.R.drawable.ic_dialog_alert)
+            .setIcon(com.android.internal.R.drawable.ic_dialog_menu_generic)
             .setTitle(R.string.display_options_sort_list_by)
             .setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {
@@ -257,7 +269,7 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
         };
 
         return new AlertDialog.Builder(this)
-            .setIcon(android.R.drawable.ic_dialog_alert)
+            .setIcon(com.android.internal.R.drawable.ic_dialog_menu_generic)
             .setTitle(R.string.display_options_view_names_as)
             .setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog, int whichButton) {
@@ -275,7 +287,7 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
     }
 
     @Override
-    protected void onPrepareDialog(int id, Dialog dialog) {
+    protected void onPrepareDialog(int id, Dialog dialog, Bundle args) {
         switch (id) {
             case DIALOG_SORT_ORDER:
                 setCheckedItem(dialog,
@@ -319,13 +331,13 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
      * {@link Sources#getAccounts(boolean)} that provides groups.
      */
     private static class QueryGroupsTask extends
-            WeakAsyncTask<Void, Void, AccountSet, DisplayGroupsActivity> {
-        public QueryGroupsTask(DisplayGroupsActivity target) {
+            WeakAsyncTask<Void, Void, AccountSet, ContactsPreferencesActivity> {
+        public QueryGroupsTask(ContactsPreferencesActivity target) {
             super(target);
         }
 
         @Override
-        protected AccountSet doInBackground(DisplayGroupsActivity target,
+        protected AccountSet doInBackground(ContactsPreferencesActivity target,
                 Void... params) {
             final Context context = target;
             final Sources sources = Sources.getInstance(context);
@@ -341,7 +353,7 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
         }
 
         @Override
-        protected void onPostExecute(DisplayGroupsActivity target, AccountSet result) {
+        protected void onPostExecute(ContactsPreferencesActivity target, AccountSet result) {
             // Build adapter to show available groups
             final Context context = target;
             final DisplayAdapter adapter = new DisplayAdapter(context, result);
@@ -503,7 +515,7 @@ public final class DisplayGroupsActivity extends ExpandableListActivity implemen
     private static Uri addCallerIsSyncAdapterParameter(Uri uri) {
         return uri.buildUpon()
                .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
-               .build();
+               .build();
     }
 
     /**