Merge "Reset scroll position when account filter is changed"
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 81c7252..5f0dc2b 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -285,7 +285,8 @@
mToggle.runWhenIdle(new Runnable() {
@Override
public void run() {
- onGroupMenuItemClicked(groupListItem.getGroupId());
+ onGroupMenuItemClicked(groupListItem.getGroupId(),
+ groupListItem.getTitle());
}
});
mDrawer.closeDrawer(GravityCompat.START);
@@ -340,8 +341,8 @@
return null;
}
- protected void onGroupMenuItemClicked(long groupId) {
- startActivity(GroupUtil.createViewGroupIntent(this, groupId));
+ protected void onGroupMenuItemClicked(long groupId, String title) {
+ startActivity(GroupUtil.createViewGroupIntent(this, groupId, title));
if (shouldFinish()) {
finish();
}
diff --git a/src/com/android/contacts/activities/GroupMembersActivity.java b/src/com/android/contacts/activities/GroupMembersActivity.java
index 1511849..a525460 100644
--- a/src/com/android/contacts/activities/GroupMembersActivity.java
+++ b/src/com/android/contacts/activities/GroupMembersActivity.java
@@ -48,6 +48,7 @@
import com.android.contacts.group.GroupMembersFragment;
import com.android.contacts.group.GroupMetadata;
import com.android.contacts.group.GroupNameEditDialogFragment;
+import com.android.contacts.group.GroupUtil;
import com.android.contacts.interactions.GroupDeletionDialogFragment;
import com.android.contacts.list.ContactsRequest;
import com.android.contacts.list.MultiSelectContactsListFragment;
@@ -218,7 +219,7 @@
// Avoid showing default "Contacts" title before group metadata is loaded. The title will
// be changed to group name when onGroupMetadataLoaded() is called.
- setActionBarTitle("");
+ setActionBarTitle(getIntent().getStringExtra(GroupUtil.EXTRA_GROUP_NAME));
// Decide whether to prompt for the account and group name or start loading existing members
if (mIsInsertAction) {
@@ -356,9 +357,9 @@
}
@Override
- protected void onGroupMenuItemClicked(long groupId) {
+ protected void onGroupMenuItemClicked(long groupId, String title) {
if (mGroupMetadata.groupId != groupId) {
- super.onGroupMenuItemClicked(groupId);
+ super.onGroupMenuItemClicked(groupId, title);
}
}
diff --git a/src/com/android/contacts/editor/EditorUiUtils.java b/src/com/android/contacts/editor/EditorUiUtils.java
index 844ac45..0a5c765 100644
--- a/src/com/android/contacts/editor/EditorUiUtils.java
+++ b/src/com/android/contacts/editor/EditorUiUtils.java
@@ -137,28 +137,25 @@
public static Pair<String,String> getAccountInfo(Context context, String accountName,
AccountType accountType) {
CharSequence accountTypeDisplayLabel = accountType.getDisplayLabel(context);
- if (TextUtils.isEmpty(accountTypeDisplayLabel)) {
+ if (TextUtils.isEmpty(accountTypeDisplayLabel)
+ || TextUtils.equals(
+ context.getString(R.string.account_phone), accountTypeDisplayLabel)) {
accountTypeDisplayLabel = context.getString(R.string.account_phone);
+ } else if (GoogleAccountType.ACCOUNT_TYPE.equals(accountType.accountType)
+ && accountType.dataSet == null){
+ accountTypeDisplayLabel = context.getString(R.string.google_account_type_format,
+ accountTypeDisplayLabel);
+ } else {
+ accountTypeDisplayLabel = context.getString(R.string.account_type_format,
+ accountTypeDisplayLabel);
}
if (TextUtils.isEmpty(accountName)) {
- return new Pair<>(
- /* accountName =*/ null,
- context.getString(R.string.account_type_format, accountTypeDisplayLabel));
+ return new Pair<>(/* accountName */ null, accountTypeDisplayLabel.toString());
}
- final String accountNameDisplayLabel =
- context.getString(R.string.from_account_format, accountName);
-
- if (GoogleAccountType.ACCOUNT_TYPE.equals(accountType.accountType)
- && accountType.dataSet == null) {
- return new Pair<>(
- accountNameDisplayLabel,
- context.getString(R.string.google_account_type_format, accountTypeDisplayLabel));
- }
- return new Pair<>(
- accountNameDisplayLabel,
- context.getString(R.string.account_type_format, accountTypeDisplayLabel));
+ return new Pair<>(context.getString(R.string.from_account_format, accountName),
+ accountTypeDisplayLabel.toString());
}
/**
diff --git a/src/com/android/contacts/group/GroupUtil.java b/src/com/android/contacts/group/GroupUtil.java
index e716fc7..a031106 100644
--- a/src/com/android/contacts/group/GroupUtil.java
+++ b/src/com/android/contacts/group/GroupUtil.java
@@ -53,6 +53,8 @@
private static final Set<String> FFC_GROUPS =
new HashSet(Arrays.asList("Friends", "Family", "Coworkers"));
+ public static final String EXTRA_GROUP_NAME = "groupName";
+
private GroupUtil() {
}
@@ -118,10 +120,11 @@
}
/** Returns an Intent to view the details of the group identified by the given ID. */
- public static Intent createViewGroupIntent(Context context, long groupId) {
+ public static Intent createViewGroupIntent(Context context, long groupId, String title) {
final Intent intent = new Intent(context, GroupMembersActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(ContentUris.withAppendedId(Groups.CONTENT_URI, groupId));
+ intent.putExtra(EXTRA_GROUP_NAME, title);
return intent;
}
diff --git a/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java b/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
index 1fb5cb7..19f28d3 100644
--- a/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
+++ b/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
@@ -119,10 +119,7 @@
assertNotNull(pair);
assertEquals(getContext().getString(R.string.from_account_format, ACCOUNT_NAME),
pair.first); // somebody@lunkedin.com
- assertEquals(
- getContext().getString(R.string.account_type_format,
- getContext().getString(R.string.account_phone)),
- pair.second); // "Phone-only, unsynced contact"
+ assertEquals(getContext().getString(R.string.account_phone), pair.second); // Device
}
public void testGetAccountInfo_NoAccountName_DisplayLabel() {
@@ -133,6 +130,14 @@
assertNull(pair.first);
assertEquals(getContext().getString(R.string.account_type_format, DISPLAY_LABEL),
pair.second); // LunkedIn contact
+
+ final Pair pairDevice = EditorUiUtils.getAccountInfo(
+ getContext(),
+ /* accountName =*/ null,
+ new MockAccountType(getContext().getString(R.string.account_phone)));
+ assertNotNull(pairDevice);
+ assertNull(pairDevice.first);
+ assertEquals(getContext().getString(R.string.account_phone), pairDevice.second); // Device
}
public void testGetAccountInfo_NoAccountName_NoDisplayLabel() {
@@ -141,10 +146,7 @@
assertNotNull(pair);
assertNull(pair.first);
- assertEquals(
- getContext().getString(R.string.account_type_format,
- getContext().getString(R.string.account_phone)),
- pair.second); // "Phone-only, unsynced contact"
+ assertEquals(getContext().getString(R.string.account_phone), pair.second); // Device
}
public void testGetRingtongStrFromUri_lessThanOrEqualsToM() {