diff options
author | Justin Klaassen <justinklaassen@google.com> | 2014-08-28 11:08:44 -0700 |
---|---|---|
committer | Justin Klaassen <justinklaassen@google.com> | 2014-08-28 11:08:44 -0700 |
commit | 06360f9211fc2c6df4c5749bebb65202e1bb12a8 (patch) | |
tree | 72c988cc759d43f06f50eacdabd1a6f7b48bbdb3 /src | |
parent | bfc4e4d88011b33b4cf142a89b9125bd07393ab5 (diff) | |
download | Calculator-06360f9211fc2c6df4c5749bebb65202e1bb12a8.tar.gz |
Add reveal view to overlay before creating animator
Bug: 17316066
- Additional checks introduced by ag/534856 now require that the target
of ViewAnimationUtils#createCircularReveal has a parent before being
invoked.
Change-Id: I21702486443e1c8fcae62d541e53a5237e50cfb4
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/calculator2/Calculator.java | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java index dc606c9..5dd04bf 100644 --- a/src/com/android/calculator2/Calculator.java +++ b/src/com/android/calculator2/Calculator.java @@ -109,6 +109,7 @@ public class Calculator extends Activity private CalculatorExpressionTokenizer mTokenizer; private CalculatorExpressionEvaluator mEvaluator; + private View mDisplayView; private CalculatorEditText mFormulaEditText; private CalculatorEditText mResultEditText; private ViewPager mPadViewPager; @@ -124,6 +125,7 @@ public class Calculator extends Activity super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); + mDisplayView = findViewById(R.id.display); mFormulaEditText = (CalculatorEditText) findViewById(R.id.formula); mResultEditText = (CalculatorEditText) findViewById(R.id.result); mPadViewPager = (ViewPager) findViewById(R.id.pad_pager); @@ -314,11 +316,11 @@ public class Calculator extends Activity } private void reveal(View sourceView, int colorRes, AnimatorListener listener) { - final View displayView = findViewById(R.id.display); - final View decorView = getWindow().getDecorView(); + final ViewGroupOverlay groupOverlay = + (ViewGroupOverlay) getWindow().getDecorView().getOverlay(); final Rect displayRect = new Rect(); - displayView.getGlobalVisibleRect(displayRect); + mDisplayView.getGlobalVisibleRect(displayRect); // Make reveal cover the display and status bar. final View revealView = new View(this); @@ -326,6 +328,7 @@ public class Calculator extends Activity revealView.setLeft(displayRect.left); revealView.setRight(displayRect.right); revealView.setBackgroundColor(getResources().getColor(colorRes)); + groupOverlay.add(revealView); final int[] clearLocation = new int[2]; sourceView.getLocationInWindow(clearLocation); @@ -351,17 +354,11 @@ public class Calculator extends Activity alphaAnimator.setDuration( getResources().getInteger(android.R.integer.config_mediumAnimTime)); - final ViewGroupOverlay groupOverlay = (ViewGroupOverlay) decorView.getOverlay(); final AnimatorSet animatorSet = new AnimatorSet(); animatorSet.play(revealAnimator).before(alphaAnimator); animatorSet.setInterpolator(new AccelerateDecelerateInterpolator()); animatorSet.addListener(new AnimatorListenerAdapter() { @Override - public void onAnimationStart(Animator animation) { - groupOverlay.add(revealView); - } - - @Override public void onAnimationEnd(Animator animator) { groupOverlay.remove(revealView); mCurrentAnimator = null; |