From 02403e5cd7eb0f1cff85146013e33691e1dc2e8b Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Tue, 24 Sep 2013 07:24:39 -0700 Subject: Fix brief flash when clicking on a search result to dial Delay the hiding of the search fragment so that the in-call ui has time to show up. Bug: 10780429 Change-Id: I0f44bbb10e221ad4480ed1acf6225e6d6b6411ce --- src/com/android/dialer/DialtactsActivity.java | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java index 4c747c95b..05c9e2c2a 100644 --- a/src/com/android/dialer/DialtactsActivity.java +++ b/src/com/android/dialer/DialtactsActivity.java @@ -29,6 +29,8 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.os.Handler; +import android.os.Message; import android.os.RemoteException; import android.os.ServiceManager; import android.provider.CallLog.Calls; @@ -165,6 +167,21 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O private DialerDatabaseHelper mDialerDatabaseHelper; + private static final int EVENT_DELAYED_HIDE_SEARCH = 1; + + // Wait this much time (in ms) before hiding the search fragment after clicking on + // a search result to dial, to avoid jank + private static final int CLEAR_SEARCH_DELAY = 500; + + final Handler mHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + if (msg.what == EVENT_DELAYED_HIDE_SEARCH) { + hideDialpadAndSearchUi(); + } + } + }; + /** * Listener used when one of phone numbers in search UI is selected. This will initiate a * phone call using the phone number. @@ -177,14 +194,16 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O // CallLog screen (search UI will be automatically exited). PhoneNumberInteraction.startInteractionForPhoneCall( DialtactsActivity.this, dataUri, getCallOrigin()); - hideDialpadAndSearchUi(); + mHandler.sendEmptyMessageDelayed(EVENT_DELAYED_HIDE_SEARCH, + CLEAR_SEARCH_DELAY); } @Override public void onCallNumberDirectly(String phoneNumber) { Intent intent = CallUtil.getCallIntent(phoneNumber, getCallOrigin()); startActivity(intent); - hideDialpadAndSearchUi(); + mHandler.sendEmptyMessageDelayed(EVENT_DELAYED_HIDE_SEARCH, + CLEAR_SEARCH_DELAY); } @Override -- cgit v1.2.3