Merge "Color swatches for recent" into jb-ub-mail
diff --git a/res/layout/account_switch_spinner_dropdown_folder.xml b/res/layout/account_switch_spinner_dropdown_folder.xml
new file mode 100644
index 0000000..fc72903
--- /dev/null
+++ b/res/layout/account_switch_spinner_dropdown_folder.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2011 Google Inc.
+ Licensed to 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.
+-->
+
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ <View android:id="@+id/account_spinner_color"
+ android:layout_alignParentTop="true"
+ android:layout_alignParentLeft="true"
+ android:layout_height="@dimen/color_block_height"
+ android:layout_width="@dimen/color_block_width"/>
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ style="?android:attr/spinnerDropDownItemStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="@dimen/account_dropdown_item_height"
+ android:gravity="center_horizontal">
+ <RelativeLayout
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:layout_centerVertical="true"
+ android:layout_alignParentLeft="true">
+ <!-- Something is strange here. Gmail1 allows for two-line label names while Gmail2 does
+ not. TODO(viki): Fix. -->
+ <TextView
+ android:id="@+id/account_spinner_first"
+ android:singleLine="true"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:ellipsize="end"
+ style="@android:style/TextAppearance.Holo.Widget.ActionBar.Title" />
+ <TextView
+ android:id="@+id/account_spinner_second"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:ellipsize="end"
+ android:layout_below="@id/account_spinner_first"
+ style="@android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle" />
+ </RelativeLayout>
+ <TextView
+ android:id="@+id/account_spinner_unread_count"
+ style="@style/UnreadCount"
+ android:layout_centerVertical="true"
+ android:layout_alignParentRight="true"/>
+</RelativeLayout>
+</RelativeLayout>
diff --git a/src/com/android/mail/AccountSpinnerAdapter.java b/src/com/android/mail/AccountSpinnerAdapter.java
index bd2af07..d41dda2 100644
--- a/src/com/android/mail/AccountSpinnerAdapter.java
+++ b/src/com/android/mail/AccountSpinnerAdapter.java
@@ -318,7 +318,6 @@
String bigText = "";
// Shown in the second text view with smaller font.
String smallText = "";
- int color = 0;
int unreadCount = 0;
// Do not use view recycling in getDropDownView!!!
//
@@ -338,15 +337,22 @@
case TYPE_ACCOUNT:
view = mInflater.inflate(R.layout.account_switch_spinner_dropdown_item, null);
final Account account = getAccount(position);
+ View colorView = view.findViewById(R.id.account_spinner_color);
if (account == null) {
bigText = "";
smallText = "";
- color = 0;
unreadCount = 0;
+ colorView.setVisibility(View.INVISIBLE);
} else {
bigText = account.settings.defaultInboxName;
smallText = account.name;
- color = account.color;
+ final int color = account.color;
+ if (color != 0) {
+ colorView.setVisibility(View.VISIBLE);
+ colorView.setBackgroundColor(color);
+ } else {
+ colorView.setVisibility(View.INVISIBLE);
+ }
final Folder inbox = mFolderWatcher.get(account.settings.defaultInbox);
unreadCount = (inbox != null) ? inbox.unreadCount : 0;
}
@@ -357,10 +363,13 @@
.setText(getCurrentAccountName());
return view;
case TYPE_FOLDER:
- view = mInflater.inflate(R.layout.account_switch_spinner_dropdown_item, null);
+ view = mInflater.inflate(R.layout.account_switch_spinner_dropdown_folder, null);
final Folder folder = mRecentFolderList.get(getRecentOffset(position));
+ colorView = view.findViewById(R.id.account_spinner_color);
bigText = folder.name;
unreadCount = folder.unreadCount;
+ Folder.setFolderBlockColor(folder, colorView);
+ colorView.setVisibility(View.VISIBLE);
break;
case TYPE_ALL_FOLDERS:
view = mInflater.inflate(R.layout.account_switch_spinner_dropdown_footer, null);
@@ -368,14 +377,6 @@
}
displayOrHide(view, R.id.account_spinner_first, bigText);
displayOrHide(view, R.id.account_spinner_second, smallText);
-
- final View colorView = view.findViewById(R.id.account_spinner_color);
- if (color != 0) {
- colorView.setVisibility(View.VISIBLE);
- colorView.setBackgroundColor(color);
- } else {
- colorView.setVisibility(View.INVISIBLE);
- }
populateUnreadCountView(
(TextView) view.findViewById(R.id.account_spinner_unread_count),
unreadCount);