diff options
author | Yorke Lee <yorkelee@google.com> | 2015-05-08 17:50:33 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-05-08 17:50:33 +0000 |
commit | 51f9483d4064486b2003a786d16c6873b325a7f1 (patch) | |
tree | 7c1ac050f65d4a0765e2eafa745222124636cd2b /src | |
parent | 338b8fa810f14221df8f99aa52f29376b9a2d7a5 (diff) | |
parent | e7ef086eb7b676a5006345082fe12b7ec15e084b (diff) |
am e7ef086e: Merge "Fix jank when showing dialpad" into mnc-dev
* commit 'e7ef086eb7b676a5006345082fe12b7ec15e084b':
Fix jank when showing dialpad
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/DialtactsActivity.java | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java index 5c7dd6f19..cccc06ea0 100644 --- a/src/com/android/dialer/DialtactsActivity.java +++ b/src/com/android/dialer/DialtactsActivity.java @@ -165,6 +165,15 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O */ private Animation mSlideOut; + AnimationListenerAdapter mSlideInListener = new AnimationListenerAdapter() { + @Override + public void onAnimationEnd(Animation animation) { + if (!isInSearchUi()) { + enterSearchUi(true /* isSmartDial */, mSearchQuery, false); + } + } + }; + /** * Listener for after slide out animation completes on dialer fragment. */ @@ -293,7 +302,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O final boolean sameSearchMode = (mIsDialpadShown && mInDialpadSearch) || (!mIsDialpadShown && mInRegularSearch); if (!sameSearchMode) { - enterSearchUi(mIsDialpadShown, mSearchQuery); + enterSearchUi(mIsDialpadShown, mSearchQuery, true /* animate */); } } @@ -318,7 +327,8 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O public void onClick(View v) { if (!isInSearchUi()) { mActionBarController.onSearchBoxTapped(); - enterSearchUi(false /* smartDialSearch */, mSearchView.getText().toString()); + enterSearchUi(false /* smartDialSearch */, mSearchView.getText().toString(), + true /* animate */); } } }; @@ -431,6 +441,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O mSlideIn.setInterpolator(AnimUtils.EASE_IN); mSlideOut.setInterpolator(AnimUtils.EASE_OUT); + mSlideIn.setAnimationListener(mSlideInListener); mSlideOut.setAnimationListener(mSlideOutListener); mParentLayout = (FrameLayout) findViewById(R.id.dialtacts_mainlayout); @@ -682,9 +693,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O } mActionBarController.onDialpadUp(); - if (!isInSearchUi()) { - enterSearchUi(true /* isSmartDial */, mSearchQuery); - } + mListsFragment.getView().animate().alpha(0).withLayer(); } /** @@ -898,7 +907,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O /** * Shows the search fragment */ - private void enterSearchUi(boolean smartDialSearch, String query) { + private void enterSearchUi(boolean smartDialSearch, String query, boolean animate) { if (mStateSaved || getFragmentManager().isDestroyed()) { // Weird race condition where fragment is doing work after the activity is destroyed // due to talkback being on (b/10209937). Just return since we can't do any @@ -927,7 +936,11 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O mInRegularSearch = !smartDialSearch; SearchFragment fragment = (SearchFragment) getFragmentManager().findFragmentByTag(tag); - transaction.setCustomAnimations(android.R.animator.fade_in, 0); + if (animate) { + transaction.setCustomAnimations(android.R.animator.fade_in, 0); + } else { + transaction.setTransition(FragmentTransaction.TRANSIT_NONE); + } if (fragment == null) { if (smartDialSearch) { fragment = new SmartDialSearchFragment(); @@ -941,10 +954,14 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O // DialtactsActivity will provide the options menu fragment.setHasOptionsMenu(false); fragment.setShowEmptyListForNullQuery(true); - fragment.setQueryString(query, false /* delaySelection */); + if (!smartDialSearch) { + fragment.setQueryString(query, false /* delaySelection */); + } transaction.commit(); - mListsFragment.getView().animate().alpha(0).withLayer(); + if (animate) { + mListsFragment.getView().animate().alpha(0).withLayer(); + } mListsFragment.setUserVisibleHint(false); } |