Merge "Use fragment arguments in picker dialog" into ub-contactsdialer-h-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1ef1bd5..f92d80f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -899,7 +899,7 @@
     <!-- Text shown in the contacts app while the background process updates contacts after a locale change [CHAR LIMIT=150]-->
     <string name="locale_change_in_progress">Contact list is being updated to reflect the change of language.\n\nPlease wait&#8230;</string>
 
-    <!-- The menu item to open the Google contacts assistant. [CHAR LIMIT=20]-->
+    <!-- Left drawer menu item to open contacts assistant cards. [CHAR LIMIT=20]-->
     <string name="menu_assistant">Assistant</string>
 
     <!-- The menu item to open the link/merge duplicates activity. [CHAR LIMIT=20]-->
diff --git a/src/com/android/contacts/common/database/SimContactDao.java b/src/com/android/contacts/common/database/SimContactDao.java
index 9ce7970..a4846ad 100644
--- a/src/com/android/contacts/common/database/SimContactDao.java
+++ b/src/com/android/contacts/common/database/SimContactDao.java
@@ -105,6 +105,15 @@
         return mResolver.applyBatch(ContactsContract.AUTHORITY, ops);
     }
 
+    public void warmup() {
+        // We don't actually have to do any caching ourselves. Some other layer must do caching
+        // of the data (OS or framework) because subsequent queries are very fast.
+        final Cursor cursor = mResolver.query(ICC_CONTENT_URI, null, null, null, null);
+        if (cursor != null) {
+            cursor.close();
+        }
+    }
+
     private ArrayList<ContentProviderOperation> createImportOperations(List<SimContact> contacts,
             AccountWithDataSet targetAccount) {
         final ArrayList<ContentProviderOperation> ops = new ArrayList<>();
diff --git a/src/com/android/contacts/list/ContactsUnavailableFragment.java b/src/com/android/contacts/list/ContactsUnavailableFragment.java
index 488463d..518447c 100644
--- a/src/com/android/contacts/list/ContactsUnavailableFragment.java
+++ b/src/com/android/contacts/list/ContactsUnavailableFragment.java
@@ -114,6 +114,8 @@
      * Update views in the fragment when provider status is empty.
      */
     private void updateViewsForEmptyStatus() {
+        mMessageView.setText(R.string.noContacts);
+        mMessageView.setVisibility(View.VISIBLE);
         updateButtonVisibility(View.VISIBLE);
         mProgress.setVisibility(View.GONE);
     }
diff --git a/tests/src/com/android/contacts/RunMethodInstrumentation.java b/tests/src/com/android/contacts/RunMethodInstrumentation.java
index 11516b8..2eb6928 100644
--- a/tests/src/com/android/contacts/RunMethodInstrumentation.java
+++ b/tests/src/com/android/contacts/RunMethodInstrumentation.java
@@ -71,6 +71,14 @@
             return;
         }
 
+        // Wait for the Application to finish creating.
+        runOnMainSync(new Runnable() {
+            @Override
+            public void run() {
+                Log.d(TAG, "acquired main thread from instrumentation");
+            }
+        });
+
         try {
             invokeMethod(args, className, methodName);
         } catch (Exception e) {