Performing fragment transaction with delay

Bug: 3134987
Change-Id: I40c303a27c2289ce481497569c2cc0770204dab5
diff --git a/src/com/android/contacts/activities/ContactBrowserActivity.java b/src/com/android/contacts/activities/ContactBrowserActivity.java
index 4a8a59d..ce484f0 100644
--- a/src/com/android/contacts/activities/ContactBrowserActivity.java
+++ b/src/com/android/contacts/activities/ContactBrowserActivity.java
@@ -51,6 +51,7 @@
 import android.content.SharedPreferences.Editor;
 import android.net.Uri;
 import android.os.Bundle;
+import android.os.Handler;
 import android.preference.PreferenceManager;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
@@ -123,6 +124,8 @@
 
     private ImageView mAddContactImageView;
 
+    private Handler mHandler;
+
     public ContactBrowserActivity() {
         mIntentResolver = new ContactsIntentResolver(this);
         mContactListFilterController = new ContactListFilterController(this);
@@ -354,12 +357,26 @@
         }
     }
 
-    private void setupContactDetailFragment(Uri contactLookupUri) {
+    private void setupContactDetailFragment(final Uri contactLookupUri) {
         if (mDetailFragment != null && contactLookupUri != null
                 && contactLookupUri.equals(mDetailFragment.getUri())) {
             return;
         }
 
+        if (mHandler == null) {
+            mHandler = new Handler();
+        }
+
+        mHandler.post(new Runnable() {
+
+            @Override
+            public void run() {
+                replaceContactDetailFragment(contactLookupUri);
+            }
+        });
+    }
+
+    public void replaceContactDetailFragment(Uri contactLookupUri) {
         if (contactLookupUri != null) {
             // Already showing? Nothing to do
             if (mDetailFragment != null) {