Pushing initialization of phone number formatter to background thread
Bug: 3228687
Change-Id: Ib797383b2af3608876956ed365026b1522bc0f6c
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index 1e5c14e..aa1397a 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -16,16 +16,13 @@
package com.android.contacts;
+import com.android.contacts.model.AccountTypes;
+
import android.app.Application;
import android.content.Context;
import android.os.StrictMode;
import android.preference.PreferenceManager;
-import java.util.Locale;
-
-import com.android.contacts.model.AccountTypes;
-import com.google.i18n.phonenumbers.PhoneNumberUtil;
-
public final class ContactsApplication extends Application {
@Override
@@ -35,7 +32,6 @@
// Priming caches to placate the StrictMode police
Context context = getApplicationContext();
PreferenceManager.getDefaultSharedPreferences(context);
- PhoneNumberUtil.getInstance().getAsYouTypeFormatter(Locale.getDefault().getCountry());
AccountTypes.getInstance(context);
StrictMode.setThreadPolicy(
diff --git a/src/com/android/contacts/model/AccountTypes.java b/src/com/android/contacts/model/AccountTypes.java
index 92ffba2..bb3b774 100644
--- a/src/com/android/contacts/model/AccountTypes.java
+++ b/src/com/android/contacts/model/AccountTypes.java
@@ -20,6 +20,7 @@
import com.google.android.collect.Lists;
import com.google.android.collect.Maps;
import com.google.android.collect.Sets;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
import android.accounts.Account;
import android.accounts.AccountManager;
@@ -47,6 +48,7 @@
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Locale;
import java.util.concurrent.CountDownLatch;
/**
@@ -334,6 +336,11 @@
Collections.sort(mAccounts, ACCOUNT_COMPARATOR);
Collections.sort(mWritableAccounts, ACCOUNT_COMPARATOR);
+
+ // The UI will need a phone number formatter. We can preload meta data for the
+ // current locale to prevent a delay later on.
+ PhoneNumberUtil.getInstance().getAsYouTypeFormatter(Locale.getDefault().getCountry());
+
if (mInitializationLatch != null) {
mInitializationLatch.countDown();
mInitializationLatch = null;