diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index a773e3983d..64c4adaf15 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -81,6 +81,11 @@ android {
}
}
+ // Uncomment to add the tests folder to the Gradle build path
+ // sourceSets.getByName("androidTest") {
+ // java.directories.add("../tests/src")
+ // }
+
lint {
abortOnError = false
disable += setOf("UnusedResources", "UnusedIds")
diff --git a/app/src/test/kotlin/com/android/contacts/ui/settings/screen/SettingsEffectHandlerImplTest.kt b/app/src/test/kotlin/com/android/contacts/ui/settings/screen/SettingsEffectHandlerImplTest.kt
index 0f22770aab..e3a0438031 100644
--- a/app/src/test/kotlin/com/android/contacts/ui/settings/screen/SettingsEffectHandlerImplTest.kt
+++ b/app/src/test/kotlin/com/android/contacts/ui/settings/screen/SettingsEffectHandlerImplTest.kt
@@ -12,7 +12,6 @@ import android.provider.Settings
import android.telecom.TelecomManager
import androidx.activity.result.ActivityResultLauncher
import com.android.contacts.activities.LicenseActivity
-import com.android.contacts.compat.TelecomManagerUtil
import com.android.contacts.interactions.ExportDialogFragment
import com.android.contacts.interactions.ImportDialogFragment
import com.android.contacts.list.AccountFilterActivity
@@ -54,7 +53,6 @@ internal class SettingsEffectHandlerImplTest {
@Before
fun setUp() {
mockkStatic(ImplicitIntentsUtil::class)
- mockkStatic(TelecomManagerUtil::class)
mockkStatic(ImportDialogFragment::class)
mockkStatic(ExportDialogFragment::class)
every { activity.fragmentManager } returns fragmentManager
@@ -153,7 +151,7 @@ internal class SettingsEffectHandlerImplTest {
@Test
fun openBlockedNumbers_startsTheTelecomScreen() {
val blockedNumbersIntent = Intent("blocked_numbers")
- every { TelecomManagerUtil.createManageBlockedNumbersIntent(telecomManager) }
+ every { telecomManager.createManageBlockedNumbersIntent() }
.returns(blockedNumbersIntent)
effectHandler.handle(Effect.OpenBlockedNumbers)
@@ -163,7 +161,7 @@ internal class SettingsEffectHandlerImplTest {
@Test
fun openBlockedNumbers_whenTelecomHasNoIntent_startsNothing() {
- every { TelecomManagerUtil.createManageBlockedNumbersIntent(telecomManager) }
+ every { telecomManager.createManageBlockedNumbersIntent() }
.returns(null)
effectHandler.handle(Effect.OpenBlockedNumbers)
diff --git a/proguard.flags b/proguard.flags
index cdd4a9fb8e..8e75d18ae3 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -15,7 +15,6 @@
}
# Needed for tests
--keep class com.android.contacts.compat.CompatUtils { *; }
-keep class com.android.contacts.Collapser { *; }
-keep class com.android.contacts.ContactPhotoManager { *; }
-keep class com.android.contacts.ContactsApplication { *; }
@@ -54,10 +53,8 @@
-keep class com.android.contacts.model.account.SimAccountType { *; }
-keep class com.android.contacts.model.AccountTypeManager { *; }
-keep class com.android.contacts.model.AccountTypeManagerImpl { *; }
--keep class com.android.contacts.model.BuilderWrapper { *; }
-keep class com.android.contacts.model.Contact { *; }
-keep class com.android.contacts.model.ContactLoader { *; }
--keep class com.android.contacts.model.CPOWrapper { *; }
-keep class com.android.contacts.model.dataitem.DataItem { *; }
-keep class com.android.contacts.model.dataitem.DataKind { *; }
-keep class com.android.contacts.model.dataitem.EmailDataItem { *; }
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index b4dc881bc3..0ce3a6c2db 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -84,8 +84,6 @@
"Vee hierdie kontak uit?""Vee uit""Die kontak bestaan nie."
- "Kontak is by Tuisskerm gevoeg."
- "%s is by Tuisskerm gevoeg.""Geen prente is beskikbaar op die toestel nie.""Kontakfoto""Gepasmaakte etiketnaam"
@@ -251,7 +249,6 @@
"Bel werkroeper""Bel %s""Bel MMS"
- "%s (Bel)""SMS %s""Teks - tuis""Teks - selfoon"
@@ -273,7 +270,6 @@
"Teks - werkroeper""Teks %s""Teks - MMS"
- "%s (Boodskap)""Maak video-oproep""Vee dikwels-gebruikte kontakte uit?""Jy gaan die lys van dikwels gebruikte kontakte in die Kontakte- en Foon-app uitvee en e-posapps dwing om jou adresvoorkeure van nuuts af te leer."
@@ -484,7 +480,6 @@
"Veranderinge wat jy aan alle programme en rekeninge maak, nie net Google Kontakte nie, sal tussen die web en jou toestelle op datum gehou word.""Skakel aan""Geen verbinding nie"
- "SIM""Wys meer""Klaar SIM-kaart ingevoer""Kon nie invoer nie"
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 01a09bd83f..cd49b9b5e7 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -84,8 +84,6 @@
"ይህ እውቂያ ይሰረዝ?""ሰርዝ""ዕውቅያው የለም።"
- "እውቂያ ወደ መነሻ ማያ ገፅ ታክሏል።"
- "%s ወደ መነሻ ማያ ገፅ ታክሏል።""በመሣሪያው ላይ ፎቶዎች የሉም።""የዕውቂያ ፎቶ""ብጁ መሰየሚያ ስም"
@@ -251,7 +249,6 @@
"የሥራ ጥሪ ምልክት ማድረጊያ""ጥሪ %s""MMS ጥሪ"
- "%s (ጥሪ)""ጽሁፍ %s""የፅሁፍመነሻ""የ ተንቀሳቃሽፅሁፍ"
@@ -273,7 +270,6 @@
"የፅሁፍ ሥራ ምልክት ማድረጊያ""ጽሁፍ %s""የMMS ጽሁፍ"
- "%s (መልዕክት)""የቪዲዮ ጥሪ ያድርጉ""በተደጋጋሚ ያገኝዋቸው ይጽዱ?""በእውቂያዎች እና በስልክ መተግበሪያዎች ውስጥ በተደጋጋሚ ያገኟቸውን እውቂያዎች ዝርዝር አጽድተው የኢሜይል መተግበሪያዎች የአድራሻ አያያዝ ምርጫዎችዎን ከባዶ ተነስተው እንዲያውቁ ያስገድዱዋቸዋል።"
@@ -484,7 +480,6 @@
"በGoogle እውቂያዎች ላይ ብቻ ሳይሆን፣ በሁሉም መተግበሪያዎች እና መለያዎች ላይ የሚያደርጓቸው ለውጦች፣ በድር እና በመሳሪያዎችዎ መካከል እንደዘመኑ ይቆያሉ።""አብራ""ምንም ግንኙነት የለም"
- "ሲም""ተጨማሪ አሳይ""ሲም ካርድ ማምጣት ጨርሷል""ማስመጣት አልተሳካም"
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index c712ec45ac..d2728ab557 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -84,8 +84,6 @@
"هل تريد حذف جهة الاتصال هذه؟""حذف""جهة الاتصال غير موجودة."
- "تمت إضافة جهة الاتصال إلى الشاشة الرئيسية."
- "تمت إضافة %s إلى الشاشة الرئيسية.""لا تتوفر أي صور على الهاتف.""صورة جهة الاتصال""اسم تصنيف مخصص"
@@ -251,7 +249,6 @@
"الاتصال بجهاز نداء العمل""الاتصال على %s""اتصال بهاتف رسائل الوسائط المتعددة"
- "%s (اتصال)""إرسال رسال نصية إلى %s""إرسال رسالة نصية إلى هاتف منزلي""إرسال رسالة نصية إلى جوال"
@@ -273,7 +270,6 @@
"إرسال رسالة نصية قصيرة على جهاز نداء العمل""إرسال رسالة نصية إلى %s""إرسال رسالة وسائط متعددة"
- "%s (رسالة)""إجراء مكالمة فيديو""هل تريد محو قائمة من يُتصل بهم كثيرًا؟""ستمحو قائمة الأشخاص الذين يتم التواصل معهم كثيرًا في تطبيقي \"جهات الاتصال\" و\"الهاتف\"، وستفرض بالتالي على تطبيقات البريد الإلكتروني التعرف مجدّدًا على جهات الاتصال المفضّلة لديك."
@@ -484,7 +480,6 @@
"سيتم إعادة تحميل التغييرات التي أجريتها على كل التطبيقات والحسابات، وليس فقط جهات اتصال Google، بين الويب وأجهزتك.""تشغيل""لا اتصال"
- "شريحة SIM""عرض المزيد""انتهى استيراد شريحة SIM""تعذّر الاستيراد"
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 3256089f16..763f367d7b 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -84,8 +84,6 @@
"এই সম্পৰ্কটো মচিবনে?""মচক""এই সম্পৰ্কটো নাই।"
- "সম্পৰ্কক গৃহ স্ক্ৰীনত যোগ কৰা হ’ল।"
- "%sক গৃহ স্ক্ৰীনত যোগ কৰা হ’ল।""এই ডিভাইচত কোনো চিত্ৰ নাই।""সম্পৰ্ক ব্যক্তিৰ ফট\'""উপযোগিতা অনুসৰি লেবেলৰ নাম"
@@ -251,7 +249,6 @@
"কৰ্মস্থানৰ পেজাৰৰ নম্বৰলৈ কল কৰক""%sত কল কৰক""এমএমএছ নম্বৰত কল কৰক"
- "%sক (কল কৰক)""বাৰ্তা পঠিয়াওক %s""ঘৰৰ নম্বৰলৈ বাৰ্তা পঠিয়াওক""ম’বাইল নম্বৰলৈ বাৰ্তা পঠিয়াওক"
@@ -273,7 +270,6 @@
"কৰ্মস্থানৰ পেজাৰ নম্বৰত বাৰ্তা পঠিয়াওক""বাৰ্তা পঠিয়াওক %s""এমএমএছ নম্বৰত বাৰ্তা পঠাওক"
- "%s (বাৰ্তা)""ভিডিঅ\' কল কৰক""সঘনাই যোগাযোগ কৰা সূচী মচিবনে?""আপুনি কন্টেক্ট আৰু ফ\'ন এপৰ সঘনাই যোগাযোগ কৰা সূচীটো মচিব আৰু ইমেইল এপসমূহক আপোনাৰ ঠিকনাৰ অগ্ৰাধিকাৰসমূহ আৰম্ভণিৰে পৰা শিকিবলৈ বাধ্য কৰাব।"
@@ -484,7 +480,6 @@
"আপুনি Google কনটেক্টৰ উপৰিও সকলো এপ্ আৰু একাউণ্টত কৰা পৰিবৰ্তনবোৰ ৱেব আৰু আপোনাৰ ডিভাইচবোৰত আপ টু ডেট ৰখা হ\'ব।""অন কৰক""ইণ্টাৰনেট নাই"
- "ছিম""অধিক দেখুৱাওক""ছিম কাৰ্ডৰ আমদানি কৰা কাৰ্য সম্পূৰ্ণ হ’ল""আমদানি কৰিব পৰা নগ\'ল"
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 3f207cfed7..f82305715f 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -84,8 +84,6 @@
"Bu kontakt silinsin?""Silin""Kontakt mövcud deyil."
- "Kontakt Əsas ekrana elavə edilib."
- "%s Əsas ekrana əlavə edilib.""Cihazda şəkil yoxdur.""Kontakt fotosu""Fərdi etiket adı"
@@ -251,7 +249,6 @@
"İş peycerinə zəng edin""%s nömrəsinə zəng edin""MMS Zəng"
- "%s (Zəng)""%s nömrəsinə məktub göndərin""Ev mətni""Mobil mətn"
@@ -273,7 +270,6 @@
"İş peyceri mətni""Mətn %s""MMS nömrəsinə mesaj"
- "%s (Mesaj)""Video zəng edin""Tez-tez ünsiyyət qurulanlar silinsin?""Əlaqələr və Telefon proqramlarında tez-tez əlaqə saxlanılanların siyahısını siləcəksiniz və fraqmentdən ünvanlama seçimlərinizi öyrənmək üçün e-poçt proqramlarını məcbur edəcəksiniz."
@@ -484,7 +480,6 @@
"Sadəcə Google Kontaktlar deyil, bütün tətbiq və hesablarda edəcəyiniz dəyişikliklər veb və cihaz arasında saxlanacaq.""Aktiv edin""Bağlantı yoxdur"
- "SIM""Daha çox göstərin""SIM kartın importu tamamlandı""İmport alınmadı"
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 826f7ecbb3..2c7920cc4c 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -84,8 +84,6 @@
"Želite li da izbrišete ovaj kontakt?""Izbriši""Kontakt ne postoji."
- "Kontakt je dodat na početni ekran."
- "Kontakt %s je dodat na početni ekran.""Na uređaju nije pronađena nijedna slika.""Slika kontakta""Naziv prilagođene oznake"
@@ -251,7 +249,6 @@
"Pozovi poslovni pejdžer""Pozovi %s""Pozovi MMS"
- "%s (pozovi)""Pošalji SMS na %s""Pošalji SMS na kućni telefon""Pošalji SMS na mobilni telefon"
@@ -273,7 +270,6 @@
"Pošalji SMS na pejdžer""Pošalji SMS na %s""Pošalji SMS na MMS"
- "%s (pošalji SMS)""Uputite video poziv""Brisanje često kontaktiranih?""Obrisaćete listu često kontaktiranih u aplikacijama Kontakti i Telefon, pa će imejl aplikacije morati iz početka da prikupe informacije o adresiranju."
@@ -484,7 +480,6 @@
"Na vebu i uređajima će se redovno ažurirati promene koje unosite u svim aplikacijama i na svim nalozima, a ne samo u Google kontaktima.""Uključi""Veza nije uspostavljena"
- "SIM""Prikaži više""Uvoz sa SIM kartice je završen""Uvoz nije uspeo"
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index a49f668f7a..3bb79f37f7 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -84,8 +84,6 @@
"Выдаліць гэты кантакт?""Выдаліць""Кантакт не існуе."
- "Кантакт дададзены на Галоўны экран."
- "%s дададзены на Галоўны экран.""На прыладзе няма даступных малюнкаў.""Фота кантакта""Імя карыстальніцкага цэтліка"
@@ -251,7 +249,6 @@
"Выклікаць працоўны пэйджар""Выклікаць %s""Выклік MMS"
- "%s (Выклікаць)""Адправіць SMS на %s""Тэкставае паведамленне на хатні тэлефон""Тэкставае паведамленне на мабільны тэлефон"
@@ -273,7 +270,6 @@
"Тэкставае паведамленне на працоўны пэйджар""Напiсаць тэкставае паведамленне: %s""Паведамленне MMS"
- "%s (Паведамленне)""Зрабіць відэавыклік""Выдалiць частыя кантакты?""Спіс найчасцей ужываных кантактаў праграм \"Кантакты\" i \"Тэлефон\" ачысціцца, а параметры адрасацыі паштовых праграм абнуляцца."
@@ -484,7 +480,6 @@
"Змяненні, унесеныя вамі ў іншых праграмах і ўліковых запісах (не толькі ў Google Кантактах), будуць сінхранізавацца паміж вэб-інтэрфейсам і вашымі прыладамі.""Уключыць""Няма падключэння"
- "SIM-карта""Яшчэ""Імпартаванне SIM-карты скончана""Не ўдалося імпартаваць"
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 4eaa6ca4d9..c786f32aec 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -84,8 +84,6 @@
"Да се изтрие ли този контакт?""Изтриване""Контактът не съществува."
- "Контактът е добавен към началния екран."
- "Добавихте %s към началния екран.""В устройството няма снимки.""Снимка на контакта""Персонализирано име на етикет"
@@ -251,7 +249,6 @@
"Обаждане на служебен пейджър""Обаждане на %s""Обаждане на MMS"
- "%s (обаждане)""SMS до %s""Изпращaне на SMS на домашен""Изпращaне на SMS на мобилен"
@@ -273,7 +270,6 @@
"Изпращaне на SMS на служебен пейджър""Изпращане на SMS на %s""Изпращане на SMS на MMS"
- "%s (изпращане на съобщение)""Провеждане на видеообаждане""Да се изчистят ли често търсените?""Ще изчистите списъка с често търсените в приложенията Контакти и Телефон и ще принудите приложенията за електронна поща да научат отново предпочитанията ви за адресите."
@@ -484,7 +480,6 @@
"Промените ви във всички приложения и профили, не само в контактите в Google, ще се поддържат актуални в устройствата ви и в мрежата.""Включване""Няма връзка"
- "SIM карта""Показване на още""Импортирането от SIM картата завърши""Импортирането не бе успешно"
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 625aef561a..f0341d4dbe 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -84,8 +84,6 @@
"এই পরিচিতিটি মুছবেন?""মুছুন""এই পরিচিতিটি বিদ্যমান নয়৷"
- "হোম স্ক্রীনে পরিচিতি যোগ করা হযেছে৷"
- "হোম স্ক্রীনে %s যোগ করা হয়েছে৷""ডিভাইসে কোনো ছবি নেই৷""পরিচিতির ফটো""কাস্টম লেবেল নাম"
@@ -251,7 +249,6 @@
"অফিসের পেজার নম্বরে কল করুন""%s নম্বরে কল করুন""MMS নম্বরে কল করুন"
- "%s (কল)""%s নম্বরে পাঠ্য বার্তা পাঠান""ঘরের ফোন নম্বরে পাঠ্য বার্তা পাঠান""মোবাইল নম্বরে পাঠ্য বার্তা পাঠান"
@@ -273,7 +270,6 @@
"কর্মক্ষেত্রের পেজারে পাঠ্য বার্তা পাঠান""%s নম্বরে পাঠ্য বার্তা পাঠান""MMS ফোন নম্বরে পাঠ্য বার্তা পাঠান"
- "%s (বার্তা)""ভিডিও কল করুন""ঘন ঘন যোগাযোগ করা হয়েছে এমন পরিচিতিগুলিকে সাফ করবেন?""পরিচিতি এবং ফোন অ্যাপ্লিকেশানগুলি থেকে আপনি ঘন ঘন যোগাযোগ করা পরিচিতির তালিকা সাফ করবেন, এবং ইমেল অ্যাপ্লিকেশানগুলিকে আবার শুরু থেকে আপনার ঠিকানা অভিরুচি জানতে বাধ্য করবেন৷"
@@ -484,7 +480,6 @@
"Google পরিচিতিগুলি ছাড়াও, সমস্ত অ্যাপ এবং অ্যাকাউন্টে আপনার করা পরিবর্তনগুলি, ওয়েব এবং আপনার ডিভাইসগুলির মধ্যে আপ টু ডেট রাখা হবে।""চালু করুন""কোনও কানেকশন নেই"
- "সিম""আরও দেখান""সিম কার্ড আমদানি করা সমাপ্ত হয়েছে""আমদানি ব্যর্থ হয়েছে"
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index a145823ddf..bbbb305450 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -84,8 +84,6 @@
"Izbrisati ovaj kontakt?""Izbriši""Kontakt ne postoji."
- "Kontakt je dodan na Početni ekran."
- "Kontakt %s je dodan na Početni ekran.""Na uređaju nema dostupnih slika.""Fotografija kontakta""Prilagođeni naziv oznake"
@@ -251,7 +249,6 @@
"Pozovi poslovni pejdžer""Pozovi %s""Pozovi MMS"
- "%s (Poziv)""Pošalji poruku na %s""Pošalji tekstualnu poruku na kućni broj""Pošalji tekstualnu poruku na mobilni"
@@ -273,7 +270,6 @@
"Pošalji tekstualnu poruku na poslovni pejdžer""Pošalji tekstualnu poruku %s""Pošalji tekstualnu poruku na MMS broj"
- "%s (Poruka)""Uputi video poziv""Obrisati često kontaktirane osobe?""Obrisat ćete listu često kontaktiranih osoba u aplikacijama Kontakti i Telefon, pa će aplikacije za e-poštu morati ispočetka učiti vaše postavke adresa."
@@ -484,7 +480,6 @@
"Promjene koje načinite u svim aplikacijama i računima, ne samo u Google Kontaktima, bit će ažurirani i na internetu i na vašim uređajima.""Uključi""Niste povezani na mrežu"
- "SIM""Prikaži više""Uvoz sa SIM kartice je dovršen""Uvoz nije uspio"
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 47ed7af07e..8d7e13812f 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -84,8 +84,6 @@
"Vols suprimir aquest contacte?""Suprimeix""El contacte no existeix."
- "S\'ha afegit el contacte a la pantalla d\'inici."
- "S\'ha afegit %s a la pantalla d\'inici.""No hi ha cap imatge disponible al dispositiu.""Foto de contacte""Nom de camp personalitzat"
@@ -251,7 +249,6 @@
"Truca al cercapersones de la feina""Truca a: %s""Truca al número MMS"
- "%s (truca-li)""Envia un missatge de text a: %s""Envia un SMS al número particular""Envia un SMS al mòbil"
@@ -273,7 +270,6 @@
"Envia un SMS al cercapersones de la feina""Envia un SMS a %s""Envia un MMS"
- "%s (envia-li un missatge)""Estableix una videotrucada""Vols esborrar contac. més freqüents?""S\'esborrarà la llista de contactes més freqüents a les aplicacions Contactes i Telèfon i es forçarà les aplicacions de correu electrònic a obtenir informació nova sobre les teves preferències pel que fa a adreces."
@@ -484,7 +480,6 @@
"Els canvis que facis a les aplicacions i als comptes, i no només als Contactes de Google, es mantindran actualitzats al web i als teus dispositius.""Activa""Sense connexió"
- "SIM""Mostra\'n més""Importació de la targeta SIM completada""La importació ha fallat"
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index d80a877f7f..b193c69636 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -84,8 +84,6 @@
"Chcete tento kontakt smazat?""Smazat""Kontakt neexistuje."
- "Kontakt byl přidán na plochu."
- "Kontakt %s byl přidán na plochu.""V zařízení nejsou žádné fotky.""Fotografie kontaktu""Vlastní název štítku"
@@ -251,7 +249,6 @@
"Volat na pracovní pager""Zavolat na číslo %s""Volat MMS"
- "%s (Zavolat)""Poslat SMS na číslo %s""SMS domů""SMS na mobil"
@@ -273,7 +270,6 @@
"Odeslat zprávu na pracovní pager""Odeslat zprávu asistentovi %s""SMS na číslo MMS"
- "%s (Poslat zprávu)""Zahájit videohovor""Vymazat často kontaktované osoby?""Vymažete seznam často kontaktovaných osob v aplikacích Kontakty a Telefon a e-mailové aplikace budou muset nastavení adresátů vytvořit znovu."
@@ -484,7 +480,6 @@
"Změny, které provedete ve všech aplikacích a účtech (ne jen v Kontaktech Google), budou aktualizovány mezi webem a vašimi zařízeními.""Zapnout""Nejste připojeni"
- "SIM karta""Zobrazit více""Import ze SIM karty byl dokončen""Import se nezdařil"
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 90d568c7e3..4a7bec7aba 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -84,8 +84,6 @@
"Vil du slette denne kontakt?""Slet""Kontaktpersonen findes ikke."
- "Kontaktpersonen blev føjet til startskærmen."
- "%s blev føjet til startskærmen.""Der er ingen tilgængelige billeder på enheden.""Billede af kontakt""Navn på tilpasset etiket"
@@ -251,7 +249,6 @@
"Ring til personsøger på arbejdet""Ring til %s""Ring til mms"
- "%s (ring op)""Send en sms til %s""Sms til hjem""Sms til mobil"
@@ -273,7 +270,6 @@
"Send sms til personsøger til arbejdet""Send sms til %s""Sms til mms"
- "%s (send besked)""Foretag videoopkald""Vil du rydde de ofte kontaktede?""Hvis du gør dette, rydder du listen over personer, som du ofte kontakter, i dine apps Kontakter og Telefon. Du vil samtidig tvinge mailapps til at lære dine adressepræferencer fra bunden."
@@ -484,7 +480,6 @@
"De ændringer, du foretager af alle apps og konti og ikke kun Google Kontakter, holdes opdateret mellem nettet og dine enheder.""Slå til""Der er ingen forbindelse"
- "SIM-kort""Vis flere""SIM-kortet blev importeret""Importen mislykkedes"
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 5e74ab5c76..e68d4d4971 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -84,8 +84,6 @@
"Diesen Kontakt löschen?""Löschen""Dieser Kontakt existiert nicht."
- "Kontakt zu Startbildschirm hinzugefügt."
- "%s zu Startbildschirm hinzugefügt.""Auf dem Gerät sind keine Bilder verfügbar.""Kontaktbild""Name des benutzerdef. Labels"
@@ -251,7 +249,6 @@
"Anruf Pager (geschäftl.)""%s anrufen""Anruf (MMS)"
- "%s (Anruf)""SMS an %s senden""SMS (privat)""Text (mobil)"
@@ -273,7 +270,6 @@
"SMS an Pager (geschäftl.)""SMS an %s""Text (MMS)"
- "%s (Nachricht)""Videoanruf starten""Liste \"Häufig kontaktiert\" löschen?""Du löschst die Liste \"Häufig kontaktiert\" in den Apps \"Kontakte\" und \"Telefon\" und bewirkst so ein Zurücksetzen deiner Adresseinstellungen für E-Mail-Apps."
@@ -484,7 +480,6 @@
"Änderungen, die du nicht nur in Google Kontakte, sondern in allen Apps und Konten vornimmst, werden zwischen dem Web und deinen Geräten synchronisiert.""Aktivieren""Keine Verbindung"
- "SIM""Mehr anzeigen""Importieren der SIM-Karte abgeschlossen""Fehler beim Importieren"
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index b79a940ffb..3d9bfc35d3 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -84,8 +84,6 @@
"Να διαγραφεί αυτή η επαφή;""Διαγραφή""Η επαφή δεν υπάρχει."
- "Η επαφή προστέθηκε στην Αρχική οθόνη."
- "Ο/Η %s προστέθηκε στην Αρχική οθόνη.""Δεν υπάρχουν διαθέσιμες εικόνες στη συσκευή.""Φωτογραφία επαφής""Προσαρμοσμένο όνομα ετικέτας"
@@ -251,7 +249,6 @@
"Κλήση βομβητή εργασίας""Κλήση προς %s""Κλήση MMS"
- "%s (Κλήση)""Αποστολή SMS προς %s""Αποστολή μηνύματος κειμένου προς οικία""Αποστολή μηνύματος κειμένου προς κινητή συσκευή"
@@ -273,7 +270,6 @@
"Αποστολή μηνύματος κειμένου προς βομβητή εργασίας""Αποστολή μηνύματος κειμένου προς %s""Αποστολή μηνύματος κειμένου ως MMS"
- "%s (Μήνυμα)""Πραγματοποίηση βιντεοκλήσης""Διαγραφή ατόμων με συχνή επικοινωνία;""Θα διαγράψετε τη λίστα συχνών επαφών στις εφαρμογές Επαφές και Τηλέφωνο και θα επιβάλλετε στις εφαρμογές ηλεκτρονικού ταχυδρομείου να μάθουν τις προτιμήσεις διευθύνσεών σας από την αρχή."
@@ -484,7 +480,6 @@
"Θα γίνει συγχρονισμός όλων των αλλαγών που πραγματοποιείτε σε όλες τις εφαρμογές και τους λογαριασμούς, όχι μόνο στις Επαφές Google, τόσο στον ιστό όσο και στις συσκευές σας.""Ενεργοποίηση""Δεν υπάρχει σύνδεση"
- "SIM""Εμφάνιση περισσότερων""Ολοκληρώθηκε εισαγωγή από κάρτα SIM""Αποτυχία εισαγωγής"
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 0a38c53f72..43c9e678dc 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -84,8 +84,6 @@
"Delete this contact?""delete""The contact doesn\'t exist."
- "Contact added to Home screen."
- "%s added to Home screen.""There are no pictures available on the device.""Contact photo""Custom label name"
@@ -251,7 +249,6 @@
"Call work pager""Call %s""Call MMS"
- "%s (Call)""Text %s""Text home""Text mobile"
@@ -273,7 +270,6 @@
"Text work pager""Text %s""Text MMS"
- "%s (Message)""Make video call""Clear frequently contacted?""You\'ll clear the frequently contacted list in the Contacts and Phone apps, and force email apps to learn your addressing preferences from scratch."
@@ -484,7 +480,6 @@
"Changes made to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices.""Turn on""No connection"
- "SIM""Show more""Finished importing SIM card""Import failed"
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index ff4bb7b9e0..7bbec047ae 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -84,8 +84,6 @@
"Delete this contact?""Delete""The contact doesn\'t exist."
- "Contact added to Home screen."
- "%s added to Home screen.""No pictures are available on the device.""Contact photo""Custom label name"
@@ -251,7 +249,6 @@
"Call work pager""Call %s""Call MMS"
- "%s (Call)""Text %s""Text home""Text mobile"
@@ -273,7 +270,6 @@
"Text work pager""Text %s""Text MMS"
- "%s (Message)""Make video call""Clear frequently contacted?""You\'ll clear the frequently contacted list in the Contacts and Phone apps, and force email apps to learn your addressing preferences from scratch."
@@ -484,7 +480,6 @@
"Changes you make to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices.""Turn on""No connection"
- "SIM""Show more""Finished importing SIM card""Import failed"
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 0a38c53f72..43c9e678dc 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -84,8 +84,6 @@
"Delete this contact?""delete""The contact doesn\'t exist."
- "Contact added to Home screen."
- "%s added to Home screen.""There are no pictures available on the device.""Contact photo""Custom label name"
@@ -251,7 +249,6 @@
"Call work pager""Call %s""Call MMS"
- "%s (Call)""Text %s""Text home""Text mobile"
@@ -273,7 +270,6 @@
"Text work pager""Text %s""Text MMS"
- "%s (Message)""Make video call""Clear frequently contacted?""You\'ll clear the frequently contacted list in the Contacts and Phone apps, and force email apps to learn your addressing preferences from scratch."
@@ -484,7 +480,6 @@
"Changes made to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices.""Turn on""No connection"
- "SIM""Show more""Finished importing SIM card""Import failed"
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 0a38c53f72..43c9e678dc 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -84,8 +84,6 @@
"Delete this contact?""delete""The contact doesn\'t exist."
- "Contact added to Home screen."
- "%s added to Home screen.""There are no pictures available on the device.""Contact photo""Custom label name"
@@ -251,7 +249,6 @@
"Call work pager""Call %s""Call MMS"
- "%s (Call)""Text %s""Text home""Text mobile"
@@ -273,7 +270,6 @@
"Text work pager""Text %s""Text MMS"
- "%s (Message)""Make video call""Clear frequently contacted?""You\'ll clear the frequently contacted list in the Contacts and Phone apps, and force email apps to learn your addressing preferences from scratch."
@@ -484,7 +480,6 @@
"Changes made to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices.""Turn on""No connection"
- "SIM""Show more""Finished importing SIM card""Import failed"
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 616b32384a..7a66b2966f 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -84,8 +84,6 @@
"Delete this contact?""Delete""The contact doesn\'t exist."
- "Contact added to Home screen."
- "%s added to Home screen.""No pictures are available on the device.""Contact photo""Custom label name"
@@ -251,7 +249,6 @@
"Call work pager""Call %s""Call MMS"
- "%s (Call)""Text %s""Text home""Text mobile"
@@ -273,7 +270,6 @@
"Text work pager""Text %s""Text MMS"
- "%s (Message)""Make video call""Clear frequently contacted?""You\'ll clear the frequently contacted list in the Contacts and Phone apps, and force email apps to learn your addressing preferences from scratch."
@@ -484,7 +480,6 @@
"Changes you make to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices.""Turn on""No connection"
- "SIM""Show more""Finished importing SIM card""Import failed"
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index eb4d4ce871..ab62561dc4 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -84,8 +84,6 @@
"¿Deseas borrar este contacto?""Borrar""El contacto no existe."
- "Se agregó el contacto a la pantalla principal."
- "%s se agregó a la pantalla principal.""No hay imágenes disponibles en el dispositivo.""Foto de contacto""Nombre personalizado de etiqueta"
@@ -251,7 +249,6 @@
"Llamar al localizador del trabajo""Llamar a %s""Llamar a MMS"
- "%s (Llamar)""Enviar SMS a %s""Enviar texto al hogar""Enviar texto a celular"
@@ -273,7 +270,6 @@
"Enviar texto a localizador del trabajo""Enviar texto a %s""Enviar texto MMS"
- "%s (Enviar mensaje)""Realizar una videollamada""¿Borrar los contactos frecuentes?""Borrarás de las apps Contactos y Teléfono la lista de personas con las que te comunicas frecuentemente. Además, las apps de correo deberán volver a establecer tus preferencias."
@@ -484,7 +480,6 @@
"Los cambios que hagas en todas las apps y cuentas, no solo en los Contactos de Google, se mantendrán actualizados entre la Web y tus dispositivos.""Activar""Sin conexión"
- "SIM""Mostrar más""Terminó la importación de la tarjeta SIM""Error al importar"
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 727b4d8268..7750891e80 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -84,8 +84,6 @@
"¿Eliminar este contacto?""Eliminar""Este contacto no existe."
- "Contacto añadido a la pantalla inicio."
- "%s añadido a la pantalla de inicio.""No hay ninguna imagen disponible en el dispositivo.""Foto de contacto""Nombre del campo personalizado"
@@ -251,7 +249,6 @@
"Llamar al busca del trabajo""Llamar a: %s""Llamar a MMS"
- "%s (Llamar)""Enviar un SMS a: %s""Enviar SMS a casa""Enviar SMS a móvil"
@@ -273,7 +270,6 @@
"Enviar SMS al busca del trabajo""Enviar un mensaje de texto a %s""Enviar SMS a MMS"
- "%s (Enviar SMS)""Hacer videollamada""¿Borrar contactos frecuentes?""Vas a borrar la lista de contactos frecuentes de las aplicaciones Contactos y Teléfono, por lo que las aplicaciones de correo electrónico tendrán que memorizar tus preferencias de nuevo."
@@ -484,7 +480,6 @@
"Los cambios que realices en todas las aplicaciones y cuentas, no solo en Contactos de Google, se actualizarán en la Web y en tus dispositivos.""Activar""No hay conexión"
- "SIM""Mostrar más""Se ha importado la tarjeta SIM""No se ha podido realizar la importación"
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index e49a0fbfa6..cf4dc585d4 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -84,8 +84,6 @@
"Kas kustutada see kontakt?""Kustuta""Kontakti ei ole olemas."
- "Kontakt lisati avaekraanile."
- "Kontakt %s lisati avaekraanile.""Seadmes pole ühtegi pilti saadaval.""Kontakti foto""Kohandatud sildi nimi"
@@ -251,7 +249,6 @@
"Helista tööpiiparinumbrile""Helista: %s""Helista MMS-i numbrile"
- "%s (helistamine)""Saada SMS: %s""Saada SMS kodu telefoninumbrile""Saada SMS mobiilinumbrile"
@@ -273,7 +270,6 @@
"Saada SMS tööpiiparinumbrile""Saada SMS numbrile %s""Saada MMS"
- "%s (sõnum)""Videokõne tegemine""Kas kustutada sagedased kontaktid?""Kustutate rakendustes Kontaktid ja Telefon sagedaste kontaktide loendi, mistõttu meilirakendused peavad teie adresseerimiseelistused uuesti omandama."
@@ -484,7 +480,6 @@
"Kõikides rakendustes ja kontodel tehtud muudatused (mitte ainult Google\'i kontaktid) sünkroonitakse ajakohasena hoidmiseks veebi ning teie seadmete vahel.""Lülita sisse""Ühendus puudub"
- "SIM-kaart""Kuva rohkem""SIM-kaardi importimine viidi lõpule""Importimine ebaõnnestus"
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index e0861cd819..a286fe7b16 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -84,8 +84,6 @@
"Kontaktua ezabatu nahi duzu?""Ezabatu""Ez dago horrelako kontakturik."
- "Orri nagusian gehitu da kontaktua."
- "Orri nagusian gehitu da %s.""Ez dago irudi erabilgarririk gailuan.""Kontaktuaren argazkia""Etiketa pertsonalizatuaren izena"
@@ -251,7 +249,6 @@
"Deitu laneko bilagailura""Deitu %s zenbakira""Deitu MMS zenbakira"
- "%s (deitu)""Bidali testu-mezu bat %s zenbakira""Bidali testu-mezua etxera""Bidali testu-mezua mugikorrera"
@@ -273,7 +270,6 @@
"Bidali testu-mezua laneko bilagailura""Bidali testu-mezua %s zenbakira""Bidali testu-mezua MMS zenbakira"
- "%s (bidali SMS mezua)""Egin bideodeia""Sarri erabilitako kontaktuak garbitu?""Kontaktuak eta Telefonoa aplikazioetako maiz erabilitako kontaktuen zerrenda garbituko duzu. Beraz, berriro ikasi beharko dituzte helbideen hobespenak posta elektronikoaren aplikazioek."
@@ -484,7 +480,6 @@
"Webgunearekin eta gailuekin sinkronizatuko dira aplikazio eta kontu guztietan egiten dituzun aldaketak, ez bakarrik Google Kontaktuak aplikazioan egiten dituzunak.""Aktibatu""Ez zaude konektatuta Internetera"
- "SIM txart.""Erakutsi gehiago""Inportatu da SIM txartela""Ezin izan da inportatu"
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 963a9fbccd..c956a0ca36 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -84,8 +84,6 @@
"این مخاطب حذف شود؟""حذف""مخاطبی موجود نیست."
- "مخاطب به صفحه اصلی اضافه شد."
- "%s به صفحه اصلی اضافه شد.""هیچ عکسی در دستگاه موجود نیست.""عکس مخاطب""نام برچسب سفارشی"
@@ -251,7 +249,6 @@
"تماس با پیجوی محل کار""تماس با %s""تماس با فراپیام"
- "%s (تماس)""ارسال پیام نوشتاری به %s""ارسال متن به تلفن خانه""ارسال متن به تلفن همراه"
@@ -273,7 +270,6 @@
"ارسال متن به پیجوی محل کار""ارسال متن به %s""ارسال متن به فراپیام"
- "%s (پیام)""برقراری تماس تصویری""فهرست مخاطبین مکرر پاک شود؟""با این کار فهرست مخاطبین مکرر در برنامههای «مخاطبین» و «تلفن» پاک میکنید و برنامههای ایمیل را وادار میکنید اولویتهای مخاطبینتان را از اول یاد بگیرند."
@@ -484,7 +480,6 @@
"تغییراتی که در همه برنامهها و حسابها، نه فقط در «مخاطبین Google»، ایجاد میکنید، بین وب و دستگاههایتان بهروز نگه داشته میشوند.""فعال کردن""اتصال اینترنت موجود نیست"
- "سیم کارت""بیشتر نشان دادن""وارد کردن سیم کارت تمام شد""وارد نشد"
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 4eaccf0da5..eef4ce9831 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -84,8 +84,6 @@
"Poistetaanko yhteystieto?""Poista""Yhteystietoa ei ole olemassa."
- "Yhteystieto lisättiin aloitusnäytölle."
- "%s lisättiin aloitusnäytölle.""Laitteella ei ole kuvia.""Yhteyshenkilön kuva""Oman luokituksen nimi"
@@ -251,7 +249,6 @@
"Soita hakulaitteeseen (työ)""Soita: %s""Soita MMS-numeroon"
- "%s (soita)""Lähetä tekstiviesti: %s""Lähetä tekstiviesti kotinumeroon""Lähetä tekstiviesti matkapuhelimeen"
@@ -273,7 +270,6 @@
"Lähetä tekstiviesti hakulaitteeseen (työ)""Lähetä tekstiviesti: %s""Lähetä tekstiviesti MMS-numeroon"
- "%s (lähetä viesti)""Soita videopuhelu""Tyhjennetäänkö usein käytetyt?""Toiminto tyhjentää Yhteystiedot- ja Puhelin-sovellusten usein käytettyjen yhteystietojen luettelon. Lisäksi sähköpostisovellukset pakotetaan opettelemaan osoiteasetuksesi uudestaan."
@@ -484,7 +480,6 @@
"Yhteystietoihin ja kaikkiin muihin sovelluksiin ja tileihin tekemäsi muutokset synkronoidaan verkon ja laitteidesi välillä.""Ota käyttöön""Ei yhteyttä"
- "SIM-kortti""Näytä lisää""SIM-kortin tuominen valmis""Tuonti epäonnistui."
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index ad324587e2..d3d41176e2 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -84,8 +84,6 @@
"Supprimer ce contact?""Supprimer""Ce contact n\'existe pas."
- "Le contact a été ajouté à l\'écran d\'accueil."
- "« %s » a été ajouté à l\'écran d\'accueil.""Aucune image n\'est disponible sur l\'appareil.""Photo du contact""Étiquette personnalisée"
@@ -251,7 +249,6 @@
"Appeler le téléavertisseur professionnel""Appeller %s""Appeler le numéro de téléphone MMS"
- "%s (appeler)""Envoyer un texto à %s""Envoyer un SMS au numéro de téléphone du domicile""Envoyer un SMS au numéro de téléphone mobile"
@@ -273,7 +270,6 @@
"Envoyer un SMS au téléavertisseur professionnel""Envoyer un SMS au %s""Envoyer un SMS au numéro de téléph MMS"
- "%s (envoyer un message texte)""Faire un appel vidéo""Effacer les contacts fréquents?""Cette opération efface la liste des personnes avec qui vous communiquez le plus souvent dans les applications Contacts et Téléphone. Elle oblige vos applications de courriel à mémoriser de nouveau les adresses que vous utilisez le plus."
@@ -484,7 +480,6 @@
"Les modifications que vous apportez dans l\'ensemble des applications et des comptes, non seulement dans Contacts Google, sont synchronisées avec le Web et avec vos appareils.""Activer""Aucune connexion"
- "Carte SIM""Afficher plus""Importation de la carte SIM terminée""Échec de l\'importation"
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index c2444e06d0..1fefb9b3a2 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -84,8 +84,6 @@
"Supprimer ce contact ?""Supprimer""Ce contact n\'existe pas."
- "Le contact a bien été ajouté à l\'écran d\'accueil."
- "\"%s\" a bien été ajouté à l\'écran d\'accueil.""Aucune image n\'est disponible sur l\'appareil.""Photo d\'un contact""Libellé personnalisé"
@@ -251,7 +249,6 @@
"Appeler téléavertisseur bureau""Appeler le %s""Appeler MMS"
- "%s (appeler)""Envoyer un SMS au %s""Envoyer un SMS au domicile""Envoyer un SMS vers mobile"
@@ -273,7 +270,6 @@
"Envoyer un SMS vers téléavertisseur (bureau)""Envoyer un SMS à %s""Envoyer un MMS"
- "%s (envoyer un SMS)""Passer un appel vidéo""Effacer les contacts fréquents ?""Cette opération efface la liste des personnes que vous contactez le plus souvent dans les applications Contacts et Téléphone, et entraîne une réinitialisation des adresses mémorisées comme celles que vous utilisez le plus fréquemment dans vos applications de messagerie électronique."
@@ -484,7 +480,6 @@
"Les modifications que vous apportez sur l\'ensemble des applications et des comptes, pas seulement dans l\'application Contacts, sont actualisées entre le Web et vos appareils.""Activer""Aucune connexion"
- "Carte SIM""Afficher plus""Importation depuis la carte SIM terminée""Échec lors de l\'importation"
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 47718645b5..cdaa160c72 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -84,8 +84,6 @@
"Queres eliminar este contacto?""Eliminar""O contacto non existe."
- "Engadiuse o contacto á pantalla de inicio."
- "Engadiuse a %s á pantalla de inicio.""Non hai imaxes dispoñibles no dispositivo.""Foto de contacto""Nome de etiqueta personalizada"
@@ -251,7 +249,6 @@
"Chamar ao buscapersoas do traballo""Chamar a: %s""Chamar ao número de teléfono de MMS"
- "%s (chamar)""Enviar unha mensaxe a: %s""Enviar unha mensaxe ao teléfono particular""Enviar unha mensaxe ao teléfono móbil"
@@ -273,7 +270,6 @@
"Enviar unha mensaxe ao buscapersoas do traballo""Enviar unha mensaxe a %s""Enviar unha mensaxe ao MMS"
- "%s (enviar mensaxe)""Realizar videochamada""Borrar contactados con frecuencia?""Borrarás a lista de persoas coas que contactas frecuentemente das aplicacións Contactos e Teléfono, e obrigarás as aplicacións de correo electrónico a que memoricen as túas preferencias de enderezos desde cero."
@@ -484,7 +480,6 @@
"Os cambios que fas en todas as aplicacións e contas, non só en Contactos de Google, gardaranse actualizados entre a web e os teus dispositivos.""Activar""Sen conexión"
- "SIM""Mostrar máis""Finalizou a importación da tarxeta SIM""Produciuse un erro na importación"
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index d2c58cdb15..53c181f55c 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -84,8 +84,6 @@
"આ સંપર્કને કાઢી નાખીએ?""કાઢી નાખો""સંપર્ક અસ્તિત્વમાં નથી."
- "સંપર્કને હોમ સ્ક્રીન પર ઉમેરવામાં આવ્યો."
- "%s ને હોમ સ્ક્રીન પર ઉમેરવામાં આવ્યું.""ઉપકરણ પર કોઈ ચિત્રો ઉપલબ્ધ નથી.""સંપર્ક ફોટો""કસ્ટમ લેબલ નામ"
@@ -251,7 +249,6 @@
"કાર્યાલયના પેજર પર કૉલ કરો""%s પર કૉલ કરો""MMS પર કૉલ કરો"
- "%s (કૉલ કરો)""%s પર ટેક્સ્ટ મોકલો""ઘરે ટેક્સ્ટ કરો""મોબાઇલ પર ટેક્સ્ટ કરો"
@@ -273,7 +270,6 @@
"કાર્યાલયના પેજર પર ટેક્સ્ટ કરો""%s ને ટેક્સ્ટ કરો""MMS પર ટેક્સ્ટ કરો"
- "%s (મેસેજ મોકલો)""વિડિઓ કૉલ કરો""વારંવાર સંપર્ક કરેલા સાફ કરીએ?""તમે સંપર્કો અને ફોન ઍપ્લિકેશનોમાં વારંવાર સંપર્ક કરેલ સૂચિને સાફ કરશો અને ઇમેઇલ ઍપ્લિકેશનોને તમારી સંબોધન પસંદગીઓને શરૂઆતથી જાણવા માટે ફરજ પાડશો."
@@ -484,7 +480,6 @@
"તમે બધી ઍપ્લિકેશનો અને એકાઉન્ટ્સમાં જે ફેરફારો કરો છો, માત્ર Google સંપર્કોમાં નહીં, તે વેબ અને તમારા ઉપકરણો વચ્ચે અપ ટુ ડેટ રાખવામાં આવશે.""ચાલુ કરો""કોઈ કનેક્શન નથી"
- "SIM""વધુ બતાવો""SIM કાર્ડ આયાત કરવાનું સમાપ્ત થયું""આયાત કરવું નિષ્ફળ થયું"
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index f59d617fdb..7e969ab9e9 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -84,8 +84,6 @@
"यह संपर्क मिटाएं?""मिटाएं""संपर्क मौजूद नहीं है."
- "संपर्कों को होम स्क्रीन में जोड़ा गया."
- "%s को होम स्क्रीन में जोड़ा गया.""डिवाइस पर कोई चित्र उपलब्ध नहीं है.""संपर्क की फ़ोटो""कस्टम लेबल नाम"
@@ -251,7 +249,6 @@
"दफ़्तर पेजर पर कॉल करें""%s पर कॉल करें""MMS फ़ोन नंबर पर कॉल करें"
- "%s (कॉल करें)""%s लिखित संदेश भेजें""घर के फ़ोन पर SMS भेजें""मोबाइल पर SMS भेजें"
@@ -273,7 +270,6 @@
"दफ़्तर पेजर पर SMS भेजें""%s को SMS भेजें""MMS भेजें"
- "%s (संदेश भेजें)""वीडियो कॉल करें""अक्सर किए जाने वाले संपर्क साफ करें?""आपको संपर्क और फ़ोन ऐप्लिकेशन से अक्सर संपर्क की जाने वाली सूची साफ़ करनी होगी, और अपने ईमेल ऐप्लिकेशन को आपकी पता प्राथमिकताओं को प्रारंभ से जानने के लिए बाध्य करना होगा."
@@ -484,7 +480,6 @@
"Google संपर्क सहित सभी ऐप्लिकेशन और खातों में किए जाने वाले आपके बदलाव, वेब और आपके डिवाइस के बीच अप-टू-डेट रखे जाएंगे.""चालू करें""कोई कनेक्शन नहीं"
- "सिम""और दिखाएं""SIM कार्ड का इंपोर्ट पूरा हुआ""आयात करना विफल रहा"
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 2244437349..9588740fb5 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -84,8 +84,6 @@
"Želite li izbrisati ovaj kontakt?""Izbriši""Kontakt ne postoji."
- "Kontakt je dodan na početni zaslon."
- "Kontakt %s dodan je na početni zaslon.""Na uređaju nema dostupnih slika.""Kontakt fotografija""Prilagođeni naziv oznake"
@@ -251,7 +249,6 @@
"Nazovi poslovni dojavljivač""Nazovite %s""Nazovi MMS"
- "%s (poziv)""Pošaljite SMS na %s""Poruka na kućni""Poruka na mobitel"
@@ -273,7 +270,6 @@
"Poruka na poslovni dojavljivač""Poruka za %s""Poruka na MMS"
- "%s (poruka)""Uputi videopoziv""Brisati podatke o čestim kontaktima?""Izbrisat ćete popis osoba s kojima često kontaktirate u aplikacijama Kontakti i Osobe, pa će aplikacije e-pošte morati ispočetka učiti vaše postavke adresiranja."
@@ -484,7 +480,6 @@
"Izmjene koje unesete u aplikacije i na račune, ne samo na Google kontakte ažurirat će se na webu i vašim uređajima.""Uključi""Nema internetske veze"
- "SIM""Prikaži više""Dovršen je uvoz SIM kartice""Uvoz nije uspio"
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 229a390244..8d0c67a6f2 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -84,8 +84,6 @@
"Törli ezt a névjegyet?""Törlés""A névjegy nem létezik."
- "Névjegy hozzáadva a kezdőképernyőhöz"
- "%s hozzáadva a kezdőképernyőhöz""Nem állnak rendelkezésre képek az eszközön.""Ismerős fotója""Egyéni címkenév"
@@ -251,7 +249,6 @@
"Munkahelyi csipogó hívása""Hívás: %s""MMS-ben szereplő telefonszám hívása"
- "%s (hívás)""SMS: %s""SMS küldése haza""SMS küldése mobiltelefonra"
@@ -273,7 +270,6 @@
"SMS küldése munkahelyi csipogóra""SMS küldése ide: %s""SMS küldése MMS-ben szereplő számra"
- "%s (üzenet)""Videohívás kezdeményezése""Törli a gyakran keresetteket?""Törölni fogja a gyakran keresett személyek listáját a Névjegyek és a Telefon alkalmazásban, és arra kényszeríti az e-mail alkalmazásokat, hogy elölről kezdjék az Ön címzési szokásainak megtanulását."
@@ -484,7 +480,6 @@
"Az alkalmazásokban és fiókokban (nem csak a Névjegyek szolgáltatásban) végrehajtott módosítások szinkronizálva lesznek az internetes felület és az eszközei között.""Engedélyezés""Nincs kapcsolat"
- "SIM""Több megjelenítése""A SIM-kártya importálása befejeződött""Sikertelen importálás"
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 4089d4de06..e4ffb4f631 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -84,8 +84,6 @@
"Ջնջե՞լ այս կոնտակտը:""Ջնջել""Կոնտակտը գոյություն չունի:"
- "Կոնտակտն ավելացվեց հիմնական էկրանին:"
- "%s կոնտակտն ավելացվեց հիմնական էկրանին:""Սարքում հասանելի լուսանկարներ չկան:""Կոնտակտի լուսանկարը""Հատուկ պիտակի անունը"
@@ -251,7 +249,6 @@
"Զանգել աշխատանքային փեյջերի համարին""Զանգել %s-ին""Զանգել MMS համարին"
- "%s (Զանգ)""Ուղարկել SMS %s-ին""Հաղորդագրել տուն""Հաղորդագրել շարժականին"
@@ -273,7 +270,6 @@
"Հաղորդագրել աշտատանքային փեյջերին""Հաղորդագրել %s-ին""Հաղորդագրել MMS համարին"
- "%s (Գրել SMS)""Տեսազանգ սկսել""Ջնջե՞լ հաճախակի հաղորդակցվողները""Կոնտակտներ և Հեռախոս հավելվածներից կմաքրվի հաճախակի օգտագործվող կոնտակտների ցանկը, և էլփոստի հավելվածները զրոյից են սովորելու ձեր հաճախակի գործածվող կոնտակտները։"
@@ -484,7 +480,6 @@
"Ինչպես Google Կոնտակտներում, այնպես էլ մյուս բոլոր հավելվածներում և հաշիվներում կատարած փոփոխությունները կհամաժամացվեն վեբ միջերեսի և ձեր սարքերի միջև:""Միացնել""Կապ չկա"
- "SIM քարտ""Ցույց տալ ավելին""SIM քարտի ներմուծումն ավարտվեց""Ներմուծման սխալ"
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 6f2495b444..ea00fa77d0 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -84,8 +84,6 @@
"Hapus kontak ini?""Hapus""Kontak tidak ada."
- "Kontak ditambahkan ke layar Utama."
- "%s ditambahkan ke layar Utama.""Tidak ada gambar yang tersedia di perangkat.""Foto kontak""Nama label kustom"
@@ -251,7 +249,6 @@
"Telepon pager kantor""Telepon %s""Telepon MMS"
- "%s (Telepon)""Kirim SMS ke %s""SMS rumah""SMS seluler"
@@ -273,7 +270,6 @@
"Teks pager kantor""SMS %s""SMS MMS"
- "%s (SMS)""Lakukan panggilan video""Hapus yang sering dihubungi?""Anda akan menghapus daftar yang sering dihubungi pada aplikasi Kontak dan Ponsel, serta memaksa aplikasi email untuk mempelajari preferensi penanganan dari awal."
@@ -484,7 +480,6 @@
"Perubahan yang Anda lakukan pada semua aplikasi dan akun, tidak hanya Google Kontak, akan terus diperbarui antara web dan perangkat.""Aktifkan""Tidak ada sambungan"
- "SIM""Tampilkan lebih banyak""Selesai mengimpor kartu SIM""Impor gagal"
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index aa9809d3e9..b10c3125dd 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -84,8 +84,6 @@
"Eyða þessum tengilið?""Eyða""Tengiliðurinn er ekki til."
- "Tengilið bætt á heimaskjá."
- "%s bætt á heimaskjá.""Engar myndir eru tiltækar á tækinu.""Mynd tengiliðar""Sérsniðinn flokkur"
@@ -251,7 +249,6 @@
"Hringja í vinnusímboða""Hringja í %s""Hringja í MMS-númer"
- "%s (hringja)""Senda %s SMS-skilaboð""Senda SMS-skilaboð heim""Senda SMS-skilaboð í farsíma"
@@ -273,7 +270,6 @@
"Senda SMS-skilaboð í vinnusímboða""Senda SMS-skilaboð til %s""Senda SMS-skilaboð í MMS-númer"
- "%s (senda SMS)""Hringja myndsímtal""Hreinsa mest notuðu tengiliði?""Þetta hreinsar tengiliðina sem þú hefur mest samskipti við úr forritunum Tengiliðir og Sími og þvingar tölvupóstforrit til að læra upp á nýtt hvernig þú notar netföng."
@@ -484,7 +480,6 @@
"Breytingar sem þú gerir á öllum forritum og reikningum, ekki bara Google-tengiliðum, verða uppfærðar á netinu og í tækjunum þínum.""Kveikja""Engin tenging"
- "SIM""Sýna meira""Lauk við að flytja inn SIM-kort""Innflutningur mistókst"
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index a17a424a6e..72acb2f6e8 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -84,8 +84,6 @@
"Eliminare questo contatto?""Elimina""Contatto non esistente."
- "Contatto aggiunto alla schermata Home."
- "%s aggiunto alla schermata Home.""Nessuna foto disponibile sul dispositivo.""Foto del contatto""Nome etichetta personalizzata"
@@ -251,7 +249,6 @@
"Chiama cercapersone lavoro""Chiama %s""Chiama n. MMS"
- "%s (Chiama)""Invia un SMS a %s""Invia SMS a n. casa""Invia SMS a cellulare"
@@ -273,7 +270,6 @@
"SMS a cercapersone lavoro""Invia testo a %s""Invia SMS a n. MMS"
- "%s (Invia SMS)""Avvia videochiamata""Cancellare contattati di frequente?""Verrà cancellato l\'elenco dei contatti frequenti nelle app Contatti e Telefono e le app email dovranno apprendere da zero le tue preferenze di comunicazione."
@@ -484,7 +480,6 @@
"Le modifiche che apporti a tutte le app e a tutti gli account, non solo a Contatti Google, verranno mantenute aggiornate tra il Web e i dispositivi.""Attiva""Nessuna connessione"
- "SIM""Mostra altro""Importazione della scheda SIM completata""Importazione non riuscita"
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 43858570f9..2a598d2305 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -84,8 +84,6 @@
"האם למחוק את איש הקשר הזה?""מחק""איש הקשר לא קיים."
- "איש הקשר נוסף למסך דף הבית."
- "%s נוסף למסך דף הבית.""אין אף תמונה זמינה במכשיר.""תמונה של איש קשר""שם תווית בהתאמה אישית"
@@ -251,7 +249,6 @@
"התקשר לזימונית של העבודה""התקשר אל %s""התקשר ל-MMS"
- "%s (שיחה)""שלח SMS אל %s""שלח הודעת טקסט לבית""שלח הודעת טקסט לנייד"
@@ -273,7 +270,6 @@
"שלח הודעת טקסט לזימונית של העבודה""שלח הודעת טקסט אל %s""שלח הודעת טקסט ל-MMS"
- "%s (הודעה)""התקשר בשיחת וידאו""האם למחוק אנשי קשר קבועים?""הפעולה הזו תימחק מהאפליקציות \'אנשי קשר\' ו\'טלפון\' את הרשימה של אנשי הקשר השכיחים. אפליקציות האימייל יצטרכו ללמוד מחדש את הכתובות השכיחות שלך."
@@ -484,7 +480,6 @@
"השינויים שתבצע בכל האפליקציות והחשבונות, לא רק באנשי הקשר מחשבון Google, יסונכרנו בין האינטרנט לבין המכשירים שלך.""הפעלה""אין חיבור"
- "כרטיס SIM""הצג עוד""הייבוא מכרטיס ה-SIM הסתיים""הייבוא נכשל"
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 38889a93d5..8706dda601 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -84,8 +84,6 @@
"この連絡先を削除しますか?""削除""連絡先が存在しません。"
- "連絡先をホーム画面に追加しました。"
- "%sをホーム画面に追加しました。""使用できる写真がデバイス上にありません。""連絡先の写真""カスタムラベル名"
@@ -251,7 +249,6 @@
"ポケベル(勤務先)に発信""%s宛に通話を発信""MMSに発信"
- "%s さん(通話を発信)""%s宛にテキストメッセージを送信""自宅にSMS""携帯にSMS"
@@ -273,7 +270,6 @@
"ポケベル(勤務先)にSMS""%sにSMS""MMSにSMS"
- "%s さん(メッセージを送信)""ビデオハングアウトを発信""よく使う連絡先をクリアしますか?""連絡先アプリや電話アプリのよく使う連絡先リストをクリアし、メールアプリがアドレス設定を初めから保存していくようにします。"
@@ -484,7 +480,6 @@
"Google コンタクトだけでなく、あらゆるアプリとアカウントに変更を加えるたびに、ウェブとご利用のデバイス間で同期されるようになります。""ON にする""ネットワークに接続されていません"
- "SIM""もっと見る""SIM カードからインポートしました""インポートに失敗しました"
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index eb6821c44f..256871e834 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -84,8 +84,6 @@
"გსურთ ამ კონტაქტის წაშლა?""წაშლა""კონტაქტი არ არსებობს."
- "კონტაქტი დაემატა მთავარ ეკრანს."
- "%s დაემატა მთავარ ეკრანს.""მოწყობილობაზე სურათები მიუწვდომელია.""კონტაქტის ფოტო""მორგებული ლეიბლის სახელი"
@@ -251,7 +249,6 @@
"დარეკვა სამსახურის პეიჯერზე""ზარი %s-თან""დარეკვა MMS ნომერზე"
- "%s (ზარი)""ტექსტური შეტყობინება %s-ზე""ტექსტური შეტყობინების გაგზავნა სახლში""ტექსტური შეტყობინების გაგზავნა მობილურზე"
@@ -273,7 +270,6 @@
"ტექსტური შეტყობინების გაგზავნა სამსახურის პეიჯერზე""ტექსტური შეტყობინების გაგზავნა %s-ისთვის""ტექსტური შეტყობინების გაგზავნა MMS ნომერზე"
- "%s (შეტყობინება)""ვიდეოზარის განხორციელება""გსურთ ხშირი კონტაქტების წაშლა?""თქვენ წაშლით ხშირად დაკავშირებულთა სიას კონტაქტებიდან და ტელეფონის აპიდან და აიძულებთ ელფოსტის აპებს შეისწავლონ თქვენი ადრესატების პრიორიტეტები ნულიდან."
@@ -484,7 +480,6 @@
"ის ცვლილებები, რომლებსაც შეიტანთ ყველა აპსა და ანგარიშში და არა მხოლოდ Google Contacts-ში, სინქრონიზებულად განახლდება ვებსა და თქვენს მოწყობილობას შორის.""ჩართვა""კავშირი არ არის"
- "SIM""მეტის ჩვენება""SIM ბარათის იმპორტი დასრულდა""იმპორტი ვერ შესრულდა"
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 143c1987a2..2b20650ad7 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -84,8 +84,6 @@
"Осы контактіні жою керек пе?""Жою""Мұндай контакт жоқ."
- "Контакт негізгі экранға қосылды."
- "%s негізгі экранға қосылды.""Құрылғыда ешқандай суреттер жоқ.""Контакт фотосуреті""Реттелмелі белгі атауы"
@@ -251,7 +249,6 @@
"Жұмыс пейджеріне қоңырау шалу""%s нөміріне қоңырау шалу""MMS нөміріне қоңырау шалу"
- "%s (Қоңырау)""%s нөміріне хабар жіберу""Үй телефонына мәтіндік хабар жіберу""Ұялы телефонға мәтіндік хабар жіберу"
@@ -273,7 +270,6 @@
"Жұмыс пейджеріне мәтіндік хабар жіберу""%s нөміріне мәтіндік хабар жіберу""MMS нөміріне мәтіндік хабар жіберу"
- "%s (Хабар)""Бейне қоңырау шалу""Жиі хабарласатындар тазартылсын ба?""Контактілер және Телефон қолданбаларындағы жиі хабарласатындар тізімі тазаланады және электрондық пошта қолданбалары мекенжай параметрлерін басынан үйренуге мәжбүрленеді."
@@ -484,7 +480,6 @@
"Google контактілеріне ғана емес, барлық қолданбалар мен аккаунттарға енгізілген өзгерістер желі және құрылғылар арасында синхрондалады.""Қосу""Байланыс жоқ"
- "SIM""Тағы""SIM картасын импорттау аяқталды""Импорттау мүмкін болмады"
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index d7deb2de38..3397ff0633 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -84,8 +84,6 @@
"លុបទំនាក់ទំនងនេះ?""លុប""មិនមានទំនាក់ទំនង។"
- "បានបញ្ចូលទំនាក់ទំនងទៅអេក្រង់ដើម"
- "បានបញ្ចូល %s ទៅអេក្រង់ដើម""មិនមានរូបភាពនៅលើឧបករណ៍នេះទេ។""រូបថតទំនាក់ទំនង""ឈ្មោះស្លាកផ្ទាល់ខ្លួន"
@@ -251,7 +249,6 @@
"ហៅទៅលេខភេយ័រកន្លែងធ្វើការ""ការហៅទូរសព្ទទៅ %s""ហៅ MMS"
- "%s (ហៅ)""ផ្ញើសារជាអក្សរទៅ %s""អត្ថបទផ្ទះ""អត្ថបទទូរស័ព្ទចល័ត"
@@ -273,7 +270,6 @@
"អត្ថបទភេយ័រកន្លែងធ្វើការ""អត្ថបទ %s""អត្ថបទ MMS"
- "%s (សារ)""ហៅជាវីដេអូ""សម្អាតទំនាក់ទំនងញឹកញាប់?""អ្នកនឹងជម្រះបញ្ជីដែលអ្នកទាក់ទងជាញឹកញាប់នៅក្នុងកម្មវិធីទូរស័ព្ទ និងទំនាក់ទំនង ហើយបង្ខំឲ្យកម្មវិធីអ៊ីមែលស្វែងយល់ពីចំណូលចិត្តទំនាក់ទំនងរបស់អ្នកតាំងពីដំបូង។"
@@ -484,7 +480,6 @@
"ការផ្លាស់ប្ដូរដែលអ្នកធ្វើចំពោះកម្មវិធី និងគណនីទាំងអស់ មិនគ្រាន់តែ Google ទំនាក់ទំនងទេ នឹងរក្សាបច្ចុប្បន្នភាពរវាងបណ្ដាញ និងឧបករណ៍របស់អ្នក។""បើក""គ្មានការតភ្ជាប់"
- "SIM""បង្ហាញជាច្រើន""បានបញ្ចប់នាំចូលទំនាក់ទំនងក្នុងស៊ីមកាត""ការនាំចូលមិនបានសម្រេច"
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 971948c5e7..e84de29344 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -84,8 +84,6 @@
"ಈ ಸಂಪರ್ಕವನ್ನು ಅಳಿಸಬೇಕೆ?""ಅಳಿಸಿ""ಸಂಪರ್ಕವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ."
- "ಸಂಪರ್ಕವನ್ನು ಹೋಮ್ ಸ್ಕ್ರೀನ್ಗೆ ಸೇರಿಸಲಾಗಿದೆ."
- "%s ಅನ್ನು ಹೋಮ್ ಸ್ಕ್ರೀನ್ಗೆ ಸೇರಿಸಲಾಗಿದೆ.""ಸಾಧನದಲ್ಲಿ ಯಾವುದೇ ಚಿತ್ರಗಳು ಲಭ್ಯವಿಲ್ಲ.""ಸಂಪರ್ಕ ಫೋಟೋ""ಕಸ್ಟಮ್ ಲೇಬಲ್ ಹೆಸರು"
@@ -251,7 +249,6 @@
"ಕೆಲಸದ ಪೇಜರ್ಗೆ ಕರೆ ಮಾಡಿ""%s ಕರೆ ಮಾಡಿ""MMS ಕರೆ ಮಾಡಿ"
- "%s (ಕರೆ ಮಾಡಿ)""%s ಸಂದೇಶ ಕಳುಹಿಸಿ""ನಿವಾಸಕ್ಕೆ ಸಂದೇಶ ಕಳುಹಿಸಿ""ಮೊಬೈಲ್ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ"
@@ -273,7 +270,6 @@
"ಕೆಲಸದ ಪೇಜರ್ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ""%s ಗೆ ಸಂದೇಶ ಕಳುಹಿಸಿ""MMS ಸಂದೇಶ ಕಳುಹಿಸಿ"
- "%s (ಸಂದೇಶ ಕಳುಹಿಸಿ)""ವೀಡಿಯೊ ಕರೆ ಮಾಡು""ಪದೇಪದೇ ಸಂಪರ್ಕಿಸಿರುವವರನ್ನು ತೆರವುಗೊ.?""ಸಂಪರ್ಕಗಳು ಮತ್ತು ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಪದೇ ಪದೇ ಸಂಪರ್ಕಪಡಿಸಿರುವ ಪಟ್ಟಿಯನ್ನು ನೀವು ತೆರವುಗೊಳಿಸುತ್ತೀರಿ ಮತ್ತು ಮೊದಲಿನಿಂದ ನಿಮ್ಮ ವಿಳಾಸ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ತಿಳಿಯಲು ಇಮೇಲ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಒತ್ತಾಯಿಸಿ."
@@ -484,7 +480,6 @@
"ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಖಾತೆಗಳಿಗೆ ನೀವು ಮಾಡುವ ಬದಲಾವಣೆಗಳು Google ಸಂಪರ್ಕಗಳಿಗೆ ಮಾತ್ರವಲ್ಲದೇ, ವೆಬ್ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನಗಳ ನಡುವೆ ನವೀಕೃತವಾಗಿ ಇರಿಸಲಾಗುತ್ತದೆ.""ಆನ್ ಮಾಡಿ""ಯಾವುದೇ ಸಂಪರ್ಕವಿಲ್ಲ"
- "ಸಿಮ್""ಇನ್ನಷ್ಟು ತೋರಿಸಿ""ಸಿಮ್ ಕಾರ್ಡ್ ಆಮದು ಮುಕ್ತಾಯಗೊಂಡಿದೆ""ಆಮದು ವಿಫಲವಾಗಿದೆ"
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 1a5ac8e50c..a6409c8ea5 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -84,8 +84,6 @@
"이 연락처를 삭제하시겠습니까?""삭제""연락처가 없습니다."
- "연락처가 홈 화면에 추가되었습니다."
- "%s님이 홈 화면에 추가되었습니다.""기기에 사진이 없습니다.""연락처 사진""라벨 이름 맞춤 설정"
@@ -251,7 +249,6 @@
"직장 호출기로 전화 걸기""%s에 전화 걸기""MMS로 전화걸기"
- "%s(전화)""%s에 문자 메시지 보내기""집으로 문자 보내기""휴대전화로 문자 보내기"
@@ -273,7 +270,6 @@
"직장 호출기로 문자 보내기""%s(으)로 문자 보내기""MMS로 문자 보내기"
- "%s(메시지)""화상 통화하기""자주 연락하는 사람들 목록을 삭제하시겠습니까?""주소록 및 휴대전화 앱에서 자주 연락하는 사람의 목록을 삭제하고 이메일 앱이 주소록 환경설정을 처음부터 다시 반영하도록 합니다."
@@ -484,7 +480,6 @@
"Google 주소록뿐만 아니라 모든 앱과 계정의 변경사항이 웹 및 기기 간에 최신 상태로 유지됩니다.""사용""연결되지 않음"
- "SIM""더보기""SIM 카드 가져오기 완료""가져오기 실패"
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 9343407816..53f6e3d87a 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -84,8 +84,6 @@
"Бул байланыш жок кылынсынбы?""Жок кылуу""Мындай байланыш жок."
- "Байланыш башкы экранга кошулду."
- "%s Башкы экранга кошулду.""Түзмөктө бир да сүрөт жок.""Байланыштын сүрөтү""Аталышы"
@@ -251,7 +249,6 @@
"Жумуш пейджерине чалуу""%s чалуу""MMS номерине чалуу"
- "%s (Чалуу)""%s номерине SMS жөнөтүү""Үйдүн телефонуна SMS жөнөтүү""Мобилдик телефонго SMS жөнөтүү"
@@ -273,7 +270,6 @@
"Жумуштун пейжерине SMS жөнөтүү""%s номерине SMS билдирүү жөнөтүү""MMS телефонго SMS жөнөтүү"
- "%s (Билдирүү жөнөтүү)""Видео чалуу""Көп чалынгандар тизмеси тазалансынбы?""Байланыштар жана Телефон колдонмолорунан көп байланышкан адамдар тизмесин тазалап, даректүү жеке жөндөөлөр тууралуу билүү үчүн электрондук почта колдонмолорун иштетиңиз."
@@ -484,7 +480,6 @@
"Байланыштарыңызда гана эмес бардык колдонмолордо жана каттоо эсептеринде жасалган өзгөртүүлөр желе интерфейси менен башка түзмөктөрүңүздүн ортолорунда мезгил-мезгили менен жаңыртылып турат.""Күйгүзүү""Интернет жок"
- "SIM-карта""Дагы көрсөтүү""SIM-картадан өткөрүп алуу аяктады""Импорттолбой калды"
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 9cc1b76ff6..47efe250cd 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -84,8 +84,6 @@
"ລຶບລາຍຊື່ຜູ້ຕິດຕໍ່ນີ້ບໍ?""ລຶບ""ບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່."
- "ເພີ່ມລາຍຊື່ຕິດຕໍ່ໃສ່ໜ້າຈໍຫຼັກແລ້ວ."
- "%s ເພີ່ມໃສ່ໜ້າຈໍຫຼັກແລ້ວ.""ບໍ່ມີຮູບໃນອຸປະກອນທີ່ສາມາດໃຊ້ໄດ້.""ຮູບລາຍຊື່ຜູ່ຕິດຕໍ່""ປ້າຍກຳກັບຊື່ກຳນົດເອງ"
@@ -251,7 +249,6 @@
"ໂທຫາ pager ບ່ອນເຮັດວຽກ""ໂທຫາ %s""ໂທຫາເບີ MMS"
- "%s (ໂທ)""ສົ່ງຂໍ້ຄວາມຫາ %s""ສົ່ງຂໍ້ຄວາມຫາເບີບ້ານ""ສົ່ງຂໍ້ຄວາມຫາເບີມືຖື"
@@ -273,7 +270,6 @@
"ສົ່ງຂໍ້ຄວາມຫາເບີ pager ບ່ອນເຮັດວຽກ""ສົ່ງຂໍ້ຄວາມຫາ %s""ສົ່ງຂໍ້ຄວາມ MMS"
- "%s (ສົ່ງຂໍ້ຄວາມ)""ໂທອອກດ້ວຍວິດີໂອ""ລຶບລາຍຊື່ທີ່ຕິດຕໍ່ຫາເລື້ອຍໆ?""ທ່ານຈະລຶບຂໍ້ມູນລາຍຊື່ທີ່ຕິດຕໍ່ຫາເລື້ອຍໆຢູ່ໃນແອັບລາຍຊື່ ແລະ ໂທລະສັບ ພ້ອມທັງບັງຄັບໃຫ້ແອັບອີເມວເລີ່ມຮຽນຮູ້ຄ່າກຳນົດທີ່ຢູ່ຂອງທ່ານໃໝ່ຕັ້ງແຕ່ຕົ້ນ."
@@ -484,7 +480,6 @@
"Changes you make to all apps and accounts, not just Google Contacts, will be kept up to date between the web and your devices.""ເປີດໃຊ້""ບໍ່ມີການເຊື່ອມຕໍ່"
- "ຊິມ""ສະແດງເພີ່ມເຕີມ""ນຳເຂົ້າ SIM ສຳເລັດແລ້ວ""ນຳເຂົ້າບໍ່ສຳເລັດ"
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index ea79f2f62e..0918a359f9 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -84,8 +84,6 @@
"Ištrinti šį kontaktą?""Ištrinti""Kontaktas neegzistuoja."
- "Kontaktas pridėtas prie pagrindinio ekrano."
- "%s pridėtas (-a) prie pagrindinio ekrano.""Įrenginyje nėra jokių paveikslėlių.""Kontakto nuotrauka""Tinkintas etiketės pavadinimas"
@@ -251,7 +249,6 @@
"Skambinti į darbo pranešimų gaviklį""Skambinti numeriu %s""Skambinti MMS telefono numeriu"
- "%s (skambutis)""Siųsti žinutę numeriu %s""Siųsti teksto pranešimą į namų telefoną""Siųsti teksto pranešimą į mobilųjį telefoną"
@@ -273,7 +270,6 @@
"Siųsti pranešimą į darbo teksto pranešimų gaviklį""Siųsti teksto pranešimą %s""Siųsti MMS"
- "%s (pranešimas)""Atlikti vaizdo skambutį""Išvalyti dažniaus. naud. kontaktus?""Išvalysite dažniausių kontaktų sąrašą Kontaktų ir Telefono programose, o el. pašto programoms reikės iš naujo gauti adresavimo nuostatas."
@@ -484,7 +480,6 @@
"Pakeitimai, kuriuos atliksite visose programose ir paskyrose (ne tik „Google“ kontaktuose), bus atnaujinami žiniatinklyje ir jūsų įrenginiuose.""Įjungti""Nėra ryšio"
- "SIM kort.""Rodyti daugiau""SIM kortelės kontaktai importuoti""Nepavyko importuoti"
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 8b807ef273..e8a64363e6 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -84,8 +84,6 @@
"Vai dzēst šo kontaktpersonu?""Dzēst""Šāda kontaktpersona nepastāv."
- "Kontaktpersona ir pievienota sākuma ekrānam."
- "Kontaktpersona %s ir pievienota sākuma ekrānam.""Ierīcē nav pieejams neviens attēls.""Kontaktpersonas fotoattēls""Pielāgots iezīmes nosaukums"
@@ -251,7 +249,6 @@
"Zvanīt uz darba peidžeru""Zvanīt: %s""Zvanīt uz multiziņas numuru"
- "%s (zvanīt)""Sūtīt īsziņu: %s""Sūtīt īsziņu uz mājas tālruņa numuru""Sūtīt īsziņu uz mobilo tālruni"
@@ -273,7 +270,6 @@
"Sūtīt īsziņu uz darba peidžeru""Sūtīt īsziņu: %s""Sūtīt multiziņu"
- "%s (sūtīt īsziņu)""Veikt videozvanu""Vai dzēst bieži lietotos kontaktus?""Tiks dzēsts bieži lietoto kontaktpersonu saraksts lietotnēs Kontaktpersonas un Tālrunis, un e-pasta lietotnēs no jauna tiks sākta adrešu preferenču saglabāšana."
@@ -484,7 +480,6 @@
"Tīmeklī un jūsu ierīcēs tiks sinhronizētas visās lietotnēs un kontos veiktās izmaiņas, ne tikai Google kontaktpersonu izmaiņas.""Ieslēgt""Nav savienojuma"
- "SIM""Rādīt vairāk""SIM kartes importēšana pabeigta""Importēšana neizdevās"
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 3bf0132379..9027f1cd85 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -84,8 +84,6 @@
"Да се избрише овој контакт?""Избриши""Контактот не постои."
- "Контактот е додаден на Почетен екран."
- "Контактот %s е додаден на Почетен екран.""Не се достапни слики на уредот.""Фотографија за контакт""Приспособи име на етикета"
@@ -251,7 +249,6 @@
"Повикајте службен пејџер""Повикајте %s""Повикајте MMS"
- "%s (Повик)""Испратете SMS на %s""Испратете SMS дома""Испратете SMS на мобилен"
@@ -273,7 +270,6 @@
"Испратете SMS на службен пејџер""Испратете SMS на %s""Испратете SMS на MMS"
- "%s (Порака)""Оствари видеоповик""Да се исчистат често контактираните?""Ќе го исчистите списокот на често контактирани лица во апликациите „Контакти“ и „Телефон“ и ќе ги принудите апликациите за е-пошта одново да ги дознаат вашите претпочитани поставки за обраќање."
@@ -484,7 +480,6 @@
"Промените што ги правите на сите апликации и сметки, не само на „Контакти на Google“, ќе се ажурираат и на интернет и на вашите уреди.""Вклучи""Нема мрежа"
- "SIM""Прикажи повеќе""Увезувањето на SIM-картичката заврши""Увезувањето не успеа"
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 371a9f39f7..e39a09af19 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -84,8 +84,6 @@
"ഈ കോൺടാക്റ്റ് ഇല്ലാതാക്കണോ?""ഇല്ലാതാക്കുക""കോൺടാക്റ്റ് നിലവിലില്ല."
- "ഹോം സ്ക്രീനിലേക്ക് കോൺടാക്റ്റ് ചേർത്തു."
- "ഹോം സ്ക്രീനിലേക്ക് %s ചേർത്തു.""ഉപകരണത്തിൽ ചിത്രങ്ങളൊന്നും ലഭ്യമല്ല.""കോൺടാക്റ്റിന്റെ ഫോട്ടോ""ഇഷ്ടാനുസൃത ലേബൽ പേര്"
@@ -251,7 +249,6 @@
"ഔദ്യോഗിക പേജറിലേക്ക് വിളിക്കുക""%s എന്ന നമ്പറിൽ വിളിക്കുക""MMS ഫോണിലേക്ക് വിളിക്കുക"
- "%s (വിളിക്കുക)""%s എന്ന നമ്പറിലേക്ക് സന്ദേശമയയ്ക്കുക""വീട്ടിലെ ഫോണിലേക്ക് വാചകസന്ദേശമയയ്ക്കുക""മൊബൈലിലേക്ക് വാചകസന്ദേശമയയ്ക്കുക"
@@ -273,7 +270,6 @@
"ഔദ്യോഗിക പേജറിലേക്ക് വാചകസന്ദേശമയയ്ക്കുക""%s എന്നതിലേക്ക് വാചക സന്ദേശമയയ്ക്കുക""MMS നമ്പറിലേക്ക് വാചകസന്ദേശമയയ്ക്കുക"
- "%s (സന്ദേശം)""വീഡിയോ കോൾ ചെയ്യുക""പതിവായി കോൺടാക്റ്റുചെയ്യുന്നവരെ മായ്ക്കണോ?""നിങ്ങൾ കോൺടാക്റ്റുകളുടെയും ഫോണിന്റെയും അപ്ലിക്കേഷനുകളിലെ പതിവായി കോൺടാക്റ്റുചെയ്യുന്നവരുടെ ലിസ്റ്റ് മായ്ക്കുകയും സ്ക്രാച്ചിൽ നിന്നും ബന്ധപ്പെടൽ മുൻഗണനകൾ അറിയാൻ ഇമെയിൽ അപ്ലിക്കേഷനുകളെ പ്രേരിപ്പിക്കുകയും ചെയ്യും."
@@ -484,7 +480,6 @@
"Google കോൺടാക്റ്റുകളിൽ മാത്രമല്ല, എല്ലാ ആപ്സുകളിലും അക്കൗണ്ടുകളിലും വരുത്തുന്ന മാറ്റങ്ങളെ വെബിലും നിങ്ങളുടെ ഉപകരണങ്ങളിലും അപ്റ്റുഡേറ്റായി നിലനിർത്തും.""ഓൺ ചെയ്യുക""കണക്ഷനൊന്നുമില്ല"
- "സിം""കൂടുതൽ കാണിക്കൂ""സിം കാർഡ് ഇമ്പോർട്ടുചെയ്തു""ഇമ്പോർട്ടുചെയ്യൽ പരാജയപ്പെട്ടു"
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index eb84601a1d..00579c236b 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -84,8 +84,6 @@
"Энэ харилцагчийг устгах уу?""Устгах""Харилцагч байхгүй байна."
- "Харилцагчийг нүүр хуудсанд нэмсэн."
- "%s-г нүүр хуудсанд нэмсэн.""Төхөөрөмжинд зураг байхгүй байна.""Харилцагчийн зураг""Захиалгат шошгын нэр"
@@ -251,7 +249,6 @@
"Ажлын пейжер рүү залгах""%s руу залгах""MMS рүү залгах"
- "%s (Залгах)""%s руу мессеж бичих""Гэрийн утас руу мессеж илгээх""Гар утас руу мессеж илгээх"
@@ -273,7 +270,6 @@
"Ажлын пейжэр рүү мессеж илгээх""%s руу мессеж бичих""MMS руу мессеж илгээх"
- "%s (Мессеж)""Видео дуудлага хийх""Байнга холбоо барьдаг харилцагчдын жагсаалтыг устгах уу?""Та Харилцагч болон Утас апп-ууд дахь байнга холбоо барьсан харилцагчдын жагсаалтыг устгаж, ингэснээрээ имэйл апп-уудыг таны имэйл хаяглах хандлагыг бүр эхнээс нь суралцахад хүргэнэ."
@@ -484,7 +480,6 @@
"Google Харилцагч төдийгүй бүх апп болон бүртгэлд таны оруулсан өөрчлөлтийг веб болон таны бусад төхөөрөмжүүд хооронд шинэчилж байх болно.""Идэвхжүүлэх""Холболт байхгүй"
- "SIM""Дэлгэрэнгүй үзэх""SIM картыг импорт хийж дууссан""Импортолж чадсангүй"
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index c3fde6682e..53845132a2 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -84,8 +84,6 @@
"हा संपर्क हटवायचा?""हटवा""संपर्क अस्तित्वात नाही."
- "संपर्क मुख्यपृष्ठावर जोडला."
- "%s ना मुख्यपृष्ठावर जोडले.""डिव्हाइसवर कोणतीही चित्रे उपलब्ध नाहीत.""संपर्क फोटो""लेबल नाव सानुकूलित करा"
@@ -251,7 +249,6 @@
"कार्यस्थानी पेजरवर कॉल करा""%s ला कॉल करा""MMS वर कॉल करा"
- "%s (कॉल करा)""%s वर मजकूर पाठवा""निवासस्थानी मजकूर पाठवा""मोबाईलवर मजकूर पाठवा"
@@ -273,7 +270,6 @@
"कार्य पेजरवर मजकूर पाठवा""%s मजकूर पाठवा""MMS वर मजकूर पाठवा"
- "%s (संदेश)""व्हिडिओ कॉल करा""वारंवार सपर्क साधलेले साफ करायचे?""तुम्ही संपर्क आणि फोन अॅप्स मधील वारंवार संपर्क साधलेली सूची साफ कराल आणि ईमेल अॅप्सना सुरवातीपासून तुमची पत्ता प्राधान्ये जाणून घेण्याची सक्ती कराल."
@@ -484,7 +480,6 @@
"फक्त संपर्कांमध्ये नाही, तर तुम्ही सर्व अॅप्स आणि खात्यांमध्ये करता ते बदल, वेब आणि आपल्या अन्य डिव्हाइसेस दरम्यान अपडेट ठेवले जातील.""सुरू करा""कोणतेही कनेक्शन नाही"
- "सिम""अधिक दर्शवा""सिम कार्ड इंपोर्ट करणे समाप्त झाले""इंपोर्ट अयशस्वी झाले"
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 81d69de48c..abd9b3b4f0 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -84,8 +84,6 @@
"Padam kenalan ini?""Padam""Kenalan tidak wujud."
- "Kenalan ditambahkan pada Skrin utama."
- "%s ditambahkan pada Skrin utama.""Tiada gambar tersedia pada peranti.""Foto kenalan""Nama label peribadi"
@@ -251,7 +249,6 @@
"Panggil alat kelui tempat kerja""Panggil %s""Panggil MMS"
- "%s (Panggil)""Hantar teks kepada %s""SMS ke rumah""SMS ke telefon mudah alih"
@@ -273,7 +270,6 @@
"SMS alat kelui tempat kerja""SMS ke %s""SMS kepada MMS"
- "%s (Hantar mesej)""Buat panggilan video""Padam bersih senarai kerap dihubungi?""Anda akan mengosongkan senarai yang kerap dihubungi dalam apl Kenalan dan Telefon serta memaksa apl e-mel untuk mempelajari pilihan alamat anda dari awal."
@@ -484,7 +480,6 @@
"Perubahan yang anda buat kepada semua apl dan akaun, bukan hanya Google Contacts, akan dikemas kini antara web dengan peranti anda.""Hidupkan""Tiada sambungan"
- "SIM""Tunjukkan lagi""Selesai mengimport kad SIM""Pengimportan gagal"
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index eb84c796ff..eb89226f90 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -84,8 +84,6 @@
"ဤအဆက်အသွယ်ကို ဖျက်မလား။""ဖျက်ရန်""လိပ်စာ မရှိပါ"
- "အဆက်အသွယ်ကို ပင်မ မျက်နှာပြင်သို့ ထည့်လိုက်ပြီ။"
- "%s ကို ပင်မ မျက်နှာပြင်သို့ ထည့်ပေးလိုက်ပြီ။""ဤကိရိယာတွင် ပုံများမရှိပါ။""လိပ်စာရဲ့ဓာတ်ပုံ""စိတ်ကြိုက် အညွှန်းအမည်"
@@ -251,7 +249,6 @@
"အလုပ်ပေဂျာနံပါတ်ကို ခေါ်ရန်""%s ထံ ဖုန်းခေါ်ရန်""MMS ကို ခေါ်ရန်"
- "%s (ခေါ်ရန်)""%s ထံ စာပို့ရန်""အိမ်ဖုန်းနံပါတ်သို့ စာပို့ရန်""မိုဘိုင်းနံပါတ်သို့ စာပို့ရန်"
@@ -273,7 +270,6 @@
"အလုပ်ပေဂျာနံပါတ်သို့ စာပို့ရန်""%s သို့ စာပို့ရန်""MMS နံပါတ်သို့ စာပို့ရန်"
- "%s (မက်ဆေ့ဂျ်ပို့ရန်)""ဗီဒီယိုခေါ်ဆိုမှု ပြုလုပ်ရန်""မကြာခဏဆက်သွယ်လေ့ရှိသူများစာရင်းကို ရှင်းမလား။""အဆက်အသွယ်များနှင့် ဖုန်းအက်ပ်များရှိ မကြာခဏဆက်သွယ်လေ့ရှိသူများစာရင်းကို ရှင်းပစ်မည်ဖြစ်ပြီး အီးမေးလ်အက်ပ်များအား သင်၏ဦးစားပေးလိပ်မူခြင်းများကို အစမှပြန်၍မှတ်သားလေ့လာစေပါမည်။"
@@ -484,7 +480,6 @@
"Google အဆက်အသွယ်များသာမက အက်ပ်နှင့် အကောင့်အားလုံးတွင် သင်ပြုလုပ်သော အပြောင်းအလဲများကို ဝဘ်နှင့် သင့်ကိရိယာများအကြား အချိန်နှင့်တစ်ပြေးညီ မွမ်းမံပေးသွားပါမည်။""ဖွင့်ရန်""ချိတ်ဆက်မှုမရှိပါ"
- "ဆင်းမ်ကတ်""ပိုပြပါ""ဆင်းမ်ကဒ်ကို တင်သွင်းပြီးပါပြီ""တင်သွင်း၍မရပါ"
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 1e6aba8788..e9bb7884d4 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -84,8 +84,6 @@
"Vil du slette denne kontakten?""Slett""Kontakten finnes ikke."
- "Kontakten er lagt til på startskjermen."
- "%s er lagt til på startskjermen.""Ingen bilder er tilgjengelige på enheten.""Kontaktbilde""Egendefinert etikett"
@@ -251,7 +249,6 @@
"Ring arbeidspersonsøker""Ring %s""Ring MMS"
- "%s (ring)""Send tekstmelding til %s""Send SMS (privat)""Send SMS (mobil)"
@@ -273,7 +270,6 @@
"Send SMS til arbeidspersonsøker""Send SMS til %s""Send MMS"
- "%s (send en melding)""Start en videosamtale""Fjerne ofte kontaktede personer?""Du fjerner listen over ofte kontaktede personer i Kontakter- og Telefon-appene, og tvinger e-postappene til å lære seg adresseinnstillingene dine på nytt."
@@ -484,7 +480,6 @@
"Endringer du gjør i alle apper og kontoer, ikke bare Google-kontakter, oppdateres på nett mellom enhetene dine.""Slå på""Ingen tilkobling"
- "SIM-kort""Vis mer""Importen fra SIM-kortet er ferdig""Importeringen mislyktes"
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index fee074074a..77081db371 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -84,8 +84,6 @@
"यो सम्पर्क ठेगाना मेटाउने हो?""मेटाउनुहोस्""सम्पर्क उपलब्ध छैन।"
- "सम्पर्क गृह स्क्रिनमा थपियो।"
- "%s गृह स्क्रिनमा थपियो।""यन्त्रमा कुनै पनि फोटोहरू उपलब्ध छैनन्।""सम्पर्क फोटो"" कस्टम पारिएको लेबलको नाम"
@@ -251,7 +249,6 @@
"कामको पेजरमा कल गर्नुहोस्""%s मा कल गर्नुहोस्""MMS कल"
- "%s (कल गर्नुहोस्)""%s मा टेक्स्ट म्यासेज पठाउनुहोस्""पाठ गृह""पाठ मोबाइल"
@@ -273,7 +270,6 @@
"पाठ कार्य पेजर""पाठ %s""पाठ MMS"
- "%s (म्यासेज पठाउनुहोस्)""भिडियो कल बनाउनुहोस्""प्रायः सम्पर्क गरिएकाहरूलाई हटाउने हो?""तपाईंले कन्ट्याक्टहरू र फोन एपहरूमा बारम्बार सम्पर्क गरेको सूची खाली गर्नुहुने छ र स्क्रयाचबाट तपाईंको ठेगाना प्राथमिकताहरू सिक्नको लागि इमेल एपहरूलाई दबाब दिनुहुने छ।"
@@ -484,7 +480,6 @@
"तपाईंले Google सम्पर्कहरूमा मात्र नभई, सबै एप र खाताहरूमा गरेका परिवर्तनहरू वेब र तपाईंका अन्य यन्त्रहरूका बीचमा अद्यावधिक हुने छन्।""अन गर्नुहोस्""जडान छैन"
- "SIM""थप देखाउनुहोस्""SIM कार्ड आयात गर्ने काम सम्पन्न भयो""इम्पोर्ट गर्न सकिएन"
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index a8e0ed8e3d..7b383ba0a5 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -84,8 +84,6 @@
"Dit contact verwijderen?""Verwijderen""Het contact bestaat niet."
- "Contact is toegevoegd aan het startscherm."
- "%s is toegevoegd aan het startscherm.""Er zijn geen foto\'s beschikbaar op het apparaat.""Contactfoto""Aangepaste labelnaam"
@@ -251,7 +249,6 @@
"Bellen naar pager werk""%s bellen""Bellen via MMS"
- "%s (bellen)""%s sms\'en""Sms\'en naar huis""Sms\'en naar mobiel"
@@ -273,7 +270,6 @@
"Sms\'en naar werkpager""Sms\'en naar %s""Sms\'en via MMS"
- "%s (sms\'en)""Videogesprek starten""Lijst met regelmatige contacten wissen?""Je wist de lijst met contacten waarmee je regelmatig contact opneemt in de apps Contacten en Telefoon, en e-mailapps moeten je voorkeursadressen weer opnieuw leren."
@@ -484,7 +480,6 @@
"Wijzigingen die je aanbrengt in alle apps en accounts, niet alleen in Google Contacten, worden gesynchroniseerd tussen internet en je apparaten.""Aanzetten""Geen verbinding"
- "Simkaart""Meer tonen""Importeren van simkaart voltooid""Importeren mislukt"
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 966f83be65..ec024f0bc9 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -84,8 +84,6 @@
"ଏହି ଯୋଗାଯୋଗଙ୍କୁ ଡିଲିଟ୍ କରିବେ?""ଡିଲିଟ୍ କରନ୍ତୁ""ଏଭଳି କୌଣସି ଯୋଗାଯୋଗ ନାହାନ୍ତି।"
- "ହୋମ୍ ସ୍କ୍ରୀନରେ ଯୋଗାଯୋଗଙ୍କୁ ଯୋଡ଼ାଗଲା"
- "ହୋମ୍ ସ୍କ୍ରୀନରେ %sଙ୍କୁ ଯୋଡ଼ାଗଲା।""ଡିଭାଇସ୍ରେ କୌଣସି ଛବି ନାହିଁ।""ଯୋଗାଯୋଗ ଫଟୋ""କଷ୍ଟମ୍ ଲେବଲ୍ ନାମ"
@@ -251,7 +249,6 @@
"କାର୍ଯ୍ୟ ପେଜର୍ ନମ୍ବର୍କୁ କଲ୍ କରନ୍ତୁ""%sରେ କଲ୍ କରନ୍ତୁ""MMS ନମ୍ବର୍କୁ କଲ୍ କରନ୍ତୁ"
- "%sଙ୍କୁ (କଲ୍ କରନ୍ତୁ)""%sକୁ SMS ପଠାନ୍ତୁ""ଘର ଫୋନ୍ ନମ୍ବର୍କୁ SMS ପଠାନ୍ତୁ""ମୋବାଇଲ୍ ନମ୍ବର୍କୁ SMS ପଠାନ୍ତୁ"
@@ -273,7 +270,6 @@
"କାର୍ଯ୍ୟ ପେଜର୍ ନମ୍ବର୍କୁ SMS ପଠାନ୍ତୁ""%sକୁ SMS ପଠାନ୍ତୁ""MMS ପଠାନ୍ତୁ"
- "%s (ମେସେଜ୍ ପଠାନ୍ତୁ)""ଭିଡିଓ କଲ୍ କରନ୍ତୁ""ପ୍ରାୟତଃ ସମ୍ପର୍କ କରାଯାଉଥିବାକୁ ଖାଲି କରିବେ?""ଆପଣଙ୍କୁ ଯୋଗାଯୋଗ ଏବଂ ଫୋନ୍ ଆପ୍ରୁ ପ୍ରାୟତଃ ସମ୍ପର୍କ କରାଯାଉଥିବା ସୂଚୀକୁ ଡିଲିଟ୍ କରିବା ସହ ନିଜ ଇମେଲ୍ ଆପ୍କୁ ନିଜର ଠିକଣା ପସନ୍ଦକୁ ମୂଳରୁ ଜାଣିବା ପାଇଁ ବାଧ୍ୟ କରିବାକୁ ହେବ।"
@@ -484,7 +480,6 @@
"ସମସ୍ତ ଆପ୍ ଓ ଆକାଉଣ୍ଟରେ ଆପଣ କରିଥିବା ପରିବର୍ତ୍ତନଗୁଡ଼ିକ, ନା କେବଳ Google Contactsରେ, ବରଂ ୱେବ୍ ଓ ଆପଣଙ୍କ ଡିଭାଇସ୍ଗୁଡ଼ିକ ମଧ୍ୟରେ ଅପ୍-ଟୁ-ଡେଟ୍ ରଖାଯିବ।""ଚାଲୁ କରନ୍ତୁ""କୌଣସି କନେକ୍ସନ୍ ନାହିଁ"
- "SIM""ଅଧିକ ଦେଖାନ୍ତୁ""SIM କାର୍ଡ ଇମ୍ପୋର୍ଟ କରିବା ଶେଷ ହୋଇଛି""ଇମ୍ପୋର୍ଟ କରିହେଲା ନାହିଁ"
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 0e74029470..acb6448f03 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -84,8 +84,6 @@
"ਕੀ ਇਸ ਸੰਪਰਕ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?""ਹਟਾਓ""ਸੰਪਰਕ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।"
- "ਸੰਪਰਕ ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ।"
- "%s ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ।""ਡੀਵਾਈਸ \'ਤੇ ਕੋਈ ਤਸਵੀਰਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ।""ਸੰਪਰਕ ਫ਼ੋਟੋ""ਵਿਸ਼ੇਸ਼=ਵਿਉਂਤਬੱਧ ਲੇਬਲ ਨਾਮ"
@@ -251,7 +249,6 @@
"ਕਾਰਜ-ਸਥਾਨ ਪੇਜ਼ਰ ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ""%s ਨੂੰ ਕਾਲ ਕਰੋ""MMS ਫ਼ੋਨ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰੋ"
- "%s (ਕਾਲ ਕਰੋ)""%s ਨੂੰ ਸੁਨੇਹਾ ਭੇਜੋ""ਘਰ ਦੇ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ""ਮੋਬਾਈਲ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"
@@ -273,7 +270,6 @@
"ਕਾਰਜ-ਸਥਾਨ ਪੇਜ਼ਰ ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ""%s \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ""MMS ਨੰਬਰ \'ਤੇ ਸੁਨੇਹਾ ਭੇਜੋ"
- "%s (ਸੁਨੇਹਾ ਭੇਜੋ)""ਵੀਡੀਓ ਕਾਲ ਕਰੋ""ਅਕਸਰ ਸੰਪਰਕ ਕੀਤੇ ਹਟਾਉਣੇ ਹਨ?""ਤੁਸੀਂ ਸੰਪਰਕਾਂ ਅਤੇ ਫ਼ੋਨ ਐਪਾਂ ਵਿੱਚ ਅਕਸਰ ਸੰਪਰਕ ਕੀਤੀ ਸੂਚੀ ਸਾਫ਼ ਕਰੋਂਗੇ ਅਤੇ ਸਕ੍ਰੈਚ ਦੇ ਨਾਲ ਤੁਹਾਡੀਆਂ ਪਤਾ ਤਰਜੀਹਾਂ ਨੂੰ ਜਾਣਨ ਲਈ ਈਮੇਲ ਐਪਾਂ \'ਤੇ ਜ਼ੋਰ ਪਾਓਗੇ।"
@@ -484,7 +480,6 @@
"ਨਾ ਸਿਰਫ਼ Google ਸੰਪਰਕਾਂ ਲਈ, ਬਲਕਿ ਸਾਰੀਆਂ ਐਪਾਂ ਅਤੇ ਖਾਤਿਆਂ ਲਈ ਕੀਤੀਆਂ ਗਈਆਂ ਤੁਹਾਡੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਵੈੱਬ ਅਤੇ ਤੁਹਾਡੀਆਂ ਡੀਵਾਈਸਾਂ ਵਿਚਕਾਰ ਅੱਪ ਟੂ ਡੇਟ ਰੱਖਿਆ ਜਾਵੇਗਾ।""ਚਾਲੂ ਕਰੋ""ਕੋਈ ਕਨੈਕਸ਼ਨ ਨਹੀਂ"
- "SIM""ਹੋਰ ਦਿਖਾਓ""ਸਿਮ ਕਾਰਡ ਆਯਾਤ ਕਰਨਾ ਮੁਕੰਮਲ ਹੋਇਆ""ਆਯਾਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index ca4b3ef90e..82b0e69b35 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -84,8 +84,6 @@
"Usunąć ten kontakt?""Usuń""Kontakt nie istnieje."
- "Kontakt został dodany do ekranu głównego."
- "Kontakt %s został dodany do ekranu głównego.""Brak zdjęć na urządzeniu.""Zdjęcie kontaktu""Nazwa etykiety własnej"
@@ -251,7 +249,6 @@
"Połącz – pager służbowy""Zadzwoń do: %s""Połącz – MMS"
- "%s (zadzwoń)""Wyślij SMS-a do: %s""Tekst – domowy""SMS – komórka"
@@ -273,7 +270,6 @@
"SMS – pager służbowy""SMS – %s""Tekst – wiadomość MMS"
- "%s (wyślij wiadomość)""Rozpocznij rozmowę wideo""Wyczyścić częste kontakty?""Wyczyścisz listę częstych kontaktów w aplikacjach Kontakty i Telefon. Aplikacje pocztowe będą musiały od nowa poznać Twoje preferencje adresowe."
@@ -484,7 +480,6 @@
"Zmiany, które wprowadzisz we wszystkich aplikacjach i na wszystkich kontach (nie tylko w Kontaktach Google), będą synchronizowane między wersją w internecie a Twoimi urządzeniami.""Włącz""Brak połączenia"
- "SIM""Pokaż więcej""Zaimportowano kontakty z karty SIM""Nie udało się zaimportować"
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index f63a98854f..d5a60f13d2 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -84,8 +84,6 @@
"Excluir este contato?""Excluir""O contato não existe."
- "Contato adicionado à tela inicial."
- "Contato %s adicionado à tela inicial.""Não há imagens disponíveis no dispositivo.""Foto do contato""Personalizar nome do marcador"
@@ -251,7 +249,6 @@
"Chamar pager comercial""Ligar para %s""Chamar MMS"
- "%s (chamada)""Enviar mensagem de texto para %s""Enviar SMS para resid.""Enviar SMS para dispositivos móveis"
@@ -273,7 +270,6 @@
"Enviar SMS para pager com.""Enviar SMS para %s""Enviar texto MMS"
- "%s (mensagem)""Fazer videochamada""Apagar contatos frequentes?""Você apagará a lista de contatos frequentes nos apps Contatos e Telefone, fazendo com que os apps de e-mail tenham que redefinir suas preferências de endereçamento."
@@ -484,7 +480,6 @@
"As alterações que você fizer em todos os aplicativos e contas, não apenas nas Contas do Google, permanecerão atualizadas entre a Web e seus dispositivos.""Ativar""Sem conexão"
- "SIM""Mostrar mais""A importação do chip foi concluída""Falha na importação"
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index b966bc9b7e..012d373714 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -84,8 +84,6 @@
"Eliminar este contacto?""Eliminar""O contacto não existe."
- "Contacto adicionado ao ecrã principal."
- "%s adicionado ao ecrã principal.""Não existem imagens disponíveis no dispositivo.""Fotografia do contacto""Nome da etiqueta personalizada"
@@ -251,7 +249,6 @@
"Ligar para pager do emprego""Telefonar para %s""Ligar MMS"
- "%s (Chamada)""Enviar SMS para %s""Enviar SMS para residência""Enviar SMS para telemóvel"
@@ -273,7 +270,6 @@
"Enviar SMS para pager do emprego""Enviar SMS para %s""Enviar MMS"
- "%s (Mensagem)""Fazer videochamada""Limpar contactos frequentes?""Limpa a lista de contactos frequentes nas aplicações Contactos e Telefone e força as aplicações de email a aprenderem as suas preferências de endereço de raiz."
@@ -484,7 +480,6 @@
"As alterações que efetuar a todas as aplicações e contas, e não apenas aos Contactos do Google, serão atualizadas entre a Web e os seus dispositivos.""Ativar""Sem ligação"
- "SIM""Mostrar mais""Importação do cartão SIM concluída""Falha ao importar"
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index f63a98854f..d5a60f13d2 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -84,8 +84,6 @@
"Excluir este contato?""Excluir""O contato não existe."
- "Contato adicionado à tela inicial."
- "Contato %s adicionado à tela inicial.""Não há imagens disponíveis no dispositivo.""Foto do contato""Personalizar nome do marcador"
@@ -251,7 +249,6 @@
"Chamar pager comercial""Ligar para %s""Chamar MMS"
- "%s (chamada)""Enviar mensagem de texto para %s""Enviar SMS para resid.""Enviar SMS para dispositivos móveis"
@@ -273,7 +270,6 @@
"Enviar SMS para pager com.""Enviar SMS para %s""Enviar texto MMS"
- "%s (mensagem)""Fazer videochamada""Apagar contatos frequentes?""Você apagará a lista de contatos frequentes nos apps Contatos e Telefone, fazendo com que os apps de e-mail tenham que redefinir suas preferências de endereçamento."
@@ -484,7 +480,6 @@
"As alterações que você fizer em todos os aplicativos e contas, não apenas nas Contas do Google, permanecerão atualizadas entre a Web e seus dispositivos.""Ativar""Sem conexão"
- "SIM""Mostrar mais""A importação do chip foi concluída""Falha na importação"
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index e66a87f6da..8efcabd940 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -84,8 +84,6 @@
"Ștergeți această persoană de contact?""Ștergeți""Persoana nu există în agendă."
- "Persoana de contact a fost adăugată pe ecranul de pornire."
- "Persoana de contact %s a fost adăugată pe ecranul de pornire.""Nu există imagini disponibile pe dispozitiv.""Fotografie persoană din agendă""Numele etichetei personalizate"
@@ -251,7 +249,6 @@
"Apelați pagerul de serviciu""Apelați %s""Apelați MMS"
- "%s (apelați)""Trimiteți mesaj text către %s""Trimiteți mesaj text către telefonul de domiciliu""Trimiteți mesaj text către telefonul mobil"
@@ -273,7 +270,6 @@
"Trimiteți mesaj text către un număr de pager de la serviciu""Trimiteți mesaj text către %s""Trimiteți mesaj text către un număr MMS"
- "%s (trimiteți mesaj)""Inițiați un apel video""Ștergeți persoane frecvent contactate?""Veți șterge lista persoanelor contactate frecvent din aplicațiile Agendă și Telefon și veți forța aplicațiile de e-mail să vă învețe preferințele pentru adrese de la zero."
@@ -484,7 +480,6 @@
"Modificările pe care le faceți în toate aplicațiile și conturile, nu doar în Agenda Google, vor fi actualizate permanent între web și dispozitivele dvs.""Activați""Nicio conexiune"
- "SIM""Afișați mai mult""Importarea cardului SIM s-a terminat.""Nu s-a importat."
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index aedcf6e85d..16b7914022 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -84,8 +84,6 @@
"Удалить контакт?""Удалить""Нет такого контакта."
- "Контакт добавлен на главный экран"
- "Контакт \"%s\" добавлен на главный экран""На устройстве нет изображений.""Фотография контакта""Название"
@@ -251,7 +249,6 @@
"Рабочий пейджер""Позвонить (%s)""MMS-центр"
- "%s (вызов)""Отправить SMS (%s)""SMS:домашний тел.""SMS: мобильный"
@@ -273,7 +270,6 @@
"SMS:рабоч. пейдж.""Отправить текстовое сообщение на номер %s""MMS"
- "%s (SMS)""Начать видеовстречу""Очистить список популярных контактов?""Список часто используемых контактов в приложениях \"Контакты\" и \"Телефон\" будет очищен, и почтовые приложения начнут заносить в него данные заново."
@@ -484,7 +480,6 @@
"Изменения всех приложений и аккаунтов (не только Google Контактов) будут синхронизироваться между веб-интерфейсом и вашими устройствами.""Включить""Нет соединения"
- "SIM-карта""Показать ещё""Импорт контактов с SIM-карты завершен""Ошибка импорта"
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 9ceb420268..a7bb4ba54c 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -84,8 +84,6 @@
"මෙම සම්බන්ධතාව මකන්නද?""මකන්න""සම්බන්ධතාවය නොපවතී."
- "සම්බන්ධතාව මුල් පිටු තිරය වෙත එක් කරන ලදී."
- "%s මුල් පිටු තිරය වෙත එක් කරන ලදී.""උපාංගය මත පින්තූර කිසිවක් ලබා ගත නොහැකිය.""සම්බන්ධතා ඡායාරූපය""අභිරුචි ලේබල නම"
@@ -251,7 +249,6 @@
"කාර්යාල පේජරය අමතන්න""%s අමතන්න""MMS අමතන්න"
- "%s (ඇමතුම)""%s වෙත කෙටි පණිවිඩ යවන්න""නිවසට කෙටි පණිවිඩයක් යවන්න""ජංගම දුරකථනයට කෙටි පණිවිඩයක් යවන්න"
@@ -273,7 +270,6 @@
"කාර්යාල පේජරයට කෙටි පණිවිඩයක් යවන්න""%s ට කෙටි පණිවිඩයක් යවන්න""MMS වෙත කෙටි පණිවිඩයක් යවන්න"
- "%s (පණිවිඩය)""වීඩියෝ ඇමතුමක් ලබා ගන්න""නිතරම සම්බන්ධ වන අය හිස් කරන්නද?""ඔබ නිතරම සම්බන්ධතා සහ දුරකථන යෙදුම් තුළ සම්බන්ධ වුණු අයගේ ලැයිස්තුව හිස් කර, මුල සිටම ඔබේ ලිපින මනාප ඉගෙනීමට ඊ-තැපැල් යෙදුම්වලට බල කරනු ඇත."
@@ -484,7 +480,6 @@
"හුදෙක් Google සම්බන්ධතා පමණක් නොව, ඔබ සියලු යෙදුම් සහ ගිණුම් වෙත කරන වෙනස් කිරීම් වෙබ සහ ඔබේ උපාංග අතර යාවත්කාලිනව තබා ගනු ඇත.""ක්රියාත්මක කරන්න""සම්බන්ධතාව නැත"
- "SIM""තව පෙන්වන්න""SIM කාඩ්පත ආයාත කිරීම අවසන්ය""අයාත කිරීම අසාර්ථක විය"
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index d9823b9127..b2e9d3d415 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -84,8 +84,6 @@
"Odstrániť tento kontakt?""Odstrániť""Kontakt neexistuje."
- "Kontakt bol pridaný na plochu"
- "Kontakt %s bol pridaný na plochu""V zariadení nie sú k dispozícii žiadne fotky.""Fotka kontaktu""Názov štítku"
@@ -251,7 +249,6 @@
"Volať na pracovný pager""Volať na číslo %s""Zavolať na číslo MMS"
- "%s (hovor)""Poslať SMS na číslo %s""SMS domov""SMS na mobil"
@@ -273,7 +270,6 @@
"Odoslať správu na pracovný pager""Poslať správu kontaktu %s""SMS na číslo MMS"
- "%s (správa)""Uskutočniť videohovor""Vymazať často kontaktované osoby?""Vymažete zoznam často kontaktovaných osôb v aplikáciách Kontakty a Telefón a e-mailové aplikácie budú musieť odznova vytvoriť predvoľby adresátov."
@@ -484,7 +480,6 @@
"Medzi webom a vašimi zariadeniami sa budú aktualizovať zmeny, ktoré vykonáte vo všetkých aplikáciách a účtoch, nielen v Kontaktoch Google.""Zapnúť""Žiadne pripojenie"
- "SIM karta""Zobraziť viac""Import SIM karty bol dokončený""Import zlyhal"
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 0257ed3a68..88251a47c1 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -84,8 +84,6 @@
"Želite izbrisati ta stik?""Izbriši""Stik ne obstaja."
- "Stik je dodan na začetni zaslon."
- "Stik %s je dodan na začetni zaslon.""V napravi ni na voljo nobene slike.""Fotografija za stik""Ime oznake po meri"
@@ -251,7 +249,6 @@
"Pokliči službeni pozivnik""Pokliči: %s""Pokliči telefon MMS"
- "%s (Pokliči)""Pošlji SMS za: %s""Pošlji SMS domov""Pošlji SMS na mobilni telefon"
@@ -273,7 +270,6 @@
"Pošlji SMS na službeni pozivnik""Pošlji SMS %s""Pošlji SMS na telefon MMS"
- "%s (Pošlji sporočilo)""Opravi videoklic""Želite izbrisati seznam pog. stikov?""Izbrisali boste seznam pogostih stikov v aplikacijah Stiki in Telefon, zato bodo e-poštne aplikacije začele shranjevati pogoste naslovnike od začetka."
@@ -484,7 +480,6 @@
"Spremembe, ki jih izvedete v Google Stikih ter tudi vseh aplikacijah in računih, bodo sinhronizirane med spletom in vašimi napravami.""Vklopi""Ni povezave"
- "Kart. SIM""Pokaži več""Uvoz kartice SIM je končan""Uvoz ni uspel"
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 7885026ba3..699761b689 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -84,8 +84,6 @@
"Të fshihet ky kontakt?""Fshi""Kontakti nuk ekziston."
- "Kontakti u shtua tek Ekrani bazë."
- "%s u shtua tek Ekrani bazë.""Nuk ka fotografi në dispozicion në pajisje.""Fotografia e kontaktit""Emri i personalizuar i etiketës"
@@ -251,7 +249,6 @@
"Telefono numrin e biperit të punës""Telefono %s""Telefono numrin MMS"
- "%s (Telefono)""Dërgo mesazh me tekst te %s""Dërgo mesazh te numri i shtëpisë""Dërgo mesazh te numri celular"
@@ -273,7 +270,6 @@
"Dërgo mesazh te numri i biperit""Dërgo mesazh te %s""Dërgo mesazh te numri i MMS-së"
- "%s (Mesazh)""Bëj një telefonatë me video""Të pastrohen kontaktet e shpeshta?""Do ta pastrosh listën e kontakteve të shpeshta në aplikacionet \"Kontaktet\" dhe \"Telefoni\" dhe do t\'i detyrosh aplikacionet e email-it të mësojnë preferencat e tua të adresimit nga e para."
@@ -484,7 +480,6 @@
"Ndryshimet që bën në të gjitha aplikacionet dhe llogaritë, jo vetëm \"Kontaktet e Google\", do të përditësohen mes uebit dhe pajisjeve të tua.""Aktivizo""Nuk ka lidhje"
- "SIM""Shfaq më shumë""Importimi i kartës SIM përfundoi""Importimi dështoi"
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index a6e1bd8a92..77bf503c0b 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -84,8 +84,6 @@
"Желите ли да избришете овај контакт?""Избриши""Контакт не постоји."
- "Контакт је додат на почетни екран."
- "Контакт %s је додат на почетни екран.""На уређају није пронађена ниједна слика.""Слика контакта""Назив прилагођене ознаке"
@@ -251,7 +249,6 @@
"Позови пословни пејџер""Позови %s""Позови MMS"
- "%s (позови)""Пошаљи SMS на %s""Пошаљи SMS на кућни телефон""Пошаљи SMS на мобилни телефон"
@@ -273,7 +270,6 @@
"Пошаљи SMS на пејџер""Пошаљи SMS на %s""Пошаљи SMS на MMS"
- "%s (пошаљи SMS)""Упутите видео позив""Брисање често контактираних?""Обрисаћете листу често контактираних у апликацијама Контакти и Телефон, па ће имејл апликације морати из почетка да прикупе информације о адресирању."
@@ -484,7 +480,6 @@
"На вебу и уређајима ће се редовно ажурирати промене које уносите у свим апликацијама и на свим налозима, а не само у Google контактима.""Укључи""Веза није успостављена"
- "SIM""Прикажи више""Увоз са SIM картице је завршен""Увоз није успео"
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 91ab32859c..909c16a9ee 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -84,8 +84,6 @@
"Vill du ta bort kontakten?""Ta bort""Kontakten finns inte."
- "Kontakten har lagts till på startskärmen."
- "%s har lagts till på startskärmen.""Det finns inga bilder på enheten.""Kontaktbild""Anpassat etikettsnamn"
@@ -251,7 +249,6 @@
"Ring upp jobbpersonsökare""Ring %s""Samtal – MMS"
- "%s (ring)""Skicka sms till %s""SMS – hem""SMS – mobil"
@@ -273,7 +270,6 @@
"Skicka SMS till jobbpersonsökare""Skicka SMS till %s""Skicka MMS"
- "%s (skicka sms)""Ring videosamtal""Rensa listan?""Du rensar listan över personer som du kontaktar ofta i apparna Kontakter och Telefon. E-postappar tvingas lära sig dina mottagarinställningar från början."
@@ -484,7 +480,6 @@
"Ändringar du gör i alla appar och konton, inte bara i Kontakter, uppdateras mellan webben och dina enheter.""Aktivera""Ingen anslutning"
- "SIM""Visa fler""Import av SIM-kort slutförd""Det gick inte att importera"
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index ae6be25f76..f3b1675d66 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -84,8 +84,6 @@
"Je, ungependa kufuta anwani hii?""Futa""Anwani haipo."
- "Anwani imeongezwa kwenye Skrini ya kwanza."
- "%s imeongezwa kwenye Skrini ya kwanza.""Hakuna picha inayopatikana kwenye kifaa.""Picha ya anwani""Jina maalum la lebo"
@@ -251,7 +249,6 @@
"Piga simu kwa peja""Piga %s""Piga simu kwa MMS"
- "%s (Piga)""Tuma SMS kwa %s""Tuma ujumbe kwa simu ya nyumbani""Tuma ujumbe wa maandishi kwa simu ya mkononi"
@@ -273,7 +270,6 @@
"Tuma ujumbe kwa peja ya kazini""Tuma ujumbe kwa %s""Tuma maandishi ya MMS"
- "%s (Tuma Ujumbe)""Piga Hangout ya Video""Futa uliowasiliana nao mara kwa mara?""Utafuta orodha ya unaowasiliana nao mara kwa mara katika programu ya Anwani na ya Simu, na kulazimisha programu za barua pepe zitambue mapendeleo yako ya anwani kutoka mwanzo."
@@ -484,7 +480,6 @@
"Mabadiliko utakayofanya katika programu na akaunti zote, wala si katika Anwani tu, yatasawazishwa kwenye wavuti na kwenye vifaa vyako.""Washa""Hakuna muunganisho"
- "SIM""Onyesha zingine""Imemaliza kuleta anwani za SIM kadi""Imeshindwa kuleta anwani"
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 491f246a12..c56cec4b8b 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -84,8 +84,6 @@
"தொடர்பை நீக்கவா?""நீக்கு""தொடர்பு இல்லை."
- "தொடர்பு முகப்புத் திரையில் சேர்க்கப்பட்டது."
- "%s என்ற தொடர்பு முகப்புத் திரையில் சேர்க்கப்பட்டது.""சாதனத்தில் படங்கள் எதுவுமில்லை.""தொடர்பின் படம்""பிரத்தியேக லேபிள் பெயர்"
@@ -251,7 +249,6 @@
"பணியிடத்தின் பேஜர் எண்ணில் அழை""%sஐ அழை""MMS ஃபோனை அழை"
- "%s (அழை)""%sக்கு உரைச்செய்தி அனுப்பு""வீட்டு தொலைபேசி எண்ணிற்கு உரைச்செய்தி அனுப்பு""மொபைல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"
@@ -273,7 +270,6 @@
"பணியிட பேஜர் எண்ணிற்கு உரைச்செய்தி அனுப்பு""%s க்கு உரைச்செய்தி அனுப்பு""MMS மொபைல் எண்ணிற்கு உரைச்செய்தி அனுப்பு"
- "%s (செய்தி அனுப்பு)""வீடியோ அழைப்பைத் தொடங்கும்""அடிக்கடி தொடர்புகொண்ட தொடர்பை அழிக்கவா?""தொடர்புகள் மற்றும் ஃபோன் பயன்பாடுகளில் உள்ள அடிக்கடி தொடர்பு கொண்டவர்களின் பட்டியல் அழிக்கப்பட்டு, தொடக்கத்திலிருந்து மீண்டும் உங்கள் முகவரி விருப்பத்தேர்வுகளை மின்னஞ்சல் ஆப்ஸ் அறியும்படி செய்யப்படும்."
@@ -484,7 +480,6 @@
"Google தொடர்புகள் மட்டுமல்லாமல் எல்லாப் பயன்பாடுகளிலும் கணக்குகளிலும் நீங்கள் செய்யும் மாற்றங்கள், இணையத்திலும் உங்கள் சாதனங்களிலும் புதுப்பித்த நிலையில் வைக்கப்படும்.""இயக்கு""இணைப்பு இல்லை"
- "சிம்""மேலும் காட்டு""சிம் கார்டு இறக்கப்பட்டது""இறக்க முடியவில்லை"
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index e05cf34976..42ca9ea1e1 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -84,8 +84,6 @@
"ఈ కాంటాక్ట్ను తొలగించాలా?""తొలగించండి""కాంటాక్ట్ ఉనికిలో లేదు."
- "కాంటాక్ట్ హోమ్ స్క్రీన్కు జోడించబడింది."
- "%s హోమ్ స్క్రీన్కు జోడించబడింది.""పరికరంలో చిత్రాలు ఏవీ అందుబాటులో లేవు.""కాంటాక్ట్ ఫోటో""అనుకూల లేబుల్ పేరు"
@@ -251,7 +249,6 @@
"కార్యాలయ పేజర్కు కాల్ చేయండి""%sకి కాల్ చేయి""MMSకు కాల్ చేయండి"
- "%s (కాల్ చేయి)""%sకి వచనం పంపు""ఇంటికి వచనం పంపండి""మొబైల్కు వచనం పంపండి"
@@ -273,7 +270,6 @@
"కార్యాలయ పేజర్కు వచనం పంపండి""%sకు వచనం పంపండి""MMS నంబర్కు వచనం పంపండి"
- "%s (మెసేజ్)""వీడియో కాల్ చేస్తుంది""తరచుగా సంప్రదించినవాటిని క్లియర్ చేయాలా?""మీరు కాంటాక్ట్లు మరియు ఫోన్ యాప్లలో తరచుగా సంప్రదించిన కాంటాక్ట్ల లిస్ట్ను తీసివేస్తారు మరియు స్క్రాచ్ నుండి మీ అడ్రస్ ప్రాధాన్యతలను తెలుసుకునేలా ఈమెయిల్ యాప్లను నిర్బంధిస్తారు."
@@ -484,7 +480,6 @@
"మీరు కేవలం కాంటాక్ట్లకు చేసే మార్పులే కాకుండా అన్ని యాప్లు మరియు ఖాతాలకు చేసే మార్పులు వెబ్ మరియు మీ పరికరాల మధ్య ఎప్పటికప్పుడు అప్డేట్గా ఉంచబడతాయి.""ఆన్ చేయండి""కనెక్షన్ లేదు"
- "SIM""మరిన్ని చూపుతుంది""SIM కార్డ్ దిగుమతి ముగిసింది""దిగుమతి విఫలమైంది"
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index e03577ca8b..618bff61ec 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -84,8 +84,6 @@
"ลบรายชื่อติดต่อนี้ไหม""ลบ""ไม่มีรายชื่อติดต่อนี้"
- "เพิ่มรายชื่อติดต่อลงในหน้าจอหลักแล้ว"
- "เพิ่ม %s ลงในหน้าจอหลักแล้ว""ไม่มีรูปภาพให้ใช้งานบนอุปกรณ์""ภาพของรายชื่อติดต่อ""ชื่อป้ายที่กำหนดเอง"
@@ -251,7 +249,6 @@
"โทรเข้าเพจเจอร์ที่ทำงาน""โทร %s""โทรหา MMS"
- "%s (โทร)""ส่งข้อความ %s""ส่งข้อความเข้าโทรศัพท์บ้าน""ส่งข้อความเข้ามือถือ"
@@ -273,7 +270,6 @@
"ส่งข้อความเข้าเพจเจอร์ที่ทำงาน""ส่งข้อความถึง %s""ส่งข้อความถึง MMS"
- "%s (ข้อความ)""ใช้ Hangouts วิดีโอ""ล้างผู้ที่คุณติดต่อด้วยบ่อยๆ หรือไม่""คุณจะล้างรายชื่อของผู้ที่ติดต่อด้วยบ่อยๆ ในแอปพลิเคชัน Contact และ Phone และบังคับให้แอปพลิเคชันอีเมลเรียนรู้ค่ากำหนดที่อยู่ของคุณใหม่ตั้งแต่ต้น"
@@ -484,7 +480,6 @@
"ระบบจะอัปเดตข้อมูลการเปลี่ยนแปลงต่างๆ ทั้ง Google Contacts รวมถึงแอปและบัญชีทั้งหมดให้เป็นปัจจุบันระหว่างเว็บและอุปกรณ์ของคุณ""เปิด""ไม่มีการเชื่อมต่อ"
- "ซิม""แสดงเพิ่มเติม""นำเข้าจากซิมการ์ดเสร็จแล้ว""การนำเข้าล้มเหลว"
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index e7a0a05545..4df9dc5793 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -84,8 +84,6 @@
"I-delete ang contact na ito?""I-delete""Hindi umiiral ang contact."
- "Naidagdag ang contact sa Home screen."
- "Naidagdag ang %s sa Home screen.""Walang available na larawan sa device.""Larawan ng contact""Custom na pangalan ng label"
@@ -251,7 +249,6 @@
"Tawagan ang pager sa trabaho""Tawagan ang %s""Tawagan ang MMS"
- "%s (Tawagan)""I-text ang %s""Mag-text sa bahay""Mag-text sa mobile"
@@ -273,7 +270,6 @@
"Mag-text sa pager sa trabaho""Mag-text sa %s""Mag-text ng MMS"
- "%s (Imensahe)""Makipag-video call""I-clear ang mga madalas tinatawagan?""Iki-clear mo ang listahan ng madalas na kontakin sa mga app na Mga Contact at Telepono at pupuwersahin mo ang mga app ng email na matutunan ang iyong mga kagustuhan sa pag-a-address mula sa simula."
@@ -484,7 +480,6 @@
"Ang mga pagbabagong ginagawa mo sa lahat ng app at account, hindi lang sa Google Contacts, ay pananatilihing up to date sa pagitan ng web at ng mga device mo.""I-on""Walang koneksyon"
- "SIM""Magpakita ng higit pa""Tapos nang i-import ang SIM card""Nabigong i-import"
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 826c0242f0..24d55b56d0 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -84,8 +84,6 @@
"Bu kişi silinsin mi?""Sil""Kişi mevcut değil."
- "Kişi, Ana ekrana eklendi."
- "%s, Ana ekrana eklendi.""Cihazda kullanılabilir resim yok.""Kişi fotoğrafı""Özel etiket adı"
@@ -251,7 +249,6 @@
"İş çağrı cihazını ara""Telefon et: %s""Çağrı yap (MMS)"
- "%s (Telefon et)""SMS gönder: %s""SMS gönder (ev)""SMS gönder (mobil)"
@@ -273,7 +270,6 @@
"SMS Gönder (iş yeri çağrı cihazı)""SMS Gönder (%s)""SMS gönder (MMS)"
- "%s (Mesaj gönder)""Görüntülü görüşme yapın""Sık iletişim kurulanlar silinsin mi?""Kişiler ve Telefon uygulamalarındaki sık iletişim kurulanlar listesini temizleyecek ve e-posta uygulamalarını adres tercihlerinizi en baştan öğrenmeye zorlayacaksınız."
@@ -484,7 +480,6 @@
"Yalnızca Google Kişiler değil, tüm uygulama ve hesaplarda yaptığınız değişiklikler web ile cihazlarınız arasında güncel tutulur.""Aç""Bağlantı yok"
- "SIM""Diğer seçenekler gösterilir""SIM kartın içe aktarılması tamamlandı""İçe aktarma başarısız oldu"
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 1b3173a3ba..e307317f6f 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -84,8 +84,6 @@
"Видалити цей контакт?""Видалити""Контакт не існує."
- "Контакт додано на головний екран."
- "Контакт %s додано на головний екран.""На пристрої немає зображень.""Фото контакта""Назва"
@@ -251,7 +249,6 @@
"Двон. на роб. пейдж.""Зателефонувати на такий номер: %s""Набрати ном. MMS"
- "%s (зателефонувати)""Надіслати SMS на такий номер: %s""SMS на дом. тел.""SMS на моб."
@@ -273,7 +270,6 @@
"SMS на роб. пейдж.""SMS на %s""SMS на ном. MMS"
- "%s (надіслати повідомлення)""Здійснити відеодзвінок""Очистити список частих контактів?""Буде видалено список користувачів, з якими ви часто спілкуєтеся, з додатків Контакти та Телефон і скинуто налаштування адрес у додатках для електронної пошти."
@@ -484,7 +480,6 @@
"Зміни, які ви вносите в усі додатки й облікові записи (не тільки в Контакти Google), синхронізуватимуться між веб-версією та вашими пристроями.""Увімкнути""Немає з’єднання"
- "SIM-карта""Показати більше""SIM-карту імпортовано""Не вдалось імпортувати"
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 5617e225e6..4b1658110d 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -84,8 +84,6 @@
"اس رابطے کو حذف کریں؟""حذف کریں""رابطہ موجود نہیں ہے۔"
- "رابطہ ہوم اسکرین میں شامل ہو گیا۔"
- "%s ہوم اسکرین میں شامل ہو گیا۔""آلہ پر کوئی تصاویر دستیاب نہیں ہیں۔""رابطہ کی تصویر""حسب ضرورت لیبل کا نام"
@@ -251,7 +249,6 @@
"دفتر کے پیجر پر کال کریں""%s کو کال کریں""MMS نمبر پر کال کریں"
- "%s (کال کریں)""%s پر ٹیکسٹ پیغام بھیجیں""گھر کے نمبر پر متن بھیجیں""موبائل پر متن بھیجیں"
@@ -273,7 +270,6 @@
"دفتر کے پیجر پر متن بھیجیں""%s پر متن بھیجیں""MMS نمبر پر متن بھیجیں"
- "%s (پیغام بھیجیں)""ویڈیو کال کریں""اکثر رابطہ کردہ کو صاف کریں؟""آپ رابطے اور فون ایپس میں اکثر رابطہ کردہ فہرست کو صاف کر دیں گے اور ای میل ایپس کو از سر نو اپنے پتے کی ترجیحات جاننے پر مجبور کریں گے۔"
@@ -484,7 +480,6 @@
"نہ صرف Google رابطوں پر، بلکہ تمام ایپس اور اکاؤنٹس پر جو تبدیلیاں آپ کریں گے، انہیں آپ کے آلات اور ویب کے درمیان اپ ٹو ڈیٹ رکھا جائے گا۔""آن کریں""کوئی کنکشن نہیں ہے"
- "SIM""مزید دکھائیں""SIM کارڈ کی درآمد مکمل ہو گئی""درآمد کرنا ناکام ہو گیا"
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 80b2dc7546..2a981f9a9c 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -84,8 +84,6 @@
"Bu kontakt o‘chirib tashlansinmi?""O‘chirish""Kontakt mavjud emas."
- "Kontakt bosh ekranga chiqarildi."
- "%s bosh ekranga chiqarildi.""Qurilmada rasm yo‘q.""Kontakt surati""Nomi"
@@ -251,7 +249,6 @@
"Ish peyjeri""Chaqiruv (%s)""MMS markazi"
- "%s (Chaqiruv)""SMS yuborish (%s)""SMS: uy telefoni""SMS: mobil"
@@ -273,7 +270,6 @@
"SMS: ish peyjeri""%s telefon raqamiga SMS yuborish""MMS"
- "%s (SMS)""Video qo‘ng‘iroq qilish""Bu ro‘yxat tozalansinmi?""Kontaktlar va Telefon ilovalaridagi tez-tez aloqa qilingan kontaktlar ro‘yxati tozalanadi. Email ilovalari esa e-pochta manzillarini yangidan eslay boshlaydi."
@@ -484,7 +480,6 @@
"Ilova va hisoblarga kiritgan o‘zgarishlar (nafaqat Google Kontaktlar), ularning veb-versiyalaridan qurilmalarga avtomatik sinxronlanadi.""Yoqish""Internetga ulanmagansiz"
- "SIM karta""Yana""Kontaktlar SIM kartadan import qilindi""Import qilib bo‘lmadi"
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index d6a3783826..81a8876b17 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -84,8 +84,6 @@
"Xóa người liên hệ này?""Xóa""Địa chỉ liên hệ không tồn tại."
- "Đã thêm liên hệ vào Màn hình chính."
- "Đã thêm %s vào Màn hình chính.""Không có ảnh nào trên thiết bị.""Ảnh của liên hệ""Tên nhãn tùy chỉnh"
@@ -251,7 +249,6 @@
"Gọi số máy nhắn tin tại cơ quan""Gọi %s""Gọi MMS"
- "%s (Gọi)""Gửi tin nhắn văn bản tới %s""Nhắn tin tới số điện thoại nhà riêng""Nhắn tin tới số điện thoại di động"
@@ -273,7 +270,6 @@
"Nhắn tin tới số máy nhắn tin tại cơ quan""Nhắn tin %s""Nhắn tin tới số điện thoại MMS"
- "%s (Tin nhắn)""Gọi video""Xóa danh sách liên hệ thường xuyên?""Bạn sẽ xóa danh sách liên hệ thường xuyên trong ứng dụng Danh bạ và điện thoại cũng như buộc các ứng dụng email phải tìm hiểu các tùy chọn gửi của bạn lại từ đầu."
@@ -484,7 +480,6 @@
"Những thay đổi bạn thực hiện đối với tất cả ứng dụng và tài khoản, không chỉ với Danh bạ Google, sẽ luôn được cập nhật giữa web và thiết bị của bạn.""Bật""Không có kết nối"
- "SIM""Hiện thêm""Đã nhập xong thẻ SIM""Nhập không thành công"
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 7b75542ae2..981f258319 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -84,8 +84,6 @@
"要删除此联系人吗?""删除""该联系人不存在。"
- "已将该联系人添加到主屏幕。"
- "已将%s添加到主屏幕。""设备上没有可用的照片。""联系人照片""自定义标签名称"
@@ -251,7 +249,6 @@
"呼叫单位寻呼机""拨打%s的电话""呼叫彩信号码"
- "%s(拨打电话)""向%s电话号码发短信""向住宅电话号码发短信""向手机发送短信"
@@ -273,7 +270,6 @@
"向单位寻呼机发送短信""向%s发短信""向彩信号码发送短信"
- "%s(发送短信)""发起视频通话""是否清除常用联系人?""此操作会清除“通讯录”和“电话”应用中的常用联系人列表,并强制邮件应用重新获取您最常使用的联系地址。"
@@ -484,7 +480,6 @@
"您对所有应用和账号(不只是 Google 通讯录)所做的更改都会在网络和您的设备之间保持同步。""开启""无网络连接"
- "SIM 卡""显示更多""已导入 SIM 卡联系人""导入失败"
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 14bceb984f..75db743ac7 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -84,8 +84,6 @@
"要刪除此聯絡人嗎?""刪除""聯絡人不存在。"
- "已將聯絡人增至主畫面"
- "已將%s增至主畫面。""裝置上沒有相片可供選用。""聯絡人相片""自訂標籤名稱"
@@ -251,7 +249,6 @@
"致電公司傳呼機""致電%s""致電 MMS"
- "%s (通話)""傳送短訊給%s""傳送短訊至住宅電話""傳送短訊至手機"
@@ -273,7 +270,6 @@
"傳送短訊至公司傳呼機""傳送短訊至 %s""傳送短訊至 MMS 電話"
- "%s (訊息)""進行視像通話""清除常用聯絡人?""您將清除「聯絡人」應用程式和「電話」應用程式中的常用聯絡人名單,並強制電子郵件應用程式重新取得您的寄件偏好設定。"
@@ -484,7 +480,6 @@
"除了「Google 通訊錄」,您為其他所有應用程式和帳戶作出的變更亦會在網絡與裝置之間即時更新。""開啟""沒有網絡連線"
- "SIM""顯示更多""SIM 卡匯入完成""匯入失敗"
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 4a6e213c82..32afe9b005 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -84,8 +84,6 @@
"確定要刪除這個聯絡人嗎?""刪除""聯絡人不存在。"
- "已在主畫面中新增這個聯絡人的捷徑。"
- "已在主畫面中新增%s的捷徑。""裝置上沒有相片。""聯絡人相片""自訂標籤名稱"
@@ -251,7 +249,6 @@
"去電公司呼叫器""撥打%s電話號碼""去電 MMS"
- "%s (撥號)""傳送簡訊給%s電話號碼""傳送簡訊至住家電話""傳送簡訊至行動裝置"
@@ -273,7 +270,6 @@
"傳送簡訊至公司呼叫器""傳送簡訊至%s""向多媒體訊息電話號碼傳送文字簡訊"
- "%s (傳送簡訊)""進行視訊通話""清除常用聯絡人?""你即將清除「聯絡人」應用程式和「電話」應用程式中的常用聯絡人清單,並設定讓電子郵件應用程式重新熟悉你的寄件偏好設定。"
@@ -484,7 +480,6 @@
"你對所有應用程式和帳戶 (不限於 Google 聯絡人) 所做的變更都會在網路和你的裝置之間保持同步。""開啟""沒有網路連線"
- "SIM 卡""顯示更多""SIM 卡資料匯入完成""匯入失敗"
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index d5432a1eb7..07aeb95072 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -84,8 +84,6 @@
"Susa lo oxhumana naye?""Susa""Oxhumana naye akekho."
- "Oxhumana naye ungezwe kusikrini sasekhaya."
- "U-%s ungezwe kusikrini sasekhaya.""Azikho izithombe ezitholakala kudivayisi.""Isithombe sothintana naye""Igama lelebula efiswayo"
@@ -251,7 +249,6 @@
"Shayela isicingo sasemsebenzini""Shayela ku-%s""Shayela i-MMS"
- "%s (Ikholi)""Thumela umbhalo ku-%s""Ikhaya lombhalo""Umbhalo wefoni"
@@ -273,7 +270,6 @@
"Bhalela isicingo sasemsebenzini""Okubhaliwe%s""Bhala i-MMS"
- "%s (Umlayezo)""Yenza ikholi yevidiyo""Sula oxhumana nabo njalo?""Uzosula uhlu loxhumana nabo kakhulu kuzinhelo zokusebenza zokuxhumana noma zefoni, futhi uphoqelele izinhlelo zokusebenza ze-imeyili ukufunda izintandokazi zakho zekheli kusuka ekuqaleni."
@@ -484,7 +480,6 @@
"Izinguquko ozenzayo kuzo zonke izinhlelo zokusebenza nama-akhawunti, hhayi oxhumana nabo nje kuphela, zizohlala zibuyekezwa phakathi kwewebhu namadivayisi akho.""Vula""Akukho ukuxhumana"
- "I-SIM""Bonisa okuningi""Iqedile ukungenisa ikhadi le-SIM""Ukungenisa kuhlulekile"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e1730ad7a6..0ff8faa598 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -13,7 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
+
@@ -237,10 +238,8 @@
The contact doesn\'t exist.
- Contact added to Home screen.
- %s added to Home screen.
@@ -755,7 +754,6 @@
Call MMS
- %s (Call)Text
@@ -804,7 +802,6 @@
Text MMS
- %s (Message)Make video call
@@ -1541,9 +1538,6 @@
No connection
-
- SIM
-
@@ -1575,4 +1569,4 @@
Select
-
\ No newline at end of file
+
diff --git a/src/com/android/contacts/CallUtil.java b/src/com/android/contacts/CallUtil.java
index 0f09df94e5..ddbec02e57 100644
--- a/src/com/android/contacts/CallUtil.java
+++ b/src/com/android/contacts/CallUtil.java
@@ -30,8 +30,6 @@
import android.text.TextUtils;
import android.util.Log;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.PhoneAccountSdkCompat;
import com.android.contacts.util.PermissionsUtil;
import com.android.contacts.util.PhoneNumberHelper;
import com.android.contactsbind.FeedbackHelper;
@@ -150,8 +148,7 @@ public static Uri getCallUri(String number) {
* @return A bit-mask describing the current video capabilities.
*/
public static int getVideoCallingAvailability(Context context) {
- if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)
- || !CompatUtils.isVideoCompatible()) {
+ if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)) {
return VIDEO_CALLING_DISABLED;
}
TelecomManager telecommMgr = (TelecomManager)
@@ -166,13 +163,8 @@ public static int getVideoCallingAvailability(Context context) {
PhoneAccount account = telecommMgr.getPhoneAccount(accountHandle);
if (account != null) {
if (account.hasCapabilities(PhoneAccount.CAPABILITY_VIDEO_CALLING)) {
- // Builds prior to N do not have presence support.
- if (!CompatUtils.isVideoPresenceCompatible()) {
- return VIDEO_CALLING_ENABLED;
- }
-
int videoCapabilities = VIDEO_CALLING_ENABLED;
- if (account.hasCapabilities(PhoneAccountSdkCompat
+ if (account.hasCapabilities(PhoneAccount
.CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE)) {
videoCapabilities |= VIDEO_CALLING_PRESENCE;
}
@@ -197,8 +189,7 @@ public static int getVideoCallingAvailability(Context context) {
* subject specified, {@code false} otherwise.
*/
public static boolean isCallWithSubjectSupported(Context context) {
- if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)
- || !CompatUtils.isCallSubjectCompatible()) {
+ if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)) {
return false;
}
TelecomManager telecommMgr = (TelecomManager)
@@ -233,9 +224,8 @@ public static boolean isCallWithSubjectSupported(Context context) {
* experiment for using a fallback is enabled. Otherwise {@code false} is returned.
*/
public static boolean isTachyonEnabled(Context context) {
- // Need to be able to read phone state, and be on at least N to check PhoneAccount extras.
- if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)
- || !CompatUtils.isNCompatible()) {
+ // Need to be able to read phone state.
+ if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)) {
return false;
}
TelecomManager telecommMgr = (TelecomManager)
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index 30e4f820df..1470b74d3b 100644
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -48,19 +48,17 @@
import android.provider.ContactsContract.Profile;
import android.provider.ContactsContract.RawContacts;
import android.provider.ContactsContract.RawContactsEntity;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.support.v4.os.ResultReceiver;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+
import com.android.contacts.activities.ContactEditorActivity;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.PinnedPositionsCompat;
import com.android.contacts.database.ContactUpdateUtils;
import com.android.contacts.database.SimContactDao;
import com.android.contacts.model.AccountTypeManager;
-import com.android.contacts.model.CPOWrapper;
import com.android.contacts.model.RawContactDelta;
import com.android.contacts.model.RawContactDeltaList;
import com.android.contacts.model.RawContactModifier;
@@ -70,7 +68,6 @@
import com.android.contacts.util.ContactPhotoUtils;
import com.android.contacts.util.PermissionsUtil;
import com.android.contactsbind.FeedbackHelper;
-
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
@@ -519,13 +516,7 @@ private void saveContact(Intent intent) {
while (tries++ < PERSIST_TRIES) {
try {
// Build operations and try applying
- final ArrayList diffWrapper = state.buildDiffWrapper();
-
- final ArrayList diff = Lists.newArrayList();
-
- for (CPOWrapper cpoWrapper : diffWrapper) {
- diff.add(cpoWrapper.getOperation());
- }
+ final ArrayList diff = state.buildDiff();
if (DEBUG) {
Log.v(TAG, "Content Provider Operations:");
@@ -553,13 +544,13 @@ private void saveContact(Intent intent) {
continue;
}
- final long rawContactId = getRawContactId(state, diffWrapper, results);
+ final long rawContactId = getRawContactId(state, diff, results);
if (rawContactId == -1) {
throw new IllegalStateException("Could not determine RawContact ID after save");
}
// We don't have to check to see if the value is still -1. If we reach here,
// the previous loop iteration didn't succeed, so any ID that we obtained is bogus.
- insertedRawContactId = getInsertedRawContactId(diffWrapper, results);
+ insertedRawContactId = getInsertedRawContactId(diff, results);
if (isProfile) {
// Since the profile supports local raw contacts, which may have been completely
// removed if all information was removed, we need to do a special query to
@@ -714,30 +705,29 @@ private boolean saveUpdatedPhoto(long rawContactId, Uri photoUri, int saveMode)
* Find the ID of an existing or newly-inserted raw-contact. If none exists, return -1.
*/
private long getRawContactId(RawContactDeltaList state,
- final ArrayList diffWrapper,
+ final ArrayList diff,
final ContentProviderResult[] results) {
long existingRawContactId = state.findRawContactId();
if (existingRawContactId != -1) {
return existingRawContactId;
}
- return getInsertedRawContactId(diffWrapper, results);
+ return getInsertedRawContactId(diff, results);
}
/**
* Find the ID of a newly-inserted raw-contact. If none exists, return -1.
*/
private long getInsertedRawContactId(
- final ArrayList diffWrapper, final ContentProviderResult[] results) {
+ final ArrayList diff, final ContentProviderResult[] results) {
if (results == null) {
return -1;
}
- final int diffSize = diffWrapper.size();
+ final int diffSize = diff.size();
final int numResults = results.length;
for (int i = 0; i < diffSize && i < numResults; i++) {
- final CPOWrapper cpoWrapper = diffWrapper.get(i);
- final boolean isInsert = CompatUtils.isInsertCompat(cpoWrapper);
- if (isInsert && cpoWrapper.getOperation().getUri().getEncodedPath().contains(
+ final ContentProviderOperation cpo = diff.get(i);
+ if (cpo.isInsert() && cpo.getUri().getEncodedPath().contains(
RawContacts.CONTENT_URI.getEncodedPath())) {
return ContentUris.parseId(results[i].uri);
}
@@ -1042,6 +1032,8 @@ public static Intent createSetStarredIntent(Context context, Uri contactUri, boo
}
private void setStarred(Intent intent) {
+ ContentResolver contentResolver = getContentResolver();
+
Uri contactUri = intent.getParcelableExtra(EXTRA_CONTACT_URI);
boolean value = intent.getBooleanExtra(EXTRA_STARRED_FLAG, false);
if (contactUri == null) {
@@ -1051,10 +1043,10 @@ private void setStarred(Intent intent) {
final ContentValues values = new ContentValues(1);
values.put(Contacts.STARRED, value);
- getContentResolver().update(contactUri, values, null, null);
+ contentResolver.update(contactUri, values, null, null);
// Undemote the contact if necessary
- final Cursor c = getContentResolver().query(contactUri, new String[] {Contacts._ID},
+ final Cursor c = contentResolver.query(contactUri, new String[] {Contacts._ID},
null, null, null);
if (c == null) {
return;
@@ -1065,7 +1057,7 @@ private void setStarred(Intent intent) {
// Don't bother undemoting if this contact is the user's profile.
if (id < Profile.MIN_ID) {
- PinnedPositionsCompat.undemote(getContentResolver(), id);
+ ContactsContract.PinnedPositions.undemote(contentResolver, id);
}
}
} finally {
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index 69a8243111..f49993b6c9 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -20,15 +20,14 @@
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
-import android.os.Build;
+import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Im;
import android.provider.ContactsContract.DisplayPhoto;
-import androidx.annotation.IntDef;
import android.text.TextUtils;
import android.util.Pair;
-import com.android.contacts.compat.ContactsCompat;
-import com.android.contacts.compat.DirectoryCompat;
+import androidx.annotation.IntDef;
+
import com.android.contacts.model.dataitem.ImDataItem;
import java.lang.annotation.Retention;
@@ -46,8 +45,6 @@ public class ContactsUtils {
private static int sThumbnailSize = -1;
- public static final boolean FLAG_N_FEATURE = Build.VERSION.SDK_INT >= 24;
-
// TODO find a proper place for the canonical version of these
public interface ProviderNames {
String YAHOO = "Yahoo";
@@ -255,12 +252,12 @@ public static Pair buildImIntent(Context context, ImDataItem im)
public static @UserType long determineUserType(Long directoryId, Long contactId) {
// First check directory id
if (directoryId != null) {
- return DirectoryCompat.isEnterpriseDirectoryId(directoryId) ? USER_TYPE_WORK
+ return ContactsContract.Directory.isEnterpriseDirectoryId(directoryId) ? USER_TYPE_WORK
: USER_TYPE_CURRENT;
}
// Only check contact id if directory id is null
if (contactId != null && contactId != 0L
- && ContactsCompat.isEnterpriseContactId(contactId)) {
+ && ContactsContract.Contacts.isEnterpriseContactId(contactId)) {
return USER_TYPE_WORK;
} else {
return USER_TYPE_CURRENT;
diff --git a/src/com/android/contacts/DynamicShortcuts.java b/src/com/android/contacts/DynamicShortcuts.java
index 8130776aea..41ea97f1d4 100644
--- a/src/com/android/contacts/DynamicShortcuts.java
+++ b/src/com/android/contacts/DynamicShortcuts.java
@@ -15,7 +15,6 @@
*/
package com.android.contacts;
-import android.annotation.TargetApi;
import android.app.ActivityManager;
import android.app.job.JobInfo;
import android.app.job.JobParameters;
@@ -36,22 +35,19 @@
import android.graphics.BitmapRegionDecoder;
import android.graphics.Canvas;
import android.graphics.Rect;
-import android.graphics.drawable.AdaptiveIconDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.AsyncTask;
-import android.os.Build;
import android.os.PersistableBundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
+import android.util.Log;
+
import androidx.annotation.VisibleForTesting;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
-import androidx.core.os.BuildCompat;
-import android.util.Log;
import com.android.contacts.activities.RequestPermissionsActivity;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.lettertiles.LetterTileDrawable;
import com.android.contacts.util.BitmapUtil;
import com.android.contacts.util.ImplicitIntentsUtil;
@@ -73,7 +69,6 @@
* Usage: DynamicShortcuts.initialize should be called during Application creation. This will
* schedule a Job to keep the shortcuts up-to-date so no further interactions should be necessary.
*/
-@TargetApi(Build.VERSION_CODES.N_MR1)
public class DynamicShortcuts {
private static final String TAG = "DynamicShortcuts";
@@ -286,8 +281,7 @@ ShortcutInfo.Builder builderForContactShortcut(long id, String lookupKey, String
return builder;
}
- @VisibleForTesting
- ShortcutInfo getActionShortcutInfo(String id, String label, Intent action, Icon icon) {
+ public ShortcutInfo getActionShortcutInfo(String id, String label, Intent action, Icon icon) {
if (id == null || label == null) {
return null;
}
@@ -340,13 +334,7 @@ private void addIconForContact(long id, String lookupKey, String displayName,
if (bitmap == null) {
bitmap = getFallbackAvatar(displayName, lookupKey);
}
- final Icon icon;
- if (BuildCompat.isAtLeastO()) {
- icon = Icon.createWithAdaptiveBitmap(bitmap);
- } else {
- icon = Icon.createWithBitmap(bitmap);
- }
-
+ final Icon icon = Icon.createWithAdaptiveBitmap(bitmap);
builder.setIcon(icon);
}
@@ -407,23 +395,14 @@ private Bitmap decodeStreamForShortcut(InputStream stream) throws IOException {
), opts);
bitmapDecoder.recycle();
- if (!BuildCompat.isAtLeastO()) {
- return BitmapUtil.getRoundedBitmap(bitmap, targetSize, targetSize);
- }
-
return bitmap;
}
private Bitmap getFallbackAvatar(String displayName, String lookupKey) {
- // Use a circular icon if we're not on O or higher.
- final boolean circularIcon = !BuildCompat.isAtLeastO();
-
final ContactPhotoManager.DefaultImageRequest request =
- new ContactPhotoManager.DefaultImageRequest(displayName, lookupKey, circularIcon);
- if (BuildCompat.isAtLeastO()) {
- // On O, scale the image down to add the padding needed by AdaptiveIcons.
- request.scale = LetterTileDrawable.getAdaptiveIconScale();
- }
+ new ContactPhotoManager.DefaultImageRequest(displayName, lookupKey, false);
+ // On O, scale the image down to add the padding needed by AdaptiveIcons.
+ request.scale = LetterTileDrawable.getAdaptiveIconScale();
final Drawable avatar = ContactPhotoManager.getDefaultAvatarDrawableForContact(
mContext.getResources(), true, request);
final Bitmap result = Bitmap.createBitmap(mIconSize, mIconSize, Bitmap.Config.ARGB_8888);
@@ -479,18 +458,15 @@ void updateInBackground() {
public synchronized static void initialize(Context context) {
if (Log.isLoggable(TAG, Log.DEBUG)) {
final Flags flags = Flags.getInstance();
- Log.d(TAG, "DyanmicShortcuts.initialize\nVERSION >= N_MR1? " +
- (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) +
+ Log.d(TAG, "DyanmicShortcuts.initialize" +
"\nisJobScheduled? " +
- (CompatUtils.isLauncherShortcutCompatible() && isJobScheduled(context)) +
+ isJobScheduled(context) +
"\nminDelay=" +
flags.getInteger(Experiments.DYNAMIC_MIN_CONTENT_CHANGE_UPDATE_DELAY_MILLIS) +
"\nmaxDelay=" +
flags.getInteger(Experiments.DYNAMIC_MAX_CONTENT_CHANGE_UPDATE_DELAY_MILLIS));
}
- if (!CompatUtils.isLauncherShortcutCompatible()) return;
-
final DynamicShortcuts shortcuts = new DynamicShortcuts(context);
if (!shortcuts.hasRequiredPermissions()) {
@@ -515,9 +491,6 @@ public static void reset(Context context) {
(JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.cancel(ContactsJobService.DYNAMIC_SHORTCUTS_JOB_ID);
- if (!CompatUtils.isLauncherShortcutCompatible()) {
- return;
- }
new DynamicShortcuts(context).removeAllShortcuts();
}
@@ -545,7 +518,7 @@ public static boolean isJobScheduled(Context context) {
}
public static void reportShortcutUsed(Context context, String lookupKey) {
- if (!CompatUtils.isLauncherShortcutCompatible() || lookupKey == null) return;
+ if (lookupKey == null) return;
final ShortcutManager shortcutManager = (ShortcutManager) context
.getSystemService(Context.SHORTCUT_SERVICE);
shortcutManager.reportShortcutUsed(lookupKey);
diff --git a/src/com/android/contacts/ShortcutIntentBuilder.java b/src/com/android/contacts/ShortcutIntentBuilder.java
index 5ea6b7edd8..020436a68b 100644
--- a/src/com/android/contacts/ShortcutIntentBuilder.java
+++ b/src/com/android/contacts/ShortcutIntentBuilder.java
@@ -28,31 +28,25 @@
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
-import android.graphics.Paint.FontMetricsInt;
import android.graphics.Rect;
-import android.graphics.drawable.AdaptiveIconDrawable;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
-import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.AsyncTask;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.Photo;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.core.graphics.drawable.RoundedBitmapDrawable;
-import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
-import androidx.core.os.BuildCompat;
import android.telecom.PhoneAccount;
-import android.text.TextPaint;
import android.text.TextUtils;
-import android.text.TextUtils.TruncateAt;
+
+import androidx.core.graphics.drawable.IconCompat;
import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.lettertiles.LetterTileDrawable;
import com.android.contacts.util.BitmapUtil;
-import com.android.contacts.util.ImplicitIntentsUtil;
+
+import javax.annotation.Nullable;
/**
* Constructs shortcut intents.
@@ -121,7 +115,7 @@ public interface OnShortcutIntentCreatedListener {
* created.
* @param shortcutIntent resulting shortcut intent.
*/
- void onShortcutIntentCreated(Uri uri, Intent shortcutIntent);
+ void onShortcutIntentCreated(Uri uri, @Nullable Intent shortcutIntent);
}
public ShortcutIntentBuilder(Context context, OnShortcutIntentCreatedListener listener) {
@@ -264,10 +258,8 @@ private Drawable getPhotoDrawable(byte[] bitmapData, String displayName, String
} else {
final DefaultImageRequest request = new DefaultImageRequest(displayName, lookupKey,
false);
- if (BuildCompat.isAtLeastO()) {
- // On O, scale the image down to add the padding needed by AdaptiveIcons.
- request.scale = LetterTileDrawable.getAdaptiveIconScale();
- }
+ // On O, scale the image down to add the padding needed by AdaptiveIcons.
+ request.scale = LetterTileDrawable.getAdaptiveIconScale();
return ContactPhotoManager.getDefaultAvatarDrawableForContact(mContext.getResources(),
false, request);
}
@@ -275,38 +267,22 @@ private Drawable getPhotoDrawable(byte[] bitmapData, String displayName, String
private void createContactShortcutIntent(Uri contactUri, String contentType, String displayName,
String lookupKey, byte[] bitmapData) {
- Intent intent = null;
if (TextUtils.isEmpty(displayName)) {
displayName = mContext.getResources().getString(R.string.missing_name);
}
- if (BuildCompat.isAtLeastO()) {
- final long contactId = ContentUris.parseId(contactUri);
- final ShortcutManager sm = (ShortcutManager)
- mContext.getSystemService(Context.SHORTCUT_SERVICE);
- final DynamicShortcuts dynamicShortcuts = new DynamicShortcuts(mContext);
- final ShortcutInfo shortcutInfo = dynamicShortcuts.getQuickContactShortcutInfo(
- contactId, lookupKey, displayName);
- if (shortcutInfo != null) {
- intent = sm.createShortcutResultIntent(shortcutInfo);
- }
+ final long contactId = ContentUris.parseId(contactUri);
+ final ShortcutManager sm = (ShortcutManager)
+ mContext.getSystemService(Context.SHORTCUT_SERVICE);
+ final DynamicShortcuts dynamicShortcuts = new DynamicShortcuts(mContext);
+ final ShortcutInfo shortcutInfo = dynamicShortcuts.getQuickContactShortcutInfo(
+ contactId, lookupKey, displayName);
+
+ if (shortcutInfo == null) {
+ mListener.onShortcutIntentCreated(contactUri, null);
+ return;
}
- final Drawable drawable = getPhotoDrawable(bitmapData, displayName, lookupKey);
-
- final Intent shortcutIntent = ImplicitIntentsUtil.getIntentForQuickContactLauncherShortcut(
- mContext, contactUri);
-
- intent = intent == null ? new Intent() : intent;
-
- final Bitmap icon = generateQuickContactIcon(drawable);
- if (BuildCompat.isAtLeastO()) {
- final IconCompat compatIcon = IconCompat.createWithAdaptiveBitmap(icon);
- compatIcon.addToShortcutIntent(intent, null, mContext);
- } else {
- intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
- }
- intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
- intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, displayName);
+ final Intent intent = sm.createShortcutResultIntent(shortcutInfo);
mListener.onShortcutIntentCreated(contactUri, intent);
}
@@ -316,7 +292,6 @@ private void createPhoneNumberShortcutIntent(Uri uri, String displayName, String
final Drawable drawable = getPhotoDrawable(bitmapData, displayName, lookupKey);
final Bitmap icon;
final Uri phoneUri;
- final String shortcutName;
if (TextUtils.isEmpty(displayName)) {
displayName = mContext.getResources().getString(R.string.missing_name);
}
@@ -326,42 +301,24 @@ private void createPhoneNumberShortcutIntent(Uri uri, String displayName, String
phoneUri = Uri.fromParts(PhoneAccount.SCHEME_TEL, phoneNumber, null);
icon = generatePhoneNumberIcon(drawable, phoneType, phoneLabel,
R.drawable.quantum_ic_phone_vd_theme_24);
- shortcutName = mContext.getResources()
- .getString(R.string.call_by_shortcut, displayName);
} else {
phoneUri = Uri.fromParts(ContactsUtils.SCHEME_SMSTO, phoneNumber, null);
icon = generatePhoneNumberIcon(drawable, phoneType, phoneLabel,
R.drawable.quantum_ic_message_vd_theme_24);
- shortcutName = mContext.getResources().getString(R.string.sms_by_shortcut, displayName);
}
final Intent shortcutIntent = new Intent(shortcutAction, phoneUri);
shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- Intent intent = null;
- IconCompat compatAdaptiveIcon = null;
- if (BuildCompat.isAtLeastO()) {
- compatAdaptiveIcon = IconCompat.createWithAdaptiveBitmap(icon);
- final ShortcutManager sm = (ShortcutManager)
- mContext.getSystemService(Context.SHORTCUT_SERVICE);
- final String id = shortcutAction + lookupKey + phoneUri.toString().hashCode();
- final DynamicShortcuts dynamicShortcuts = new DynamicShortcuts(mContext);
- final ShortcutInfo shortcutInfo = dynamicShortcuts.getActionShortcutInfo(
- id, displayName, shortcutIntent, compatAdaptiveIcon.toIcon());
- if (shortcutInfo != null) {
- intent = sm.createShortcutResultIntent(shortcutInfo);
- }
- }
-
- intent = intent == null ? new Intent() : intent;
- // This will be non-null in O and above.
- if (compatAdaptiveIcon != null) {
- compatAdaptiveIcon.addToShortcutIntent(intent, null, mContext);
- } else {
- intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, icon);
- }
- intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
- intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, shortcutName);
+ final IconCompat compatAdaptiveIcon = IconCompat.createWithAdaptiveBitmap(icon);
+ final ShortcutManager sm = (ShortcutManager)
+ mContext.getSystemService(Context.SHORTCUT_SERVICE);
+ final String id = shortcutAction + lookupKey + phoneUri.toString().hashCode();
+ final DynamicShortcuts dynamicShortcuts = new DynamicShortcuts(mContext);
+ final ShortcutInfo shortcutInfo = dynamicShortcuts.getActionShortcutInfo(
+ id, displayName, shortcutIntent, compatAdaptiveIcon.toIcon(mContext));
+ if (shortcutInfo == null) return;
+ final Intent intent = sm.createShortcutResultIntent(shortcutInfo);
mListener.onShortcutIntentCreated(uri, intent);
}
@@ -376,23 +333,7 @@ private Bitmap generateQuickContactIcon(Drawable photo) {
photo.setBounds(dst);
photo.draw(canvas);
- // Don't put a rounded border on an icon for O
- if (BuildCompat.isAtLeastO()) {
- return bitmap;
- }
-
- // Draw the icon with a rounded border
- RoundedBitmapDrawable roundedDrawable =
- RoundedBitmapDrawableFactory.create(mResources, bitmap);
- roundedDrawable.setAntiAlias(true);
- roundedDrawable.setCornerRadius(mIconSize / 2);
- Bitmap roundedBitmap = Bitmap.createBitmap(mIconSize, mIconSize, Bitmap.Config.ARGB_8888);
- canvas.setBitmap(roundedBitmap);
- roundedDrawable.setBounds(dst);
- roundedDrawable.draw(canvas);
- canvas.setBitmap(null);
-
- return roundedBitmap;
+ return bitmap;
}
/**
@@ -418,52 +359,18 @@ private Bitmap generatePhoneNumberIcon(Drawable photo, int phoneType, String pho
photoPaint.setFilterBitmap(true);
Rect dst = new Rect(0, 0, mIconSize, mIconSize);
- // Create an overlay for the phone number type if we're pre-O. O created shortcuts have the
- // app badge which overlaps the type overlay.
- CharSequence overlay = Phone.getTypeLabel(r, phoneType, phoneLabel);
- if (!BuildCompat.isAtLeastO() && overlay != null) {
- TextPaint textPaint = new TextPaint(
- Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
- textPaint.setTextSize(r.getDimension(R.dimen.shortcut_overlay_text_size));
- textPaint.setColor(r.getColor(R.color.textColorIconOverlay));
- textPaint.setShadowLayer(4f, 0, 2f, r.getColor(R.color.textColorIconOverlayShadow));
-
- final FontMetricsInt fmi = textPaint.getFontMetricsInt();
-
- // First fill in a darker background around the text to be drawn
- final Paint workPaint = new Paint();
- workPaint.setColor(mOverlayTextBackgroundColor);
- workPaint.setStyle(Paint.Style.FILL);
- final int textPadding = r
- .getDimensionPixelOffset(R.dimen.shortcut_overlay_text_background_padding);
- final int textBandHeight = (fmi.descent - fmi.ascent) + textPadding * 2;
- dst.set(0, mIconSize - textBandHeight, mIconSize, mIconSize);
- canvas.drawRect(dst, workPaint);
-
- overlay = TextUtils.ellipsize(overlay, textPaint, mIconSize, TruncateAt.END);
- final float textWidth = textPaint.measureText(overlay, 0, overlay.length());
- canvas.drawText(overlay, 0, overlay.length(), (mIconSize - textWidth) / 2, mIconSize
- - fmi.descent - textPadding, textPaint);
- }
-
// Draw the phone action icon as an overlay
- int iconWidth = icon.getWidth();
- if (BuildCompat.isAtLeastO()) {
- // On O we need to calculate where the phone icon goes slightly differently. The whole
- // canvas area is 108dp, a centered circle with a diameter of 66dp is the "safe zone".
- // So we start the drawing the phone icon at
- // 108dp - 21 dp (distance from right edge of safe zone to the edge of the canvas)
- // - 24 dp (size of the phone icon) on the x axis (left)
- // The y axis is simply 21dp for the distance to the safe zone (top).
- // See go/o-icons-eng for more details and a handy picture.
- final int left = (int) (mIconSize - (45 * density));
- final int top = (int) (21 * density);
- canvas.drawBitmap(phoneIcon, left, top, photoPaint);
- } else {
- dst.set(iconWidth - ((int) (20 * density)), -1,
- iconWidth, ((int) (19 * density)));
- canvas.drawBitmap(phoneIcon, null, dst, photoPaint);
- }
+
+ // How we calculate where the phone icon goes:
+ // The whole canvas area is 108dp, a centered circle with a diameter of 66dp is the
+ // "safe zone". So we start the drawing the phone icon at
+ // 108dp - 21 dp (distance from right edge of safe zone to the edge of the canvas)
+ // - 24 dp (size of the phone icon) on the x axis (left)
+ // The y axis is simply 21dp for the distance to the safe zone (top).
+ // See go/o-icons-eng for more details and a handy picture.
+ final int left = (int) (mIconSize - (45 * density));
+ final int top = (int) (21 * density);
+ canvas.drawBitmap(phoneIcon, left, top, photoPaint);
canvas.setBitmap(null);
return icon;
diff --git a/src/com/android/contacts/SimImportFragment.java b/src/com/android/contacts/SimImportFragment.java
index 599bccd4af..e20f0c7fc1 100644
--- a/src/com/android/contacts/SimImportFragment.java
+++ b/src/com/android/contacts/SimImportFragment.java
@@ -39,9 +39,7 @@
import androidx.core.view.ViewCompat;
import androidx.core.widget.ContentLoadingProgressBar;
-import com.android.contacts.MoreContactUtils;
import com.android.contacts.MoreContactUtils.EdgeToEdgeInsetHandler;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.database.SimContactDao;
import com.android.contacts.editor.AccountHeaderPresenter;
import com.android.contacts.model.AccountTypeManager;
@@ -52,7 +50,6 @@
import com.android.contacts.preference.ContactsPreferences;
import com.android.contacts.util.concurrent.ContactsExecutors;
import com.android.contacts.util.concurrent.ListenableFutureLoader;
-
import com.google.android.material.snackbar.Snackbar;
import com.google.common.base.Function;
import com.google.common.util.concurrent.Futures;
@@ -321,13 +318,6 @@ public void onItemClick(AdapterView> parent, View view, int position, long id)
}
}
- public Context getContext() {
- if (CompatUtils.isMarshmallowCompatible()) {
- return super.getContext();
- }
- return getActivity();
- }
-
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}
diff --git a/src/com/android/contacts/activities/ActionBarAdapter.java b/src/com/android/contacts/activities/ActionBarAdapter.java
index 8f1cd9ca34..a101723f26 100644
--- a/src/com/android/contacts/activities/ActionBarAdapter.java
+++ b/src/com/android/contacts/activities/ActionBarAdapter.java
@@ -22,9 +22,6 @@
import android.content.Context;
import android.content.res.ColorStateList;
import android.os.Bundle;
-import androidx.core.content.ContextCompat;
-import androidx.appcompat.app.ActionBar;
-import androidx.appcompat.widget.Toolbar;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -44,10 +41,12 @@
import android.widget.SearchView.OnCloseListener;
import android.widget.TextView;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.widget.Toolbar;
+import androidx.core.content.ContextCompat;
+
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter.Listener.Action;
-import com.android.contacts.activities.PeopleActivity;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.list.ContactsRequest;
import com.android.contacts.util.MaterialColorMapUtils;
@@ -495,10 +494,6 @@ public void setActionBarTitle(String title) {
}
private void updateStatusBarColor(boolean shouldAnimate) {
- if (!CompatUtils.isLollipopCompatible()) {
- return; // we can't change the status bar color prior to Lollipop
- }
-
if (mSelectionMode) {
final int cabStatusBarColor = ContextCompat.getColor(
mActivity, R.color.contextual_selection_bar_status_bar_color);
diff --git a/src/com/android/contacts/activities/ContactSelectionActivity.java b/src/com/android/contacts/activities/ContactSelectionActivity.java
index 46e8fd9d1e..06cadda3aa 100644
--- a/src/com/android/contacts/activities/ContactSelectionActivity.java
+++ b/src/com/android/contacts/activities/ContactSelectionActivity.java
@@ -70,6 +70,8 @@
import java.util.ArrayList;
+import javax.annotation.Nullable;
+
/**
* Displays a list of contacts (or phone numbers or postal addresses) for the purposes of selecting
* one.
@@ -578,7 +580,7 @@ public void onPickContactAction(Uri contactUri) {
}
@Override
- public void onShortcutIntentCreated(Intent intent) {
+ public void onShortcutIntentCreated(@Nullable Intent intent) {
returnPickerResult(intent);
}
}
@@ -597,7 +599,7 @@ public void onPickPhoneNumber(
}
@Override
- public void onShortcutIntentCreated(Intent intent) {
+ public void onShortcutIntentCreated(@Nullable Intent intent) {
returnPickerResult(intent);
}
@@ -616,7 +618,7 @@ public void onPickContactAction(Uri contactUri) {
}
@Override
- public void onShortcutIntentCreated(Intent intent) {}
+ public void onShortcutIntentCreated(@Nullable Intent intent) {}
@Override
public void onCreateNewContactAction() {}
@@ -695,9 +697,13 @@ public void returnPickerResult(Uri data) {
returnPickerResult(intent);
}
- public void returnPickerResult(Intent intent) {
- intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
- setResult(RESULT_OK, intent);
+ public void returnPickerResult(@Nullable Intent intent) {
+ if (intent != null) {
+ intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ setResult(RESULT_OK, intent);
+ } else {
+ setResult(RESULT_CANCELED);
+ }
finish();
}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index c25605167a..eff87dd232 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -36,18 +36,6 @@
import android.provider.ContactsContract;
import android.provider.ContactsContract.Intents;
import android.provider.ContactsContract.ProviderStatus;
-import androidx.annotation.LayoutRes;
-import androidx.appcompat.graphics.drawable.DrawerArrowDrawable;
-import androidx.coordinatorlayout.widget.CoordinatorLayout;
-import com.google.android.material.snackbar.Snackbar;
-import androidx.core.content.ContextCompat;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
-import androidx.core.view.GravityCompat;
-import androidx.drawerlayout.widget.DrawerLayout;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import androidx.appcompat.app.ActionBarDrawerToggle;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
@@ -59,10 +47,21 @@
import android.widget.ImageButton;
import android.widget.Toast;
+import androidx.annotation.LayoutRes;
+import androidx.appcompat.app.ActionBarDrawerToggle;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.graphics.drawable.DrawerArrowDrawable;
+import androidx.appcompat.widget.Toolbar;
+import androidx.coordinatorlayout.widget.CoordinatorLayout;
+import androidx.core.content.ContextCompat;
+import androidx.core.view.GravityCompat;
+import androidx.drawerlayout.widget.DrawerLayout;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import com.android.contacts.AppCompatContactsActivity;
import com.android.contacts.ContactSaveService;
import com.android.contacts.R;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.drawer.DrawerFragment;
import com.android.contacts.drawer.DrawerFragment.DrawerFragmentListener;
import com.android.contacts.editor.ContactEditorFragment;
@@ -100,7 +99,7 @@
import com.android.contactsbind.FeatureHighlightHelper;
import com.android.contactsbind.HelpUtils;
import com.android.contactsbind.ObjectFactory;
-
+import com.google.android.material.snackbar.Snackbar;
import com.google.common.util.concurrent.Futures;
import java.util.Collections;
@@ -654,7 +653,6 @@ public void updateStatusBarBackground() {
}
public void updateStatusBarBackground(int color) {
- if (!CompatUtils.isLollipopCompatible()) return;
if (color == -1) {
mDrawerLayout.setStatusBarBackgroundColor(
MaterialColorMapUtils.getStatusBarColor(this));
@@ -1088,10 +1086,8 @@ private void handleFilterChangeForActivity(ContactListFilter filter) {
mShouldSwitchToAllContacts = true;
}
- if (CompatUtils.isNCompatible()) {
- getWindow().getDecorView()
- .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
- }
+ getWindow().getDecorView()
+ .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
invalidateOptionsMenu();
}
diff --git a/src/com/android/contacts/compat/AggregationSuggestionsCompat.java b/src/com/android/contacts/compat/AggregationSuggestionsCompat.java
deleted file mode 100644
index aa15f70e72..0000000000
--- a/src/com/android/contacts/compat/AggregationSuggestionsCompat.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.net.Uri;
-import android.provider.ContactsContract;
-
-import java.util.ArrayList;
-
-/**
- * This class contains Builder class extracted from ContactsContract, and it became visible in API
- * level 23. We need maintain this class and keep it synced with ContactsContract.
- */
-public class AggregationSuggestionsCompat {
-
- /**
- * Used to specify what kind of data is supplied for the suggestion query.
- */
- public static final String PARAMETER_MATCH_NAME = "name";
-
- /**
- * A convenience builder for aggregation suggestion content URIs.
- */
- public static final class Builder {
- private long mContactId;
- private final ArrayList mValues = new ArrayList();
- private int mLimit;
-
- /**
- * Optional existing contact ID. If it is not provided, the search
- * will be based exclusively on the values supplied with {@link #addNameParameter}.
- *
- * @param contactId contact to find aggregation suggestions for
- * @return This Builder object to allow for chaining of calls to builder methods
- */
- public Builder setContactId(long contactId) {
- this.mContactId = contactId;
- return this;
- }
-
- /**
- * Add a name to be used when searching for aggregation suggestions.
- *
- * @param name name to find aggregation suggestions for
- * @return This Builder object to allow for chaining of calls to builder methods
- */
- public Builder addNameParameter(String name) {
- mValues.add(name);
- return this;
- }
-
- /**
- * Sets the Maximum number of suggested aggregations that should be returned.
- * @param limit The maximum number of suggested aggregations
- *
- * @return This Builder object to allow for chaining of calls to builder methods
- */
- public Builder setLimit(int limit) {
- mLimit = limit;
- return this;
- }
-
- /**
- * Combine all of the options that have been set and return a new {@link Uri}
- * object for fetching aggregation suggestions.
- */
- public Uri build() {
- android.net.Uri.Builder builder = ContactsContract.Contacts.CONTENT_URI.buildUpon();
- builder.appendEncodedPath(String.valueOf(mContactId));
- builder.appendPath(ContactsContract.Contacts.AggregationSuggestions.CONTENT_DIRECTORY);
- if (mLimit != 0) {
- builder.appendQueryParameter("limit", String.valueOf(mLimit));
- }
-
- int count = mValues.size();
- for (int i = 0; i < count; i++) {
- builder.appendQueryParameter("query", PARAMETER_MATCH_NAME
- + ":" + mValues.get(i));
- }
-
- return builder.build();
- }
- }
-}
diff --git a/src/com/android/contacts/compat/CallSdkCompat.java b/src/com/android/contacts/compat/CallSdkCompat.java
deleted file mode 100644
index d8fbc9a3ad..0000000000
--- a/src/com/android/contacts/compat/CallSdkCompat.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.contacts.compat;
-
-import android.telecom.Call;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-public class CallSdkCompat {
- public static class Details {
- // TODO: This property is hidden in the N release; replace with actual when the API is
- // made public.
- public static final int PROPERTY_IS_EXTERNAL_CALL = 0x00000040;
- public static final int PROPERTY_ENTERPRISE_CALL = Call.Details.PROPERTY_ENTERPRISE_CALL;
- // TODO: This capability is hidden in the N release; replace with actual when the API is
- // made public.
- public static final int CAPABILITY_CAN_PULL_CALL = 0x00800000;
- public static final int CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO =
- Call.Details.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO;
- }
-
- /**
- * TODO: This API is hidden in the N release; replace the implementation with a call to the
- * actual once it is made public.
- */
- public static void pullExternalCall(Call call) {
- if (!CompatUtils.isNCompatible()) {
- return;
- }
- Class> callClass = Call.class;
- try {
- Method pullExternalCallMethod = callClass.getDeclaredMethod("pullExternalCall");
- pullExternalCallMethod.invoke(call);
- } catch (NoSuchMethodException e) {
- // Ignore requests to pull call if there is a problem.
- } catch (InvocationTargetException e) {
- // Ignore requests to pull call if there is a problem.
- } catch (IllegalAccessException e) {
- // Ignore requests to pull call if there is a problem.
- }
- }
-}
diff --git a/src/com/android/contacts/compat/CallableCompat.java b/src/com/android/contacts/compat/CallableCompat.java
deleted file mode 100644
index bcc675ccbe..0000000000
--- a/src/com/android/contacts/compat/CallableCompat.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.net.Uri;
-import android.provider.ContactsContract.CommonDataKinds.Callable;
-
-import com.android.contacts.ContactsUtils;
-
-public class CallableCompat {
-
- // TODO: Use N APIs
- private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
- Uri.withAppendedPath(Callable.CONTENT_URI, "filter_enterprise");
-
- public static Uri getContentFilterUri() {
- if (ContactsUtils.FLAG_N_FEATURE) {
- return ENTERPRISE_CONTENT_FILTER_URI;
- }
- return Callable.CONTENT_FILTER_URI;
- }
-}
diff --git a/src/com/android/contacts/compat/CompatUtils.java b/src/com/android/contacts/compat/CompatUtils.java
deleted file mode 100644
index 086a64afed..0000000000
--- a/src/com/android/contacts/compat/CompatUtils.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-package com.android.contacts.compat;
-
-import android.os.Build;
-import android.os.Build.VERSION;
-import androidx.annotation.Nullable;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.android.contacts.model.CPOWrapper;
-
-import java.lang.reflect.InvocationTargetException;
-
-public final class CompatUtils {
-
- private static final String TAG = CompatUtils.class.getSimpleName();
-
- /**
- * These 4 variables are copied from ContentProviderOperation for compatibility.
- */
- public final static int TYPE_INSERT = 1;
-
- public final static int TYPE_UPDATE = 2;
-
- public final static int TYPE_DELETE = 3;
-
- public final static int TYPE_ASSERT = 4;
-
- /**
- * Returns whether the operation in CPOWrapper is of TYPE_INSERT;
- */
- public static boolean isInsertCompat(CPOWrapper cpoWrapper) {
- if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
- return cpoWrapper.getOperation().isInsert();
- }
- return (cpoWrapper.getType() == TYPE_INSERT);
- }
-
- /**
- * Returns whether the operation in CPOWrapper is of TYPE_UPDATE;
- */
- public static boolean isUpdateCompat(CPOWrapper cpoWrapper) {
- if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
- return cpoWrapper.getOperation().isUpdate();
- }
- return (cpoWrapper.getType() == TYPE_UPDATE);
- }
-
- /**
- * Returns whether the operation in CPOWrapper is of TYPE_DELETE;
- */
- public static boolean isDeleteCompat(CPOWrapper cpoWrapper) {
- if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
- return cpoWrapper.getOperation().isDelete();
- }
- return (cpoWrapper.getType() == TYPE_DELETE);
- }
- /**
- * Returns whether the operation in CPOWrapper is of TYPE_ASSERT;
- */
- public static boolean isAssertQueryCompat(CPOWrapper cpoWrapper) {
- if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
- return cpoWrapper.getOperation().isAssertQuery();
- }
- return (cpoWrapper.getType() == TYPE_ASSERT);
- }
-
- /**
- * PrioritizedMimeType is added in API level 23.
- */
- public static boolean hasPrioritizedMimeType() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
- >= Build.VERSION_CODES.M;
- }
-
- /**
- * Determines if this version is compatible with multi-SIM and the phone account APIs. Can also
- * force the version to be lower through SdkVersionOverride.
- *
- * @return {@code true} if multi-SIM capability is available, {@code false} otherwise.
- */
- public static boolean isMSIMCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
- >= Build.VERSION_CODES.LOLLIPOP_MR1;
- }
-
- /**
- * Determines if this version is compatible with video calling. Can also force the version to be
- * lower through SdkVersionOverride.
- *
- * @return {@code true} if video calling is allowed, {@code false} otherwise.
- */
- public static boolean isVideoCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
- >= Build.VERSION_CODES.M;
- }
-
- /**
- * Determines if this version is capable of using presence checking for video calling. Support
- * for video call presence indication is added in SDK 24.
- *
- * @return {@code true} if video presence checking is allowed, {@code false} otherwise.
- */
- public static boolean isVideoPresenceCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
- > Build.VERSION_CODES.M;
- }
-
- /**
- * Determines if this version is compatible with call subject. Can also force the version to be
- * lower through SdkVersionOverride.
- *
- * @return {@code true} if call subject is a feature on this device, {@code false} otherwise.
- */
- public static boolean isCallSubjectCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
- >= Build.VERSION_CODES.M;
- }
-
- /**
- * Determines if this version is compatible with a default dialer. Can also force the version to
- * be lower through {@link SdkVersionOverride}.
- *
- * @return {@code true} if default dialer is a feature on this device, {@code false} otherwise.
- */
- public static boolean isDefaultDialerCompatible() {
- return isMarshmallowCompatible();
- }
-
- /**
- * Determines if this version is compatible with Lollipop Mr1-specific APIs. Can also force the
- * version to be lower through SdkVersionOverride.
- *
- * @return {@code true} if runtime sdk is compatible with Lollipop MR1, {@code false} otherwise.
- */
- public static boolean isLollipopMr1Compatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP_MR1)
- >= Build.VERSION_CODES.LOLLIPOP_MR1;
- }
-
- /**
- * Determines if this version is compatible with Marshmallow-specific APIs. Can also force the
- * version to be lower through SdkVersionOverride.
- *
- * @return {@code true} if runtime sdk is compatible with Marshmallow, {@code false} otherwise.
- */
- public static boolean isMarshmallowCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
- >= Build.VERSION_CODES.M;
- }
-
- /**
- * Determines if this version is compatible with N-specific APIs.
- *
- * @return {@code true} if runtime sdk is compatible with N and the app is built with N, {@code
- * false} otherwise.
- */
- public static boolean isNCompatible() {
- return VERSION.SDK_INT >= 24;
- }
-
-
- public static boolean isNougatMr1Compatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.N_MR1)
- >= Build.VERSION_CODES.N_MR1;
- }
-
- public static boolean isLauncherShortcutCompatible() {
- return isNougatMr1Compatible();
- }
-
- /**
- * Determines if the given class is available. Can be used to check if system apis exist at
- * runtime.
- *
- * @param className the name of the class to look for.
- * @return {@code true} if the given class is available, {@code false} otherwise or if className
- * is empty.
- */
- public static boolean isClassAvailable(@Nullable String className) {
- if (TextUtils.isEmpty(className)) {
- return false;
- }
- try {
- Class.forName(className);
- return true;
- } catch (ClassNotFoundException e) {
- return false;
- } catch (Throwable t) {
- Log.e(TAG, "Unexpected exception when checking if class:" + className + " exists at "
- + "runtime", t);
- return false;
- }
- }
-
- /**
- * Determines if the given class's method is available to call. Can be used to check if system
- * apis exist at runtime.
- *
- * @param className the name of the class to look for
- * @param methodName the name of the method to look for
- * @param parameterTypes the needed parameter types for the method to look for
- * @return {@code true} if the given class is available, {@code false} otherwise or if className
- * or methodName are empty.
- */
- public static boolean isMethodAvailable(@Nullable String className, @Nullable String methodName,
- Class>... parameterTypes) {
- if (TextUtils.isEmpty(className) || TextUtils.isEmpty(methodName)) {
- return false;
- }
-
- try {
- Class.forName(className).getMethod(methodName, parameterTypes);
- return true;
- } catch (ClassNotFoundException | NoSuchMethodException e) {
- if (Log.isLoggable(TAG, Log.VERBOSE)) {
- Log.v(TAG, "Could not find method: " + className + "#" + methodName);
- }
- return false;
- } catch (Throwable t) {
- Log.e(TAG, "Unexpected exception when checking if method: " + className + "#"
- + methodName + " exists at runtime", t);
- return false;
- }
- }
-
- /**
- * Invokes a given class's method using reflection. Can be used to call system apis that exist
- * at runtime but not in the SDK.
- *
- * @param instance The instance of the class to invoke the method on.
- * @param methodName The name of the method to invoke.
- * @param parameterTypes The needed parameter types for the method.
- * @param parameters The parameter values to pass into the method.
- * @return The result of the invocation or {@code null} if instance or methodName are empty, or
- * if the reflection fails.
- */
- @Nullable
- public static Object invokeMethod(@Nullable Object instance, @Nullable String methodName,
- Class>[] parameterTypes, Object[] parameters) {
- if (instance == null || TextUtils.isEmpty(methodName)) {
- return null;
- }
-
- String className = instance.getClass().getName();
- try {
- return Class.forName(className).getMethod(methodName, parameterTypes)
- .invoke(instance, parameters);
- } catch (ClassNotFoundException | NoSuchMethodException | IllegalArgumentException
- | IllegalAccessException | InvocationTargetException e) {
- if (Log.isLoggable(TAG, Log.VERBOSE)) {
- Log.v(TAG, "Could not invoke method: " + className + "#" + methodName);
- }
- return null;
- } catch (Throwable t) {
- Log.e(TAG, "Unexpected exception when invoking method: " + className
- + "#" + methodName + " at runtime", t);
- return null;
- }
- }
-
- /**
- * Determines if this version is compatible with Lollipop-specific APIs. Can also force the
- * version to be lower through SdkVersionOverride.
- *
- * @return {@code true} if call subject is a feature on this device, {@code false} otherwise.
- */
- public static boolean isLollipopCompatible() {
- return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
- >= Build.VERSION_CODES.LOLLIPOP;
- }
-}
diff --git a/src/com/android/contacts/compat/ContactsCompat.java b/src/com/android/contacts/compat/ContactsCompat.java
deleted file mode 100644
index 3b090b5d20..0000000000
--- a/src/com/android/contacts/compat/ContactsCompat.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.net.Uri;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.Contacts;
-
-import com.android.contacts.ContactsUtils;
-
-/**
- * Compatibility class for {@link ContactsContract.Contacts}
- */
-public class ContactsCompat {
- /**
- * Not instantiable.
- */
- private ContactsCompat() {
- }
-
- // TODO: Use N APIs
- private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
- Uri.withAppendedPath(Contacts.CONTENT_URI, "filter_enterprise");
-
- // Copied from ContactsContract.Contacts#ENTERPRISE_CONTACT_ID_BASE, which is hidden.
- private static final long ENTERPRISE_CONTACT_ID_BASE = 1000000000;
-
- public static Uri getContentUri() {
- if (ContactsUtils.FLAG_N_FEATURE) {
- return ENTERPRISE_CONTENT_FILTER_URI;
- }
- return Contacts.CONTENT_FILTER_URI;
- }
-
- /**
- * Return {@code true} if a contact ID is from the contacts provider on the enterprise profile.
- */
- public static boolean isEnterpriseContactId(long contactId) {
- if (CompatUtils.isLollipopCompatible()) {
- return Contacts.isEnterpriseContactId(contactId);
- } else {
- // copied from ContactsContract.Contacts.isEnterpriseContactId
- return (contactId >= ENTERPRISE_CONTACT_ID_BASE) &&
- (contactId < ContactsContract.Profile.MIN_ID);
- }
- }
-}
diff --git a/src/com/android/contacts/compat/DirectoryCompat.java b/src/com/android/contacts/compat/DirectoryCompat.java
index 95e021f7e1..578a59e651 100644
--- a/src/com/android/contacts/compat/DirectoryCompat.java
+++ b/src/com/android/contacts/compat/DirectoryCompat.java
@@ -16,38 +16,12 @@
package com.android.contacts.compat;
-import android.net.Uri;
import android.provider.ContactsContract.Directory;
-import com.android.contacts.ContactsUtils;
-
public class DirectoryCompat {
- public static Uri getContentUri() {
- if (ContactsUtils.FLAG_N_FEATURE) {
- return DirectorySdkCompat.ENTERPRISE_CONTENT_URI;
- }
- return Directory.CONTENT_URI;
- }
-
public static boolean isInvisibleDirectory(long directoryId) {
- if (ContactsUtils.FLAG_N_FEATURE) {
- return (directoryId == Directory.LOCAL_INVISIBLE
- || directoryId == DirectorySdkCompat.ENTERPRISE_LOCAL_INVISIBLE);
- }
- return directoryId == Directory.LOCAL_INVISIBLE;
- }
-
- public static boolean isRemoteDirectoryId(long directoryId) {
- if (ContactsUtils.FLAG_N_FEATURE) {
- return DirectorySdkCompat.isRemoteDirectoryId(directoryId);
- }
- return !(directoryId == Directory.DEFAULT || directoryId == Directory.LOCAL_INVISIBLE);
- }
-
- public static boolean isEnterpriseDirectoryId(long directoryId) {
- return ContactsUtils.FLAG_N_FEATURE
- ? DirectorySdkCompat.isEnterpriseDirectoryId(directoryId)
- : false;
+ return (directoryId == Directory.LOCAL_INVISIBLE
+ || directoryId == Directory.ENTERPRISE_LOCAL_INVISIBLE);
}
}
diff --git a/src/com/android/contacts/compat/DirectorySdkCompat.java b/src/com/android/contacts/compat/DirectorySdkCompat.java
deleted file mode 100644
index 32b918c7b6..0000000000
--- a/src/com/android/contacts/compat/DirectorySdkCompat.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.net.Uri;
-import android.provider.ContactsContract.Directory;
-
-public class DirectorySdkCompat {
-
- private static final String TAG = "DirectorySdkCompat";
-
- public static final Uri ENTERPRISE_CONTENT_URI = Directory.ENTERPRISE_CONTENT_URI;
- public static final long ENTERPRISE_LOCAL_DEFAULT = Directory.ENTERPRISE_DEFAULT;
- public static final long ENTERPRISE_LOCAL_INVISIBLE = Directory.ENTERPRISE_LOCAL_INVISIBLE;
-
- public static boolean isRemoteDirectoryId(long directoryId) {
- return CompatUtils.isNCompatible() ? Directory.isRemoteDirectoryId(directoryId) : false;
- }
-
- public static boolean isEnterpriseDirectoryId(long directoryId) {
- return CompatUtils.isNCompatible() ? Directory.isEnterpriseDirectoryId(directoryId) : false;
- }
-}
diff --git a/src/com/android/contacts/compat/EdgeEffectCompat.java b/src/com/android/contacts/compat/EdgeEffectCompat.java
deleted file mode 100644
index 84a5c26e85..0000000000
--- a/src/com/android/contacts/compat/EdgeEffectCompat.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.widget.EdgeEffect;
-
-/**
- * Compatibility class for {@link android.widget.EdgeEffect}
- * The androidx.core.widget.EdgeEffectCompat doesn't support customized color, so we write
- * our own and keep using EdgeEffect to customize color.
- */
-public class EdgeEffectCompat {
- /**
- * Compatibility method for {@link EdgeEffect#onPull(float, float)}, which is only available
- * on Lollipop+.
- */
- public static void onPull(EdgeEffect edgeEffect, float deltaDistance, float displacement) {
- if (CompatUtils.isLollipopCompatible()) {
- edgeEffect.onPull(deltaDistance, displacement);
- } else {
- edgeEffect.onPull(deltaDistance);
- }
- }
-}
diff --git a/src/com/android/contacts/compat/EventCompat.java b/src/com/android/contacts/compat/EventCompat.java
deleted file mode 100644
index 2ce8148b2d..0000000000
--- a/src/com/android/contacts/compat/EventCompat.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.content.res.Resources;
-import android.provider.ContactsContract.CommonDataKinds.BaseTypes;
-import android.provider.ContactsContract.CommonDataKinds.Event;
-import android.text.TextUtils;
-
-/**
- * Compatibility class for {@link Event}
- */
-public class EventCompat {
- /**
- * Not instantiable.
- */
- private EventCompat() {
- }
-
- /**
- * Return a {@link CharSequence} that best describes the given type, possibly substituting
- * the given label value for TYPE_CUSTOM.
- */
- public static CharSequence getTypeLabel(Resources res, int type, CharSequence label) {
- if (CompatUtils.isLollipopCompatible()) {
- return Event.getTypeLabel(res, type, label);
- } else {
- return getTypeLabelInternal(res, type, label);
- }
- }
-
- /**
- * The method was added in API level 21, and below is the implementation copied from
- * {@link Event#getTypeLabel(Resources, int, CharSequence)}
- */
- private static CharSequence getTypeLabelInternal(Resources res, int type, CharSequence label) {
- if (type == BaseTypes.TYPE_CUSTOM && !TextUtils.isEmpty(label)) {
- return label;
- } else {
- return res.getText(Event.getTypeResource(type));
- }
- }
-
-}
diff --git a/src/com/android/contacts/compat/MultiWindowCompat.java b/src/com/android/contacts/compat/MultiWindowCompat.java
deleted file mode 100644
index 61af516351..0000000000
--- a/src/com/android/contacts/compat/MultiWindowCompat.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.contacts.compat;
-
-import android.app.Activity;
-
-public class MultiWindowCompat {
- /**
- * Returns true if the activity is currently in multi-window mode.
- */
- public static boolean isInMultiWindowMode(Activity activity) {
- return CompatUtils.isNCompatible() ? activity.isInMultiWindowMode() : false;
- }
-}
\ No newline at end of file
diff --git a/src/com/android/contacts/compat/PhoneAccountCompat.java b/src/com/android/contacts/compat/PhoneAccountCompat.java
index 2e2f8a9b96..daf6163955 100644
--- a/src/com/android/contacts/compat/PhoneAccountCompat.java
+++ b/src/com/android/contacts/compat/PhoneAccountCompat.java
@@ -18,17 +18,15 @@
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
-import androidx.annotation.Nullable;
import android.telecom.PhoneAccount;
-import android.util.Log;
+
+import androidx.annotation.Nullable;
/**
* Compatiblity class for {@link android.telecom.PhoneAccount}
*/
public class PhoneAccountCompat {
- private static final String TAG = PhoneAccountCompat.class.getSimpleName();
-
/**
* Gets the {@link Icon} associated with the given {@link PhoneAccount}
*
@@ -36,16 +34,12 @@ public class PhoneAccountCompat {
* @return the Icon, or null
*/
@Nullable
- public static Icon getIcon(@Nullable PhoneAccount phoneAccount) {
+ private static Icon getIcon(@Nullable PhoneAccount phoneAccount) {
if (phoneAccount == null) {
return null;
}
- if (CompatUtils.isMarshmallowCompatible()) {
- return phoneAccount.getIcon();
- }
-
- return null;
+ return phoneAccount.getIcon();
}
/**
@@ -64,38 +58,10 @@ public static Drawable createIconDrawable(@Nullable PhoneAccount phoneAccount,
return null;
}
- if (CompatUtils.isMarshmallowCompatible()) {
- return createIconDrawableMarshmallow(phoneAccount, context);
- }
-
- if (CompatUtils.isLollipopMr1Compatible()) {
- return createIconDrawableLollipopMr1(phoneAccount, context);
- }
- return null;
- }
-
- @Nullable
- private static Drawable createIconDrawableMarshmallow(PhoneAccount phoneAccount,
- Context context) {
Icon accountIcon = getIcon(phoneAccount);
if (accountIcon == null) {
return null;
}
return accountIcon.loadDrawable(context);
}
-
- @Nullable
- private static Drawable createIconDrawableLollipopMr1(PhoneAccount phoneAccount,
- Context context) {
- try {
- return (Drawable) PhoneAccount.class.getMethod("createIconDrawable", Context.class)
- .invoke(phoneAccount, context);
- } catch (ReflectiveOperationException e) {
- return null;
- } catch (Throwable t) {
- Log.e(TAG, "Unexpected exception when attempting to call "
- + "android.telecom.PhoneAccount#createIconDrawable", t);
- return null;
- }
- }
}
diff --git a/src/com/android/contacts/compat/PhoneAccountSdkCompat.java b/src/com/android/contacts/compat/PhoneAccountSdkCompat.java
deleted file mode 100644
index cb150c0f5c..0000000000
--- a/src/com/android/contacts/compat/PhoneAccountSdkCompat.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.os.Bundle;
-import android.telecom.PhoneAccount;
-
-public class PhoneAccountSdkCompat {
-
- private static final String TAG = "PhoneAccountSdkCompat";
-
- public static final String EXTRA_CALL_SUBJECT_MAX_LENGTH =
- PhoneAccount.EXTRA_CALL_SUBJECT_MAX_LENGTH;
- public static final String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING =
- PhoneAccount.EXTRA_CALL_SUBJECT_CHARACTER_ENCODING;
-
- public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE =
- PhoneAccount.CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE;
-
- public static Bundle getExtras(PhoneAccount account) {
- return CompatUtils.isNCompatible() ? account.getExtras() : null;
- }
-}
diff --git a/src/com/android/contacts/compat/PhoneCompat.java b/src/com/android/contacts/compat/PhoneCompat.java
deleted file mode 100644
index 67ef558a41..0000000000
--- a/src/com/android/contacts/compat/PhoneCompat.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.net.Uri;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-
-import com.android.contacts.ContactsUtils;
-
-public class PhoneCompat {
-
- // TODO: Use N APIs
- private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
- Uri.withAppendedPath(Phone.CONTENT_URI, "filter_enterprise");
-
- public static Uri getContentFilterUri() {
- if (ContactsUtils.FLAG_N_FEATURE) {
- return ENTERPRISE_CONTENT_FILTER_URI;
- }
- return Phone.CONTENT_FILTER_URI;
- }
-}
diff --git a/src/com/android/contacts/compat/PhoneLookupSdkCompat.java b/src/com/android/contacts/compat/PhoneLookupSdkCompat.java
deleted file mode 100644
index 770216f506..0000000000
--- a/src/com/android/contacts/compat/PhoneLookupSdkCompat.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.contacts.compat;
-
-import android.provider.ContactsContract;
-
-public class PhoneLookupSdkCompat {
- public static final String CONTACT_ID = ContactsContract.PhoneLookup.CONTACT_ID;
-}
diff --git a/src/com/android/contacts/compat/PhoneNumberFormattingTextWatcherCompat.java b/src/com/android/contacts/compat/PhoneNumberFormattingTextWatcherCompat.java
deleted file mode 100644
index 46d727e26d..0000000000
--- a/src/com/android/contacts/compat/PhoneNumberFormattingTextWatcherCompat.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-package com.android.contacts.compat;
-
-import android.telephony.PhoneNumberFormattingTextWatcher;
-
-public class PhoneNumberFormattingTextWatcherCompat {
- public static PhoneNumberFormattingTextWatcher newInstance(String countryCode) {
- if (CompatUtils.isLollipopCompatible()) {
- return new PhoneNumberFormattingTextWatcher(countryCode);
- }
- return new PhoneNumberFormattingTextWatcher();
- }
-}
diff --git a/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java b/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java
deleted file mode 100644
index 0399b6860e..0000000000
--- a/src/com/android/contacts/compat/PhoneNumberUtilsCompat.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.telephony.PhoneNumberUtils;
-import android.text.Spannable;
-import android.text.TextUtils;
-import android.text.style.TtsSpan;
-
-import com.google.i18n.phonenumbers.NumberParseException;
-import com.google.i18n.phonenumbers.PhoneNumberUtil;
-import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
-
-/**
- * This class contains static utility methods extracted from PhoneNumberUtils, and the
- * methods were added in API level 23. In this way, we could enable the corresponding functionality
- * for pre-M devices. We need maintain this class and keep it synced with PhoneNumberUtils.
- * Another thing to keep in mind is that we use com.google.i18n rather than com.android.i18n in
- * here, so we need make sure the application behavior is preserved.
- */
-public class PhoneNumberUtilsCompat {
- /**
- * Not instantiable.
- */
- private PhoneNumberUtilsCompat() {}
-
- public static String normalizeNumber(String phoneNumber) {
- if (CompatUtils.isLollipopCompatible()) {
- return PhoneNumberUtils.normalizeNumber(phoneNumber);
- } else {
- return normalizeNumberInternal(phoneNumber);
- }
- }
-
- /**
- * Implementation copied from {@link PhoneNumberUtils#normalizeNumber}
- */
- private static String normalizeNumberInternal(String phoneNumber) {
- if (TextUtils.isEmpty(phoneNumber)) {
- return "";
- }
- StringBuilder sb = new StringBuilder();
- int len = phoneNumber.length();
- for (int i = 0; i < len; i++) {
- char c = phoneNumber.charAt(i);
- // Character.digit() supports ASCII and Unicode digits (fullwidth, Arabic-Indic, etc.)
- int digit = Character.digit(c, 10);
- if (digit != -1) {
- sb.append(digit);
- } else if (sb.length() == 0 && c == '+') {
- sb.append(c);
- } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
- return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber));
- }
- }
- return sb.toString();
- }
-
- public static String formatNumber(
- String phoneNumber, String phoneNumberE164, String defaultCountryIso) {
- if (CompatUtils.isLollipopCompatible()) {
- return PhoneNumberUtils.formatNumber(phoneNumber, phoneNumberE164, defaultCountryIso);
- } else {
- // This method was deprecated in API level 21, so it's only used on pre-L SDKs.
- return PhoneNumberUtils.formatNumber(phoneNumber);
- }
- }
-
- public static CharSequence createTtsSpannable(CharSequence phoneNumber) {
- if (CompatUtils.isMarshmallowCompatible()) {
- return PhoneNumberUtils.createTtsSpannable(phoneNumber);
- } else {
- return createTtsSpannableInternal(phoneNumber);
- }
- }
-
- public static TtsSpan createTtsSpan(String phoneNumber) {
- if (CompatUtils.isMarshmallowCompatible()) {
- return PhoneNumberUtils.createTtsSpan(phoneNumber);
- } else if (CompatUtils.isLollipopCompatible()) {
- return createTtsSpanLollipop(phoneNumber);
- } else {
- return null;
- }
- }
-
- /**
- * Copied from {@link PhoneNumberUtils#createTtsSpannable}
- */
- private static CharSequence createTtsSpannableInternal(CharSequence phoneNumber) {
- if (phoneNumber == null) {
- return null;
- }
- Spannable spannable = Spannable.Factory.getInstance().newSpannable(phoneNumber);
- addTtsSpanInternal(spannable, 0, spannable.length());
- return spannable;
- }
-
- /**
- * Compat method for addTtsSpan, see {@link PhoneNumberUtils#addTtsSpan}
- */
- public static void addTtsSpan(Spannable s, int start, int endExclusive) {
- if (CompatUtils.isMarshmallowCompatible()) {
- PhoneNumberUtils.addTtsSpan(s, start, endExclusive);
- } else {
- addTtsSpanInternal(s, start, endExclusive);
- }
- }
-
- /**
- * Copied from {@link PhoneNumberUtils#addTtsSpan}
- */
- private static void addTtsSpanInternal(Spannable s, int start, int endExclusive) {
- s.setSpan(createTtsSpan(s.subSequence(start, endExclusive).toString()),
- start,
- endExclusive,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
-
- /**
- * Copied from {@link PhoneNumberUtils#createTtsSpan}
- */
- private static TtsSpan createTtsSpanLollipop(String phoneNumberString) {
- if (phoneNumberString == null) {
- return null;
- }
-
- // Parse the phone number
- final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
- PhoneNumber phoneNumber = null;
- try {
- // Don't supply a defaultRegion so this fails for non-international numbers because
- // we don't want to TalkBalk to read a country code (e.g. +1) if it is not already
- // present
- phoneNumber = phoneNumberUtil.parse(phoneNumberString, /* defaultRegion */ null);
- } catch (NumberParseException ignored) {
- }
-
- // Build a telephone tts span
- final TtsSpan.TelephoneBuilder builder = new TtsSpan.TelephoneBuilder();
- if (phoneNumber == null) {
- // Strip separators otherwise TalkBack will be silent
- // (this behavior was observed with TalkBalk 4.0.2 from their alpha channel)
- builder.setNumberParts(splitAtNonNumerics(phoneNumberString));
- } else {
- if (phoneNumber.hasCountryCode()) {
- builder.setCountryCode(Integer.toString(phoneNumber.getCountryCode()));
- }
- builder.setNumberParts(Long.toString(phoneNumber.getNationalNumber()));
- }
- return builder.build();
- }
-
-
-
- /**
- * Split a phone number using spaces, ignoring anything that is not a digit
- * @param number A {@code CharSequence} before splitting, e.g., "+20(123)-456#"
- * @return A {@code String} after splitting, e.g., "20 123 456".
- */
- private static String splitAtNonNumerics(CharSequence number) {
- StringBuilder sb = new StringBuilder(number.length());
- for (int i = 0; i < number.length(); i++) {
- sb.append(PhoneNumberUtils.isISODigit(number.charAt(i))
- ? number.charAt(i)
- : " ");
- }
- // It is very important to remove extra spaces. At time of writing, any leading or trailing
- // spaces, or any sequence of more than one space, will confuse TalkBack and cause the TTS
- // span to be non-functional!
- return sb.toString().replaceAll(" +", " ").trim();
- }
-
-}
diff --git a/src/com/android/contacts/compat/PinnedPositionsCompat.java b/src/com/android/contacts/compat/PinnedPositionsCompat.java
deleted file mode 100644
index 59a48e392e..0000000000
--- a/src/com/android/contacts/compat/PinnedPositionsCompat.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.content.ContentResolver;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.PinnedPositions;
-
-/**
- * Compatibility class for {@link android.provider.ContactsContract.PinnedPositions}
- */
-public class PinnedPositionsCompat {
- /**
- * Not instantiable.
- */
- private PinnedPositionsCompat() {
- }
-
- /**
- * copied from android.provider.ContactsContract.PinnedPositions#UNDEMOTE_METHOD
- */
- private static final String UNDEMOTE_METHOD = "undemote";
-
- /**
- * Compatibility method for {@link android.provider.ContactsContract.PinnedPositions#undemote}
- */
- public static void undemote(ContentResolver contentResolver, long contactId) {
- if (contentResolver == null) {
- return;
- }
- if (CompatUtils.isLollipopCompatible()) {
- PinnedPositions.undemote(contentResolver, contactId);
- } else {
- // copied from android.provider.ContactsContract.PinnedPositions.undemote()
- contentResolver.call(ContactsContract.AUTHORITY_URI, UNDEMOTE_METHOD,
- String.valueOf(contactId), null);
- }
- }
-
-}
diff --git a/src/com/android/contacts/compat/ProviderStatusCompat.java b/src/com/android/contacts/compat/ProviderStatusCompat.java
deleted file mode 100644
index 35d514e21f..0000000000
--- a/src/com/android/contacts/compat/ProviderStatusCompat.java
+++ /dev/null
@@ -1,66 +0,0 @@
-
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.provider.ContactsContract.ProviderStatus;
-
-/**
- * This class contains constants from the pre-M version of ContactsContract.ProviderStatus class
- * and also the mappings between pre-M constants and M constants for compatibility purpose,
- * because ProviderStatus class constant names and values changed and the class became visible in
- * API level 23.
- */
-public class ProviderStatusCompat {
- /**
- * Not instantiable.
- */
- private ProviderStatusCompat() {
- }
-
- public static final boolean USE_CURRENT_VERSION = CompatUtils.isMarshmallowCompatible();
-
- public static final int STATUS_EMPTY = USE_CURRENT_VERSION ?
- ProviderStatus.STATUS_EMPTY : ProviderStatusCompat.STATUS_NO_ACCOUNTS_NO_CONTACTS;
-
- public static final int STATUS_BUSY = USE_CURRENT_VERSION ?
- ProviderStatus.STATUS_BUSY : ProviderStatusCompat.STATUS_UPGRADING;
-
- /**
- * Default status of the provider, using the actual constant to guard against errors
- */
- public static final int STATUS_NORMAL = ProviderStatus.STATUS_NORMAL;
-
- /**
- * The following three constants are from pre-M.
- *
- * The status used when the provider is in the process of upgrading. Contacts
- * are temporarily unaccessible.
- */
- private static final int STATUS_UPGRADING = 1;
-
- /**
- * The status used during a locale change.
- */
- public static final int STATUS_CHANGING_LOCALE = 3;
-
- /**
- * The status that indicates that there are no accounts and no contacts
- * on the device.
- */
- private static final int STATUS_NO_ACCOUNTS_NO_CONTACTS = 4;
-}
diff --git a/src/com/android/contacts/compat/SdkVersionOverride.java b/src/com/android/contacts/compat/SdkVersionOverride.java
deleted file mode 100644
index 5f50fefc45..0000000000
--- a/src/com/android/contacts/compat/SdkVersionOverride.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2015 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
- */
-
-package com.android.contacts.compat;
-
-import android.os.Build.VERSION;
-
-/**
- * Class used to override the current sdk version to test specific branches of compatibility
- * logic. When such branching occurs, use {@link #getSdkVersion(int)} rather than explicitly
- * calling {@link VERSION#SDK_INT}. This allows the sdk version to be forced to a specific value.
- */
-public class SdkVersionOverride {
-
- /**
- * Flag used to determine if override sdk versions are returned.
- */
- private static final boolean ALLOW_OVERRIDE_VERSION = false;
-
- private SdkVersionOverride() {}
-
- /**
- * Gets the sdk version
- *
- * @param overrideVersion the version to attempt using
- * @return overrideVersion if the {@link #ALLOW_OVERRIDE_VERSION} flag is set to {@code true},
- * otherwise the current version
- */
- public static int getSdkVersion(int overrideVersion) {
- return ALLOW_OVERRIDE_VERSION ? overrideVersion : VERSION.SDK_INT;
- }
-}
diff --git a/src/com/android/contacts/compat/TelecomManagerUtil.java b/src/com/android/contacts/compat/TelecomManagerUtil.java
deleted file mode 100644
index b6a030a4f2..0000000000
--- a/src/com/android/contacts/compat/TelecomManagerUtil.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2016 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
- */
-package com.android.contacts.compat;
-
-import android.content.Intent;
-import android.telecom.TelecomManager;
-
-/**
- * Utility class for TelecomManager
- */
-public class TelecomManagerUtil {
- /**
- * Creates {@link Intent} to launch the activity to manage blocked numbers.
- */
- public static Intent createManageBlockedNumbersIntent(TelecomManager tm) {
- return CompatUtils.isNCompatible() ? tm.createManageBlockedNumbersIntent() : null;
- }
-}
diff --git a/src/com/android/contacts/compat/TelephonyManagerCompat.java b/src/com/android/contacts/compat/TelephonyManagerCompat.java
index a8b022646a..10dbe46ac6 100644
--- a/src/com/android/contacts/compat/TelephonyManagerCompat.java
+++ b/src/com/android/contacts/compat/TelephonyManagerCompat.java
@@ -17,12 +17,12 @@
package com.android.contacts.compat;
import android.net.Uri;
-import androidx.annotation.Nullable;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
+import androidx.annotation.Nullable;
+
public class TelephonyManagerCompat {
- public static final String TELEPHONY_MANAGER_CLASS = "android.telephony.TelephonyManager";
/**
* @param telephonyManager The telephony manager instance to use for method calls.
@@ -43,14 +43,7 @@ public static boolean isVoiceCapable(@Nullable TelephonyManager telephonyManager
if (telephonyManager == null) {
return false;
}
- if (CompatUtils.isLollipopMr1Compatible()
- || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isVoiceCapable")) {
- // isVoiceCapable was unhidden in L-MR1
- return telephonyManager.isVoiceCapable();
- }
- final int phoneType = telephonyManager.getPhoneType();
- return phoneType == TelephonyManager.PHONE_TYPE_CDMA ||
- phoneType == TelephonyManager.PHONE_TYPE_GSM;
+ return telephonyManager.isVoiceCapable();
}
/**
@@ -66,11 +59,7 @@ public static int getPhoneCount(@Nullable TelephonyManager telephonyManager) {
if (telephonyManager == null) {
return 1;
}
- if (CompatUtils.isMarshmallowCompatible() || CompatUtils
- .isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getPhoneCount")) {
- return telephonyManager.getPhoneCount();
- }
- return 1;
+ return telephonyManager.getPhoneCount();
}
/**
@@ -87,12 +76,7 @@ public static String getDeviceId(@Nullable TelephonyManager telephonyManager, in
if (telephonyManager == null) {
return null;
}
- if (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS,
- "getDeviceId", Integer.class)) {
- return telephonyManager.getDeviceId(slotId);
- }
- return null;
+ return telephonyManager.getDeviceId(slotId);
}
/**
@@ -106,11 +90,7 @@ public static boolean isTtyModeSupported(@Nullable TelephonyManager telephonyMan
if (telephonyManager == null) {
return false;
}
- if (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isTtyModeSupported")) {
- return telephonyManager.isTtyModeSupported();
- }
- return false;
+ return telephonyManager.isTtyModeSupported();
}
/**
@@ -125,12 +105,7 @@ public static boolean isHearingAidCompatibilitySupported(
if (telephonyManager == null) {
return false;
}
- if (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS,
- "isHearingAidCompatibilitySupported")) {
- return telephonyManager.isHearingAidCompatibilitySupported();
- }
- return false;
+ return telephonyManager.isHearingAidCompatibilitySupported();
}
/**
@@ -145,11 +120,7 @@ public static boolean isHearingAidCompatibilitySupported(
@Nullable
public static Uri getVoicemailRingtoneUri(TelephonyManager telephonyManager,
PhoneAccountHandle accountHandle) {
- if (!CompatUtils.isNCompatible()) {
- return null;
- }
- return TelephonyManagerSdkCompat
- .getVoicemailRingtoneUri(telephonyManager, accountHandle);
+ return telephonyManager.getVoicemailRingtoneUri(accountHandle);
}
/**
@@ -162,10 +133,6 @@ public static Uri getVoicemailRingtoneUri(TelephonyManager telephonyManager,
*/
public static boolean isVoicemailVibrationEnabled(TelephonyManager telephonyManager,
PhoneAccountHandle accountHandle) {
- if (!CompatUtils.isNCompatible()) {
- return true;
- }
- return TelephonyManagerSdkCompat
- .isVoicemailVibrationEnabled(telephonyManager, accountHandle);
+ return telephonyManager.isVoicemailVibrationEnabled(accountHandle);
}
}
diff --git a/src/com/android/contacts/compat/TelephonyManagerSdkCompat.java b/src/com/android/contacts/compat/TelephonyManagerSdkCompat.java
deleted file mode 100644
index dec486ba88..0000000000
--- a/src/com/android/contacts/compat/TelephonyManagerSdkCompat.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2016 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
- */
-
-package com.android.contacts.compat;
-
-import android.net.Uri;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.TelephonyManager;
-
-/**
- * On N and above, this will look up voicemail notification settings from Telephony.
- */
-public class TelephonyManagerSdkCompat {
- public static Uri getVoicemailRingtoneUri(TelephonyManager telephonyManager,
- PhoneAccountHandle accountHandle) {
- return CompatUtils.isNCompatible()
- ? telephonyManager.getVoicemailRingtoneUri(accountHandle) : null;
- }
-
- public static boolean isVoicemailVibrationEnabled(TelephonyManager telephonyManager,
- PhoneAccountHandle accountHandle) {
- return CompatUtils.isNCompatible()
- ? telephonyManager.isVoicemailVibrationEnabled(accountHandle) : false;
- }
-}
diff --git a/src/com/android/contacts/compat/TelephonyThreadsCompat.java b/src/com/android/contacts/compat/TelephonyThreadsCompat.java
deleted file mode 100644
index 545e1856d7..0000000000
--- a/src/com/android/contacts/compat/TelephonyThreadsCompat.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.compat;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Build;
-import android.provider.BaseColumns;
-import android.provider.Telephony;
-import android.text.TextUtils;
-import android.util.Log;
-import android.util.Patterns;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * This class contains static utility methods and variables extracted from Telephony and
- * SqliteWrapper, and the methods were made visible in API level 23. In this way, we could
- * enable the corresponding functionality for pre-M devices. We need maintain this class and keep
- * it synced with Telephony and SqliteWrapper.
- */
-public class TelephonyThreadsCompat {
- /**
- * Not instantiable.
- */
- private TelephonyThreadsCompat() {}
-
- private static final String TAG = "TelephonyThreadsCompat";
-
- public static long getOrCreateThreadId(Context context, String recipient) {
- if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
- return Telephony.Threads.getOrCreateThreadId(context, recipient);
- } else {
- return getOrCreateThreadIdInternal(context, recipient);
- }
- }
-
- // Below is code copied from Telephony and SqliteWrapper
- /**
- * Private {@code content://} style URL for this table. Used by
- * {@link #getOrCreateThreadId(Context, Set)}.
- */
- private static final Uri THREAD_ID_CONTENT_URI = Uri.parse("content://mms-sms/threadID");
-
- private static final String[] ID_PROJECTION = { BaseColumns._ID };
-
- /**
- * Regex pattern for names and email addresses.
- *
- */
- private static final Pattern NAME_ADDR_EMAIL_PATTERN =
- Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*");
-
- /**
- * Copied from {@link Telephony.Threads#getOrCreateThreadId(Context, String)}
- */
- private static long getOrCreateThreadIdInternal(Context context, String recipient) {
- Set recipients = new HashSet();
-
- recipients.add(recipient);
- return getOrCreateThreadIdInternal(context, recipients);
- }
-
- /**
- * Given the recipients list and subject of an unsaved message,
- * return its thread ID. If the message starts a new thread,
- * allocate a new thread ID. Otherwise, use the appropriate
- * existing thread ID.
- *
- *
Find the thread ID of the same set of recipients (in any order,
- * without any additions). If one is found, return it. Otherwise,
- * return a unique thread ID.
- */
- private static long getOrCreateThreadIdInternal(Context context, Set recipients) {
- Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon();
-
- for (String recipient : recipients) {
- if (isEmailAddress(recipient)) {
- recipient = extractAddrSpec(recipient);
- }
-
- uriBuilder.appendQueryParameter("recipient", recipient);
- }
-
- Uri uri = uriBuilder.build();
-
- Cursor cursor = query(
- context.getContentResolver(), uri, ID_PROJECTION, null, null, null);
- if (cursor != null) {
- try {
- if (cursor.moveToFirst()) {
- return cursor.getLong(0);
- } else {
- Log.e(TAG, "getOrCreateThreadId returned no rows!");
- }
- } finally {
- cursor.close();
- }
- }
-
- Log.e(TAG, "getOrCreateThreadId failed with uri " + uri.toString());
- throw new IllegalArgumentException("Unable to find or allocate a thread ID.");
- }
-
- /**
- * Copied from {@link SqliteWrapper#query}
- */
- private static Cursor query(ContentResolver resolver, Uri uri, String[] projection,
- String selection, String[] selectionArgs, String sortOrder) {
- try {
- return resolver.query(uri, projection, selection, selectionArgs, sortOrder);
- } catch (Exception e) {
- Log.e(TAG, "Catch an exception when query: ", e);
- return null;
- }
- }
-
- /**
- * Is the specified address an email address?
- *
- * @param address the input address to test
- * @return true if address is an email address; false otherwise.
- */
- private static boolean isEmailAddress(String address) {
- if (TextUtils.isEmpty(address)) {
- return false;
- }
-
- String s = extractAddrSpec(address);
- Matcher match = Patterns.EMAIL_ADDRESS.matcher(s);
- return match.matches();
- }
-
- /**
- * Helper method to extract email address from address string.
- */
- private static String extractAddrSpec(String address) {
- Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(address);
-
- if (match.matches()) {
- return match.group(2);
- }
- return address;
- }
-}
diff --git a/src/com/android/contacts/compat/telecom/TelecomManagerCompat.java b/src/com/android/contacts/compat/telecom/TelecomManagerCompat.java
index aa990ad6d6..c788954fdd 100644
--- a/src/com/android/contacts/compat/telecom/TelecomManagerCompat.java
+++ b/src/com/android/contacts/compat/telecom/TelecomManagerCompat.java
@@ -17,10 +17,9 @@
import android.app.Activity;
import android.content.Intent;
-import androidx.annotation.Nullable;
import android.telecom.TelecomManager;
-import com.android.contacts.compat.CompatUtils;
+import androidx.annotation.Nullable;
/**
* Compatibility class for {@link android.telecom.TelecomManager}.
@@ -39,10 +38,6 @@ public static void placeCall(@Nullable Activity activity,
if (activity == null || telecomManager == null || intent == null) {
return;
}
- if (CompatUtils.isMarshmallowCompatible()) {
- telecomManager.placeCall(intent.getData(), intent.getExtras());
- return;
- }
- activity.startActivityForResult(intent, 0);
+ telecomManager.placeCall(intent.getData(), intent.getExtras());
}
}
diff --git a/src/com/android/contacts/database/SimContactDaoImpl.java b/src/com/android/contacts/database/SimContactDaoImpl.java
index 54106f0419..a411a45664 100644
--- a/src/com/android/contacts/database/SimContactDaoImpl.java
+++ b/src/com/android/contacts/database/SimContactDaoImpl.java
@@ -15,7 +15,6 @@
*/
package com.android.contacts.database;
-import android.annotation.TargetApi;
import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import android.content.ContentResolver;
@@ -24,7 +23,6 @@
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
-import android.os.Build;
import android.os.RemoteException;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
@@ -40,14 +38,11 @@
import androidx.collection.ArrayMap;
-import com.android.contacts.R;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.model.SimCard;
import com.android.contacts.model.SimContact;
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.util.PermissionsUtil;
import com.android.contacts.util.SharedPreferenceUtil;
-
import com.google.common.base.Joiner;
import java.util.ArrayList;
@@ -109,10 +104,7 @@ public List getSimCards() {
if (!canReadSimContacts()) {
return Collections.emptyList();
}
- final List sims = CompatUtils.isMSIMCompatible() ?
- getSimCardsFromSubscriptions() :
- Collections.singletonList(SimCard.create(mTelephonyManager,
- mContext.getString(R.string.single_sim_display_label)));
+ final List sims = getSimCardsFromSubscriptions();
return SharedPreferenceUtil.restoreSimStates(mContext, sims);
}
@@ -238,7 +230,6 @@ private ContentProviderResult[] importBatch(List contacts,
return mResolver.applyBatch(ContactsContract.AUTHORITY, ops);
}
- @TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
private List getSimCardsFromSubscriptions() {
final SubscriptionManager subscriptionManager = (SubscriptionManager)
mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
diff --git a/src/com/android/contacts/dialog/CallSubjectDialog.java b/src/com/android/contacts/dialog/CallSubjectDialog.java
index ffce0f5138..4f623abe55 100644
--- a/src/com/android/contacts/dialog/CallSubjectDialog.java
+++ b/src/com/android/contacts/dialog/CallSubjectDialog.java
@@ -47,8 +47,6 @@
import com.android.contacts.CallUtil;
import com.android.contacts.ContactPhotoManager;
import com.android.contacts.R;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.PhoneAccountSdkCompat;
import com.android.contacts.compat.telecom.TelecomManagerCompat;
import com.android.contacts.util.UriUtils;
import com.android.phone.common.animation.AnimUtils;
@@ -391,9 +389,7 @@ private void updateCharacterLimit() {
private void setPhoto(long photoId, Uri photoUri, Uri contactUri, String displayName,
boolean isBusiness) {
mContactPhoto.assignContactUri(contactUri);
- if (CompatUtils.isLollipopCompatible()) {
- mContactPhoto.setOverlay(null);
- }
+ mContactPhoto.setOverlay(null);
int contactType;
if (isBusiness) {
@@ -580,13 +576,6 @@ public void onAnimationStart(Animator animation) {
* current phone account.
*/
private void loadConfiguration() {
- // Only attempt to load configuration from the phone account extras if the SDK is N or
- // later. If we've got a prior SDK the default encoding and message length will suffice.
- int sdk = android.os.Build.VERSION.SDK_INT;
- if(sdk <= android.os.Build.VERSION_CODES.M) {
- return;
- }
-
if (mPhoneAccountHandle == null) {
return;
}
@@ -595,18 +584,18 @@ private void loadConfiguration() {
(TelecomManager) getSystemService(Context.TELECOM_SERVICE);
final PhoneAccount account = telecomManager.getPhoneAccount(mPhoneAccountHandle);
- Bundle phoneAccountExtras = PhoneAccountSdkCompat.getExtras(account);
+ Bundle phoneAccountExtras = account.getExtras();
if (phoneAccountExtras == null) {
return;
}
// Get limit, if provided; otherwise default to existing value.
mLimit = phoneAccountExtras
- .getInt(PhoneAccountSdkCompat.EXTRA_CALL_SUBJECT_MAX_LENGTH, mLimit);
+ .getInt(PhoneAccount.EXTRA_CALL_SUBJECT_MAX_LENGTH, mLimit);
// Get charset; default to none (e.g. count characters 1:1).
String charsetName = phoneAccountExtras.getString(
- PhoneAccountSdkCompat.EXTRA_CALL_SUBJECT_CHARACTER_ENCODING);
+ PhoneAccount.EXTRA_CALL_SUBJECT_CHARACTER_ENCODING);
if (!TextUtils.isEmpty(charsetName)) {
try {
diff --git a/src/com/android/contacts/editor/AggregationSuggestionEngine.java b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
index 8b3ee69747..b072ddbc31 100644
--- a/src/com/android/contacts/editor/AggregationSuggestionEngine.java
+++ b/src/com/android/contacts/editor/AggregationSuggestionEngine.java
@@ -21,7 +21,6 @@
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
-import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
@@ -33,15 +32,12 @@
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Contacts.AggregationSuggestions;
-import android.provider.ContactsContract.Contacts.AggregationSuggestions.Builder;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.text.TextUtils;
-import com.android.contacts.compat.AggregationSuggestionsCompat;
import com.android.contacts.model.ValuesDelta;
import com.android.contacts.model.account.AccountWithDataSet;
-
import com.google.common.base.MoreObjects;
import com.google.common.collect.Lists;
@@ -214,23 +210,7 @@ private Uri buildAggregationSuggestionUri(ValuesDelta values) {
return null;
}
- // AggregationSuggestions.Builder() became visible in API level 23, so use it if applicable.
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- final AggregationSuggestions.Builder uriBuilder = new AggregationSuggestions.Builder()
- .setLimit(SUGGESTIONS_LIMIT)
- .setContactId(mContactId);
- if (nameSb.length() != 0) {
- uriBuilder.addNameParameter(nameSb.toString());
- }
- if (phoneticNameSb.length() != 0) {
- uriBuilder.addNameParameter(phoneticNameSb.toString());
- }
- return uriBuilder.build();
- }
-
- // For previous SDKs, use the backup plan.
- final AggregationSuggestionsCompat.Builder uriBuilder =
- new AggregationSuggestionsCompat.Builder()
+ final AggregationSuggestions.Builder uriBuilder = new AggregationSuggestions.Builder()
.setLimit(SUGGESTIONS_LIMIT)
.setContactId(mContactId);
if (nameSb.length() != 0) {
diff --git a/src/com/android/contacts/editor/EditorUiUtils.java b/src/com/android/contacts/editor/EditorUiUtils.java
index 3dac5bb3f5..017660fc85 100644
--- a/src/com/android/contacts/editor/EditorUiUtils.java
+++ b/src/com/android/contacts/editor/EditorUiUtils.java
@@ -18,7 +18,6 @@
import static android.provider.ContactsContract.CommonDataKinds.GroupMembership;
import static android.provider.ContactsContract.CommonDataKinds.StructuredName;
-
import static com.android.contacts.util.MaterialColorMapUtils.getDefaultPrimaryAndSecondaryColors;
import android.content.Context;
@@ -28,7 +27,6 @@
import android.graphics.drawable.Drawable;
import android.media.RingtoneManager;
import android.net.Uri;
-import android.os.Build;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.Event;
import android.provider.ContactsContract.CommonDataKinds.Im;
@@ -40,10 +38,11 @@
import android.provider.ContactsContract.CommonDataKinds.SipAddress;
import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
import android.provider.ContactsContract.CommonDataKinds.Website;
-import androidx.core.content.res.ResourcesCompat;
import android.text.TextUtils;
import android.widget.ImageView;
+import androidx.core.content.res.ResourcesCompat;
+
import com.android.contacts.ContactPhotoManager;
import com.android.contacts.ContactPhotoManager.DefaultImageProvider;
import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
@@ -52,11 +51,9 @@
import com.android.contacts.model.ValuesDelta;
import com.android.contacts.model.account.AccountDisplayInfo;
import com.android.contacts.model.account.AccountInfo;
-import com.android.contacts.model.dataitem.DataKind;
import com.android.contacts.util.ContactPhotoUtils;
import com.android.contacts.util.MaterialColorMapUtils.MaterialPalette;
import com.android.contacts.widget.QuickContactImageView;
-
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Maps;
@@ -204,32 +201,25 @@ public static Drawable getMimeTypeDrawable(Context context, String mimeType) {
}
/**
- * Returns a ringtone string based on the ringtone URI and version #.
+ * Returns a ringtone string based on the ringtone URI.
*/
- public static String getRingtoneStringFromUri(Uri pickedUri, int currentVersion) {
- if (isNewerThanM(currentVersion)) {
- if (pickedUri == null) return ""; // silent ringtone
- if (RingtoneManager.isDefault(pickedUri)) return null; // default ringtone
- }
- if (pickedUri == null || RingtoneManager.isDefault(pickedUri)) return null;
+ public static String getRingtoneStringFromUri(Uri pickedUri) {
+ if (pickedUri == null) return ""; // silent ringtone
+ if (RingtoneManager.isDefault(pickedUri)) return null; // default ringtone
return pickedUri.toString();
}
/**
- * Returns a ringtone URI, based on the string and version #.
+ * Returns a ringtone URI, based on the string.
*/
- public static Uri getRingtoneUriFromString(String str, int currentVersion) {
+ public static Uri getRingtoneUriFromString(String str) {
if (str != null) {
- if (isNewerThanM(currentVersion) && TextUtils.isEmpty(str)) return null;
+ if (TextUtils.isEmpty(str)) return null;
return Uri.parse(str);
}
return RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
}
- private static boolean isNewerThanM(int currentVersion) {
- return currentVersion > Build.VERSION_CODES.M;
- }
-
/** Returns the {@link Photo#PHOTO_FILE_ID} from the given ValuesDelta. */
public static Long getPhotoFileId(ValuesDelta valuesDelta) {
if (valuesDelta == null) return null;
diff --git a/src/com/android/contacts/editor/RawContactEditorView.java b/src/com/android/contacts/editor/RawContactEditorView.java
index 755800aa5d..bcbc2515f2 100644
--- a/src/com/android/contacts/editor/RawContactEditorView.java
+++ b/src/com/android/contacts/editor/RawContactEditorView.java
@@ -38,6 +38,7 @@
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;
import android.provider.ContactsContract.CommonDataKinds.Website;
+import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
@@ -50,10 +51,8 @@
import android.widget.ListPopupWindow;
import android.widget.TextView;
-import com.android.contacts.editor.KindSectionView;
import com.android.contacts.GeoUtil;
import com.android.contacts.R;
-import com.android.contacts.compat.PhoneNumberUtilsCompat;
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.model.RawContactDelta;
import com.android.contacts.model.RawContactDeltaList;
@@ -690,7 +689,7 @@ private void addReadOnlyRawContactEditorViews() {
if (TextUtils.isEmpty(phoneNumber)) {
continue;
}
- final String formattedNumber = PhoneNumberUtilsCompat.formatNumber(
+ final String formattedNumber = PhoneNumberUtils.formatNumber(
phoneNumber, phone.getPhoneNormalizedNumber(),
GeoUtil.getCurrentCountryIso(getContext()));
CharSequence phoneType = null;
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index d7f9545bfe..cd9ea6572c 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -22,9 +22,8 @@
import android.os.Parcel;
import android.os.Parcelable;
import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.Im;
-import android.provider.ContactsContract.CommonDataKinds.SipAddress;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
+import android.telephony.PhoneNumberUtils;
import android.text.Editable;
import android.text.InputType;
import android.text.Spannable;
@@ -43,15 +42,14 @@
import android.widget.ImageView;
import android.widget.LinearLayout;
+import com.android.contacts.ClipboardUtils;
import com.android.contacts.ContactsUtils;
import com.android.contacts.R;
-import com.android.contacts.compat.PhoneNumberUtilsCompat;
import com.android.contacts.model.RawContactDelta;
import com.android.contacts.model.ValuesDelta;
import com.android.contacts.model.account.AccountType.EditField;
import com.android.contacts.model.dataitem.DataKind;
import com.android.contacts.util.PhoneNumberFormatter;
-import com.android.contacts.ClipboardUtils;
/**
* Simple editor that handles labels and any {@link EditField} defined for the
@@ -340,7 +338,7 @@ public void setValues(DataKind kind, ValuesDelta entry, RawContactDelta state, b
final String column = field.column;
final String value = entry.getAsString(column);
if (ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(kind.mimeType)) {
- fieldView.setText(PhoneNumberUtilsCompat.createTtsSpannable(value));
+ fieldView.setText(PhoneNumberUtils.createTtsSpannable(value));
} else {
fieldView.setText(value);
}
@@ -398,7 +396,7 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
for (int i = 0; i < spans.length; i++) {
spannable.removeSpan(spans[i]);
}
- PhoneNumberUtilsCompat.addTtsSpan(spannable, 0, s.length());
+ PhoneNumberUtils.addTtsSpan(spannable, 0, s.length());
}
});
diff --git a/src/com/android/contacts/interactions/ImportDialogFragment.java b/src/com/android/contacts/interactions/ImportDialogFragment.java
index b8faac103a..794bbf9b09 100644
--- a/src/com/android/contacts/interactions/ImportDialogFragment.java
+++ b/src/com/android/contacts/interactions/ImportDialogFragment.java
@@ -17,7 +17,6 @@
package com.android.contacts.interactions;
import android.app.Activity;
-import androidx.appcompat.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.FragmentManager;
@@ -28,8 +27,7 @@
import android.icu.text.MessageFormat;
import android.os.Bundle;
import android.os.UserManager;
-import androidx.core.text.BidiFormatter;
-import androidx.core.text.TextDirectionHeuristicsCompat;
+import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
@@ -38,15 +36,16 @@
import android.widget.ArrayAdapter;
import android.widget.TextView;
+import androidx.appcompat.app.AlertDialog;
+import androidx.core.text.BidiFormatter;
+import androidx.core.text.TextDirectionHeuristicsCompat;
+
import com.android.contacts.R;
import com.android.contacts.activities.SimImportActivity;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.PhoneNumberUtilsCompat;
import com.android.contacts.database.SimContactDao;
import com.android.contacts.editor.SelectAccountDialogFragment;
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.model.SimCard;
-import com.android.contacts.model.SimContact;
import com.android.contacts.model.account.AccountInfo;
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.util.AccountSelectionUtil;
@@ -149,7 +148,7 @@ CharSequence getSimSecondaryText(SimCard sim) {
}
if (phone != null) {
phone = sBidiFormatter.unicodeWrap(
- PhoneNumberUtilsCompat.createTtsSpannable(phone),
+ PhoneNumberUtils.createTtsSpannable(phone),
TextDirectionHeuristicsCompat.LTR);
}
@@ -280,7 +279,7 @@ private void handleImportRequest(int resId, int subscriptionId) {
} else {
AccountSelectionUtil.doImport(getActivity(), resId,
(size == 1 ? accountList.get(0) : null),
- (CompatUtils.isMSIMCompatible() ? subscriptionId : -1));
+ subscriptionId);
}
}
diff --git a/src/com/android/contacts/list/AutoScrollListView.java b/src/com/android/contacts/list/AutoScrollListView.java
index f3bc7a2fc9..1f621ad29d 100644
--- a/src/com/android/contacts/list/AutoScrollListView.java
+++ b/src/com/android/contacts/list/AutoScrollListView.java
@@ -17,7 +17,6 @@
package com.android.contacts.list;
import android.content.Context;
-import android.os.Build;
import android.util.AttributeSet;
import android.widget.ListView;
@@ -115,15 +114,4 @@ protected void layoutChildren() {
smoothScrollToPositionFromTop(position, offset);
}
}
-
- @Override
- protected void onLayout(boolean changed, int l, int t, int r, int b) {
- super.onLayout(changed, l, t, r, b);
-
- // Workaround for b/31160338.
- if (android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.N
- || android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) {
- layoutChildren();
- }
- }
}
diff --git a/src/com/android/contacts/list/ContactEntryListAdapter.java b/src/com/android/contacts/list/ContactEntryListAdapter.java
index b508ddae14..dcacfb061a 100644
--- a/src/com/android/contacts/list/ContactEntryListAdapter.java
+++ b/src/com/android/contacts/list/ContactEntryListAdapter.java
@@ -38,8 +38,6 @@
import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.ContactsUtils;
import com.android.contacts.R;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.DirectoryCompat;
import com.android.contacts.util.SearchUtil;
import java.util.HashSet;
@@ -417,14 +415,14 @@ public void changeDirectories(Cursor cursor) {
if (getPartitionByDirectoryId(id) == -1) {
DirectoryPartition partition = new DirectoryPartition(false, true);
partition.setDirectoryId(id);
- if (DirectoryCompat.isRemoteDirectoryId(id)) {
- if (DirectoryCompat.isEnterpriseDirectoryId(id)) {
+ if (Directory.isRemoteDirectoryId(id)) {
+ if (Directory.isEnterpriseDirectoryId(id)) {
partition.setLabel(mContext.getString(R.string.directory_search_label_work));
} else {
partition.setLabel(mContext.getString(R.string.directory_search_label));
}
} else {
- if (DirectoryCompat.isEnterpriseDirectoryId(id)) {
+ if (Directory.isEnterpriseDirectoryId(id)) {
partition.setLabel(mContext.getString(R.string.list_filter_phones_work));
} else {
partition.setLabel(mDefaultFilterHeaderText.toString());
@@ -638,7 +636,7 @@ protected void bindHeaderView(View view, int partitionIndex, Cursor cursor) {
TextView labelTextView = (TextView)view.findViewById(R.id.label);
TextView displayNameTextView = (TextView)view.findViewById(R.id.display_name);
labelTextView.setText(directoryPartition.getLabel());
- if (!DirectoryCompat.isRemoteDirectoryId(directoryId)) {
+ if (!Directory.isRemoteDirectoryId(directoryId)) {
displayNameTextView.setText(null);
} else {
String directoryName = directoryPartition.getDisplayName();
@@ -714,12 +712,10 @@ protected void bindQuickContact(final ContactListItemView view, int partitionInd
QuickContactBadge quickContact = view.getQuickContact();
quickContact.assignContactUri(
getContactUri(partitionIndex, cursor, contactIdColumn, lookUpKeyColumn));
- if (CompatUtils.hasPrioritizedMimeType()) {
- // The Contacts app never uses the QuickContactBadge. Therefore, it is safe to assume
- // that only Dialer will use this QuickContact badge. This means prioritizing the phone
- // mimetype here is reasonable.
- quickContact.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
- }
+ // The Contacts app never uses the QuickContactBadge. Therefore, it is safe to assume
+ // that only Dialer will use this QuickContact badge. This means prioritizing the phone
+ // mimetype here is reasonable.
+ quickContact.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
if (photoId != 0 || photoUriColumn == -1) {
getPhotoLoader().loadThumbnail(quickContact, photoId, mDarkTheme, mCircularPhotos,
diff --git a/src/com/android/contacts/list/ContactListAdapter.java b/src/com/android/contacts/list/ContactListAdapter.java
index cb63f53eb7..cc9c1161b0 100644
--- a/src/com/android/contacts/list/ContactListAdapter.java
+++ b/src/com/android/contacts/list/ContactListAdapter.java
@@ -29,7 +29,6 @@
import com.android.contacts.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.R;
-import com.android.contacts.compat.ContactsCompat;
import com.android.contacts.preference.ContactsPreferences;
import java.util.HashSet;
@@ -190,7 +189,7 @@ public boolean isEnterpriseContact(int position) {
final Cursor cursor = (Cursor) getItem(position);
if (cursor != null) {
final long contactId = cursor.getLong(ContactQuery.CONTACT_ID);
- return ContactsCompat.isEnterpriseContactId(contactId);
+ return Contacts.isEnterpriseContactId(contactId);
}
return false;
}
diff --git a/src/com/android/contacts/list/ContactListItemView.java b/src/com/android/contacts/list/ContactListItemView.java
index aafe5b188d..5ad3de2607 100644
--- a/src/com/android/contacts/list/ContactListItemView.java
+++ b/src/com/android/contacts/list/ContactListItemView.java
@@ -30,6 +30,7 @@
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.SearchSnippets;
+import android.telephony.PhoneNumberUtils;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
@@ -45,21 +46,21 @@
import android.widget.ImageView.ScaleType;
import android.widget.QuickContactBadge;
import android.widget.TextView;
+
import androidx.appcompat.widget.AppCompatCheckBox;
import androidx.appcompat.widget.AppCompatImageButton;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
-import androidx.core.graphics.drawable.DrawableCompat;
+
import com.android.contacts.ContactPresenceIconUtil;
import com.android.contacts.ContactStatusUtil;
import com.android.contacts.R;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.PhoneNumberUtilsCompat;
import com.android.contacts.format.TextHighlighter;
import com.android.contacts.util.ContactDisplayUtils;
import com.android.contacts.util.SearchUtil;
import com.android.contacts.util.ViewUtil;
import com.google.common.collect.Lists;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -1052,9 +1053,7 @@ public QuickContactBadge getQuickContact() {
}
if (mQuickContact == null) {
mQuickContact = new QuickContactBadge(getContext());
- if (CompatUtils.isLollipopCompatible()) {
- mQuickContact.setOverlay(null);
- }
+ mQuickContact.setOverlay(null);
mQuickContact.setLayoutParams(getDefaultPhotoLayoutParams());
if (mNameTextView != null) {
mQuickContact.setContentDescription(getContext().getString(
@@ -1165,9 +1164,7 @@ public TextView getNameTextView() {
mNameTextView.setGravity(Gravity.CENTER_VERTICAL);
mNameTextView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
mNameTextView.setId(R.id.cliv_name_textview);
- if (CompatUtils.isLollipopCompatible()) {
- mNameTextView.setElegantTextHeight(false);
- }
+ mNameTextView.setElegantTextHeight(false);
addView(mNameTextView);
}
return mNameTextView;
@@ -1342,12 +1339,10 @@ public AppCompatImageButton getDeleteImageButton(
mDeleteImageButton.setBackgroundColor(Color.TRANSPARENT);
mDeleteImageButton.setContentDescription(
getResources().getString(R.string.description_delete_contact));
- if (CompatUtils. isLollipopCompatible()) {
- final TypedValue typedValue = new TypedValue();
- getContext().getTheme().resolveAttribute(
- android.R.attr.selectableItemBackgroundBorderless, typedValue, true);
- mDeleteImageButton.setBackgroundResource(typedValue.resourceId);
- }
+ final TypedValue typedValue = new TypedValue();
+ getContext().getTheme().resolveAttribute(
+ android.R.attr.selectableItemBackgroundBorderless, typedValue, true);
+ mDeleteImageButton.setBackgroundResource(typedValue.resourceId);
addView(mDeleteImageButton);
}
// Reset onClickListener because after reloading the view, position might be changed.
@@ -1375,9 +1370,7 @@ public TextView getDataView() {
mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
mDataView.setActivated(isActivated());
mDataView.setId(R.id.cliv_data_view);
- if (CompatUtils.isLollipopCompatible()) {
- mDataView.setElegantTextHeight(false);
- }
+ mDataView.setElegantTextHeight(false);
addView(mDataView);
}
return mDataView;
@@ -1397,7 +1390,7 @@ public void setSnippet(String text) {
if (ContactDisplayUtils.isPossiblePhoneNumber(text)) {
// Give the text-to-speech engine a hint that it's a phone number
mSnippetView.setContentDescription(
- PhoneNumberUtilsCompat.createTtsSpannable(text));
+ PhoneNumberUtils.createTtsSpannable(text));
} else {
mSnippetView.setContentDescription(null);
}
@@ -1535,7 +1528,7 @@ public void setDisplayName(CharSequence name) {
// Give the text-to-speech engine a hint that it's a phone number
mNameTextView.setTextDirection(View.TEXT_DIRECTION_LTR);
mNameTextView.setContentDescription(
- PhoneNumberUtilsCompat.createTtsSpannable(name.toString()));
+ PhoneNumberUtils.createTtsSpannable(name.toString()));
} else {
// Remove span tags of highlighting for talkback to avoid reading highlighting and rest
// of the name into two separate parts.
@@ -1863,14 +1856,8 @@ public void setDrawableResource(int drawableId) {
final Drawable drawable = ContextCompat.getDrawable(getContext(), drawableId);
final int iconColor =
ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
- if (CompatUtils.isLollipopCompatible()) {
- photo.setImageDrawable(drawable);
- photo.setImageTintList(ColorStateList.valueOf(iconColor));
- } else {
- final Drawable drawableWrapper = DrawableCompat.wrap(drawable).mutate();
- DrawableCompat.setTint(drawableWrapper, iconColor);
- photo.setImageDrawable(drawableWrapper);
- }
+ photo.setImageDrawable(drawable);
+ photo.setImageTintList(ColorStateList.valueOf(iconColor));
}
@Override
diff --git a/src/com/android/contacts/list/ContactPickerFragment.java b/src/com/android/contacts/list/ContactPickerFragment.java
index 504828f243..024bf03835 100644
--- a/src/com/android/contacts/list/ContactPickerFragment.java
+++ b/src/com/android/contacts/list/ContactPickerFragment.java
@@ -27,6 +27,8 @@
import com.android.contacts.ShortcutIntentBuilder;
import com.android.contacts.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
+import javax.annotation.Nullable;
+
/**
* Fragment for the contact list used for browsing contacts (as compared to
* picking a contact with one of the PICK or SHORTCUT intents).
@@ -156,7 +158,7 @@ protected View inflateView(LayoutInflater inflater, ViewGroup container) {
}
@Override
- public void onShortcutIntentCreated(Uri uri, Intent shortcutIntent) {
+ public void onShortcutIntentCreated(Uri uri, @Nullable Intent shortcutIntent) {
if (mListener != null) {
mListener.onShortcutIntentCreated(shortcutIntent);
}
diff --git a/src/com/android/contacts/list/ContactsUnavailableFragment.java b/src/com/android/contacts/list/ContactsUnavailableFragment.java
index 048ce62e36..438170c291 100644
--- a/src/com/android/contacts/list/ContactsUnavailableFragment.java
+++ b/src/com/android/contacts/list/ContactsUnavailableFragment.java
@@ -21,7 +21,7 @@
import android.content.res.Configuration;
import android.graphics.PorterDuff;
import android.os.Bundle;
-import androidx.core.content.ContextCompat;
+import android.provider.ContactsContract;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
@@ -33,8 +33,9 @@
import android.widget.ProgressBar;
import android.widget.TextView;
+import androidx.core.content.ContextCompat;
+
import com.android.contacts.R;
-import com.android.contacts.compat.ProviderStatusCompat;
import com.android.contacts.interactions.ImportDialogFragment;
import com.android.contacts.util.ImplicitIntentsUtil;
@@ -100,10 +101,9 @@ public void updateStatus(int providerStatus) {
// The view hasn't been inflated yet.
return;
}
- if (providerStatus == ProviderStatusCompat.STATUS_EMPTY) {
+ if (providerStatus == ContactsContract.ProviderStatus.STATUS_EMPTY) {
updateViewsForEmptyStatus();
- } else if (providerStatus == ProviderStatusCompat.STATUS_BUSY
- || providerStatus == ProviderStatusCompat.STATUS_CHANGING_LOCALE) {
+ } else if (providerStatus == ContactsContract.ProviderStatus.STATUS_BUSY) {
updateViewsForBusyStatus();
}
}
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index 6c13cacba2..b878c9066f 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -47,7 +47,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -63,7 +62,6 @@
import com.android.contacts.R;
import com.android.contacts.activities.ActionBarAdapter;
import com.android.contacts.activities.PeopleActivity;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.interactions.ContactDeletionInteraction;
import com.android.contacts.interactions.ContactMultiDeletionInteraction;
import com.android.contacts.interactions.ContactMultiDeletionInteraction.MultiContactDeleteListener;
@@ -82,7 +80,6 @@
import com.android.contacts.util.SyncUtil;
import com.android.contactsbind.FeatureHighlightHelper;
import com.android.contactsbind.experiments.Flags;
-
import com.google.common.util.concurrent.Futures;
import java.util.HashMap;
@@ -308,7 +305,6 @@ private void maybeShowHamburgerFeatureHighlight() {
if (mActionBarAdapter != null
&& !mActionBarAdapter.isSearchMode()
&& !mActionBarAdapter.isSelectionMode()
- && !isTalkbackOnAndOnPreLollipopMr1()
&& SharedPreferenceUtil.getShouldShowHamburgerPromo(getContext())) {
if (FeatureHighlightHelper.showHamburgerFeatureHighlight(mActivity)) {
SharedPreferenceUtil.setHamburgerPromoDisplayedBefore(getContext());
@@ -316,14 +312,6 @@ private void maybeShowHamburgerFeatureHighlight() {
}
}
- // There's a crash if we show feature highlight when Talkback is on, on API 21 and below.
- // See b/31180524.
- private boolean isTalkbackOnAndOnPreLollipopMr1() {
- return ((AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE))
- .isTouchExplorationEnabled()
- && !CompatUtils.isLollipopMr1Compatible();
- }
-
private void bindListHeader(int numberOfContacts) {
final ContactListFilter filter = getFilter();
// If the phone has at least one Google account whose sync status is unsyncable or pending
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
index 0744f6d2c6..caa2401c66 100644
--- a/src/com/android/contacts/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -30,7 +30,7 @@
import android.provider.ContactsContract.SearchSnippets;
import android.text.TextUtils;
import android.view.View;
-import com.android.contacts.compat.ContactsCompat;
+
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.preference.ContactsPreferences;
import java.util.ArrayList;
@@ -80,7 +80,7 @@ public void configureLoader(CursorLoader loader, long directoryId) {
args[0] = query + "%";
loader.setSelectionArgs(args);
} else {
- final Builder builder = ContactsCompat.getContentUri().buildUpon();
+ final Builder builder = Contacts.ENTERPRISE_CONTENT_FILTER_URI.buildUpon();
appendSearchParameters(builder, query, directoryId);
loader.setUri(builder.build());
loader.setProjection(getProjection(true));
diff --git a/src/com/android/contacts/list/DirectoryListLoader.java b/src/com/android/contacts/list/DirectoryListLoader.java
index 192c744f20..57c6a7658b 100644
--- a/src/com/android/contacts/list/DirectoryListLoader.java
+++ b/src/com/android/contacts/list/DirectoryListLoader.java
@@ -63,7 +63,7 @@ public static Uri getDirectoryUri(int mode) {
if (mode == SEARCH_MODE_DATA_SHORTCUT || mode == SEARCH_MODE_CONTACT_SHORTCUT) {
return Directory.CONTENT_URI;
} else {
- return DirectoryCompat.getContentUri();
+ return Directory.ENTERPRISE_CONTENT_URI;
}
}
}
diff --git a/src/com/android/contacts/list/OnContactPickerActionListener.java b/src/com/android/contacts/list/OnContactPickerActionListener.java
index 0c26e9e84f..16e5afd21e 100644
--- a/src/com/android/contacts/list/OnContactPickerActionListener.java
+++ b/src/com/android/contacts/list/OnContactPickerActionListener.java
@@ -18,6 +18,8 @@
import android.content.Intent;
import android.net.Uri;
+import javax.annotation.Nullable;
+
/**
* Action callbacks that can be sent by a contact picker.
*/
@@ -31,7 +33,7 @@ public interface OnContactPickerActionListener {
/**
* Returns the selected contact as a shortcut intent.
*/
- void onShortcutIntentCreated(Intent intent);
+ void onShortcutIntentCreated(@Nullable Intent intent);
/**
* Creates a new contact and then returns it to the caller.
diff --git a/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java b/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java
index 616562c3d1..da9263275c 100644
--- a/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java
+++ b/src/com/android/contacts/list/OnPhoneNumberPickerActionListener.java
@@ -19,6 +19,8 @@
import android.content.Intent;
import android.net.Uri;
+import javax.annotation.Nullable;
+
/**
* Action callbacks that can be sent by a phone number picker.
*/
@@ -39,7 +41,7 @@ public interface OnPhoneNumberPickerActionListener {
/**
* Returns the selected number as a shortcut intent.
*/
- void onShortcutIntentCreated(Intent intent);
+ void onShortcutIntentCreated(@Nullable Intent intent);
/**
* Called when home menu in {@link ActionBar} is clicked by the user.
diff --git a/src/com/android/contacts/list/PhoneNumberListAdapter.java b/src/com/android/contacts/list/PhoneNumberListAdapter.java
index d459d47ceb..5b4cc5ccf3 100644
--- a/src/com/android/contacts/list/PhoneNumberListAdapter.java
+++ b/src/com/android/contacts/list/PhoneNumberListAdapter.java
@@ -38,17 +38,11 @@
import com.android.contacts.ContactsUtils;
import com.android.contacts.GeoUtil;
import com.android.contacts.R;
-import com.android.contacts.compat.CallableCompat;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.DirectoryCompat;
-import com.android.contacts.compat.PhoneCompat;
import com.android.contacts.extensions.ExtendedPhoneDirectoriesManager;
import com.android.contacts.extensions.ExtensionsFactory;
import com.android.contacts.preference.ContactsPreferences;
import com.android.contacts.util.Constants;
-import com.google.common.collect.Lists;
-
import java.util.ArrayList;
import java.util.List;
@@ -96,7 +90,7 @@ public static class PhoneQuery {
*/
public static final String ANALYTICS_VALUE = "analytics_value";
- public static final String[] PROJECTION_PRIMARY_INTERNAL = new String[] {
+ public static final String[] PROJECTION_PRIMARY = new String[] {
Phone._ID, // 0
Phone.TYPE, // 1
Phone.LABEL, // 2
@@ -106,19 +100,10 @@ public static class PhoneQuery {
Phone.PHOTO_ID, // 6
Phone.DISPLAY_NAME_PRIMARY, // 7
Phone.PHOTO_THUMBNAIL_URI, // 8
+ Phone.CARRIER_PRESENCE, // 9
};
- public static final String[] PROJECTION_PRIMARY;
-
- static {
- final List projectionList = Lists.newArrayList(PROJECTION_PRIMARY_INTERNAL);
- if (CompatUtils.isMarshmallowCompatible()) {
- projectionList.add(Phone.CARRIER_PRESENCE); // 9
- }
- PROJECTION_PRIMARY = projectionList.toArray(new String[projectionList.size()]);
- }
-
- public static final String[] PROJECTION_ALTERNATIVE_INTERNAL = new String[] {
+ public static final String[] PROJECTION_ALTERNATIVE = new String[] {
Phone._ID, // 0
Phone.TYPE, // 1
Phone.LABEL, // 2
@@ -128,18 +113,9 @@ public static class PhoneQuery {
Phone.PHOTO_ID, // 6
Phone.DISPLAY_NAME_ALTERNATIVE, // 7
Phone.PHOTO_THUMBNAIL_URI, // 8
+ Phone.CARRIER_PRESENCE, // 9
};
- public static final String[] PROJECTION_ALTERNATIVE;
-
- static {
- final List projectionList = Lists.newArrayList(PROJECTION_ALTERNATIVE_INTERNAL);
- if (CompatUtils.isMarshmallowCompatible()) {
- projectionList.add(Phone.CARRIER_PRESENCE); // 9
- }
- PROJECTION_ALTERNATIVE = projectionList.toArray(new String[projectionList.size()]);
- }
-
public static final int PHONE_ID = 0;
public static final int PHONE_TYPE = 1;
public static final int PHONE_LABEL = 2;
@@ -211,17 +187,16 @@ public void configureLoader(CursorLoader loader, long directoryId) {
loader.setUri(builder.build());
loader.setProjection(PhoneQuery.PROJECTION_PRIMARY);
} else {
- final boolean isRemoteDirectoryQuery
- = DirectoryCompat.isRemoteDirectoryId(directoryId);
+ final boolean isRemoteDirectoryQuery = Directory.isRemoteDirectoryId(directoryId);
final Builder builder;
if (isSearchMode()) {
final Uri baseUri;
if (isRemoteDirectoryQuery) {
- baseUri = PhoneCompat.getContentFilterUri();
+ baseUri = Phone.ENTERPRISE_CONTENT_FILTER_URI;
} else if (mUseCallableUri) {
- baseUri = CallableCompat.getContentFilterUri();
+ baseUri = Callable.ENTERPRISE_CONTENT_FILTER_URI;
} else {
- baseUri = PhoneCompat.getContentFilterUri();
+ baseUri = Phone.ENTERPRISE_CONTENT_FILTER_URI;
}
builder = baseUri.buildUpon();
builder.appendPath(query); // Builder will encode the query
@@ -343,9 +318,9 @@ public Uri getDataUri(int position) {
public Uri getDataUri(int partitionIndex, Cursor cursor) {
final long directoryId =
((DirectoryPartition)getPartition(partitionIndex)).getDirectoryId();
- if (DirectoryCompat.isRemoteDirectoryId(directoryId)) {
+ if (Directory.isRemoteDirectoryId(directoryId)) {
return null;
- } else if (DirectoryCompat.isEnterpriseDirectoryId(directoryId)) {
+ } else if (Directory.isEnterpriseDirectoryId(directoryId)) {
/*
* ContentUris.withAppendedId(Data.CONTENT_URI, phoneId), is invalid if
* isEnterpriseDirectoryId returns true, because the uri itself will fail since the
@@ -489,15 +464,13 @@ protected void bindPhoneNumber(ContactListItemView view, Cursor cursor, boolean
}
view.setPhoneNumber(text, mCountryIso);
- if (CompatUtils.isVideoCompatible()) {
- // Determine if carrier presence indicates the number supports video calling.
- int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE);
- boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
+ // Determine if carrier presence indicates the number supports video calling.
+ int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE);
+ boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
- boolean isVideoIconShown = mIsVideoEnabled && (
- mIsPresenceEnabled && isPresent || !mIsPresenceEnabled);
- view.setShowVideoCallIcon(isVideoIconShown, mListener, position);
- }
+ boolean isVideoIconShown = mIsVideoEnabled && (
+ mIsPresenceEnabled && isPresent || !mIsPresenceEnabled);
+ view.setShowVideoCallIcon(isVideoIconShown, mListener, position);
}
protected void bindSectionHeaderAndDivider(final ContactListItemView view, int position) {
@@ -610,7 +583,7 @@ public void changeDirectories(Cursor cursor) {
if (id > maxId) {
maxId = id;
}
- if (!DirectoryCompat.isRemoteDirectoryId(id)) {
+ if (!Directory.isRemoteDirectoryId(id)) {
// assuming remote directories come after local, we will end up with the index
// where we should insert extended directories. This also works if there are no
// remote directories at all.
diff --git a/src/com/android/contacts/list/PhoneNumberPickerFragment.java b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
index cbc8def7d2..25c343a84f 100644
--- a/src/com/android/contacts/list/PhoneNumberPickerFragment.java
+++ b/src/com/android/contacts/list/PhoneNumberPickerFragment.java
@@ -31,6 +31,8 @@
import com.android.contacts.ShortcutIntentBuilder;
import com.android.contacts.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
+import javax.annotation.Nullable;
+
/**
* Fragment containing a phone number list for picking.
*/
@@ -257,7 +259,7 @@ protected void startPhoneNumberShortcutIntent(Uri uri, boolean isVideoCall) {
}
@Override
- public void onShortcutIntentCreated(Uri uri, Intent shortcutIntent) {
+ public void onShortcutIntentCreated(Uri uri, @Nullable Intent shortcutIntent) {
mListener.onShortcutIntentCreated(shortcutIntent);
}
diff --git a/src/com/android/contacts/list/ProviderStatusWatcher.java b/src/com/android/contacts/list/ProviderStatusWatcher.java
index 64dc298203..2246075187 100644
--- a/src/com/android/contacts/list/ProviderStatusWatcher.java
+++ b/src/com/android/contacts/list/ProviderStatusWatcher.java
@@ -24,7 +24,6 @@
import android.provider.ContactsContract.ProviderStatus;
import android.util.Log;
-import com.android.contacts.compat.ProviderStatusCompat;
import com.android.contactsbind.FeedbackHelper;
import com.google.common.collect.Lists;
@@ -169,16 +168,16 @@ public void stop() {
* provider?) this may still cause ANRs.
*
* In order to avoid that, if we can't load the status within {@link #LOAD_WAIT_TIMEOUT_MS},
- * we'll give up and just returns {@link ProviderStatusCompat#STATUS_BUSY} in order to unblock
+ * we'll give up and just returns {@link ProviderStatus#STATUS_BUSY} in order to unblock
* the UI thread. The actual result will be delivered later via {@link ProviderStatusListener}.
- * (If {@link ProviderStatusCompat#STATUS_BUSY} is returned, the app (should) shows an according
+ * (If {@link ProviderStatus#STATUS_BUSY} is returned, the app (should) shows an according
* message, like "contacts are being updated".)
*/
public int getProviderStatus() {
waitForLoaded();
if (mProviderStatus == null) {
- return ProviderStatusCompat.STATUS_BUSY;
+ return ProviderStatus.STATUS_BUSY;
}
return mProviderStatus;
diff --git a/src/com/android/contacts/model/BuilderWrapper.java b/src/com/android/contacts/model/BuilderWrapper.java
deleted file mode 100644
index 4a96c36ae9..0000000000
--- a/src/com/android/contacts/model/BuilderWrapper.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.model;
-
-import android.content.ContentProviderOperation.Builder;
-
-/**
- * This class is created for the purpose of compatibility and make the type of
- * ContentProviderOperation available on pre-M SDKs. Since ContentProviderOperation is
- * usually created by Builder and we don’t have access to the type via Builder, so we need to
- * create a wrapper class for Builder first and include type. Then we could use the builder and
- * the type in this class to create a wrapper of ContentProviderOperation.
- */
-public class BuilderWrapper {
- private Builder mBuilder;
- private int mType;
-
- public BuilderWrapper(Builder builder, int type) {
- mBuilder = builder;
- mType = type;
- }
-
- public int getType() {
- return mType;
- }
-
- public void setType(int mType) {
- this.mType = mType;
- }
-
- public Builder getBuilder() {
- return mBuilder;
- }
-
- public void setBuilder(Builder mBuilder) {
- this.mBuilder = mBuilder;
- }
-}
diff --git a/src/com/android/contacts/model/CPOWrapper.java b/src/com/android/contacts/model/CPOWrapper.java
deleted file mode 100644
index 12e00ddc00..0000000000
--- a/src/com/android/contacts/model/CPOWrapper.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.model;
-
-import android.content.ContentProviderOperation;
-
-/**
- * This class is created for the purpose of compatibility and make the type of
- * ContentProviderOperation available on pre-M SDKs.
- */
-public class CPOWrapper {
- private ContentProviderOperation mOperation;
- private int mType;
-
- public CPOWrapper(ContentProviderOperation builder, int type) {
- mOperation = builder;
- mType = type;
- }
-
- public int getType() {
- return mType;
- }
-
- public void setType(int type) {
- this.mType = type;
- }
-
- public ContentProviderOperation getOperation() {
- return mOperation;
- }
-
- public void setOperation(ContentProviderOperation operation) {
- this.mOperation = operation;
- }
-}
diff --git a/src/com/android/contacts/model/ContactLoader.java b/src/com/android/contacts/model/ContactLoader.java
index 9e690e3388..5be662358d 100644
--- a/src/com/android/contacts/model/ContactLoader.java
+++ b/src/com/android/contacts/model/ContactLoader.java
@@ -24,7 +24,6 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ResolveInfo;
import android.content.res.AssetFileDescriptor;
import android.content.res.Resources;
import android.database.Cursor;
@@ -38,9 +37,9 @@
import android.provider.ContactsContract.RawContacts;
import android.text.TextUtils;
import android.util.Log;
+
import com.android.contacts.GeoUtil;
import com.android.contacts.GroupMetaDataLoader;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.group.GroupMetaData;
import com.android.contacts.model.account.AccountType;
import com.android.contacts.model.account.GoogleAccountType;
@@ -53,8 +52,12 @@
import com.android.contacts.util.UriUtils;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -65,9 +68,6 @@
import java.util.List;
import java.util.Objects;
import java.util.Set;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
/**
* Loads a single Contact and all it constituent RawContacts.
@@ -114,7 +114,7 @@ public ContactLoader(Context context, Uri lookupUri, boolean loadGroupMetaData,
* social stream items).
*/
private static class ContactQuery {
- static final String[] COLUMNS_INTERNAL = new String[] {
+ static final String[] COLUMNS = new String[] {
Contacts.NAME_RAW_CONTACT_ID,
Contacts.DISPLAY_NAME_SOURCE,
Contacts.LOOKUP_KEY,
@@ -182,17 +182,9 @@ private static class ContactQuery {
Contacts.SEND_TO_VOICEMAIL,
Contacts.CUSTOM_RINGTONE,
Contacts.IS_USER_PROFILE,
- };
-
- static final String[] COLUMNS;
- static {
- List projectionList = Lists.newArrayList(COLUMNS_INTERNAL);
- if (CompatUtils.isMarshmallowCompatible()) {
- projectionList.add(Data.CARRIER_PRESENCE);
- }
- COLUMNS = projectionList.toArray(new String[projectionList.size()]);
- }
+ Data.CARRIER_PRESENCE,
+ };
public static final int NAME_RAW_CONTACT_ID = 0;
public static final int DISPLAY_NAME_SOURCE = 1;
@@ -671,9 +663,7 @@ private ContentValues loadDataValues(Cursor cursor) {
cursorColumnToContentValues(cursor, cv, ContactQuery.MIMETYPE);
cursorColumnToContentValues(cursor, cv, ContactQuery.GROUP_SOURCE_ID);
cursorColumnToContentValues(cursor, cv, ContactQuery.CHAT_CAPABILITY);
- if (CompatUtils.isMarshmallowCompatible()) {
- cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE);
- }
+ cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE);
return cv;
}
diff --git a/src/com/android/contacts/model/RawContactDelta.java b/src/com/android/contacts/model/RawContactDelta.java
index 6ee31ba03d..a584caf14e 100644
--- a/src/com/android/contacts/model/RawContactDelta.java
+++ b/src/com/android/contacts/model/RawContactDelta.java
@@ -29,7 +29,6 @@
import android.provider.ContactsContract.RawContacts;
import android.util.Log;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.model.account.AccountType;
import com.android.contacts.model.account.AccountWithDataSet;
@@ -398,16 +397,6 @@ private void possibleAdd(ArrayList diff,
}
}
- /**
- * For compatibility purpose, this method is copied from {@link #possibleAdd} and takes
- * BuilderWrapper and an ArrayList of CPOWrapper as parameters.
- */
- private void possibleAddWrapper(ArrayList diff, BuilderWrapper bw) {
- if (bw != null && bw.getBuilder() != null) {
- diff.add(new CPOWrapper(bw.getBuilder().build(), bw.getType()));
- }
- }
-
/**
* Build a list of {@link ContentProviderOperation} that will assert any
* "before" state hasn't changed. This is maintained separately so that all
@@ -420,17 +409,6 @@ public void buildAssert(ArrayList buildInto) {
}
}
- /**
- * For compatibility purpose, this method is copied from {@link #buildAssert} and takes an
- * ArrayList of CPOWrapper as parameter.
- */
- public void buildAssertWrapper(ArrayList buildInto) {
- final Builder builder = buildAssertHelper();
- if (builder != null) {
- buildInto.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_ASSERT));
- }
- }
-
private Builder buildAssertHelper() {
final boolean isContactInsert = mValues.isInsert();
ContentProviderOperation.Builder builder = null;
@@ -522,80 +500,6 @@ public void buildDiff(ArrayList buildInto) {
}
}
- /**
- * For compatibility purpose, this method is copied from {@link #buildDiff} and takes an
- * ArrayList of CPOWrapper as parameter.
- */
- public void buildDiffWrapper(ArrayList buildInto) {
- final int firstIndex = buildInto.size();
-
- final boolean isContactInsert = mValues.isInsert();
- final boolean isContactDelete = mValues.isDelete();
- final boolean isContactUpdate = !isContactInsert && !isContactDelete;
-
- final Long beforeId = mValues.getId();
-
- if (isContactInsert) {
- // TODO: for now simply disabling aggregation when a new contact is
- // created on the phone. In the future, will show aggregation suggestions
- // after saving the contact.
- mValues.put(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_SUSPENDED);
- }
-
- // Build possible operation at Contact level
- BuilderWrapper bw = mValues.buildDiffWrapper(mContactsQueryUri);
- possibleAddWrapper(buildInto, bw);
-
- // Build operations for all children
- for (ArrayList mimeEntries : mEntries.values()) {
- for (ValuesDelta child : mimeEntries) {
- // Ignore children if parent was deleted
- if (isContactDelete) continue;
-
- // Use the profile data URI if the contact is the profile.
- if (mContactsQueryUri.equals(Profile.CONTENT_RAW_CONTACTS_URI)) {
- bw = child.buildDiffWrapper(Uri.withAppendedPath(Profile.CONTENT_URI,
- RawContacts.Data.CONTENT_DIRECTORY));
- } else {
- bw = child.buildDiffWrapper(Data.CONTENT_URI);
- }
-
- if (child.isInsert()) {
- if (isContactInsert) {
- // Parent is brand new insert, so back-reference _id
- bw.getBuilder().withValueBackReference(Data.RAW_CONTACT_ID, firstIndex);
- } else {
- // Inserting under existing, so fill with known _id
- bw.getBuilder().withValue(Data.RAW_CONTACT_ID, beforeId);
- }
- } else if (isContactInsert && bw != null && bw.getBuilder() != null) {
- // Child must be insert when Contact insert
- throw new IllegalArgumentException("When parent insert, child must be also");
- }
- possibleAddWrapper(buildInto, bw);
- }
- }
-
- final boolean addedOperations = buildInto.size() > firstIndex;
- if (addedOperations && isContactUpdate) {
- // Suspend aggregation while persisting updates
- Builder builder =
- buildSetAggregationMode(beforeId, RawContacts.AGGREGATION_MODE_SUSPENDED);
- buildInto.add(firstIndex, new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
-
- // Restore aggregation mode as last operation
- builder = buildSetAggregationMode(beforeId, RawContacts.AGGREGATION_MODE_DEFAULT);
- buildInto.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
- } else if (isContactInsert) {
- // Restore aggregation mode as last operation
- Builder builder = ContentProviderOperation.newUpdate(mContactsQueryUri);
- builder.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DEFAULT);
- builder.withSelection(RawContacts._ID + "=?", new String[1]);
- builder.withSelectionBackReference(0, firstIndex);
- buildInto.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
- }
- }
-
/**
* Build a {@link ContentProviderOperation} that changes
* {@link RawContacts#AGGREGATION_MODE} to the given value.
diff --git a/src/com/android/contacts/model/RawContactDeltaList.java b/src/com/android/contacts/model/RawContactDeltaList.java
index 2fe475a9eb..e6c30763b2 100644
--- a/src/com/android/contacts/model/RawContactDeltaList.java
+++ b/src/com/android/contacts/model/RawContactDeltaList.java
@@ -30,8 +30,6 @@
import android.provider.ContactsContract.RawContacts;
import android.util.Log;
-import com.android.contacts.compat.CompatUtils;
-
import com.google.common.collect.Lists;
import java.util.ArrayList;
@@ -120,37 +118,37 @@ public static RawContactDeltaList mergeAfter(RawContactDeltaList local,
}
/**
- * Build a list of {@link CPOWrapper} that will transform all
+ * Build a list of {@link ContentProviderOperation} that will transform all
* the "before" {@link Entity} states into the modified state which all
* {@link RawContactDelta} objects represent. This method specifically creates
* any {@link AggregationExceptions} rules needed to groups edits together.
*/
- public ArrayList buildDiffWrapper() {
+ public ArrayList buildDiff() {
if (VERBOSE_LOGGING) {
- Log.v(TAG, "buildDiffWrapper: list=" + toString());
+ Log.v(TAG, "buildDiff: list=" + toString());
}
- final ArrayList diffWrapper = Lists.newArrayList();
+ final ArrayList diff = Lists.newArrayList();
final long rawContactId = this.findRawContactId();
int firstInsertRow = -1;
// First pass enforces versions remain consistent
for (RawContactDelta delta : this) {
- delta.buildAssertWrapper(diffWrapper);
+ delta.buildAssert(diff);
}
- final int assertMark = diffWrapper.size();
+ final int assertMark = diff.size();
int backRefs[] = new int[size()];
int rawContactIndex = 0;
// Second pass builds actual operations
for (RawContactDelta delta : this) {
- final int firstBatch = diffWrapper.size();
+ final int firstBatch = diff.size();
final boolean isInsert = delta.isContactInsert();
backRefs[rawContactIndex++] = isInsert ? firstBatch : -1;
- delta.buildDiffWrapper(diffWrapper);
+ delta.buildDiff(diff);
// If the user chose to join with some other existing raw contact(s) at save time,
// add aggregation exceptions for all those raw contacts.
@@ -164,7 +162,7 @@ public ArrayList buildDiffWrapper() {
builder.withValueBackReference(
AggregationExceptions.RAW_CONTACT_ID2, firstBatch);
}
- diffWrapper.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+ diff.add(builder.build());
}
}
@@ -179,7 +177,7 @@ public ArrayList buildDiffWrapper() {
final Builder builder = beginKeepTogether();
builder.withValue(AggregationExceptions.RAW_CONTACT_ID1, rawContactId);
builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID2, firstBatch);
- diffWrapper.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+ diff.add(builder.build());
} else if (firstInsertRow == -1) {
// First insert case, so record row
@@ -191,22 +189,22 @@ public ArrayList buildDiffWrapper() {
builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID1,
firstInsertRow);
builder.withValueBackReference(AggregationExceptions.RAW_CONTACT_ID2, firstBatch);
- diffWrapper.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+ diff.add(builder.build());
}
}
if (mSplitRawContacts) {
- buildSplitContactDiffWrapper(diffWrapper, backRefs);
+ buildSplitContactDiff(diff, backRefs);
}
// No real changes if only left with asserts
- if (diffWrapper.size() == assertMark) {
- diffWrapper.clear();
+ if (diff.size() == assertMark) {
+ diff.clear();
}
if (VERBOSE_LOGGING) {
- Log.v(TAG, "buildDiff: ops=" + diffToStringWrapper(diffWrapper));
+ Log.v(TAG, "buildDiff: ops=" + diffToString(diff));
}
- return diffWrapper;
+ return diff;
}
private static String diffToString(ArrayList ops) {
@@ -220,17 +218,6 @@ private static String diffToString(ArrayList ops) {
return sb.toString();
}
- /**
- * For compatibility purpose.
- */
- private static String diffToStringWrapper(ArrayList cpoWrappers) {
- ArrayList ops = Lists.newArrayList();
- for (CPOWrapper cpoWrapper : cpoWrappers) {
- ops.add(cpoWrapper.getOperation());
- }
- return diffToString(ops);
- }
-
/**
* Start building a {@link ContentProviderOperation} that will keep two
* {@link RawContacts} together.
@@ -246,7 +233,8 @@ protected Builder beginKeepTogether() {
* Builds {@link AggregationExceptions} to split all constituent raw contacts into
* separate contacts.
*/
- private void buildSplitContactDiffWrapper(final ArrayList diff, int[] backRefs) {
+ private void buildSplitContactDiff(
+ final ArrayList diff, int[] backRefs) {
final int count = size();
for (int i = 0; i < count; i++) {
for (int j = 0; j < count; j++) {
@@ -255,7 +243,7 @@ private void buildSplitContactDiffWrapper(final ArrayList diff, int[
}
final Builder builder = buildSplitContactDiffHelper(i, j, backRefs);
if (builder != null) {
- diff.add(new CPOWrapper(builder.build(), CompatUtils.TYPE_UPDATE));
+ diff.add(builder.build());
}
}
}
diff --git a/src/com/android/contacts/model/SimCard.java b/src/com/android/contacts/model/SimCard.java
index 969d96d100..3a9e917131 100644
--- a/src/com/android/contacts/model/SimCard.java
+++ b/src/com/android/contacts/model/SimCard.java
@@ -15,8 +15,6 @@
*/
package com.android.contacts.model;
-import android.os.Build;
-import androidx.annotation.RequiresApi;
import android.telephony.PhoneNumberUtils;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -232,7 +230,6 @@ public String toString() {
'}';
}
- @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
public static SimCard create(SubscriptionInfo info) {
return new SimCard(info.getIccId(), info.getSubscriptionId(),
info.getCarrierName(), info.getDisplayName(), info.getNumber(),
diff --git a/src/com/android/contacts/model/ValuesDelta.java b/src/com/android/contacts/model/ValuesDelta.java
index 120c205c90..ee5985720a 100644
--- a/src/com/android/contacts/model/ValuesDelta.java
+++ b/src/com/android/contacts/model/ValuesDelta.java
@@ -24,8 +24,6 @@
import android.provider.BaseColumns;
import android.provider.ContactsContract;
-import com.android.contacts.compat.CompatUtils;
-
import com.google.common.collect.Sets;
import java.util.HashSet;
@@ -413,26 +411,6 @@ public boolean subsetEquals(ValuesDelta other) {
* delete as needed.
*/
public ContentProviderOperation.Builder buildDiff(Uri targetUri) {
- return buildDiffHelper(targetUri);
- }
-
- /**
- * For compatibility purpose.
- */
- public BuilderWrapper buildDiffWrapper(Uri targetUri) {
- final ContentProviderOperation.Builder builder = buildDiffHelper(targetUri);
- BuilderWrapper bw = null;
- if (isInsert()) {
- bw = new BuilderWrapper(builder, CompatUtils.TYPE_INSERT);
- } else if (isDelete()) {
- bw = new BuilderWrapper(builder, CompatUtils.TYPE_DELETE);
- } else if (isUpdate()) {
- bw = new BuilderWrapper(builder, CompatUtils.TYPE_UPDATE);
- }
- return bw;
- }
-
- private ContentProviderOperation.Builder buildDiffHelper(Uri targetUri) {
ContentProviderOperation.Builder builder = null;
if (isInsert()) {
// Changed values are "insert" back-referenced to Contact
diff --git a/src/com/android/contacts/model/account/AccountWithDataSet.java b/src/com/android/contacts/model/account/AccountWithDataSet.java
index 358ef9c10c..2cbb73ac54 100644
--- a/src/com/android/contacts/model/account/AccountWithDataSet.java
+++ b/src/com/android/contacts/model/account/AccountWithDataSet.java
@@ -21,7 +21,6 @@
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
-import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.provider.BaseColumns;
@@ -53,7 +52,7 @@ public class AccountWithDataSet implements Parcelable {
public final String dataSet;
private final AccountTypeWithDataSet mAccountTypeWithDataSet;
- private static final String[] ID_PROJECTION = new String[] {BaseColumns._ID};
+ private static final String[] ID_PROJECTION = new String[]{BaseColumns._ID};
private static final Uri RAW_CONTACTS_URI_LIMIT_1 = RawContacts.CONTENT_URI.buildUpon()
.appendQueryParameter(ContactsContract.LIMIT_PARAM_KEY, "1").build();
@@ -88,12 +87,10 @@ public static AccountWithDataSet getNullAccount() {
}
public static AccountWithDataSet getLocalAccount(Context context) {
- return android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.R
- ? getNullAccount()
- : new AccountWithDataSet(
- RawContacts.getLocalAccountName(context),
- RawContacts.getLocalAccountType(context),
- null);
+ return new AccountWithDataSet(
+ RawContacts.getLocalAccountName(context),
+ RawContacts.getLocalAccountType(context),
+ null);
}
public Account getAccountOrNull() {
@@ -142,10 +139,10 @@ public boolean hasData(Context context) {
RawContacts.ACCOUNT_TYPE + " = ?" + " AND " + RawContacts.ACCOUNT_NAME + " = ?";
if (TextUtils.isEmpty(dataSet)) {
selection = BASE_SELECTION + " AND " + RawContacts.DATA_SET + " IS NULL";
- args = new String[] {type, name};
+ args = new String[]{type, name};
} else {
selection = BASE_SELECTION + " AND " + RawContacts.DATA_SET + " = ?";
- args = new String[] {type, name, dataSet};
+ args = new String[]{type, name, dataSet};
}
}
selection += " AND " + RawContacts.DELETED + "=0";
diff --git a/src/com/android/contacts/model/dataitem/PhoneDataItem.java b/src/com/android/contacts/model/dataitem/PhoneDataItem.java
index 6355157546..7fc6c080d1 100644
--- a/src/com/android/contacts/model/dataitem/PhoneDataItem.java
+++ b/src/com/android/contacts/model/dataitem/PhoneDataItem.java
@@ -20,8 +20,7 @@
import android.content.Context;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
-
-import com.android.contacts.compat.PhoneNumberUtilsCompat;
+import android.telephony.PhoneNumberUtils;
/**
* Represents a phone data item, wrapping the columns in
@@ -78,7 +77,7 @@ public void setReachableDataItem(DataItem reachableDataItem) {
public void computeFormattedPhoneNumber(String defaultCountryIso) {
final String phoneNumber = getNumber();
if (phoneNumber != null) {
- final String formattedPhoneNumber = PhoneNumberUtilsCompat.formatNumber(phoneNumber,
+ final String formattedPhoneNumber = PhoneNumberUtils.formatNumber(phoneNumber,
getNormalizedNumber(), defaultCountryIso);
getContentValues().put(KEY_FORMATTED_PHONE_NUMBER, formattedPhoneNumber);
}
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 312a5cf858..af77fa6e32 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -49,7 +49,6 @@
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.AsyncTask;
-import android.os.Build;
import android.os.Bundle;
import android.os.Trace;
import android.provider.CalendarContract;
@@ -95,7 +94,6 @@
import android.widget.Toolbar;
import androidx.core.content.res.ResourcesCompat;
-import androidx.core.os.BuildCompat;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import androidx.palette.graphics.Palette;
@@ -109,14 +107,9 @@
import com.android.contacts.MoreContactUtils;
import com.android.contacts.MoreContactUtils.EdgeToEdgeInsetHandler;
import com.android.contacts.R;
-import com.android.contacts.ShortcutIntentBuilder;
-import com.android.contacts.ShortcutIntentBuilder.OnShortcutIntentCreatedListener;
import com.android.contacts.activities.ContactEditorActivity;
import com.android.contacts.activities.ContactSelectionActivity;
import com.android.contacts.activities.RequestPermissionsActivity;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.EventCompat;
-import com.android.contacts.compat.MultiWindowCompat;
import com.android.contacts.detail.ContactDisplayUtils;
import com.android.contacts.dialog.CallSubjectDialog;
import com.android.contacts.editor.ContactEditorFragment;
@@ -171,7 +164,6 @@
import com.android.contacts.widget.MultiShrinkScroller.MultiShrinkScrollerListener;
import com.android.contacts.widget.QuickContactImageView;
import com.android.contactsbind.HelpUtils;
-
import com.google.common.collect.Lists;
import java.util.ArrayList;
@@ -230,12 +222,6 @@ public class QuickContactActivity extends ContactsActivity {
private static final int CARD_ENTRY_ID_EDIT_CONTACT = -2;
private static final int MIN_NUM_CONTACT_ENTRIES_SHOWN = 3;
- private static final int CURRENT_API_VERSION = android.os.Build.VERSION.SDK_INT;
-
- /** This is the Intent action to install a shortcut in the launcher. */
- private static final String ACTION_INSTALL_SHORTCUT =
- "com.android.launcher.action.INSTALL_SHORTCUT";
-
public static final String ACTION_SPLIT_COMPLETED = "splitCompleted";
// Phone specific option menu items
@@ -689,14 +675,12 @@ protected void onCreate(Bundle savedInstanceState) {
Logger.logScreenView(this, ScreenType.QUICK_CONTACT, previousScreenType);
mReferrer = getCallingPackage();
- if (mReferrer == null && CompatUtils.isLollipopMr1Compatible() && getReferrer() != null) {
+ if (mReferrer == null && getReferrer() != null) {
mReferrer = getReferrer().getAuthority();
}
mContactType = ContactType.UNKNOWN_TYPE;
- if (CompatUtils.isLollipopCompatible()) {
- getWindow().setStatusBarColor(Color.TRANSPARENT);
- }
+ getWindow().setStatusBarColor(Color.TRANSPARENT);
processIntent(getIntent());
@@ -847,7 +831,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
private void onRingtonePicked(Uri pickedUri) {
- mCustomRingtone = EditorUiUtils.getRingtoneStringFromUri(pickedUri, CURRENT_API_VERSION);
+ mCustomRingtone = EditorUiUtils.getRingtoneStringFromUri(pickedUri);
Intent intent = ContactSaveService.createSetRingtone(this, mLookupUri, mCustomRingtone);
this.startService(intent);
}
@@ -944,7 +928,7 @@ private void runEntranceAnimation() {
}
private boolean isMultiWindowOnPhone() {
- return MultiWindowCompat.isInMultiWindowMode(this) && PhoneCapabilityTester.isPhone(this);
+ return isInMultiWindowMode() && PhoneCapabilityTester.isPhone(this);
}
/** Assign this string to the view if it is not empty. */
@@ -1652,9 +1636,7 @@ private static Entry dataItemToEntry(
}
header = res.getString(R.string.header_event_entry);
if (event.hasKindTypeColumn(kind)) {
- subHeader =
- EventCompat.getTypeLabel(
- res, event.getKindTypeColumn(kind), event.getLabel())
+ subHeader = Event.getTypeLabel(res, event.getKindTypeColumn(kind), event.getLabel())
.toString();
}
text = DateUtils.formatDate(context, dataString);
@@ -2290,7 +2272,7 @@ private void setThemeColor(MaterialPalette palette) {
}
private void updateStatusBarColor() {
- if (mScroller == null || !CompatUtils.isLollipopCompatible()) {
+ if (mScroller == null) {
return;
}
final int desiredStatusBarColor;
@@ -2520,56 +2502,18 @@ private void shareContact() {
/** Creates a launcher shortcut with the current contact. */
private void createLauncherShortcutWithContact() {
- if (BuildCompat.isAtLeastO()) {
- final ShortcutManager shortcutManager =
- (ShortcutManager) getSystemService(SHORTCUT_SERVICE);
- final DynamicShortcuts shortcuts = new DynamicShortcuts(QuickContactActivity.this);
- String displayName = mContactData.getDisplayName();
- if (displayName == null) {
- displayName = getString(R.string.missing_name);
- }
- final ShortcutInfo shortcutInfo =
- shortcuts.getQuickContactShortcutInfo(
- mContactData.getId(), mContactData.getLookupKey(), displayName);
- if (shortcutInfo != null) {
- shortcutManager.requestPinShortcut(shortcutInfo, null);
- }
- } else {
- final ShortcutIntentBuilder builder =
- new ShortcutIntentBuilder(
- this,
- new OnShortcutIntentCreatedListener() {
-
- @Override
- public void onShortcutIntentCreated(
- Uri uri, Intent shortcutIntent) {
- // Broadcast the shortcutIntent to the launcher to create a
- // shortcut to this contact
- shortcutIntent.setAction(ACTION_INSTALL_SHORTCUT);
- QuickContactActivity.this.sendBroadcast(shortcutIntent);
- // Send a toast to give feedback to the user that a shortcut to
- // this
- // contact was added to the launcher.
- final String displayName =
- shortcutIntent.getStringExtra(
- Intent.EXTRA_SHORTCUT_NAME);
- final String toastMessage =
- TextUtils.isEmpty(displayName)
- ? getString(
- R.string
- .createContactShortcutSuccessful_NoName)
- : getString(
- R.string
- .createContactShortcutSuccessful,
- displayName);
- Toast.makeText(
- QuickContactActivity.this,
- toastMessage,
- Toast.LENGTH_SHORT)
- .show();
- }
- });
- builder.createContactShortcutIntent(mContactData.getLookupUri());
+ final ShortcutManager shortcutManager =
+ (ShortcutManager) getSystemService(SHORTCUT_SERVICE);
+ final DynamicShortcuts shortcuts = new DynamicShortcuts(QuickContactActivity.this);
+ String displayName = mContactData.getDisplayName();
+ if (displayName == null) {
+ displayName = getString(R.string.missing_name);
+ }
+ final ShortcutInfo shortcutInfo =
+ shortcuts.getQuickContactShortcutInfo(
+ mContactData.getId(), mContactData.getLookupKey(), displayName);
+ if (shortcutInfo != null) {
+ shortcutManager.requestPinShortcut(shortcutInfo, null);
}
}
@@ -2580,17 +2524,9 @@ private boolean isShortcutCreatable() {
return false;
}
- if (BuildCompat.isAtLeastO()) {
- final ShortcutManager manager =
- (ShortcutManager) getSystemService(Context.SHORTCUT_SERVICE);
- return manager.isRequestPinShortcutSupported();
- }
-
- final Intent createShortcutIntent = new Intent();
- createShortcutIntent.setAction(ACTION_INSTALL_SHORTCUT);
- final List receivers =
- getPackageManager().queryBroadcastReceivers(createShortcutIntent, 0);
- return receivers != null && receivers.size() > 0;
+ final ShortcutManager manager =
+ (ShortcutManager) getSystemService(Context.SHORTCUT_SERVICE);
+ return manager.isRequestPinShortcutSupported();
}
private void setStateForPhoneMenuItems(Contact contact) {
@@ -2661,10 +2597,8 @@ && isContactEditable()
ringToneMenuItem.setVisible(!mContactData.isUserProfile() && mArePhoneOptionsChangable);
final MenuItem sendToVoiceMailMenuItem = menu.findItem(R.id.menu_send_to_voicemail);
- sendToVoiceMailMenuItem.setVisible(
- Build.VERSION.SDK_INT < Build.VERSION_CODES.M
- && !mContactData.isUserProfile()
- && mArePhoneOptionsChangable);
+ sendToVoiceMailMenuItem.setVisible(!mContactData.isUserProfile()
+ && mArePhoneOptionsChangable);
sendToVoiceMailMenuItem.setTitle(
mSendToVoicemailState
? R.string.menu_unredirect_calls_to_vm
@@ -2881,8 +2815,7 @@ private void doPickRingtone() {
// Allow the user to pick a silent ringtone
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
- final Uri ringtoneUri =
- EditorUiUtils.getRingtoneUriFromString(mCustomRingtone, CURRENT_API_VERSION);
+ final Uri ringtoneUri = EditorUiUtils.getRingtoneUriFromString(mCustomRingtone);
// Put checkmark next to the current ringtone for this contact
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
diff --git a/src/com/android/contacts/ui/settings/screen/SettingsEffectHandler.kt b/src/com/android/contacts/ui/settings/screen/SettingsEffectHandler.kt
index 7fecd3695f..3323a105b2 100644
--- a/src/com/android/contacts/ui/settings/screen/SettingsEffectHandler.kt
+++ b/src/com/android/contacts/ui/settings/screen/SettingsEffectHandler.kt
@@ -14,7 +14,6 @@ import android.telecom.TelecomManager
import android.util.Log
import androidx.activity.result.ActivityResultLauncher
import com.android.contacts.activities.LicenseActivity
-import com.android.contacts.compat.TelecomManagerUtil
import com.android.contacts.interactions.ExportDialogFragment
import com.android.contacts.interactions.ImportDialogFragment
import com.android.contacts.list.AccountFilterActivity
@@ -96,7 +95,7 @@ internal class SettingsEffectHandlerImpl(
}
private fun openBlockedNumbers() {
- val intent = TelecomManagerUtil.createManageBlockedNumbersIntent(telecomManager) ?: return
+ val intent = telecomManager.createManageBlockedNumbersIntent() ?: return
startActivity(intent)
}
diff --git a/src/com/android/contacts/util/BitmapUtil.java b/src/com/android/contacts/util/BitmapUtil.java
index 0bc4aef1a4..c33d49bb47 100644
--- a/src/com/android/contacts/util/BitmapUtil.java
+++ b/src/com/android/contacts/util/BitmapUtil.java
@@ -19,11 +19,6 @@
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.PorterDuff.Mode;
-import android.graphics.PorterDuffXfermode;
-import android.graphics.Rect;
-import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
@@ -113,55 +108,6 @@ public static Drawable getRotatedDrawable(
return new BitmapDrawable(resources,rotated);
}
- /**
- * Given an input bitmap, scales it to the given width/height and makes it round.
- *
- * @param input {@link Bitmap} to scale and crop
- * @param targetWidth desired output width
- * @param targetHeight desired output height
- * @return output bitmap scaled to the target width/height and cropped to an oval. The
- * cropping algorithm will try to fit as much of the input into the output as possible,
- * while preserving the target width/height ratio.
- */
- public static Bitmap getRoundedBitmap(Bitmap input, int targetWidth, int targetHeight) {
- if (input == null) {
- return null;
- }
- final Bitmap.Config inputConfig = input.getConfig();
- final Bitmap result = Bitmap.createBitmap(targetWidth, targetHeight,
- inputConfig != null ? inputConfig : Bitmap.Config.ARGB_8888);
- final Canvas canvas = new Canvas(result);
- final Paint paint = new Paint();
- canvas.drawARGB(0, 0, 0, 0);
- paint.setAntiAlias(true);
- final RectF dst = new RectF(0, 0, targetWidth, targetHeight);
- canvas.drawOval(dst, paint);
-
- // Specifies that only pixels present in the destination (i.e. the drawn oval) should
- // be overwritten with pixels from the input bitmap.
- paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
-
- final int inputWidth = input.getWidth();
- final int inputHeight = input.getHeight();
-
- // Choose the largest scale factor that will fit inside the dimensions of the
- // input bitmap.
- final float scaleBy = Math.min((float) inputWidth / targetWidth,
- (float) inputHeight / targetHeight);
-
- final int xCropAmountHalved = (int) (scaleBy * targetWidth / 2);
- final int yCropAmountHalved = (int) (scaleBy * targetHeight / 2);
-
- final Rect src = new Rect(
- inputWidth / 2 - xCropAmountHalved,
- inputHeight / 2 - yCropAmountHalved,
- inputWidth / 2 + xCropAmountHalved,
- inputHeight / 2 + yCropAmountHalved);
-
- canvas.drawBitmap(input, src, dst, paint);
- return result;
- }
-
/**
* Converts a drawable to a bitmap.
*/
diff --git a/src/com/android/contacts/util/ContactDisplayUtils.java b/src/com/android/contacts/util/ContactDisplayUtils.java
index ff2d202d2b..9c590506a5 100644
--- a/src/com/android/contacts/util/ContactDisplayUtils.java
+++ b/src/com/android/contacts/util/ContactDisplayUtils.java
@@ -19,14 +19,16 @@
import static android.provider.ContactsContract.CommonDataKinds.Phone;
import android.content.res.Resources;
+import android.telephony.PhoneNumberUtils;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.TtsSpan;
import android.util.Patterns;
+
import androidx.annotation.Nullable;
+
import com.android.contacts.R;
-import com.android.contacts.compat.PhoneNumberUtilsCompat;
import com.android.contacts.preference.ContactsPreferences;
/**
@@ -177,7 +179,7 @@ public static Spannable getTelephoneTtsSpannable(String message, String phoneNum
int start = phoneNumber == null ? -1 : message.indexOf(phoneNumber);
while (start >= 0) {
final int end = start + phoneNumber.length();
- final TtsSpan ttsSpan = PhoneNumberUtilsCompat.createTtsSpan(phoneNumber);
+ final TtsSpan ttsSpan = PhoneNumberUtils.createTtsSpan(phoneNumber);
spannable.setSpan(ttsSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); // this is consistenly done in a misleading way..
start = message.indexOf(phoneNumber, end);
}
diff --git a/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java b/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java
index 0d01156212..1734462131 100644
--- a/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java
+++ b/src/com/android/contacts/util/ContactsNotificationChannelsUtil.java
@@ -16,25 +16,18 @@
package com.android.contacts.util;
-import android.annotation.TargetApi;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
-import android.os.Build;
-import androidx.core.os.BuildCompat;
import com.android.contacts.R;
-@TargetApi(Build.VERSION_CODES.O)
public class ContactsNotificationChannelsUtil {
public static String DEFAULT_CHANNEL = "DEFAULT_CHANNEL";
private ContactsNotificationChannelsUtil() {}
public static void createDefaultChannel(Context context) {
- if (!BuildCompat.isAtLeastO()) {
- return;
- }
final NotificationManager nm = context.getSystemService(NotificationManager.class);
final NotificationChannel channel = new NotificationChannel(DEFAULT_CHANNEL,
context.getString(R.string.contacts_default_notification_channel),
diff --git a/src/com/android/contacts/util/PhoneNumberFormatter.java b/src/com/android/contacts/util/PhoneNumberFormatter.java
index 58d6800adb..cbcdfa4d4b 100644
--- a/src/com/android/contacts/util/PhoneNumberFormatter.java
+++ b/src/com/android/contacts/util/PhoneNumberFormatter.java
@@ -22,7 +22,6 @@
import android.widget.TextView;
import com.android.contacts.GeoUtil;
-import com.android.contacts.compat.PhoneNumberFormattingTextWatcherCompat;
public final class PhoneNumberFormatter {
private PhoneNumberFormatter() {}
@@ -45,7 +44,7 @@ public TextWatcherLoadAsyncTask(
@Override
protected PhoneNumberFormattingTextWatcher doInBackground(Void... params) {
- return PhoneNumberFormattingTextWatcherCompat.newInstance(mCountryCode);
+ return new PhoneNumberFormattingTextWatcher(mCountryCode);
}
@Override
diff --git a/src/com/android/contacts/util/ViewUtil.java b/src/com/android/contacts/util/ViewUtil.java
index ccb8a82ec4..4e9ced5ac1 100644
--- a/src/com/android/contacts/util/ViewUtil.java
+++ b/src/com/android/contacts/util/ViewUtil.java
@@ -24,7 +24,6 @@
import android.widget.ListView;
import com.android.contacts.R;
-import com.android.contacts.compat.CompatUtils;
/**
* Provides static functions to work with views
@@ -57,33 +56,19 @@ public static boolean isViewLayoutRtl(View view) {
return view.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
}
- private static final ViewOutlineProvider OVAL_OUTLINE_PROVIDER;
- static {
- if (CompatUtils.isLollipopCompatible()) {
- OVAL_OUTLINE_PROVIDER = new ViewOutlineProvider() {
- @Override
- public void getOutline(View view, Outline outline) {
- outline.setOval(0, 0, view.getWidth(), view.getHeight());
- }
- };
- } else {
- OVAL_OUTLINE_PROVIDER = null;
+ private static final ViewOutlineProvider OVAL_OUTLINE_PROVIDER = new ViewOutlineProvider() {
+ @Override
+ public void getOutline(View view, Outline outline) {
+ outline.setOval(0, 0, view.getWidth(), view.getHeight());
}
- }
+ };
- private static final ViewOutlineProvider RECT_OUTLINE_PROVIDER;
- static {
- if (CompatUtils.isLollipopCompatible()) {
- RECT_OUTLINE_PROVIDER = new ViewOutlineProvider() {
- @Override
- public void getOutline(View view, Outline outline) {
- outline.setRect(0, 0, view.getWidth(), view.getHeight());
- }
- };
- } else {
- RECT_OUTLINE_PROVIDER = null;
+ private static final ViewOutlineProvider RECT_OUTLINE_PROVIDER = new ViewOutlineProvider() {
+ @Override
+ public void getOutline(View view, Outline outline) {
+ outline.setRect(0, 0, view.getWidth(), view.getHeight());
}
- }
+ };
/**
* Adds a rectangular outline to a view. This can be useful when you want to add a shadow
@@ -92,9 +77,7 @@ public void getOutline(View view, Outline outline) {
* @param res The resources file.
*/
public static void addRectangularOutlineProvider(View view, Resources res) {
- if (CompatUtils.isLollipopCompatible()) {
- view.setOutlineProvider(RECT_OUTLINE_PROVIDER);
- }
+ view.setOutlineProvider(RECT_OUTLINE_PROVIDER);
}
/**
@@ -103,11 +86,9 @@ public static void addRectangularOutlineProvider(View view, Resources res) {
* @param res The resources file.
*/
public static void setupFloatingActionButton(View view, Resources res) {
- if (CompatUtils.isLollipopCompatible()) {
- view.setOutlineProvider(OVAL_OUTLINE_PROVIDER);
- view.setTranslationZ(
- res.getDimensionPixelSize(R.dimen.floating_action_button_translation_z));
- }
+ view.setOutlineProvider(OVAL_OUTLINE_PROVIDER);
+ view.setTranslationZ(
+ res.getDimensionPixelSize(R.dimen.floating_action_button_translation_z));
}
/**
diff --git a/src/com/android/contacts/widget/MultiShrinkScroller.java b/src/com/android/contacts/widget/MultiShrinkScroller.java
index 3a9ba3fc83..9aac62b900 100644
--- a/src/com/android/contacts/widget/MultiShrinkScroller.java
+++ b/src/com/android/contacts/widget/MultiShrinkScroller.java
@@ -15,8 +15,6 @@
import android.graphics.drawable.GradientDrawable;
import android.hardware.display.DisplayManager;
import android.os.Trace;
-import androidx.core.view.ViewCompat;
-import androidx.core.view.animation.PathInterpolatorCompat;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Display;
@@ -36,9 +34,10 @@
import android.widget.TextView;
import android.widget.Toolbar;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.animation.PathInterpolatorCompat;
+
import com.android.contacts.R;
-import com.android.contacts.compat.CompatUtils;
-import com.android.contacts.compat.EdgeEffectCompat;
import com.android.contacts.quickcontact.ExpandingEntryCardView;
import com.android.contacts.test.NeededForReflection;
import com.android.contacts.util.SchedulingUtils;
@@ -535,7 +534,8 @@ public boolean onTouchEvent(MotionEvent event) {
if (delta > distanceFromMaxScrolling) {
// The ScrollView is being pulled upwards while there is no more
// content offscreen, and the view port is already fully expanded.
- EdgeEffectCompat.onPull(mEdgeGlowBottom, delta / getHeight(),
+ mEdgeGlowBottom.onPull(
+ delta / getHeight(),
1 - event.getX() / getWidth());
}
@@ -563,12 +563,10 @@ public boolean onTouchEvent(MotionEvent event) {
public void setHeaderTintColor(int color) {
mHeaderTintColor = color;
updatePhotoTintAndDropShadow();
- if (CompatUtils.isLollipopCompatible()) {
- // Use the same amount of alpha on the new tint color as the previous tint color.
- final int edgeEffectAlpha = Color.alpha(mEdgeGlowBottom.getColor());
- mEdgeGlowBottom.setColor((color & 0xffffff) | Color.argb(edgeEffectAlpha, 0, 0, 0));
- mEdgeGlowTop.setColor(mEdgeGlowBottom.getColor());
- }
+ // Use the same amount of alpha on the new tint color as the previous tint color.
+ final int edgeEffectAlpha = Color.alpha(mEdgeGlowBottom.getColor());
+ mEdgeGlowBottom.setColor((color & 0xffffff) | Color.argb(edgeEffectAlpha, 0, 0, 0));
+ mEdgeGlowTop.setColor(mEdgeGlowBottom.getColor());
}
/**
diff --git a/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java b/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java
index 0735c92ba8..de55995314 100644
--- a/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java
+++ b/src/com/android/contacts/widget/SelectPhoneAccountDialogFragment.java
@@ -16,7 +16,6 @@
package com.android.contacts.widget;
-import androidx.appcompat.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
@@ -27,6 +26,7 @@
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
@@ -39,9 +39,10 @@
import android.widget.ListAdapter;
import android.widget.TextView;
+import androidx.appcompat.app.AlertDialog;
+
import com.android.contacts.R;
import com.android.contacts.compat.PhoneAccountCompat;
-import com.android.contacts.compat.PhoneNumberUtilsCompat;
import java.util.ArrayList;
import java.util.List;
@@ -255,7 +256,7 @@ public View getView(int position, View convertView, ViewGroup parent) {
} else {
holder.numberTextView.setVisibility(View.VISIBLE);
holder.numberTextView.setText(
- PhoneNumberUtilsCompat.createTtsSpannable(
+ PhoneNumberUtils.createTtsSpannable(
account.getAddress().getSchemeSpecificPart()));
}
holder.imageView.setImageDrawable(PhoneAccountCompat.createIconDrawable(account,
diff --git a/tests/src/com/android/contacts/DynamicShortcutsTests.java b/tests/src/com/android/contacts/DynamicShortcutsTests.java
index b781675de5..27457edcb9 100644
--- a/tests/src/com/android/contacts/DynamicShortcutsTests.java
+++ b/tests/src/com/android/contacts/DynamicShortcutsTests.java
@@ -23,7 +23,6 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.annotation.TargetApi;
import android.app.job.JobScheduler;
import android.content.ContentProvider;
import android.content.ContentResolver;
@@ -33,7 +32,6 @@
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
-import android.os.Build;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.test.AndroidTestCase;
@@ -54,7 +52,6 @@
import java.util.Collections;
import java.util.List;
-@TargetApi(Build.VERSION_CODES.N_MR1)
@SmallTest
public class DynamicShortcutsTests extends AndroidTestCase {
diff --git a/tests/src/com/android/contacts/activities/SimImportActivityTest.java b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
index ba03fd1c62..174e0d5854 100644
--- a/tests/src/com/android/contacts/activities/SimImportActivityTest.java
+++ b/tests/src/com/android/contacts/activities/SimImportActivityTest.java
@@ -35,7 +35,6 @@
import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
import android.database.Cursor;
-import android.os.Build;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Data;
@@ -357,9 +356,7 @@ public SimContactDao apply(Context input) {
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();
- }
+ contactsProviderClient.close();
}
private ListenableFuture nextImportCompleteBroadcast() {
diff --git a/tests/src/com/android/contacts/compat/CompatUtilsTest.java b/tests/src/com/android/contacts/compat/CompatUtilsTest.java
deleted file mode 100644
index d698ae7125..0000000000
--- a/tests/src/com/android/contacts/compat/CompatUtilsTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2015 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
- */
-
-package com.android.contacts.compat;
-
-import android.test.AndroidTestCase;
-
-import androidx.test.filters.SmallTest;
-
-@SmallTest
-public class CompatUtilsTest extends AndroidTestCase {
-
- public void testIsClassAvailable_NullClassName() {
- assertFalse(CompatUtils.isClassAvailable(null));
- }
-
- public void testIsClassAvailable_EmptyClassName() {
- assertFalse(CompatUtils.isClassAvailable(""));
- }
-
- public void testIsClassAvailable_NonexistentClass() {
- assertFalse(CompatUtils.isClassAvailable("com.android.contacts.common.NonexistentClass"));
- }
-
- public void testIsClassAvailable() {
- assertTrue(CompatUtils.isClassAvailable(BaseClass.class.getName()));
- }
-
- public void testIsMethodAvailable_NullClassName() {
- assertFalse(CompatUtils.isMethodAvailable(null, "methodName"));
- }
-
- public void testIsMethodAvailable_EmptyClassName() {
- assertFalse(CompatUtils.isMethodAvailable("", "methodName"));
- }
-
- public void testIsMethodAvailable_NullMethodName() {
- assertFalse(CompatUtils.isMethodAvailable("className", null));
- }
-
- public void testIsMethodAvailable_EmptyMethodName() {
- assertFalse(CompatUtils.isMethodAvailable("className", ""));
- }
-
- public void testIsMethodAvailable_NonexistentClass() {
- assertFalse(CompatUtils.isMethodAvailable("com.android.contacts.common.NonexistentClass",
- ""));
- }
-
- public void testIsMethodAvailable_NonexistentMethod() {
- assertFalse(CompatUtils.isMethodAvailable(BaseClass.class.getName(), "derivedMethod"));
- }
-
- public void testIsMethodAvailable() {
- assertTrue(CompatUtils.isMethodAvailable(BaseClass.class.getName(), "baseMethod"));
- }
-
- public void testIsMethodAvailable_InheritedMethod() {
- assertTrue(CompatUtils.isMethodAvailable(DerivedClass.class.getName(), "baseMethod"));
- }
-
- public void testIsMethodAvailable_OverloadedMethod() {
- assertTrue(CompatUtils.isMethodAvailable(DerivedClass.class.getName(), "overloadedMethod"));
- assertTrue(CompatUtils.isMethodAvailable(DerivedClass.class.getName(), "overloadedMethod",
- Integer.TYPE));
- }
-
- public void testIsMethodAvailable_NonexistentOverload() {
- assertFalse(CompatUtils.isMethodAvailable(DerivedClass.class.getName(), "overloadedMethod",
- Boolean.TYPE));
- }
-
- public void testInvokeMethod_NullMethodName() {
- assertNull(CompatUtils.invokeMethod(new BaseClass(), null, null, null));
- }
-
- public void testInvokeMethod_EmptyMethodName() {
- assertNull(CompatUtils.invokeMethod(new BaseClass(), "", null, null));
- }
-
- public void testInvokeMethod_NullClassInstance() {
- assertNull(CompatUtils.invokeMethod(null, "", null, null));
- }
-
- public void testInvokeMethod_NonexistentMethod() {
- assertNull(CompatUtils.invokeMethod(new BaseClass(), "derivedMethod", null, null));
- }
-
- public void testInvokeMethod_MethodWithNoParameters() {
- assertEquals(1, CompatUtils.invokeMethod(new DerivedClass(), "overloadedMethod", null, null));
- }
-
- public void testInvokeMethod_MethodWithNoParameters_WithParameters() {
- assertNull(CompatUtils.invokeMethod(new DerivedClass(), "derivedMethod",
- new Class>[] {Integer.TYPE}, new Object[] {1}));
- }
-
- public void testInvokeMethod_MethodWithParameters_WithEmptyParameterList() {
- assertNull(CompatUtils.invokeMethod(new DerivedClass(), "overloadedMethod",
- new Class>[] {Integer.TYPE}, new Object[] {}));
- }
-
- public void testInvokeMethod_InvokeSimpleMethod() {
- assertEquals(2, CompatUtils.invokeMethod(new DerivedClass(), "overloadedMethod",
- new Class>[] {Integer.TYPE}, new Object[] {2}));
- }
-
- private class BaseClass {
- public void baseMethod() {}
- }
-
- private class DerivedClass extends BaseClass {
- public int derivedMethod() {
- // This method needs to return something to differentiate a successful invocation from
- // an unsuccessful one.
- return 0;
- }
-
- public int overloadedMethod() {
- return 1;
- }
-
- public int overloadedMethod(int i) {
- return i;
- }
- }
-}
diff --git a/tests/src/com/android/contacts/database/SimContactDaoTests.java b/tests/src/com/android/contacts/database/SimContactDaoTests.java
index d9bed2f2db..5cbd951ee4 100644
--- a/tests/src/com/android/contacts/database/SimContactDaoTests.java
+++ b/tests/src/com/android/contacts/database/SimContactDaoTests.java
@@ -15,13 +15,10 @@
*/
package com.android.contacts.database;
-import static android.os.Build.VERSION_CODES;
-
import static com.android.contacts.tests.ContactsMatchers.DataCursor.hasEmail;
import static com.android.contacts.tests.ContactsMatchers.DataCursor.hasName;
import static com.android.contacts.tests.ContactsMatchers.DataCursor.hasPhone;
import static com.android.contacts.tests.ContactsMatchers.isSimContactWithNameAndPhone;
-
import static org.hamcrest.Matchers.allOf;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
@@ -53,7 +50,6 @@
import androidx.test.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
-import androidx.test.filters.SdkSuppress;
import androidx.test.filters.SmallTest;
import androidx.test.filters.Suppress;
@@ -65,7 +61,6 @@
import com.android.contacts.tests.ContactsMatchers;
import com.android.contacts.tests.SimContactsTestHelper;
import com.android.contacts.tests.StringableCursor;
-
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
diff --git a/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java b/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
index 870f3b536d..8ff1a8a228 100644
--- a/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
+++ b/tests/src/com/android/contacts/editor/EditorUiUtilsTest.java
@@ -19,7 +19,6 @@
import android.content.Context;
import android.media.RingtoneManager;
import android.net.Uri;
-import android.os.Build;
import android.provider.Settings;
import android.test.AndroidTestCase;
@@ -138,40 +137,17 @@ public void testGetAccountInfo_AccountType_DeviceAccount() {
assertEquals(expected, label);
}
- public void testGetRingtongStrFromUri_lessThanOrEqualsToM() {
- final int currentVersion = Build.VERSION_CODES.M;
- assertNull(EditorUiUtils.getRingtoneStringFromUri(null, currentVersion));
- assertNull(EditorUiUtils.getRingtoneStringFromUri(Settings.System.DEFAULT_RINGTONE_URI,
- currentVersion));
- assertEquals(RINGTONE, EditorUiUtils.getRingtoneStringFromUri(Uri.parse(RINGTONE),
- currentVersion));
- }
-
- public void testGetRingtongStrFromUri_nOrGreater() {
- final int currentVersion = Build.VERSION_CODES.M + 1;
- assertEquals("", EditorUiUtils.getRingtoneStringFromUri(null, currentVersion));
- assertNull(EditorUiUtils.getRingtoneStringFromUri(Settings.System.DEFAULT_RINGTONE_URI,
- currentVersion));
- assertEquals(RINGTONE, EditorUiUtils.getRingtoneStringFromUri(Uri.parse(RINGTONE),
- currentVersion));
- }
-
- public void testGetRingtongUriFromStr_lessThanOrEqualsToM() {
- final int currentVersion = Build.VERSION_CODES.M;
- assertEquals(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE), EditorUiUtils
- .getRingtoneUriFromString(null, currentVersion));
- assertEquals(Uri.parse(""), EditorUiUtils.getRingtoneUriFromString("", currentVersion));
- assertEquals(Uri.parse(RINGTONE), EditorUiUtils.getRingtoneUriFromString(RINGTONE,
- currentVersion));
+ public void testGetRingtongStrFromUri() {
+ assertEquals("", EditorUiUtils.getRingtoneStringFromUri(null));
+ assertNull(EditorUiUtils.getRingtoneStringFromUri(Settings.System.DEFAULT_RINGTONE_URI));
+ assertEquals(RINGTONE, EditorUiUtils.getRingtoneStringFromUri(Uri.parse(RINGTONE)));
}
public void testGetRingtongUriFromStr_nOrGreater() {
- final int currentVersion = Build.VERSION_CODES.M + 1;
- assertEquals(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE), EditorUiUtils
- .getRingtoneUriFromString(null, currentVersion));
- assertNull(EditorUiUtils.getRingtoneUriFromString("", currentVersion));
- assertEquals(Uri.parse(RINGTONE), EditorUiUtils.getRingtoneUriFromString(RINGTONE,
- currentVersion));
+ assertEquals(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE),
+ EditorUiUtils.getRingtoneUriFromString(null));
+ assertNull(EditorUiUtils.getRingtoneUriFromString(""));
+ assertEquals(Uri.parse(RINGTONE), EditorUiUtils.getRingtoneUriFromString(RINGTONE));
}
private AccountDisplayInfo createDisplayableAccount() {
diff --git a/tests/src/com/android/contacts/model/ContactLoaderTest.java b/tests/src/com/android/contacts/model/ContactLoaderTest.java
index 37a33d8688..c1294a73d2 100644
--- a/tests/src/com/android/contacts/model/ContactLoaderTest.java
+++ b/tests/src/com/android/contacts/model/ContactLoaderTest.java
@@ -30,7 +30,6 @@
import androidx.test.filters.LargeTest;
-import com.android.contacts.compat.CompatUtils;
import com.android.contacts.model.account.AccountType;
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.model.account.BaseAccountType;
@@ -40,13 +39,9 @@
import com.android.contacts.testing.InjectedServices;
import com.android.contacts.util.Constants;
-import com.google.common.collect.Lists;
-
import org.json.JSONException;
import org.json.JSONObject;
-import java.util.List;
-
/**
* Runs ContactLoader tests for the the contact-detail and editor view.
*/
@@ -159,10 +154,7 @@ public void testLoadContactWithOldStyleUri() {
assertEquals(lookupUri, contact.getLookupUri());
assertEquals(1, contact.getRawContacts().size());
assertEquals(1, contact.getStatuses().size());
- if (CompatUtils.isMarshmallowCompatible()) {
- assertEquals(
- 1, contact.getRawContacts().get(0).getDataItems().get(0).getCarrierPresence());
- }
+ assertEquals(1, contact.getRawContacts().get(0).getDataItems().get(0).getCarrierPresence());
mContactsProvider.verify();
}
@@ -310,7 +302,7 @@ public void testLoadContactReturnDirectoryContactWithoutDisplayName() throws JSO
class ContactQueries {
public void fetchAllData(
Uri baseUri, long contactId, long rawContactId, long dataId, String encodedLookup) {
- final String[] COLUMNS_INTERNAL = new String[] {
+ final String[] COLUMNS = new String[] {
Contacts.NAME_RAW_CONTACT_ID, Contacts.DISPLAY_NAME_SOURCE,
Contacts.LOOKUP_KEY, Contacts.DISPLAY_NAME,
Contacts.DISPLAY_NAME_ALTERNATIVE, Contacts.PHONETIC_NAME,
@@ -347,15 +339,11 @@ public void fetchAllData(
Contacts.SEND_TO_VOICEMAIL,
Contacts.CUSTOM_RINGTONE,
Contacts.IS_USER_PROFILE,
- };
- List projectionList = Lists.newArrayList(COLUMNS_INTERNAL);
- if (CompatUtils.isMarshmallowCompatible()) {
- projectionList.add(Data.CARRIER_PRESENCE);
- }
- final String[] COLUMNS = projectionList.toArray(new String[projectionList.size()]);
+ Data.CARRIER_PRESENCE,
+ };
- final Object[] ROWS_INTERNAL = new Object[] {
+ final Object[] ROWS = new Object[] {
rawContactId, 40,
"aa%12%@!", "John Doe", "Doe, John", "jdo",
0, 0, StatusUpdates.AVAILABLE,
@@ -391,13 +379,9 @@ public void fetchAllData(
0,
null,
0,
- };
- List