Fixing filter selector layout

Two changes here:
1. No longer displaying the second line (account name) for groups
2. Highlighting the currently selected filter in the popup list

Change-Id: Ic13c7aadb89f6e7488732904b78ecc92c34bc7bd
diff --git a/res/layout/navigation_bar.xml b/res/layout/navigation_bar.xml
index e40a00e..62e2632 100644
--- a/res/layout/navigation_bar.xml
+++ b/res/layout/navigation_bar.xml
@@ -41,7 +41,6 @@
         android:layout_height="wrap_content"
         android:layout_gravity="left|center_vertical"
         android:focusable="true"
-        android:focusableInTouchMode="true"
         android:minWidth="220dip" >
         <ImageView
             android:id="@+id/icon"
@@ -51,36 +50,13 @@
             android:layout_marginRight="7dip"
             android:layout_gravity="center_vertical" />
 
-        <FrameLayout
+        <TextView
+            android:id="@+id/label"
             android:layout_height="match_parent"
-            android:layout_width="wrap_content">
-            <TextView
-                android:id="@+id/label"
-                android:layout_height="match_parent"
-                android:layout_width="wrap_content"
-                android:gravity="center_vertical"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:ellipsize="end" />
-            <LinearLayout
-                android:id="@+id/group"
-                android:layout_height="wrap_content"
-                android:layout_width="wrap_content"
-                android:orientation="vertical"
-                android:layout_gravity="center_vertical">
-                <TextView
-                    android:id="@+id/group_label"
-                    android:layout_height="wrap_content"
-                    android:layout_width="wrap_content"
-                    android:textAppearance="?android:attr/textAppearanceMedium"
-                    android:ellipsize="end" />
-                <TextView
-                    android:id="@+id/account_label"
-                    android:layout_height="wrap_content"
-                    android:layout_width="wrap_content"
-                    android:textAppearance="?android:attr/textAppearanceSmall"
-                    android:ellipsize="end" />
-            </LinearLayout>
-        </FrameLayout>
+            android:layout_width="wrap_content"
+            android:gravity="center_vertical"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:ellipsize="end" />
     </view>
 
     <SearchView
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index 919c799..920ff86 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -352,7 +352,9 @@
                         R.layout.filter_spinner_item, parent, false);
             }
             view.setSingleAccount(mAccountCount == 1);
-            view.setContactListFilter(mFilters.valueAt(position));
+            ContactListFilter filter = mFilters.valueAt(position);
+            view.setContactListFilter(filter);
+            view.setActivated(filter.equals(mFilter));
             view.bindView(true);
             return view;
         }
diff --git a/src/com/android/contacts/list/ContactListFilterView.java b/src/com/android/contacts/list/ContactListFilterView.java
index 0f2bbeb..6dc9bc3 100644
--- a/src/com/android/contacts/list/ContactListFilterView.java
+++ b/src/com/android/contacts/list/ContactListFilterView.java
@@ -17,6 +17,7 @@
 package com.android.contacts.list;
 
 import com.android.contacts.R;
+import com.android.contacts.util.ThemeUtils;
 
 import android.content.Context;
 import android.util.AttributeSet;
@@ -33,11 +34,9 @@
     private ImageView mIcon;
     private TextView mLabel;
     private View mIndent;
-    private View mGroupView;
     private ContactListFilter mFilter;
     private boolean mSingleAccount;
-    private TextView mGroupLabel;
-    private TextView mAccountLabel;
+    private int mActivatedBackground;
 
     public ContactListFilterView(Context context) {
         super(context);
@@ -60,13 +59,17 @@
     }
 
     public void bindView(boolean dropdown) {
+        if (dropdown) {
+            if (mActivatedBackground == 0) {
+                mActivatedBackground = ThemeUtils.getActivatedBackground(getContext().getTheme());
+            }
+            setBackgroundResource(mActivatedBackground);
+        }
+
         if (mLabel == null) {
             mIcon = (ImageView) findViewById(R.id.icon);
             mLabel = (TextView) findViewById(R.id.label);
             mIndent = findViewById(R.id.indent);
-            mGroupView = findViewById(R.id.group);
-            mGroupLabel = (TextView) findViewById(R.id.group_label);
-            mAccountLabel = (TextView) findViewById(R.id.account_label);
         }
 
         if (mFilter == null) {
@@ -74,18 +77,6 @@
             return;
         }
 
-        if (!dropdown) {
-            if (mFilter.filterType == ContactListFilter.FILTER_TYPE_GROUP && !mSingleAccount) {
-                mLabel.setVisibility(View.GONE);
-                mGroupView.setVisibility(View.VISIBLE);
-            } else {
-                mLabel.setVisibility(View.VISIBLE);
-                mGroupView.setVisibility(View.GONE);
-            }
-        } else {
-            mLabel.setVisibility(View.VISIBLE);
-        }
-
         switch (mFilter.filterType) {
             case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS: {
                 bindView(R.drawable.ic_menu_contacts_holo_light, R.string.list_filter_all_accounts,
@@ -127,16 +118,9 @@
             case ContactListFilter.FILTER_TYPE_GROUP: {
                 mIcon.setVisibility(View.VISIBLE);
                 mIcon.setImageResource(R.drawable.ic_menu_display_all_holo_light);
+                mLabel.setText(mFilter.title);
                 if (dropdown) {
-                    mLabel.setText(mFilter.title);
                     mIndent.setVisibility(mSingleAccount ? View.GONE : View.VISIBLE);
-                } else {
-                    if (mSingleAccount) {
-                        mLabel.setText(mFilter.title);
-                    } else {
-                        mGroupLabel.setText(mFilter.title);
-                        mAccountLabel.setText(mFilter.accountName);
-                    }
                 }
                 break;
             }
diff --git a/src/com/android/contacts/util/ThemeUtils.java b/src/com/android/contacts/util/ThemeUtils.java
index 276de29..d1784b6 100644
--- a/src/com/android/contacts/util/ThemeUtils.java
+++ b/src/com/android/contacts/util/ThemeUtils.java
@@ -22,4 +22,11 @@
     public static int getSelectableItemBackground(Theme theme) {
         return getAttribute(theme, android.R.attr.selectableItemBackground);
     }
+
+    /**
+     * Returns the resource id of the background used for list items that show activated background
+     */
+    public static int getActivatedBackground(Theme theme) {
+        return getAttribute(theme, android.R.attr.activatedBackgroundIndicator);
+    }
 }