Merge "Turn off Spinner's state management. It kicks in after our own management"
diff --git a/res/layout/contact_list_filter_item.xml b/res/layout/contact_list_filter_item.xml
index 7c09976..7814565 100644
--- a/res/layout/contact_list_filter_item.xml
+++ b/res/layout/contact_list_filter_item.xml
@@ -17,6 +17,7 @@
<view
xmlns:android="http://schemas.android.com/apk/res/android"
class="com.android.contacts.list.ContactListFilterView"
+ android:descendantFocusability="blocksDescendants"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="@dimen/contact_filter_item_min_height"
@@ -45,12 +46,21 @@
<TextView
android:id="@+id/accountUserName"
+ android:layout_marginTop="-3dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?android:attr/textColorSecondary"
+ android:textColor="?android:attr/textColorTertiary"
android:singleLine="true"
android:ellipsize="end"/>
</LinearLayout>
+
+ <RadioButton
+ android:id="@+id/radioButton"
+ android:clickable="false"
+ android:layout_marginTop="1dip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="right|center_vertical" />
</view>
diff --git a/src/com/android/contacts/list/ContactListFilterView.java b/src/com/android/contacts/list/ContactListFilterView.java
index 3fa20a1..020952d 100644
--- a/src/com/android/contacts/list/ContactListFilterView.java
+++ b/src/com/android/contacts/list/ContactListFilterView.java
@@ -17,15 +17,18 @@
package com.android.contacts.list;
import com.android.contacts.R;
+import com.android.contacts.editor.ContactEditorFragment;
import com.android.contacts.model.AccountType;
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.util.ThemeUtils;
import android.content.Context;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
+import android.widget.RadioButton;
import android.widget.TextView;
/**
@@ -33,12 +36,14 @@
*/
public class ContactListFilterView extends LinearLayout {
+ private static final String TAG = ContactListFilterView.class.getSimpleName();
+
private ImageView mIcon;
private TextView mAccountType;
private TextView mAccountUserName;
+ private RadioButton mRadioButton;
private ContactListFilter mFilter;
private boolean mSingleAccount;
- private int mActivatedBackground;
public ContactListFilterView(Context context) {
super(context);
@@ -60,16 +65,26 @@
this.mSingleAccount = flag;
}
- public void bindView(AccountTypeManager accountTypes) {
- if (mActivatedBackground == 0) {
- mActivatedBackground = ThemeUtils.getActivatedBackground(getContext().getTheme());
+ @Override
+ public void setActivated(boolean activated) {
+ super.setActivated(activated);
+ if (mRadioButton != null) {
+ mRadioButton.setChecked(activated);
+ } else {
+ // We're guarding against null-pointer exceptions,
+ // but otherwise this code is not expected to work
+ // properly if the button hasn't been initialized.
+ Log.wtf(TAG, "radio-button cannot be activated because it is null");
}
- setBackgroundResource(mActivatedBackground);
+ }
+ public void bindView(AccountTypeManager accountTypes) {
if (mAccountType == null) {
mIcon = (ImageView) findViewById(R.id.icon);
mAccountType = (TextView) findViewById(R.id.accountType);
mAccountUserName = (TextView) findViewById(R.id.accountUserName);
+ mRadioButton = (RadioButton) findViewById(R.id.radioButton);
+ mRadioButton.setChecked(isActivated());
}
if (mFilter == null) {
diff --git a/src/com/android/contacts/quickcontact/DataAction.java b/src/com/android/contacts/quickcontact/DataAction.java
index e839cda..6728913 100644
--- a/src/com/android/contacts/quickcontact/DataAction.java
+++ b/src/com/android/contacts/quickcontact/DataAction.java
@@ -225,7 +225,12 @@
}
// Always launch as new task, since we're like a launcher
- mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ setCommonIntentFlags(mIntent);
+ if (mAlternateIntent != null) setCommonIntentFlags(mAlternateIntent);
+ }
+
+ private static void setCommonIntentFlags(Intent intent) {
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
@Override