summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk3
-rw-r--r--res/values-km-rKH/strings.xml8
-rw-r--r--res/values-kn-rIN/strings.xml2
-rw-r--r--res/values-my-rMM/strings.xml20
-rw-r--r--res/values/styles.xml1
-rw-r--r--src/com/android/contacts/activities/PeopleActivity.java3
-rw-r--r--src/com/android/contacts/interactions/ContactDeletionInteraction.java10
-rw-r--r--src/com/android/contacts/interactions/TestLoaderManagerBase.java89
-rw-r--r--src/com/android/contacts/util/PhoneCapabilityTester.java4
-rw-r--r--tests/src/com/android/contacts/interactions/TestLoaderManager.java (renamed from src/com/android/contacts/interactions/TestLoaderManager.java)58
10 files changed, 119 insertions, 79 deletions
diff --git a/Android.mk b/Android.mk
index 124549b50..10178fb01 100644
--- a/Android.mk
+++ b/Android.mk
@@ -28,8 +28,7 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v7-cardview \
android-support-v7-palette \
android-support-v4 \
- libphonenumber \
- libgeocoding
+ libphonenumber
LOCAL_PACKAGE_NAME := Contacts
LOCAL_CERTIFICATE := shared
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index bbea28ee8..6dc210bb6 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -44,13 +44,13 @@
<string name="menu_removeStar" msgid="5844227078364227030">"លុប​ចេញពី​សំណព្វ"</string>
<string name="description_action_menu_remove_star" msgid="4699640108012265178">"បាន​លុប​ចេញ​​និយម​ប្រើ"</string>
<string name="description_action_menu_add_star" msgid="3327186327234177456">"បន្ថែម​ទៅ​និយម​ប្រើ"</string>
- <string name="menu_editContact" msgid="9042415603857662633">"កែសម្រួល"</string>
+ <string name="menu_editContact" msgid="9042415603857662633">"កែសម្រួល​"</string>
<string name="menu_deleteContact" msgid="6788644058868189393">"លុប"</string>
<string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ដាក់​លើ​អេក្រង់​ដើម"</string>
<string name="menu_call" msgid="3992595586042260618">"ហៅ​ទំនាក់ទំនង"</string>
<string name="menu_sendSMS" msgid="5535886767547006515">"អត្ថបទ​ទំនាក់ទំនង"</string>
<string name="menu_splitAggregate" msgid="8368636463748691868">"បំបែក"</string>
- <string name="menu_editGroup" msgid="5062005185370983720">"កែសម្រួល"</string>
+ <string name="menu_editGroup" msgid="5062005185370983720">"កែសម្រួល​"</string>
<string name="menu_deleteGroup" msgid="3486380004411482874">"លុប"</string>
<string name="menu_new_contact_action_bar" msgid="7263362129442119188">"បន្ថែម​ទំនាក់ទំនង"</string>
<string name="menu_new_group_action_bar" msgid="3520232877587377175">"បន្ថែម​ក្រុម"</string>
@@ -123,7 +123,7 @@
<string name="quickcontact_add_phone_number" msgid="731665835910658965">"បន្ថែម​លេខទូរស័ព្ទ"</string>
<string name="quickcontact_add_email" msgid="739298028384348482">"បន្ថែម​អ៊ីមែល"</string>
<string name="missing_app" msgid="1466111003546611387">"រក​មិន​ឃើញ​កម្មវិធី​ដើម្បី​គ្រប់គ្រង​សកម្មភាព​នេះ​ទេ។"</string>
- <string name="menu_share" msgid="943789700636542260">"ចែករំលែក"</string>
+ <string name="menu_share" msgid="943789700636542260">"ចែករំលែក​"</string>
<string name="menu_add_contact" msgid="3198704337220892684">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
<string name="share_via" msgid="563121028023030093">"ចែករំលែក​ទំនាក់ទំនង​តាម"</string>
<string name="dialog_new_group_account" msgid="2318032089273496830">"បង្កើត​ក្រុម​នៅ​ក្នុង​គណនី"</string>
@@ -178,7 +178,7 @@
<string name="non_phone_caption" msgid="1541655052330027380">"លេខទូរស័ព្ទ"</string>
<string name="non_phone_add_to_contacts" msgid="6590985286250471169">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
<string name="activity_title_confirm_add_detail" msgid="4065089866210730616">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
- <string name="non_phone_close" msgid="7608506439725515667">"បិទ"</string>
+ <string name="non_phone_close" msgid="7608506439725515667">"បិទ​"</string>
<string name="widget_name_and_phonetic" msgid="8739586586600099979">"<xliff:g id="DISPLAY_NAME">%1$s</xliff:g> (<xliff:g id="PHONETIC_NAME">%2$s</xliff:g>)"</string>
<string name="date_year_toggle" msgid="7356532842767854606">"ផ្ដល់​ឆ្នាំ"</string>
<string name="social_widget_label" msgid="6378905543028924592">"ទំនាក់ទំនង"</string>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 162045c30..8fcab1bf3 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -223,7 +223,7 @@
<string name="contact_editor_title_new_contact" msgid="7192223018128934940">"ಹೊಸ ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
<string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"ಸಂಪರ್ಕವನ್ನು ಸಂಪಾದಿಸಿ"</string>
<string name="keep_local" msgid="1258761699192993322">"ಸ್ಥಳೀಯವಾಗಿ ಇರಿಸಿ"</string>
- <string name="add_account" msgid="8201790677994503186">"ಖಾತೆಯನ್ನು ಸೇರಿಸಿ"</string>
+ <string name="add_account" msgid="8201790677994503186">"ಖಾತೆ ಸೇರಿಸು"</string>
<string name="add_new_account" msgid="5748627740680940264">"ಹೊಸ ಖಾತೆಯನ್ನು ಸೇರಿಸಿ"</string>
<string name="menu_export_database" msgid="2659719297530170820">"ಡೇಟಾಬೇಸ್‌‌ ಫೈಲ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಿ"</string>
<string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"ಹೊಸ ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸು"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 88bc380f3..b59124c49 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -43,7 +43,7 @@
<string name="menu_addStar" msgid="2908478235715404876">"အနှစ်သက်ဆုံးများထဲ ထည့်ပါ"</string>
<string name="menu_removeStar" msgid="5844227078364227030">"အနှစ်သက်ဆုံးများမှ ထုတ်ပါ"</string>
<string name="description_action_menu_remove_star" msgid="4699640108012265178">"အကြိုက်ဆုံးများထဲမှ ထုတ်လိုက်ပါပြီ"</string>
- <string name="description_action_menu_add_star" msgid="3327186327234177456">"အကြိုက်ဆုံးများ ထဲကို ထည့်ပြီး"</string>
+ <string name="description_action_menu_add_star" msgid="3327186327234177456">"အကြိုက်ဆုံးများ ထဲကို ထည့်ပြီး"</string>
<string name="menu_editContact" msgid="9042415603857662633">"ပြင်ဆင်ရန်"</string>
<string name="menu_deleteContact" msgid="6788644058868189393">"ဖျက်ရန်"</string>
<string name="menu_create_contact_shortcut" msgid="1217971915748509640">"ပင်မစာမျက်နှာတွင် တင်ထားပါ"</string>
@@ -69,7 +69,7 @@
<string name="readOnlyContactDeleteConfirmation" msgid="2137170726670196909">"ဒီအဆက်အသွယ်မှာ အကောင့်အများအပြား၏ အချက်အလက်များ ပါဝင်ပါသည်။ ဖတ်ရန်အတွက်သာ အကောင့်များမှ အချက်အလက်များကို ဖျောက်ထားမှာဖြစ်ပြီး ဖျက်ပစ်ထားတာ မဟုတ်ပါ"</string>
<string name="multipleContactDeleteConfirmation" msgid="938900978442960800">"ဤအဆက်အသွယ်အားဖျက်ခြင်းကြောင့် တခြားအကောင့်များမှ အချက်အလက်များလည်း ပျက်ပါလိမ့်မည်"</string>
<string name="deleteConfirmation" msgid="811706994761610640">"ဒီလိပ်စာကို ဖျက်ပစ်ပါလိမ့်မည်"</string>
- <string name="menu_discard" msgid="6854657936970228164">"အပြောင်းအလဲများ စွန့်ပစ်ရန်"</string>
+ <string name="menu_discard" msgid="6854657936970228164">"အပြောင်းအလဲများ စွန့်ပစ်ရန်"</string>
<string name="invalidContactMessage" msgid="8215051456181842274">"လိပ်စာ မရှိပါ"</string>
<string name="createContactShortcutSuccessful" msgid="7874133287558150877">"အဆက်အသွယ်ပြ ဝဒ်ဂျက်ကို ပင်မစာမျက်နှာသို့ ထည့်ပြီးပါပြီ"</string>
<string name="pickerNewContactHeader" msgid="7750705279843568147">"အဆက်အသွယ်သစ်တစ်ခု ပြုလုပ်ရန်"</string>
@@ -120,8 +120,8 @@
<string name="search_settings_description" msgid="2675223022992445813">"အဆက်အသွယ်များ၏နာမည်များ"</string>
<string name="quickcontact_missing_app" msgid="358168575340921552">"ဤလုပ်ဆောင်ချက်ကို ပြုလုပ်ပေးမည့် အပလီကေးရှင်း မရှိပါ။"</string>
<string name="quickcontact_transparent_view_description" msgid="987959416759562455">"ယခင် မျက်နှာပြင်သို့ ပြန်ရန် ကလစ်ပါ"</string>
- <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ဖုန်း နံပါတ် ထည့်ရန်"</string>
- <string name="quickcontact_add_email" msgid="739298028384348482">"အီးမေးလ် ထည့်ရန်"</string>
+ <string name="quickcontact_add_phone_number" msgid="731665835910658965">"ဖုန်း နံပါတ် ထည့်ရန်"</string>
+ <string name="quickcontact_add_email" msgid="739298028384348482">"အီးမေးလ် ထည့်ရန်"</string>
<string name="missing_app" msgid="1466111003546611387">"ဤလုပ်ဆောင်ချက်ကို ပြုလုပ်မည့် အပလီကေးရှင်း မရှိပါ။"</string>
<string name="menu_share" msgid="943789700636542260">"မျှဝေခြင်း"</string>
<string name="menu_add_contact" msgid="3198704337220892684">"အဆက်အသွယ်များ ထဲသို့ ထည့်ရန်"</string>
@@ -214,21 +214,21 @@
<string name="local_profile_title" msgid="2021416826991393684">"မိမိ၏ဖုန်းမှပရိုဖိုင်လ်"</string>
<string name="external_profile_title" msgid="8034998767621359438">"ကျွန်ုပ်၏ <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g> ကိုယ်ရေးအကောင့်"</string>
<string name="toast_displaying_all_contacts" msgid="2737388783898593875">"အဆက်အသွယ်အားလုံးအားပြနေစဉ်"</string>
- <string name="no_account_prompt" msgid="6424883302325061025">"အဆက်အသွယ်များ၏ အလုပ်မှာ Google အကောင့်နှင့် ပိုအဆင်ပြေသည်။\n\n• မည်သည့် ဝက်ဘ် ဘရောင်ဇာဖြင့် မဆို ချဉ်းကပ်ပါ။\n• သင်၏ အဆက်အသွယ်များကို စိတ်ချရစွာ ဘက်အာပ် လုပ်ထားပါ။"</string>
+ <string name="no_account_prompt" msgid="6424883302325061025">"အဆက်အသွယ်များ၏ အလုပ်မှာ Google အကောင့်နှင့် ပိုအဆင်ပြေသည်။\n\n• မည်သည့် ဝက်ဘ် ဘရောင်ဇာဖြင့် မဆို ချဉ်းကပ်ပါ။\n• သင်၏ အဆက်အသွယ်များကို စိတ်ချရစွာ ဘက်အာပ် လုပ်ထားပါ။"</string>
<string name="generic_no_account_prompt" msgid="7218827704367325460">"အွန်လိုင်း ဝန်ဆောင်မှုဖြင့် ထပ်တူကျအောင် ပြုလုပ်ထားခြင်းအားဖြင့် ဖုန်းပျောက်သွားသည့်တိုင်အောင် အဆက်အသွယ်များအား လုံခြုံစွာ သိမ်းထားနိုင်ပါသည်"</string>
- <string name="generic_no_account_prompt_title" msgid="753783911899054860">"အကောင့် ထပ်ဖြည့်ပါ"</string>
+ <string name="generic_no_account_prompt_title" msgid="753783911899054860">"အကောင့် ထပ်ဖြည့်ပါ"</string>
<string name="contact_editor_prompt_zero_accounts" msgid="1785345895691886499">"သင့် အဆက်အသွယ်အသစ်ကို အရံသိမ်းဆည်းထားခြင်း မရှိပါ။ အဆယ်အသွယ်များကို အွန်လိုင်းပေါ်မှာ အရံသိမ်းဆည်းပေးရန် အကောင့်သစ် ထပ်ထည့်ချင်ပါသလား"</string>
<string name="contact_editor_prompt_one_account" msgid="8669032699767375976">"သင့်ရဲ့ အဆက်အသွယ်အသစ်ကို <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g> နှင့် ထပ်တူဖြစ်အောင် ပြုလုပ်ပါမည်"</string>
<string name="contact_editor_prompt_multiple_accounts" msgid="611828200100438242">"သင်ရဲ့အဆက်အသွယ် အသစ်ကို အောက်ပါ အကောင့်တွေထဲက တစ်ခုခုဖြင့် ထပ်တူဖြစ်အောင် ပြုလုပ်နိုင်ပါသည်။ ဘယ်တစ်ခုကို သုံးချင်ပါသလဲ?"</string>
<string name="contact_editor_title_new_contact" msgid="7192223018128934940">"အဆက်အသွယ်သစ် ထည့်မည်"</string>
<string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"အဆက်အသွယ်အားပြင်ရန်"</string>
<string name="keep_local" msgid="1258761699192993322">"ဖုန်းထဲတွင်သာသိမ်းပါ"</string>
- <string name="add_account" msgid="8201790677994503186">"အကောင့်ထပ်ထည့်ရန်"</string>
+ <string name="add_account" msgid="8201790677994503186">"အကောင့်ထပ်ထည့်ရန်"</string>
<string name="add_new_account" msgid="5748627740680940264">"အကောင့်အသစ်ထည့်ပါ"</string>
<string name="menu_export_database" msgid="2659719297530170820">"ဒေ့ဘာဘေ့စ်ဖိုင်များကို အပြင်သို့ထုတ်ပါ"</string>
- <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"အဆက်အသွယ် အသစ်ကို ထည့်ရန်"</string>
+ <string name="action_menu_add_new_contact_button" msgid="3180222523336380017">"အဆက်အသွယ် အသစ်ကို ထည့်ရန်"</string>
<string name="expanding_entry_card_view_see_more" msgid="3779194067124758079">"ပိုပြီး ကြည့်ရန်"</string>
- <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"လျှော့ပြီး ကြည့်ရန်"</string>
+ <string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"လျှော့ပြီး ကြည့်ရန်"</string>
<string name="expanding_entry_card_view_see_all" msgid="3845258737661412627">"အားလုံးကို ကြည့်ရန်"</string>
<string name="recent_card_title" msgid="8982782042698001695">"မကြာမီတုန်းက"</string>
<string name="about_card_title" msgid="2920942314212825637">"အကြောင်း"</string>
@@ -263,5 +263,5 @@
<string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"လွတ်သွား"</string>
<string name="content_description_recent_call" msgid="5183800406316723676">"မကြာမီက ခေါ်ဆိုမှု။ <xliff:g id="CALL_TYPE">%s</xliff:g>. <xliff:g id="PHONE_NUMBER">%s</xliff:g>. <xliff:g id="DATE">%s</xliff:g>. ပြန်ခေါ်ရန် ကလစ်ပါ"</string>
<string name="message_from_you_prefix" msgid="7180706529908434482">"သင်: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
- <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"အီးမေးအကွက် သို့မဟုတ် ဖုန်းနံပါတ် အကွက်တွင် တစ်ခြားသူ၏ Hangouts အမှတ်သညာအား သင်ရိုက်ထည့်သည့်အခါ Hangouts ပိုမိုလွယ်ကူကောင်းမွန်စွာ အလုပ်လုပ်သည်။"</string>
+ <string name="contact_editor_hangouts_im_alert" msgid="114855385615225735">"အီးမေးအကွက် သို့မဟုတ် ဖုန်းနံပါတ် အကွက်တွင် တစ်ခြားသူ၏ Hangouts အမှတ်သညာအား သင်ရိုက်ထည့်သည့်အခါ Hangouts ပိုမိုလွယ်ကူကောင်းမွန်စွာ အလုပ်လုပ်သည်။"</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 06f1afe76..d4826a144 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -62,6 +62,7 @@
<item name="android:actionOverflowButtonStyle">@style/ContactsActionBarOverflowQP</item>
<item name="android:actionModeCloseDrawable">@drawable/ic_close_lt</item>
<item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb</item>
+ <item name="android:fastScrollTrackDrawable">@null</item>
<item name="android:textColorPrimary">@color/primary_text_color</item>
<item name="android:textColorSecondary">@color/secondary_text_color</item>
<item name="android:icon">@android:color/transparent</item>
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 6cb286ea0..d73802378 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -20,6 +20,7 @@ import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.ActivityNotFoundException;
+import android.content.Context;
import android.content.Intent;
import android.graphics.Rect;
import android.net.Uri;
@@ -845,7 +846,7 @@ public class PeopleActivity extends ContactsActivity implements
//
// Also check for ability to modify accounts. In limited user mode, you can't modify
// accounts so there is no point sending users to account setup activity.
- final UserManager userManager = UserManager.get(this);
+ final UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
final boolean disallowModifyAccounts = userManager.getUserRestrictions().getBoolean(
UserManager.DISALLOW_MODIFY_ACCOUNTS);
if (!disallowModifyAccounts && !areContactWritableAccountsAvailable() &&
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index 458556e71..f3db36c8f 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -77,7 +77,7 @@ public class ContactDeletionInteraction extends Fragment
private AlertDialog mDialog;
/** This is a wrapper around the fragment's loader manager to be used only during testing. */
- private TestLoaderManager mTestLoaderManager;
+ private TestLoaderManagerBase mTestLoaderManager;
@VisibleForTesting
int mMessageId;
@@ -97,20 +97,20 @@ public class ContactDeletionInteraction extends Fragment
}
/**
- * Starts the interaction and optionally set up a {@link TestLoaderManager}.
+ * Starts the interaction and optionally set up a {@link TestLoaderManagerBase}.
*
* @param activity the activity within which to start the interaction
* @param contactUri the URI of the contact to delete
* @param finishActivityWhenDone whether to finish the activity upon completion of the
* interaction
- * @param testLoaderManager the {@link TestLoaderManager} to use to load the data, may be null
+ * @param testLoaderManager the {@link TestLoaderManagerBase} to use to load the data, may be null
* in which case the default {@link LoaderManager} is used
* @return the newly created interaction
*/
@VisibleForTesting
static ContactDeletionInteraction startWithTestLoaderManager(
Activity activity, Uri contactUri, boolean finishActivityWhenDone,
- TestLoaderManager testLoaderManager) {
+ TestLoaderManagerBase testLoaderManager) {
if (contactUri == null) {
return null;
}
@@ -147,7 +147,7 @@ public class ContactDeletionInteraction extends Fragment
}
/** Sets the TestLoaderManager that is used to wrap the actual LoaderManager in tests. */
- private void setTestLoaderManager(TestLoaderManager mockLoaderManager) {
+ private void setTestLoaderManager(TestLoaderManagerBase mockLoaderManager) {
mTestLoaderManager = mockLoaderManager;
}
diff --git a/src/com/android/contacts/interactions/TestLoaderManagerBase.java b/src/com/android/contacts/interactions/TestLoaderManagerBase.java
new file mode 100644
index 000000000..92ae3b901
--- /dev/null
+++ b/src/com/android/contacts/interactions/TestLoaderManagerBase.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2014 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.interactions;
+
+import android.app.LoaderManager;
+
+/**
+ * A {@link LoaderManager} that records which loaders have been completed.
+ * <p>
+ * You should wrap the existing LoaderManager with an instance of this class, which will then
+ * delegate to the original object.
+ * <p>
+ * Typically, one would override {@link android.app.Activity#getLoaderManager()} to return the
+ * TestLoaderManager and ensuring it wraps the {@link LoaderManager} for this object, e.g.:
+ * <pre>
+ * private TestLoaderManager mTestLoaderManager;
+ *
+ * public LoaderManager getLoaderManager() {
+ * LoaderManager loaderManager = super.getLoaderManager();
+ * if (mTestLoaderManager != null) {
+ * mTestLoaderManager.setDelegate(loaderManager);
+ * return mTestLoaderManager;
+ * } else {
+ * return loaderManager;
+ * }
+ * }
+ *
+ * void setTestLoaderManager(TestLoaderManager testLoaderManager) {
+ * mTestLoaderManager = testLoaderManager;
+ * }
+ * </pre>
+ * In the tests, one would set the TestLoaderManager upon creating the activity, and then wait for
+ * the loader to complete.
+ * <pre>
+ * public void testLoadedCorrect() {
+ * TestLoaderManager testLoaderManager = new TestLoaderManager();
+ * getActivity().setTestLoaderManager(testLoaderManager);
+ * runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
+ * testLoaderManager.waitForLoader(R.id.test_loader_id);
+ * }
+ * </pre>
+ * If the loader completes before the call to {@link #waitForLoaders(int...)}, the TestLoaderManager
+ * will have stored the fact that the loader has completed and correctly terminate immediately.
+ * <p>
+ * It one needs to wait for the same loader multiple times, call {@link #reset()} between the them
+ * as in:
+ * <pre>
+ * public void testLoadedCorrect() {
+ * TestLoaderManager testLoaderManager = new TestLoaderManager();
+ * getActivity().setTestLoaderManager(testLoaderManager);
+ * runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
+ * testLoaderManager.waitForLoader(R.id.test_loader_id);
+ * testLoaderManager.reset();
+ * // Load and wait again.
+ * runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
+ * testLoaderManager.waitForLoader(R.id.test_loader_id);
+ * }
+ * </pre>
+ */
+abstract class TestLoaderManagerBase extends LoaderManager {
+
+ /**
+ * Waits for the specified loaders to complete loading.
+ */
+ public abstract void waitForLoaders(int... loaderIds);
+
+ /**
+ * Sets the object to which we delegate the actual work.
+ * <p>
+ * It can not be set to null. Once set, it cannot be changed (but it allows setting it to the
+ * same value again).
+ */
+ public abstract void setDelegate(LoaderManager delegate);
+
+}
diff --git a/src/com/android/contacts/util/PhoneCapabilityTester.java b/src/com/android/contacts/util/PhoneCapabilityTester.java
index b2d10be4a..a510b7692 100644
--- a/src/com/android/contacts/util/PhoneCapabilityTester.java
+++ b/src/com/android/contacts/util/PhoneCapabilityTester.java
@@ -28,7 +28,6 @@ import android.provider.Telephony;
import android.telephony.TelephonyManager;
import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.R;
import java.util.List;
@@ -62,7 +61,8 @@ public final class PhoneCapabilityTester {
}
private static void initialize(Context context) {
- final TelephonyManager telephonyManager = new TelephonyManager(context);
+ final TelephonyManager telephonyManager
+ = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
sIsPhone = telephonyManager.isVoiceCapable();
sIsSipPhone = sIsPhone && SipManager.isVoipSupported(context);
sIsInitialized = true;
diff --git a/src/com/android/contacts/interactions/TestLoaderManager.java b/tests/src/com/android/contacts/interactions/TestLoaderManager.java
index a85bf8f87..3e0db63ec 100644
--- a/src/com/android/contacts/interactions/TestLoaderManager.java
+++ b/tests/src/com/android/contacts/interactions/TestLoaderManager.java
@@ -16,7 +16,6 @@
package com.android.contacts.interactions;
-import android.app.Activity;
import android.app.LoaderManager;
import android.content.AsyncTaskLoader;
import android.content.Loader;
@@ -34,59 +33,10 @@ import java.util.HashSet;
import java.util.List;
/**
- * A {@link LoaderManager} that records which loaders have been completed.
- * <p>
- * You should wrap the existing LoaderManager with an instance of this class, which will then
- * delegate to the original object.
- * <p>
- * Typically, one would override {@link Activity#getLoaderManager()} to return the
- * TestLoaderManager and ensuring it wraps the {@link LoaderManager} for this object, e.g.:
- * <pre>
- * private TestLoaderManager mTestLoaderManager;
- *
- * public LoaderManager getLoaderManager() {
- * LoaderManager loaderManager = super.getLoaderManager();
- * if (mTestLoaderManager != null) {
- * mTestLoaderManager.setDelegate(loaderManager);
- * return mTestLoaderManager;
- * } else {
- * return loaderManager;
- * }
- * }
- *
- * void setTestLoaderManager(TestLoaderManager testLoaderManager) {
- * mTestLoaderManager = testLoaderManager;
- * }
- * </pre>
- * In the tests, one would set the TestLoaderManager upon creating the activity, and then wait for
- * the loader to complete.
- * <pre>
- * public void testLoadedCorrect() {
- * TestLoaderManager testLoaderManager = new TestLoaderManager();
- * getActivity().setTestLoaderManager(testLoaderManager);
- * runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
- * testLoaderManager.waitForLoader(R.id.test_loader_id);
- * }
- * </pre>
- * If the loader completes before the call to {@link #waitForLoaders(int...)}, the TestLoaderManager
- * will have stored the fact that the loader has completed and correctly terminate immediately.
- * <p>
- * It one needs to wait for the same loader multiple times, call {@link #reset()} between the them
- * as in:
- * <pre>
- * public void testLoadedCorrect() {
- * TestLoaderManager testLoaderManager = new TestLoaderManager();
- * getActivity().setTestLoaderManager(testLoaderManager);
- * runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
- * testLoaderManager.waitForLoader(R.id.test_loader_id);
- * testLoaderManager.reset();
- * // Load and wait again.
- * runOnUiThread(new Runnable() { public void run() { getActivity().startLoading(); } });
- * testLoaderManager.waitForLoader(R.id.test_loader_id);
- * }
- * </pre>
+ * This implementation of TestLoaderManagerBase uses hidden APIs and must therefore
+ * be kept outside of the main Contacts apk.
*/
-public class TestLoaderManager extends LoaderManager {
+public class TestLoaderManager extends TestLoaderManagerBase {
private static final String TAG = "TestLoaderManager";
private final HashSet<Integer> mFinishedLoaders;
@@ -127,7 +77,7 @@ public class TestLoaderManager extends LoaderManager {
* not wait for it to complete again.
*/
@VisibleForTesting
- /*package*/ synchronized void waitForLoaders(int... loaderIds) {
+ public synchronized void waitForLoaders(int... loaderIds) {
List<Loader<?>> loaders = new ArrayList<Loader<?>>(loaderIds.length);
for (int loaderId : loaderIds) {
if (mFinishedLoaders.contains(loaderId)) {