summaryrefslogtreecommitdiff
path: root/src/com/android/dialer/dialpad/DialpadFragment.java
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2013-08-09 11:02:26 -0700
committerYorke Lee <yorkelee@google.com>2013-08-09 11:15:35 -0700
commitea695cb0f877ad49a98df184efe982de83ed09d7 (patch)
tree377b7f55611406ebac1caebaa40e5ba212c95e13 /src/com/android/dialer/dialpad/DialpadFragment.java
parent15ef3e1d3772d9e35182572fed9b0f1c7c958547 (diff)
Handle dialpad animations better
This change prevents the dialpad from animating in when the dialer is launched directly with a dial intent. Change-Id: I6d7378de0484dcdadecbbc0e9c25d4c8ed1e3800
Diffstat (limited to 'src/com/android/dialer/dialpad/DialpadFragment.java')
-rw-r--r--src/com/android/dialer/dialpad/DialpadFragment.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 3052c67f0..e11337427 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -262,6 +262,7 @@ public class DialpadFragment extends Fragment
private boolean mStartedFromNewIntent = false;
private boolean mFirstLaunch = false;
+ private boolean mAdjustTranslationForAnimation = false;
private static final String PREF_DIGITS_FILLED_BY_INTENT = "pref_digits_filled_by_intent";
@@ -350,15 +351,17 @@ public class DialpadFragment extends Fragment
false);
fragmentView.buildLayer();
- // TODO krelease: Get rid of this ugly hack which is to prevent the first frame of the
- // animation from drawing the fragment at translationY = 0
final ViewTreeObserver vto = fragmentView.getViewTreeObserver();
+ // Adjust the translation of the DialpadFragment in a preDrawListener instead of in
+ // DialtactsActivity, because at the point in time when the DialpadFragment is added,
+ // its views have not been laid out yet.
final OnPreDrawListener preDrawListener = new OnPreDrawListener() {
@Override
public boolean onPreDraw() {
+
if (isHidden()) return true;
- if (fragmentView.getTranslationY() == 0) {
+ if (mAdjustTranslationForAnimation && fragmentView.getTranslationY() == 0) {
((DialpadSlidingLinearLayout) fragmentView).setYFraction(
DIALPAD_SLIDE_FRACTION);
}
@@ -1691,4 +1694,12 @@ public class DialpadFragment extends Fragment
activity.hideSearchBar();
}
}
+
+ public void setAdjustTranslationForAnimation(boolean value) {
+ mAdjustTranslationForAnimation = value;
+ }
+
+ public void setYFraction(float yFraction) {
+ ((DialpadSlidingLinearLayout) getView()).setYFraction(yFraction);
+ }
}