Merge "Sort group metadata in a localized way"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 6a0338a..72c6481 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,8 +16,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.contacts"
- android:versionCode="10502"
- android:versionName="1.5.2">
+ android:versionCode="10503"
+ android:versionName="1.5.3">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="23" />
<original-package android:name="com.android.contacts" />
diff --git a/res/drawable/ic_menu_group_add.xml b/res/drawable/ic_add.xml
similarity index 100%
rename from res/drawable/ic_menu_group_add.xml
rename to res/drawable/ic_add.xml
diff --git a/res/layout/floating_action_button.xml b/res/layout/floating_action_button.xml
index 294d88b..95c76ae 100644
--- a/res/layout/floating_action_button.xml
+++ b/res/layout/floating_action_button.xml
@@ -33,5 +33,5 @@
android:background="@drawable/floating_action_button"
android:tint="@color/floating_action_button_icon_color"
android:contentDescription="@string/action_menu_add_new_contact_button"
- android:src="@drawable/ic_person_add_24dp"/>
+ android:src="@drawable/ic_add"/>
</FrameLayout>
\ No newline at end of file
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 4c45606..62a9258 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -40,7 +40,6 @@
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.compat.BlockedNumberContractCompat;
-import com.android.contacts.common.compat.CompatUtils;
import com.android.contacts.common.compat.TelecomManagerUtil;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.ContactListFilterController;
@@ -195,7 +194,7 @@
// Create a menu item in the sub menu to add new groups
final MenuItem menuItem = subMenu.add(R.id.nav_groups_items, Menu.NONE, Menu.NONE,
getString(R.string.menu_new_group_action_bar));
- menuItem.setIcon(R.drawable.ic_menu_group_add);
+ menuItem.setIcon(R.drawable.ic_add);
menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index 6e2746d..17ba765 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -356,11 +356,16 @@
}
case ContactsRequest.ACTION_PICK_GROUP_MEMBERS: {
- final AccountWithDataSet account = getIntent().getParcelableExtra(
- UiIntentActions.GROUP_ACCOUNT_WITH_DATA_SET);
+ final String accountName = getIntent().getStringExtra(
+ UiIntentActions.GROUP_ACCOUNT_NAME);
+ final String accountType = getIntent().getStringExtra(
+ UiIntentActions.GROUP_ACCOUNT_TYPE);
+ final String accountDataSet = getIntent().getStringExtra(
+ UiIntentActions.GROUP_ACCOUNT_DATA_SET);
final ArrayList<String> contactIds = getIntent().getStringArrayListExtra(
UiIntentActions.GROUP_CONTACT_IDS);
- mListFragment = GroupMemberPickerFragment.newInstance(account, contactIds);
+ mListFragment = GroupMemberPickerFragment.newInstance(
+ accountName, accountType, accountDataSet, contactIds);
break;
}
diff --git a/src/com/android/contacts/activities/GroupMembersActivity.java b/src/com/android/contacts/activities/GroupMembersActivity.java
index fd65090..4383de1 100644
--- a/src/com/android/contacts/activities/GroupMembersActivity.java
+++ b/src/com/android/contacts/activities/GroupMembersActivity.java
@@ -397,8 +397,9 @@
case R.id.menu_add: {
final Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.Groups.CONTENT_ITEM_TYPE);
- intent.putExtra(UiIntentActions.GROUP_ACCOUNT_WITH_DATA_SET,
- mGroupMetadata.createAccountWithDataSet());
+ intent.putExtra(UiIntentActions.GROUP_ACCOUNT_NAME, mGroupMetadata.accountName);
+ intent.putExtra(UiIntentActions.GROUP_ACCOUNT_TYPE, mGroupMetadata.accountType);
+ intent.putExtra(UiIntentActions.GROUP_ACCOUNT_DATA_SET, mGroupMetadata.dataSet);
intent.putExtra(UiIntentActions.GROUP_CONTACT_IDS,
getExistingGroupMemberContactIds());
startActivityForResult(intent, RESULT_GROUP_ADD_MEMBER);
diff --git a/src/com/android/contacts/list/ContactsIntentResolver.java b/src/com/android/contacts/list/ContactsIntentResolver.java
index 4bd131e..39eaeba 100644
--- a/src/com/android/contacts/list/ContactsIntentResolver.java
+++ b/src/com/android/contacts/list/ContactsIntentResolver.java
@@ -16,6 +16,7 @@
package com.android.contacts.list;
+import android.accounts.Account;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Intent;
@@ -94,8 +95,10 @@
request.setActionCode(ContactsRequest.ACTION_PICK_EMAIL);
} else if (Groups.CONTENT_ITEM_TYPE.equals(resolvedType)) {
request.setActionCode(ContactsRequest.ACTION_PICK_GROUP_MEMBERS);
- request.setAccountWithDataSet(intent.<AccountWithDataSet> getParcelableExtra(
- UiIntentActions.GROUP_ACCOUNT_WITH_DATA_SET));
+ request.setAccountWithDataSet(new AccountWithDataSet(
+ intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_NAME),
+ intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_TYPE),
+ intent.getStringExtra(UiIntentActions.GROUP_ACCOUNT_DATA_SET)));
request.setRawContactIds(intent.getStringArrayListExtra(
UiIntentActions.GROUP_CONTACT_IDS));
}
diff --git a/src/com/android/contacts/list/ContactsRequest.java b/src/com/android/contacts/list/ContactsRequest.java
index a686752..615fac6 100644
--- a/src/com/android/contacts/list/ContactsRequest.java
+++ b/src/com/android/contacts/list/ContactsRequest.java
@@ -16,10 +16,7 @@
package com.android.contacts.list;
-import android.content.Intent;
import android.net.Uri;
-import android.os.Parcel;
-import android.os.Parcelable;
import com.android.contacts.common.model.account.AccountWithDataSet;
diff --git a/src/com/android/contacts/list/GroupMemberPickerFragment.java b/src/com/android/contacts/list/GroupMemberPickerFragment.java
index fb378e6..605758f 100644
--- a/src/com/android/contacts/list/GroupMemberPickerFragment.java
+++ b/src/com/android/contacts/list/GroupMemberPickerFragment.java
@@ -29,7 +29,6 @@
import com.android.contacts.common.list.ContactListAdapter.ContactQuery;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.DefaultContactListAdapter;
-import com.android.contacts.common.model.account.AccountWithDataSet;
import java.util.ArrayList;
@@ -41,10 +40,14 @@
public static final String TAG = "GroupMemberPicker";
- private static final String KEY_ACCOUNT = "account";
+ private static final String KEY_ACCOUNT_NAME = "accountName";
+ private static final String KEY_ACCOUNT_TYPE = "accountType";
+ private static final String KEY_ACCOUNT_DATA_SET = "accountDataSet";
private static final String KEY_RAW_CONTACT_IDS = "rawContactIds";
- private static final String ARG_ACCOUNT = "account";
+ private static final String ARG_ACCOUNT_NAME = "accountName";
+ private static final String ARG_ACCOUNT_TYPE = "accountType";
+ private static final String ARG_ACCOUNT_DATA_SET = "accountDataSet";
private static final String ARG_RAW_CONTACT_IDS = "rawContactIds";
/** Callbacks for host of {@link GroupMemberPickerFragment}. */
@@ -132,14 +135,18 @@
}
}
- private AccountWithDataSet mAccount;
+ private String mAccountName;
+ private String mAccountType;
+ private String mAccountDataSet;
private ArrayList<String> mRawContactIds;
private Listener mListener;
- public static GroupMemberPickerFragment newInstance(AccountWithDataSet account,
- ArrayList<String> rawContactIds) {
+ public static GroupMemberPickerFragment newInstance(String accountName, String accountType,
+ String accountDataSet, ArrayList<String> rawContactIds) {
final Bundle args = new Bundle();
- args.putParcelable(ARG_ACCOUNT, account);
+ args.putString(ARG_ACCOUNT_NAME, accountName);
+ args.putString(ARG_ACCOUNT_TYPE, accountType);
+ args.putString(ARG_ACCOUNT_DATA_SET, accountDataSet);
args.putStringArrayList(ARG_RAW_CONTACT_IDS, rawContactIds);
final GroupMemberPickerFragment fragment = new GroupMemberPickerFragment();
@@ -158,10 +165,14 @@
@Override
public void onCreate(Bundle savedState) {
if (savedState == null) {
- mAccount = getArguments().getParcelable(ARG_ACCOUNT);
+ mAccountName = getArguments().getString(ARG_ACCOUNT_NAME);
+ mAccountType = getArguments().getString(ARG_ACCOUNT_TYPE);
+ mAccountDataSet = getArguments().getString(ARG_ACCOUNT_DATA_SET);
mRawContactIds = getArguments().getStringArrayList(ARG_RAW_CONTACT_IDS);
} else {
- mAccount = savedState.getParcelable(KEY_ACCOUNT);
+ mAccountName = savedState.getString(KEY_ACCOUNT_NAME);
+ mAccountType = savedState.getString(KEY_ACCOUNT_TYPE);
+ mAccountDataSet = savedState.getString(KEY_ACCOUNT_DATA_SET);
mRawContactIds = savedState.getStringArrayList(KEY_RAW_CONTACT_IDS);
}
super.onCreate(savedState);
@@ -170,7 +181,9 @@
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
- outState.putParcelable(KEY_ACCOUNT, mAccount);
+ outState.putString(KEY_ACCOUNT_NAME, mAccountName);
+ outState.putString(KEY_ACCOUNT_TYPE, mAccountType);
+ outState.putString(KEY_ACCOUNT_DATA_SET, mAccountDataSet);
outState.putStringArrayList(KEY_RAW_CONTACT_IDS, mRawContactIds);
}
@@ -194,7 +207,7 @@
protected DefaultContactListAdapter createListAdapter() {
final DefaultContactListAdapter adapter = new DefaultContactListAdapter(getActivity());
adapter.setFilter(ContactListFilter.createGroupMembersFilter(
- mAccount.type, mAccount.name, mAccount.dataSet));
+ mAccountType, mAccountName, mAccountDataSet));
adapter.setSectionHeaderDisplayEnabled(true);
adapter.setDisplayPhotos(true);
return adapter;
diff --git a/src/com/android/contacts/list/UiIntentActions.java b/src/com/android/contacts/list/UiIntentActions.java
index 571d56f..9552942 100644
--- a/src/com/android/contacts/list/UiIntentActions.java
+++ b/src/com/android/contacts/list/UiIntentActions.java
@@ -40,10 +40,22 @@
public static final String GROUP_NAME_EXTRA_KEY = "com.android.contacts.extra.GROUP";
/**
- * The account used to filter potential new group members.
+ * The account name used to filter potential new group members.
*/
- public static final String GROUP_ACCOUNT_WITH_DATA_SET =
- "com.android.contacts.extra.GROUP_ACCOUNT_WITH_DATA_SET";
+ public static final String GROUP_ACCOUNT_NAME =
+ "com.android.contacts.extra.GROUP_ACCOUNT_NAME";
+
+ /**
+ * The account type used to filter potential new group members.
+ */
+ public static final String GROUP_ACCOUNT_TYPE =
+ "com.android.contacts.extra.GROUP_ACCOUNT_TYPE";
+
+ /**
+ * The account data set used to filter potential new group members.
+ */
+ public static final String GROUP_ACCOUNT_DATA_SET =
+ "com.android.contacts.extra.GROUP_ACCOUNT_DATA_SET";
/**
* The contact IDs for existing group members.