summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2020-08-27 04:12:26 +0000
committerColin Cross <ccross@android.com>2020-08-27 04:12:26 +0000
commit52edf5b87b9acd027e7169a86bc03d61f9a8a17d (patch)
tree50f99871d5c7fce34bad6139181deb3ce0cbe536 /src
parent75fabb630112d49e64f94e8756e8afd24aac4fb3 (diff)
downloadContacts-52edf5b87b9acd027e7169a86bc03d61f9a8a17d.tar.gz
Revert "Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab1222ffd6..."
Revert "Snap for 6793014 from 3777d883a3857b1a1589181c436d9018d7..." Revert "Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528460c8b..." Revert "Snap for 6793014 from a43295d1825da62af038d345a7a861ed7a..." Revert "Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb386109..." Revert "Snap for 6793014 from d0e31526c62b2aeb35c293ac96feb180fc..." Revert "Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376efabd2..." Revert "Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293b79684..." Revert "Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57a8e7d5..." Revert "Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aad87a67..." Revert "Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24af9964..." Revert "Snap for 6793014 from 14cb57e107a3abce8b14937b1f92c28d18..." Revert "Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc03a606..." Revert "Snap for 6793014 from 8c65adad0bcdfb3acc561063b4048dca24..." Revert "Snap for 6793014 from b3061942700265e2bf04af9997775dcbbb..." Revert "Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd0ac3be..." Revert "Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec70d8da6..." Revert "Snap for 6793014 from 988d4244914e0c749655e8cb6db18ba44f..." Revert submission 12465146-release-request-6b259cbc-1f45-4b05-bc7e-c9b893b79d68-for-git_main-busytown-release-6793014 Reason for revert: b/166531456 Reverted Changes: I5ff7a6c0d:Snap for 6793014 from f2989f9c65556d5155dbd57f82f0... I77bdff943:Snap for 6793014 from a43295d1825da62af038d345a7a8... I2ac5c520a:Snap for 6793014 from c3f124cca05579acf0a6cb589ebd... I023b9702f:Snap for 6793014 from 98756d6d3e2bb0ba28eb125caa7a... Ibc7893d72:Snap for 6793014 from fd1ad6750ef332d3f50f218f4d5d... Ic27847bee:Snap for 6793014 from 8c65adad0bcdfb3acc561063b404... If20bc9352:Snap for 6793014 from 7a3a8c6351d5167a6ae0b33bc376... I6542d17e8:Snap for 6793014 from 3777d883a3857b1a1589181c436d... I66e6bb8a9:Snap for 6793014 from 8b8bf0a07b0521bbe8483fbbab12... I3cd190b6b:Snap for 6793014 from 424180bdc4aa18249e678daebfd0... If92db7402:Snap for 6793014 from ab1e4a81d09a540a5f927059e5bc... Iaced03c87:Snap for 6793014 from d0e31526c62b2aeb35c293ac96fe... I5d28c6b4b:Snap for 6793014 from 4f81304963d19f4511b1e8e7d0aa... I30d07bea3:Snap for 6793014 from 7594ec6384c4da320726def34f47... I473205f48:Snap for 6793014 from 551c5953fc62e339e4ee884ec2cd... I0656b41af:Snap for 6793014 from 44725f06b7f7d6407b5ee82d989b... I0f9796067:Snap for 6793014 from 4919273b2ac5c6347a18e17c5ec7... I9a38cda8f:Snap for 6793014 from 2076be4d27078d6ebc0a6b5e5ceb... I876a82f51:Snap for 6793014 from 11467102abddb6026aaa164c1361... I749d7d023:Snap for 6793014 from 41471cb21bb16b5c3bcc92f84293... I038daea41:Snap for 6793014 from 07602cdacf5bcc835db41f7eaa24... I47aa3131c:Snap for 6793014 from 14cb57e107a3abce8b14937b1f92... I32dba8a95:Snap for 6793014 from 3157b4ee4325286f0c2ab0f26528... I2ebc9f9db:Snap for 6793014 from 988d4244914e0c749655e8cb6db1... Iae7c3370f:Snap for 6793014 from 9ffb8852294e06e2d387dc1fb868... I6467a7f1b:Snap for 6793014 from 42e5cca3cfb829690c9d8c6aca57... I8c6375203:Snap for 6793014 from b3061942700265e2bf04af999777... I843b2e1f3:Snap for 6793014 from 265280bf5cb4bc14e132c3a35ae5... Ie254f7079:Snap for 6793014 from f22ad3164937a8f2e309965c102b... I01e0974ed:Snap for 6793014 from bbbccc3c2b7fc7c5780f6c415c42... Change-Id: I5814c500a7d72a4a1c82105d06647a367f8b24a0
Diffstat (limited to 'src')
-rw-r--r--src/com/android/contacts/editor/GroupMembershipView.java13
-rw-r--r--src/com/android/contacts/group/GroupMetaData.java5
-rw-r--r--src/com/android/contacts/group/GroupNameEditDialogFragment.java50
-rw-r--r--src/com/android/contacts/group/GroupUtil.java4
-rw-r--r--src/com/android/contacts/list/GroupMemberPickerFragment.java8
-rw-r--r--src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java11
6 files changed, 53 insertions, 38 deletions
diff --git a/src/com/android/contacts/editor/GroupMembershipView.java b/src/com/android/contacts/editor/GroupMembershipView.java
index f545e7b6c..fc28e33a2 100644
--- a/src/com/android/contacts/editor/GroupMembershipView.java
+++ b/src/com/android/contacts/editor/GroupMembershipView.java
@@ -267,8 +267,7 @@ public class GroupMembershipView extends LinearLayout
}
private void updateView() {
- if (mGroupMetaData == null || mGroupMetaData.isClosed() || mAccountType == null
- || mAccountName == null) {
+ if (mGroupMetaData == null || mGroupMetaData.isClosed()) {
setVisibility(GONE);
return;
}
@@ -282,8 +281,9 @@ public class GroupMembershipView extends LinearLayout
String accountName = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_NAME);
String accountType = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
String dataSet = mGroupMetaData.getString(GroupMetaDataLoader.DATA_SET);
- if (accountName.equals(mAccountName) && accountType.equals(mAccountType)
- && Objects.equal(dataSet, mDataSet)) {
+ if (TextUtils.equals(accountName, mAccountName)
+ && TextUtils.equals(accountType, mAccountType)
+ && TextUtils.equals(dataSet, mDataSet)) {
long groupId = mGroupMetaData.getLong(GroupMetaDataLoader.GROUP_ID);
if (!mGroupMetaData.isNull(GroupMetaDataLoader.FAVORITES)
&& mGroupMetaData.getInt(GroupMetaDataLoader.FAVORITES) != 0) {
@@ -355,8 +355,9 @@ public class GroupMembershipView extends LinearLayout
String accountName = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_NAME);
String accountType = mGroupMetaData.getString(GroupMetaDataLoader.ACCOUNT_TYPE);
String dataSet = mGroupMetaData.getString(GroupMetaDataLoader.DATA_SET);
- if (accountName.equals(mAccountName) && accountType.equals(mAccountType)
- && Objects.equal(dataSet, mDataSet)) {
+ if (TextUtils.equals(accountName, mAccountName)
+ && TextUtils.equals(accountType, mAccountType)
+ && TextUtils.equals(dataSet, mDataSet)) {
long groupId = mGroupMetaData.getLong(GroupMetaDataLoader.GROUP_ID);
if (groupId != mFavoritesGroupId
&& (groupId != mDefaultGroupId || mDefaultGroupVisible)) {
diff --git a/src/com/android/contacts/group/GroupMetaData.java b/src/com/android/contacts/group/GroupMetaData.java
index 4a8cb0f11..d9ddd11dc 100644
--- a/src/com/android/contacts/group/GroupMetaData.java
+++ b/src/com/android/contacts/group/GroupMetaData.java
@@ -114,10 +114,7 @@ public final class GroupMetaData implements Parcelable {
/** Whether all metadata fields are set. */
public boolean isValid() {
- return uri != null
- && !TextUtils.isEmpty(accountName)
- && !TextUtils.isEmpty(groupName)
- && groupId > 0;
+ return uri != null && !TextUtils.isEmpty(groupName) && groupId > 0;
}
@Override
diff --git a/src/com/android/contacts/group/GroupNameEditDialogFragment.java b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
index 392bf249c..b015b0dcc 100644
--- a/src/com/android/contacts/group/GroupNameEditDialogFragment.java
+++ b/src/com/android/contacts/group/GroupNameEditDialogFragment.java
@@ -27,8 +27,6 @@ import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract.Groups;
-import com.google.android.material.textfield.TextInputLayout;
-import androidx.appcompat.app.AlertDialog;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -39,10 +37,13 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
+import androidx.appcompat.app.AlertDialog;
+
import com.android.contacts.ContactSaveService;
import com.android.contacts.R;
import com.android.contacts.model.account.AccountWithDataSet;
+import com.google.android.material.textfield.TextInputLayout;
import com.google.common.base.Strings;
import java.util.Collections;
@@ -69,14 +70,17 @@ public final class GroupNameEditDialogFragment extends DialogFragment implements
/** Callbacks for hosts of the {@link GroupNameEditDialogFragment}. */
public interface Listener {
void onGroupNameEditCancelled();
+
void onGroupNameEditCompleted(String name);
public static final Listener None = new Listener() {
@Override
- public void onGroupNameEditCancelled() { }
+ public void onGroupNameEditCancelled() {
+ }
@Override
- public void onGroupNameEditCompleted(String name) { }
+ public void onGroupNameEditCompleted(String name) {
+ }
};
}
@@ -101,7 +105,7 @@ public final class GroupNameEditDialogFragment extends DialogFragment implements
private static GroupNameEditDialogFragment newInstance(
AccountWithDataSet account, String callbackAction, long groupId, String groupName) {
- if (account == null || account.name == null || account.type == null) {
+ if (account == null) {
throw new IllegalArgumentException("Invalid account");
}
final boolean isInsert = groupId == NO_GROUP_ID;
@@ -279,7 +283,7 @@ public final class GroupNameEditDialogFragment extends DialogFragment implements
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// Only a single loader so id is ignored.
return new CursorLoader(getActivity(), Groups.CONTENT_SUMMARY_URI,
- new String[] { Groups.TITLE, Groups.SYSTEM_ID, Groups.ACCOUNT_TYPE,
+ new String[]{Groups.TITLE, Groups.SYSTEM_ID, Groups.ACCOUNT_TYPE,
Groups.SUMMARY_COUNT, Groups.GROUP_IS_READ_ONLY},
getSelection(), getSelectionArgs(), null);
}
@@ -353,24 +357,30 @@ public final class GroupNameEditDialogFragment extends DialogFragment implements
private String getSelection() {
final StringBuilder builder = new StringBuilder();
- builder.append(Groups.ACCOUNT_NAME).append("=? AND ")
- .append(Groups.ACCOUNT_TYPE).append("=? AND ")
- .append(Groups.DELETED).append("=?");
- if (mAccount.dataSet != null) {
- builder.append(" AND ").append(Groups.DATA_SET).append("=?");
- }
+ builder.append(Groups.ACCOUNT_NAME).append(mAccount.name == null ? " IS NULL " : "=?")
+ .append(" AND ")
+ .append(Groups.ACCOUNT_TYPE).append(mAccount.type == null ? " IS NULL " : "=?")
+ .append(" AND ")
+ .append(Groups.DATA_SET).append(mAccount.dataSet == null ? " IS NULL " : "=?")
+ .append(" AND ")
+ .append(Groups.DELETED).append("=0");
return builder.toString();
}
private String[] getSelectionArgs() {
- final int len = mAccount.dataSet == null ? 3 : 4;
- final String[] args = new String[len];
- args[0] = mAccount.name;
- args[1] = mAccount.type;
- args[2] = "0"; // Not deleted
- if (mAccount.dataSet != null) {
- args[3] = mAccount.dataSet;
+ if (mAccount.isNullAccount()) {
+ return null;
+ } else if (mAccount.dataSet == null) {
+ return new String[]{
+ mAccount.name,
+ mAccount.type
+ };
+ } else {
+ return new String[]{
+ mAccount.name,
+ mAccount.type,
+ mAccount.dataSet
+ };
}
- return args;
}
}
diff --git a/src/com/android/contacts/group/GroupUtil.java b/src/com/android/contacts/group/GroupUtil.java
index 706f16bd5..dae4f4e03 100644
--- a/src/com/android/contacts/group/GroupUtil.java
+++ b/src/com/android/contacts/group/GroupUtil.java
@@ -46,9 +46,7 @@ import java.util.Set;
*/
public final class GroupUtil {
- public final static String ALL_GROUPS_SELECTION =
- Groups.ACCOUNT_TYPE + " NOT NULL AND " + Groups.ACCOUNT_NAME + " NOT NULL AND "
- + Groups.DELETED + "=0";
+ public final static String ALL_GROUPS_SELECTION = Groups.DELETED + "=0";
public final static String DEFAULT_SELECTION = ALL_GROUPS_SELECTION + " AND "
+ Groups.AUTO_ADD + "=0 AND " + Groups.FAVORITES + "=0";
diff --git a/src/com/android/contacts/list/GroupMemberPickerFragment.java b/src/com/android/contacts/list/GroupMemberPickerFragment.java
index e94d73b1c..68cb6ce8e 100644
--- a/src/com/android/contacts/list/GroupMemberPickerFragment.java
+++ b/src/com/android/contacts/list/GroupMemberPickerFragment.java
@@ -245,8 +245,12 @@ public class GroupMemberPickerFragment extends
@Override
protected DefaultContactListAdapter createListAdapter() {
final DefaultContactListAdapter adapter = new DefaultContactListAdapter(getActivity());
- adapter.setFilter(ContactListFilter.createGroupMembersFilter(
- mAccountType, mAccountName, mAccountDataSet));
+ if (mAccountName == null && mAccountType == null && mAccountDataSet == null) {
+ adapter.setFilter(ContactListFilter.createDeviceContactsFilter(/*icon=*/null));
+ } else {
+ adapter.setFilter(ContactListFilter.createGroupMembersFilter(
+ mAccountType, mAccountName, mAccountDataSet));
+ }
adapter.setSectionHeaderDisplayEnabled(true);
adapter.setDisplayPhotos(true);
return adapter;
diff --git a/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java b/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java
index d3a8c1686..5a0758037 100644
--- a/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java
+++ b/src/com/android/contacts/util/DeviceLocalAccountTypeFactory.java
@@ -19,9 +19,11 @@ import android.content.Context;
import androidx.annotation.IntDef;
import com.android.contacts.model.account.AccountType;
+import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.model.account.DeviceLocalAccountType;
import java.lang.annotation.Retention;
+import java.util.Objects;
import static java.lang.annotation.RetentionPolicy.SOURCE;
@@ -65,15 +67,18 @@ public interface DeviceLocalAccountTypeFactory {
@Override
public int classifyAccount(String accountType) {
- return accountType == null ? TYPE_DEVICE : TYPE_OTHER;
+ return accountType == null ||
+ Objects.equals(AccountWithDataSet.getLocalAccount(mContext).type, accountType)
+ ? TYPE_DEVICE : TYPE_OTHER;
}
@Override
public AccountType getAccountType(String accountType) {
- if (accountType != null) {
+ if (accountType != null && !Objects.equals(
+ AccountWithDataSet.getLocalAccount(mContext).type, accountType)) {
throw new IllegalArgumentException(accountType + " is not a device account type.");
}
- return new DeviceLocalAccountType(mContext);
+ return new DeviceLocalAccountType(mContext, true);
}
}
}