Merge "Fixing contact photo loading issues"
diff --git a/res/layout/navigation_bar.xml b/res/layout/navigation_bar.xml
index b2c8fa8..b52815c 100644
--- a/res/layout/navigation_bar.xml
+++ b/res/layout/navigation_bar.xml
@@ -46,13 +46,36 @@
android:id="@+id/filter_view"
android:layout_height="match_parent"
android:layout_width="wrap_content">
- <TextView
- android:id="@+id/label"
+ <FrameLayout
android:layout_height="match_parent"
- android:layout_width="wrap_content"
- android:gravity="center_vertical"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:ellipsize="end" />
+ 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>
</view>
</FrameLayout>
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index 89c4eaa..a874a7f 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -348,7 +348,7 @@
view = (ContactListFilterView) mLayoutInflater.inflate(
R.layout.filter_spinner_item, parent, false);
}
- view.setGroupsIndented(mAccountCount > 1);
+ view.setMultipleAccounts(mAccountCount > 1);
view.setContactListFilter(mFilters.valueAt(position));
view.bindView(true);
return view;
diff --git a/src/com/android/contacts/list/ContactListFilterView.java b/src/com/android/contacts/list/ContactListFilterView.java
index 958fa10..e065e91 100644
--- a/src/com/android/contacts/list/ContactListFilterView.java
+++ b/src/com/android/contacts/list/ContactListFilterView.java
@@ -33,8 +33,11 @@
private ImageView mIcon;
private TextView mLabel;
private TextView mIndentedLabel;
+ private View mGroupView;
private ContactListFilter mFilter;
- private boolean mGroupsIndented;
+ private boolean mMultipleAccounts;
+ private TextView mGroupLabel;
+ private TextView mAccountLabel;
public ContactListFilterView(Context context) {
super(context);
@@ -52,8 +55,8 @@
return mFilter;
}
- public void setGroupsIndented(boolean flag) {
- this.mGroupsIndented = flag;
+ public void setMultipleAccounts(boolean flag) {
+ this.mMultipleAccounts = flag;
}
public void bindView(boolean dropdown) {
@@ -61,6 +64,9 @@
mIcon = (ImageView) findViewById(R.id.icon);
mLabel = (TextView) findViewById(R.id.label);
mIndentedLabel = (TextView) findViewById(R.id.indented_label);
+ mGroupView = findViewById(R.id.group);
+ mGroupLabel = (TextView) findViewById(R.id.group_label);
+ mAccountLabel = (TextView) findViewById(R.id.account_label);
}
if (mFilter == null) {
@@ -69,6 +75,16 @@
return;
}
+ if (!dropdown) {
+ if (mFilter.filterType == ContactListFilter.FILTER_TYPE_GROUP && mMultipleAccounts) {
+ mLabel.setVisibility(View.GONE);
+ mGroupView.setVisibility(View.VISIBLE);
+ } else {
+ mLabel.setVisibility(View.VISIBLE);
+ mGroupView.setVisibility(View.GONE);
+ }
+ }
+
switch (mFilter.filterType) {
case ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS: {
bindView(R.drawable.ic_contact_list_filter_all,
@@ -109,16 +125,23 @@
if (mIcon != null) {
mIcon.setVisibility(View.INVISIBLE);
}
- if (dropdown && mGroupsIndented) {
- mLabel.setVisibility(View.GONE);
- mIndentedLabel.setText(mFilter.title);
- mIndentedLabel.setVisibility(View.VISIBLE);
- } else {
- mLabel.setText(mFilter.title);
- mLabel.setVisibility(View.VISIBLE);
- if (dropdown) {
+ if (dropdown) {
+ if (mMultipleAccounts) {
+ mLabel.setVisibility(View.GONE);
+ mIndentedLabel.setText(mFilter.title);
+ mIndentedLabel.setVisibility(View.VISIBLE);
+ } else {
+ mLabel.setText(mFilter.title);
+ mLabel.setVisibility(View.VISIBLE);
mIndentedLabel.setVisibility(View.GONE);
}
+ } else {
+ if (mMultipleAccounts) {
+ mGroupLabel.setText(mFilter.title);
+ mAccountLabel.setText(mFilter.accountName);
+ } else {
+ mLabel.setText(mFilter.title);
+ }
}
break;
}