[automerger skipped] Merge "Merge stage-aosp-master to aosp-master - DO NOT MERGE" am: 6b25dfb882 am: 10b124b4c4 -s ours
am skip reason: subject contains skip directive
Change-Id: Ic6852aafdd03528e5730067aa62ccf68df878075
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index b40d2fa..c393f07 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -127,7 +127,7 @@
<string name="groupDeletedToast" msgid="7774363940327847515">"تم حذف التصنيف"</string>
<string name="groupCreatedToast" msgid="1685148819468403239">"تم إنشاء التصنيف"</string>
<string name="groupCreateFailedToast" msgid="1836425392831964024">"يتعذر إنشاء تصنيف"</string>
- <string name="groupUpdatedToast" msgid="3381549467345607379">"تم إعادة تحميل التصنيف"</string>
+ <string name="groupUpdatedToast" msgid="3381549467345607379">"تمت إعادة تحميل التصنيف"</string>
<string name="groupMembersRemovedToast" msgid="8019566066934628011">"تمت الإزالة من التصنيف"</string>
<string name="groupMembersAddedToast" msgid="1939782548900157287">"تمت الإضافة إلى التصنيف"</string>
<string name="groupSavedErrorToast" msgid="8456912862816145318">"لا يمكن حفظ التغييرات على التصنيف"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index a70d500..480f10a 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -28,10 +28,10 @@
<string name="groupMemberPickerActivityTitle" msgid="8745419913947478380">"Тандоо"</string>
<string name="header_entry_contact_list_adapter_header_title" msgid="4098233078586958762">"Жаңы байланыш түзүү"</string>
<string name="searchHint" msgid="1487501532610025473">"Байланыштарды издөө"</string>
- <string name="menu_addStar" msgid="4903812703386825130">"Сүйүктүүлөргө кошуу"</string>
+ <string name="menu_addStar" msgid="4903812703386825130">"Тандалмаларга кошуу"</string>
<string name="menu_removeStar" msgid="3707373931808303701">"Сүйүктүүлөрдөн алып салуу"</string>
<string name="description_action_menu_remove_star" msgid="4044390281910122890">"Сүйүктүүлөрдөн чыгарылды"</string>
- <string name="description_action_menu_add_star" msgid="7316521132809388851">"Сүйүктүүлөргө кошулду"</string>
+ <string name="description_action_menu_add_star" msgid="7316521132809388851">"Тандалмаларга кошулду"</string>
<string name="menu_editContact" msgid="5039663761025630208">"Өзгөртүү"</string>
<string name="menu_deleteContact" msgid="15161764025276217">"Жок кылуу"</string>
<string name="menu_change_photo" msgid="4911246106907208055">"Сүрөттү өзгөртүү"</string>
@@ -47,7 +47,7 @@
<string name="menu_new_group_action_bar" msgid="1670312283925872483">"Энбелги түзүү"</string>
<string name="splitConfirmation" msgid="4750158900636307469">"Бул байланыш ажыратылсынбы?"</string>
<string name="splitConfirmation_positive_button" msgid="3109235536045409854">"Ажыратуу"</string>
- <string name="splitConfirmationWithPendingChanges" msgid="8617395780141069527">"Сиз киргизген өзгөртүүлөрдү сактап, бул байланышты бир нече байланышка ажыраткыңыз келеби?"</string>
+ <string name="splitConfirmationWithPendingChanges" msgid="8617395780141069527">"Сиз киргизген өзгөртүүлөрдү сактап, бул байланышты бир нече байланышка ажыратасызбы?"</string>
<string name="splitConfirmationWithPendingChanges_positive_button" msgid="131293000921403021">"Сактоо жана ажыратуу"</string>
<string name="joinConfirmation" msgid="1245184431169363397">"Сиз киргизген өзгөртүүлөрдү сактап, тандалган байланышка бириктиргиңиз келеби?"</string>
<string name="joinConfirmation_positive_button" msgid="8300713422725610480">"Сактоо жана бириктирүү"</string>
@@ -62,12 +62,12 @@
<string name="separatorJoinAggregateAll" msgid="5378346138684490784">"Бардык байланыштар"</string>
<string name="contactsJoinedNamedMessage" msgid="8732933595873458166">"<xliff:g id="NAME">%s</xliff:g> байланыштырылды"</string>
<string name="contactsJoinedMessage" msgid="7605856897709458707">"Байланыштар шилтемеленди"</string>
- <string name="contacts_deleted_one_named_toast" msgid="2707266264779781309">"<xliff:g id="NAME">%1$s</xliff:g> жок кылынды"</string>
- <string name="contacts_deleted_two_named_toast" msgid="6908761620236434380">"<xliff:g id="NAME_0">%1$s</xliff:g> жана <xliff:g id="NAME_1">%2$s</xliff:g> жок кылынды"</string>
- <string name="contacts_deleted_many_named_toast" msgid="4879197068250337298">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… жок кылынды"</string>
+ <string name="contacts_deleted_one_named_toast" msgid="2707266264779781309">"<xliff:g id="NAME">%1$s</xliff:g> өчүрүлдү"</string>
+ <string name="contacts_deleted_two_named_toast" msgid="6908761620236434380">"<xliff:g id="NAME_0">%1$s</xliff:g> жана <xliff:g id="NAME_1">%2$s</xliff:g> өчүрүлдү"</string>
+ <string name="contacts_deleted_many_named_toast" msgid="4879197068250337298">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… өчүрүлдү"</string>
<plurals name="contacts_deleted_toast" formatted="false" msgid="198534700386623765">
- <item quantity="other">Байланыштар жок кылынды</item>
- <item quantity="one">Байланыш жок кылынды</item>
+ <item quantity="other">Байланыштар өчүрүлдү</item>
+ <item quantity="one">Байланыш өчүрүлдү</item>
</plurals>
<plurals name="contacts_count" formatted="false" msgid="8804860300387044572">
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> байланыш</item>
@@ -89,7 +89,7 @@
<string name="batch_delete_confirmation" msgid="4149615167210863403">"Тандалган байланыштар жок кылынсынбы?"</string>
<string name="batch_delete_read_only_contact_confirmation" msgid="381691735715182700">"Окуу үчүн гана арналган аккаунтуңуздан байланыштарды жок кылуу мүмкүн эмес, бирок аларды жашырып койсо болот."</string>
<string name="batch_delete_multiple_accounts_confirmation" msgid="4547718538924570984">"Жок кылына турган байланыштарда бир нече аккаунтунун чоо-жайы бар. Окуу үчүн гана арналган каттоо эсептеринин чоо-жайы жашырылып, жок кылынбайт."</string>
- <string name="multipleContactDeleteConfirmation" msgid="2970218685653877287">"Бул байланыш жок кылынса, анын бир нече аккаунтундагы чоо-жайы өчүп калат."</string>
+ <string name="multipleContactDeleteConfirmation" msgid="2970218685653877287">"Бул байланыш өчүрүлсө, анын бир нече аккаунтундагы чоо-жайы өчүп калат."</string>
<string name="deleteConfirmation" msgid="3727809366015979585">"Бул байланыш жок кылынсынбы?"</string>
<string name="deleteConfirmation_positive_button" msgid="1604511403421785160">"Жок кылуу"</string>
<string name="invalidContactMessage" msgid="6204402264821083362">"Мындай байланыш жок."</string>
@@ -101,7 +101,7 @@
<string name="removePhoto" msgid="1190099414600730001">"Сүрөттү алып салуу"</string>
<string name="noContacts" msgid="3030512741779213810">"Байланыштар тизмеңиз бош"</string>
<string name="emptyGroup" msgid="8598261660865081152">"Бул энбелги коюлган бир дагы байланыш жок"</string>
- <string name="emptyAccount" msgid="7450843210977018582">"Бул каттоо эсебинде эч кандай байланыш жок"</string>
+ <string name="emptyAccount" msgid="7450843210977018582">"Бул аккаунтта эч кандай байланыш жок"</string>
<string name="emptyMainList" msgid="3266182207039677163">"Байланыштар тизмеңиз бош"</string>
<string name="contactSavedNamedToast" msgid="3067050290584834386">"<xliff:g id="DISPLAY_NAME">%s</xliff:g> сакталды"</string>
<string name="contactSavedToast" msgid="4370392215196995301">"Байланыш сакталды"</string>
@@ -112,11 +112,11 @@
<string name="contactGenericErrorToast" msgid="5689457475864876100">"Байланышты сактоодогу ката."</string>
<string name="contactPhotoSavedErrorToast" msgid="8568460180541397272">"Байланыштын сүрөт өзгөрүүлөрү сакталган жок."</string>
<string name="groupLoadErrorToast" msgid="4141488223976370583">"Энбелги жүктөлгөн жок"</string>
- <string name="groupDeletedToast" msgid="7774363940327847515">"Энбелги жок кылынды"</string>
+ <string name="groupDeletedToast" msgid="7774363940327847515">"Энбелги өчүрүлдү"</string>
<string name="groupCreatedToast" msgid="1685148819468403239">"Энбелги түзүлдү"</string>
<string name="groupCreateFailedToast" msgid="1836425392831964024">"Энбелги түзүлгөн жок"</string>
- <string name="groupUpdatedToast" msgid="3381549467345607379">"Энбелги жаңыртылды"</string>
- <string name="groupMembersRemovedToast" msgid="8019566066934628011">"Энбелгиден алынып салынды"</string>
+ <string name="groupUpdatedToast" msgid="3381549467345607379">"Энбелги жаңырды"</string>
+ <string name="groupMembersRemovedToast" msgid="8019566066934628011">"Энбелгиден өчүрүлдү"</string>
<string name="groupMembersAddedToast" msgid="1939782548900157287">"Кошулду"</string>
<string name="groupSavedErrorToast" msgid="8456912862816145318">"Энбелгинин өзгөрүүлөрүн сактай алган жок."</string>
<string name="groupExistsErrorMessage" msgid="912222525098791136">"Мындай энбелги бар"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 844900f..6598310 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -97,7 +97,7 @@
<string name="createContactShortcutSuccessful" msgid="6980032407920515698">"<xliff:g id="NAME">%s</xliff:g> என்ற தொடர்பு முகப்புத் திரையில் சேர்க்கப்பட்டது."</string>
<string name="photoPickerNotFoundText" msgid="6535222297923110991">"சாதனத்தில் படங்கள் எதுவுமில்லை."</string>
<string name="attach_photo_dialog_title" msgid="7948754072673745235">"தொடர்பின் படம்"</string>
- <string name="customLabelPickerTitle" msgid="816694850254307154">"தனிப்பயன் லேபிள் பெயர்"</string>
+ <string name="customLabelPickerTitle" msgid="816694850254307154">"பிரத்தியேக லேபிள் பெயர்"</string>
<string name="removePhoto" msgid="1190099414600730001">"படத்தை அகற்று"</string>
<string name="noContacts" msgid="3030512741779213810">"தொடர்புகள் பட்டியல் காலியாக உள்ளது"</string>
<string name="emptyGroup" msgid="8598261660865081152">"இந்த லேபிளைக் கொண்ட தொடர்புகள் இல்லை"</string>
@@ -326,7 +326,7 @@
<string name="ghostData_company" msgid="3873500610390675876">"நிறுவனம்"</string>
<string name="ghostData_title" msgid="8584897460662904533">"தலைப்பு"</string>
<string name="label_notes" msgid="7134226125644463585">"குறிப்புகள்"</string>
- <string name="label_custom_field" msgid="4160584225306364924">"தனிப்பயன்"</string>
+ <string name="label_custom_field" msgid="4160584225306364924">"பிரத்தியேகம்"</string>
<string name="label_sip_address" msgid="8876347942587537552">"SIP"</string>
<string name="websiteLabelsGroup" msgid="114754928100220315">"இணையதளம்"</string>
<string name="groupsLabel" msgid="5622154133880646122">"லேபிள்கள்"</string>
@@ -365,7 +365,7 @@
<string name="announce_collapsed_fields" msgid="7611318715383228182">"சுருக்கப்பட்டது"</string>
<string name="list_filter_all_accounts" msgid="6173785387972096770">"எல்லா தொடர்புகளும்"</string>
<string name="list_filter_all_starred" msgid="2582865760150432568">"நட்சத்திரமிட்டவை"</string>
- <string name="list_filter_customize" msgid="2368900508906139537">"தனிப்பயனாக்கு"</string>
+ <string name="list_filter_customize" msgid="2368900508906139537">"பிரத்தியேகமாக்கு"</string>
<string name="list_filter_single" msgid="6003845379327432129">"தொடர்பு"</string>
<string name="display_ungrouped" msgid="4823012484407759332">"பிற எல்லா தொடர்புகளும்"</string>
<string name="display_all_contacts" msgid="1281067776483704512">"எல்லா தொடர்புகளும்"</string>
@@ -374,7 +374,7 @@
<string name="display_more_groups" msgid="8398232980355188133">"மேலும் குழுக்கள்…"</string>
<string name="display_warn_remove_ungrouped" msgid="522866344738506017">"ஒத்திசைவிலிருந்து \"<xliff:g id="GROUP">%s</xliff:g>\" ஐ அகற்றுவது, ஒத்திசைவிலிருந்து குழுவாக்கப்படாத எல்லா தொடர்புகளையும் அகற்றும்."</string>
<string name="savingDisplayGroups" msgid="6779839417901711381">"காட்சி விருப்பங்களைச் சேமிக்கிறது…"</string>
- <string name="listCustomView" msgid="5782275477737032610">"தனிப்பயனாக்கிய காட்சி"</string>
+ <string name="listCustomView" msgid="5782275477737032610">"பிரத்தியேகப்படுத்தப்பட்ட காட்சி"</string>
<string name="dialog_new_contact_account" msgid="5652018124788855057">"இறக்கிய தொடர்புகளை இதில் சேமிக்கவும்:"</string>
<string name="import_from_sim" msgid="7825280799813847991">"சிம் கார்டு"</string>
<string name="import_from_sim_summary_fmt" msgid="4234771828377985321">"<xliff:g id="SIM_NAME">%1$s</xliff:g> சிம்"</string>
diff --git a/src/com/android/contacts/drawer/DrawerAdapter.java b/src/com/android/contacts/drawer/DrawerAdapter.java
index 0c8423a..b5a1ea7 100644
--- a/src/com/android/contacts/drawer/DrawerAdapter.java
+++ b/src/com/android/contacts/drawer/DrawerAdapter.java
@@ -271,16 +271,16 @@
result.setId(item.id);
}
final ContactListFilter account = item.account;
+ final AccountDisplayInfo displayableAccount =
+ mAccountDisplayFactory.getAccountDisplayInfoFor(item.account);
final TextView textView = ((TextView) result.findViewById(R.id.title));
- textView.setText(account.accountName);
+ textView.setText(displayableAccount.getNameLabel());
final boolean activated = account.equals(mSelectedAccount)
&& mSelectedView == ContactsView.ACCOUNT_VIEW;
textView.setTextAppearance(mActivity, activated
? TYPEFACE_STYLE_ACTIVATE : TYPEFACE_STYLE_INACTIVE);
final ImageView icon = (ImageView) result.findViewById(R.id.icon);
- final AccountDisplayInfo displayableAccount =
- mAccountDisplayFactory.getAccountDisplayInfoFor(item.account);
icon.setScaleType(ImageView.ScaleType.FIT_CENTER);
icon.setImageDrawable(displayableAccount.getIcon());
diff --git a/src/com/android/contacts/model/AccountTypeManager.java b/src/com/android/contacts/model/AccountTypeManager.java
index 34f9cb2..196e67f 100644
--- a/src/com/android/contacts/model/AccountTypeManager.java
+++ b/src/com/android/contacts/model/AccountTypeManager.java
@@ -405,28 +405,26 @@
ContentResolver.addStatusChangeListener(ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS, this);
- if (Flags.getInstance().getBoolean(Experiments.CP2_DEVICE_ACCOUNT_DETECTION_ENABLED)) {
- // Observe changes to RAW_CONTACTS so that we will update the list of "Device" accounts
- // if a new device contact is added.
- mContext.getContentResolver().registerContentObserver(
- ContactsContract.RawContacts.CONTENT_URI, /* notifyDescendents */ true,
- new ContentObserver(mMainThreadHandler) {
- @Override
- public boolean deliverSelfNotifications() {
- return true;
- }
+ // Observe changes to RAW_CONTACTS so that we will update the list of "Device" accounts
+ // if a new device contact is added or removed.
+ mContext.getContentResolver().registerContentObserver(
+ ContactsContract.RawContacts.CONTENT_URI, /* notifyDescendents */ true,
+ new ContentObserver(mMainThreadHandler) {
+ @Override
+ public boolean deliverSelfNotifications() {
+ return true;
+ }
- @Override
- public void onChange(boolean selfChange) {
- reloadLocalAccounts();
- }
+ @Override
+ public void onChange(boolean selfChange) {
+ reloadLocalAccounts();
+ }
- @Override
- public void onChange(boolean selfChange, Uri uri) {
- reloadLocalAccounts();
- }
- });
- }
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ reloadLocalAccounts();
+ }
+ });
loadAccountTypes();
}
diff --git a/src/com/android/contacts/model/DeviceLocalAccountLocator.java b/src/com/android/contacts/model/DeviceLocalAccountLocator.java
index 4281de9..2b987d3 100644
--- a/src/com/android/contacts/model/DeviceLocalAccountLocator.java
+++ b/src/com/android/contacts/model/DeviceLocalAccountLocator.java
@@ -18,6 +18,8 @@
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;
+import android.database.Cursor;
+import android.provider.ContactsContract;
import com.android.contacts.Experiments;
import com.android.contacts.model.account.AccountWithDataSet;
@@ -69,23 +71,25 @@
return new Cp2DeviceLocalAccountLocator(context.getContentResolver(),
ObjectFactory.getDeviceLocalAccountTypeFactory(context), knownTypes);
} else {
- return new NexusDeviceAccountLocator(accountManager);
+ return new NexusDeviceAccountLocator(context, accountManager);
}
}
/**
* On Nexus the "device" account uses "null" values for the account name and type columns
*
- * <p>However, the focus sync adapter automatically migrates contacts from this null
- * account to a Google account if one exists. Hence, the device account should be returned
- * only when there is no Google Account added
+ * <p>However, the focus sync adapter migrates contacts from this null account to a Google
+ * account if one exists. Hence, the device account should be returned only when there is no
+ * Google Account added or when there already exists contacts in the null account.
* </p>
*/
public static class NexusDeviceAccountLocator extends DeviceLocalAccountLocator {
-
+ private final Context mContext;
private final AccountManager mAccountManager;
- public NexusDeviceAccountLocator(AccountManager accountManager) {
+
+ public NexusDeviceAccountLocator(Context context, AccountManager accountManager) {
+ mContext = context;
mAccountManager = accountManager;
}
@@ -95,7 +99,7 @@
final Account[] accounts = mAccountManager
.getAccountsByType(GoogleAccountType.ACCOUNT_TYPE);
- if (accounts.length > 0) {
+ if (accounts.length > 0 && !AccountWithDataSet.getNullAccount().hasData(mContext)) {
return Collections.emptyList();
} else {
return Collections.singletonList(AccountWithDataSet.getNullAccount());
diff --git a/tests/Android.bp b/tests/Android.bp
index 7754fd4..2e1d47b 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -22,4 +22,6 @@
"android.test.base.stubs",
"android.test.mock.stubs",
],
+
+ test_suites: ["general-tests"],
}
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
new file mode 100644
index 0000000..5665490
--- /dev/null
+++ b/tests/AndroidTest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<configuration description="Runs Tests for Contacts.">
+ <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
+ <option name="cleanup-apks" value="true" />
+ <option name="test-file-name" value="ContactsTests.apk" />
+ </target_preparer>
+
+ <option name="test-suite-tag" value="apct" />
+ <option name="test-tag" value="ContactsTests" />
+ <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
+ <option name="package" value="com.android.contacts.tests" />
+ <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
+ <option name="hidden-api-checks" value="false"/>
+ </test>
+</configuration>
diff --git a/tests/README b/tests/README
new file mode 100644
index 0000000..43d905c
--- /dev/null
+++ b/tests/README
@@ -0,0 +1,13 @@
+# Running tests
+
+Build and install Contacts.apk
+
+Grant Contacts permissions to Contacts.apk
+
+Run
+```shell
+$ atest ContactsTests
+```
+
+More information can be found at
+https://source.android.com/compatibility/tests/development/atest
diff --git a/tests/src/com/android/contacts/activities/SimImportActivityTest.java b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
index 9c90426..7069ef1 100644
--- a/tests/src/com/android/contacts/activities/SimImportActivityTest.java
+++ b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
@@ -327,9 +327,9 @@
mDevice.findObject(By.textContains(targetAccount.name)).click();
mDevice.waitForIdle();
- assertTrue(mDevice.wait(Until.hasObject(By.text("Import One").checked(false).enabled(false)), TIMEOUT));
- assertTrue(mDevice.hasObject(By.text("Import Three").checked(false).enabled(false)));
- assertTrue(mDevice.hasObject(By.text("Import Six").checked(false).enabled(false)));
+ assertTrue(mDevice.wait(Until.hasObject(By.text("Import One").checked(false)), TIMEOUT));
+ assertTrue(mDevice.hasObject(By.text("Import Three").checked(false)));
+ assertTrue(mDevice.hasObject(By.text("Import Six").checked(false)));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
contactsProviderClient.close();
diff --git a/tests/src/com/android/contacts/model/AccountTypeManagerTest.java b/tests/src/com/android/contacts/model/AccountTypeManagerTest.java
index 982517b..dfcb390 100644
--- a/tests/src/com/android/contacts/model/AccountTypeManagerTest.java
+++ b/tests/src/com/android/contacts/model/AccountTypeManagerTest.java
@@ -96,7 +96,7 @@
}
public void testGetDefaultAccount_NoAccounts_DefaultPreferenceSet() {
- when(mPrefs.getString(Mockito.anyString(), Mockito.anyString())).thenReturn(
+ when(mPrefs.getString(Mockito.anyString(), Mockito.any())).thenReturn(
getDefaultAccountPreference("name1", GoogleAccountType.ACCOUNT_TYPE));
assertNull(getDefaultGoogleAccountName());
}
@@ -108,21 +108,21 @@
public void testGetDefaultAccount_DefaultAccountPreferenceSet() {
when(mAccountManager.getAccountsByType(Mockito.anyString())).thenReturn(ACCOUNTS);
- when(mPrefs.getString(Mockito.anyString(), Mockito.anyString())).thenReturn(
+ when(mPrefs.getString(Mockito.anyString(), Mockito.any())).thenReturn(
getDefaultAccountPreference("name2", GoogleAccountType.ACCOUNT_TYPE));
assertEquals("name2", getDefaultGoogleAccountName());
}
public void testGetDefaultAccount_DefaultAccountPreferenceSet_NonGoogleAccountType() {
when(mAccountManager.getAccountsByType(Mockito.anyString())).thenReturn(ACCOUNTS);
- when(mPrefs.getString(Mockito.anyString(), Mockito.anyString())).thenReturn(
+ when(mPrefs.getString(Mockito.anyString(), Mockito.any())).thenReturn(
getDefaultAccountPreference("name3", "type3"));
assertEquals("name1", getDefaultGoogleAccountName());
}
public void testGetDefaultAccount_DefaultAccountPreferenceSet_UnknownName() {
when(mAccountManager.getAccountsByType(Mockito.anyString())).thenReturn(ACCOUNTS);
- when(mPrefs.getString(Mockito.anyString(), Mockito.anyString())).thenReturn(
+ when(mPrefs.getString(Mockito.anyString(), Mockito.any())).thenReturn(
getDefaultAccountPreference("name4",GoogleAccountType.ACCOUNT_TYPE));
assertEquals("name1", getDefaultGoogleAccountName());
}
diff --git a/tests/src/com/android/contacts/preference/ContactsPreferencesTest.java b/tests/src/com/android/contacts/preference/ContactsPreferencesTest.java
index 998f385..d7f34ee 100644
--- a/tests/src/com/android/contacts/preference/ContactsPreferencesTest.java
+++ b/tests/src/com/android/contacts/preference/ContactsPreferencesTest.java
@@ -56,7 +56,7 @@
Mockito.when(mResources.getString(Mockito.anyInt()))
.thenReturn(ACCOUNT_KEY); // contact_editor_default_account_key
- Mockito.when(mContext.getSharedPreferences(Mockito.anyString(), Mockito.anyInt()))
+ Mockito.when(mContext.getSharedPreferences(Mockito.any(), Mockito.anyInt()))
.thenReturn(mSharedPreferences);
Mockito.when(mSharedPreferences.contains(ContactsPreferences.SORT_ORDER_KEY))
.thenReturn(true);
@@ -184,7 +184,7 @@
mContactsPreferences = new ContactsPreferences(mContext,
/* isDefaultAccountUserChangeable */ true);
- Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
+ Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.any()))
.thenReturn(new AccountWithDataSet("name1", "type1", "dataset1").stringify(),
new AccountWithDataSet("name2", "type2", "dataset2").stringify());
@@ -199,7 +199,7 @@
public void testShouldShowAccountChangedNotificationIfAccountNotSaved() {
mContactsPreferences = new ContactsPreferences(mContext,
/* isDefaultAccountUserChangeable */ true);
- Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
+ Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.any()))
.thenReturn(null);
assertTrue("Should prompt to change default if no default is saved",
@@ -211,7 +211,7 @@
public void testShouldShowAccountChangedNotification() {
mContactsPreferences = new ContactsPreferences(mContext,
/* isDefaultAccountUserChangeable */ true);
- Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
+ Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.any()))
.thenReturn(new AccountWithDataSet("name", "type", "dataset").stringify());
assertFalse("Should not prompt to change default if current default exists",
@@ -228,7 +228,7 @@
public void testShouldShowAccountChangedNotificationWhenThereIsOneAccount() {
mContactsPreferences = new ContactsPreferences(mContext,
/* isDefaultAccountUserChangeable */ true);
- Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
+ Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.any()))
.thenReturn(null);
// Normally we would prompt because there is no default set but if there is just one
diff --git a/tests/src/com/android/contacts/test/mocks/ForwardingContentProvider.java b/tests/src/com/android/contacts/test/mocks/ForwardingContentProvider.java
index 993d0b7..a08bff9 100644
--- a/tests/src/com/android/contacts/test/mocks/ForwardingContentProvider.java
+++ b/tests/src/com/android/contacts/test/mocks/ForwardingContentProvider.java
@@ -23,8 +23,10 @@
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.net.Uri;
+import android.os.Binder;
import android.os.Bundle;
import android.os.CancellationSignal;
+import android.os.IBinder;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import androidx.annotation.Nullable;
@@ -203,4 +205,8 @@
throw new RuntimeException(e);
}
}
+
+ public IBinder getIContentProviderBinder() {
+ return new Binder();
+ }
}