summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin Klaassen <justinklaassen@google.com>2014-08-28 11:08:44 -0700
committerJustin Klaassen <justinklaassen@google.com>2014-08-28 11:08:44 -0700
commit06360f9211fc2c6df4c5749bebb65202e1bb12a8 (patch)
tree72c988cc759d43f06f50eacdabd1a6f7b48bbdb3 /src
parentbfc4e4d88011b33b4cf142a89b9125bd07393ab5 (diff)
downloadCalculator-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.java15
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;