Merge "Import translations. DO NOT MERGE" into ub-contactsdialer-h-dev
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 497295d..caaa326 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -420,7 +420,8 @@
mToggle.runWhenIdle(new Runnable() {
@Override
public void run() {
- onGroupMenuItemClicked(groupListItem);
+ onGroupMenuItemClicked(groupListItem.getGroupId(),
+ groupListItem.getTitle());
updateMenuSelection(menuItem);
}
});
@@ -491,7 +492,7 @@
return isGroupView() || isAssistantView();
}
- protected abstract void onGroupMenuItemClicked(GroupListItem group);
+ protected abstract void onGroupMenuItemClicked(long groupId, String title);
protected void onCreateGroupMenuItemClicked() {
// Select the account to create the group
@@ -586,7 +587,6 @@
}
protected void onFilterMenuItemClicked(Intent intent) {
- resetFilter();
AccountFilterUtil.handleAccountFilterResult(mContactListFilterController,
AppCompatActivity.RESULT_OK, intent);
}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index bbe9721..0ee9965 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -22,6 +22,7 @@
import android.app.FragmentTransaction;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
+import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -29,6 +30,7 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
+import android.provider.ContactsContract;
import android.provider.ContactsContract.ProviderStatus;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
@@ -65,7 +67,6 @@
import com.android.contacts.common.util.Constants;
import com.android.contacts.common.util.ImplicitIntentsUtil;
import com.android.contacts.common.widget.FloatingActionButtonController;
-import com.android.contacts.group.GroupListItem;
import com.android.contacts.group.GroupMembersFragment;
import com.android.contacts.group.GroupMetaData;
import com.android.contacts.group.GroupUtil;
@@ -769,18 +770,12 @@
}
@Override
- protected void onGroupMenuItemClicked(GroupListItem group) {
+ protected void onGroupMenuItemClicked(long groupId, String title) {
if (isGroupView() && mMembersFragment != null
- && mMembersFragment.isCurrentGroup(group.getGroupId())) {
+ && mMembersFragment.isCurrentGroup(groupId)) {
return;
}
- mGroupUri = group.getUri();
- // Set the filter. This isn't used by the GroupMembersFragment but makes sure that the
- // filter will change when switching to a different view from the GroupMembersFragment.
- mContactListFilterController.setContactListFilter(
- ContactListFilter.createGroupMembersFilter(group.getAccountName(),
- group.getAccountType(), group.getDataSet()), /* persistent */ false,
- /* notifyListeners */ false);
+ mGroupUri = ContentUris.withAppendedId(ContactsContract.Groups.CONTENT_URI, groupId);
switchToOrUpdateGroupView(GroupUtil.ACTION_SWITCH_GROUP);
}
@@ -790,6 +785,12 @@
if (isInSecondLevel()) {
popSecondLevel();
showFabWithAnimation(/* showFab */ true);
+ // HACK: swap the current filter to force listeners to update because the group
+ // member view no longer changes the filter. Fix for b/32223767
+ final ContactListFilter current = mContactListFilterController.getFilter();
+ mContactListFilterController.setContactListFilter(
+ AccountFilterUtil.createContactsFilter(this), false);
+ mContactListFilterController.setContactListFilter(current, false);
}
mCurrentView = ContactsView.ACCOUNT_VIEW;
super.onFilterMenuItemClicked(intent);
@@ -907,8 +908,11 @@
}
private void handleFilterChangeForActivity(ContactListFilter filter) {
- // Set mShouldSwitchToAllContacts to true, so that we can switch to all contacts later.
- if (filter.isContactsFilterType()) {
+ // The filter was changed while this activity was in the background. If we're in the
+ // assistant view Switch to the main contacts list when we resume to prevent
+ // b/31838582 and b/31829161
+ // TODO: this is a hack; we need to do some cleanup of the contact list filter stuff
+ if (isAssistantView() && filter.isContactsFilterType()) {
mShouldSwitchToAllContacts = true;
}
diff --git a/src/com/android/contacts/common/list/ContactListFilter.java b/src/com/android/contacts/common/list/ContactListFilter.java
index c6baf41..5b7472d 100644
--- a/src/com/android/contacts/common/list/ContactListFilter.java
+++ b/src/com/android/contacts/common/list/ContactListFilter.java
@@ -397,11 +397,14 @@
* (see {@link #isGoogleAccountType)
*/
public boolean isSyncable(List<AccountWithDataSet> accounts) {
- // TODO(samchen): Check FILTER_TYPE_CUSTOM
if (isGoogleAccountType() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
return true;
}
+ // Since we don't know which group is selected until the actual contacts loading, we
+ // consider a custom filter syncable as long as there is a Google account on the device,
+ // and don't check if there is any group that belongs to a Google account is selected.
if (filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+ || filterType == ContactListFilter.FILTER_TYPE_CUSTOM
|| filterType == ContactListFilter.FILTER_TYPE_DEFAULT) {
if (accounts != null && accounts.size() > 0) {
// If we're showing all contacts and there is any Google account on the device then
@@ -422,10 +425,11 @@
*/
public List<Account> getSyncableAccounts(List<AccountWithDataSet> accounts) {
final List<Account> syncableAccounts = new ArrayList<>();
- // TODO(samchen): Check FILTER_TYPE_CUSTOM
+
if (isGoogleAccountType() && filterType == ContactListFilter.FILTER_TYPE_ACCOUNT) {
syncableAccounts.add(new Account(accountName, accountType));
} else if (filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS
+ || filterType == ContactListFilter.FILTER_TYPE_CUSTOM
|| filterType == ContactListFilter.FILTER_TYPE_DEFAULT) {
if (accounts != null && accounts.size() > 0) {
for (AccountWithDataSet account : accounts) {
diff --git a/src/com/android/contacts/common/list/ContactListFilterController.java b/src/com/android/contacts/common/list/ContactListFilterController.java
index 36e740f..4d3d6ad 100644
--- a/src/com/android/contacts/common/list/ContactListFilterController.java
+++ b/src/com/android/contacts/common/list/ContactListFilterController.java
@@ -71,9 +71,6 @@
*/
public abstract void setContactListFilter(ContactListFilter filter, boolean persistent);
- public abstract void setContactListFilter(ContactListFilter filter, boolean persistent,
- boolean notifyListeners);
-
public abstract void selectCustomFilter();
/**
@@ -142,8 +139,7 @@
setContactListFilter(filter, persistent, /* notifyListeners */ true);
}
- @Override
- public void setContactListFilter(ContactListFilter filter, boolean persistent,
+ private void setContactListFilter(ContactListFilter filter, boolean persistent,
boolean notifyListeners) {
if (!filter.equals(mFilter)) {
mFilter = filter;
diff --git a/src/com/android/contacts/common/list/ContactListItemView.java b/src/com/android/contacts/common/list/ContactListItemView.java
index 67f6d35..f74c671 100644
--- a/src/com/android/contacts/common/list/ContactListItemView.java
+++ b/src/com/android/contacts/common/list/ContactListItemView.java
@@ -450,13 +450,13 @@
// All the other Views will honor the photo, so available width for them may be shrunk.
if (mPhotoViewWidth > 0 || mKeepHorizontalPaddingForPhotoView) {
effectiveWidth = specWidth - getPaddingLeft() - getPaddingRight()
- - (mPhotoViewWidth + mGapBetweenImageAndText);
+ - (mPhotoViewWidth + mGapBetweenImageAndText + mGapBetweenIndexerAndImage);
} else {
effectiveWidth = specWidth - getPaddingLeft() - getPaddingRight();
}
if (mIsSectionHeaderEnabled) {
- effectiveWidth -= mHeaderWidth + mGapBetweenIndexerAndImage;
+ effectiveWidth -= mHeaderWidth;
}
if (mSupportVideoCallIcon) {
diff --git a/src/com/android/contacts/group/GroupListItem.java b/src/com/android/contacts/group/GroupListItem.java
index 2906821..f2359b6 100644
--- a/src/com/android/contacts/group/GroupListItem.java
+++ b/src/com/android/contacts/group/GroupListItem.java
@@ -15,10 +15,6 @@
*/
package com.android.contacts.group;
-import android.content.ContentUris;
-import android.net.Uri;
-import android.provider.ContactsContract;
-
/**
* Meta-data for a contact group. We load all groups associated with the contact's
* constituent accounts.
@@ -87,8 +83,4 @@
public String getSystemId() {
return mSystemId;
}
-
- public Uri getUri() {
- return ContentUris.withAppendedId(ContactsContract.Groups.CONTENT_URI, mGroupId);
- }
}
\ No newline at end of file