summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2014-12-12 13:38:10 -0800
committerAlan Viverette <alanv@google.com>2014-12-12 13:38:10 -0800
commit9bc11ac168d63900589158074028e6c480579421 (patch)
treeedbb8a35d47546cf61af4a6f5186098fd18a46d5 /graphics
parent4357d4eabc375c392190cf2d1dfc3aeba9718ceb (diff)
downloadframeworks_base-9bc11ac168d63900589158074028e6c480579421.zip
frameworks_base-9bc11ac168d63900589158074028e6c480579421.tar.gz
frameworks_base-9bc11ac168d63900589158074028e6c480579421.tar.bz2
Move ripple to end state on jump when hardware exit is pending
BUG: 18734676 Change-Id: Ie063e1eec0b4f28f936ea27822afacfd1b72a0e9
Diffstat (limited to 'graphics')
-rw-r--r--graphics/java/android/graphics/drawable/Ripple.java25
-rw-r--r--graphics/java/android/graphics/drawable/RippleBackground.java22
2 files changed, 37 insertions, 10 deletions
diff --git a/graphics/java/android/graphics/drawable/Ripple.java b/graphics/java/android/graphics/drawable/Ripple.java
index a3a220c..ba1e86c 100644
--- a/graphics/java/android/graphics/drawable/Ripple.java
+++ b/graphics/java/android/graphics/drawable/Ripple.java
@@ -214,7 +214,7 @@ class Ripple {
final boolean canUseHardware = c.isHardwareAccelerated();
if (mCanUseHardware != canUseHardware && mCanUseHardware) {
// We've switched from hardware to non-hardware mode. Panic.
- cancelHardwareAnimations(true);
+ cancelHardwareAnimations(false);
}
mCanUseHardware = canUseHardware;
@@ -493,7 +493,7 @@ class Ripple {
public void cancel() {
mCanceled = true;
cancelSoftwareAnimations();
- cancelHardwareAnimations(true);
+ cancelHardwareAnimations(false);
mCanceled = false;
}
@@ -522,15 +522,30 @@ class Ripple {
/**
* Cancels any running hardware animations.
*/
- private void cancelHardwareAnimations(boolean cancelPending) {
+ private void cancelHardwareAnimations(boolean jumpToEnd) {
final ArrayList<RenderNodeAnimator> runningAnimations = mRunningAnimations;
final int N = runningAnimations.size();
for (int i = 0; i < N; i++) {
- runningAnimations.get(i).cancel();
+ if (jumpToEnd) {
+ runningAnimations.get(i).end();
+ } else {
+ runningAnimations.get(i).cancel();
+ }
}
runningAnimations.clear();
- mHasPendingHardwareExit = false;
+ if (mHasPendingHardwareExit) {
+ // If we had a pending hardware exit, jump to the end state.
+ mHasPendingHardwareExit = false;
+
+ if (jumpToEnd) {
+ mOpacity = 0;
+ mTweenX = 1;
+ mTweenY = 1;
+ mTweenRadius = 1;
+ }
+ }
+
mHardwareAnimating = false;
}
diff --git a/graphics/java/android/graphics/drawable/RippleBackground.java b/graphics/java/android/graphics/drawable/RippleBackground.java
index 665d736..cc42aac 100644
--- a/graphics/java/android/graphics/drawable/RippleBackground.java
+++ b/graphics/java/android/graphics/drawable/RippleBackground.java
@@ -148,7 +148,7 @@ class RippleBackground {
final boolean canUseHardware = c.isHardwareAccelerated();
if (mCanUseHardware != canUseHardware && mCanUseHardware) {
// We've switched from hardware to non-hardware mode. Panic.
- cancelHardwareAnimations(true);
+ cancelHardwareAnimations(false);
}
mCanUseHardware = canUseHardware;
@@ -399,7 +399,7 @@ class RippleBackground {
*/
public void cancel() {
cancelSoftwareAnimations();
- cancelHardwareAnimations(true);
+ cancelHardwareAnimations(false);
}
private void cancelSoftwareAnimations() {
@@ -412,15 +412,27 @@ class RippleBackground {
/**
* Cancels any running hardware animations.
*/
- private void cancelHardwareAnimations(boolean cancelPending) {
+ private void cancelHardwareAnimations(boolean jumpToEnd) {
final ArrayList<RenderNodeAnimator> runningAnimations = mRunningAnimations;
final int N = runningAnimations.size();
for (int i = 0; i < N; i++) {
- runningAnimations.get(i).cancel();
+ if (jumpToEnd) {
+ runningAnimations.get(i).end();
+ } else {
+ runningAnimations.get(i).cancel();
+ }
}
runningAnimations.clear();
- mHasPendingHardwareExit = false;
+ if (mHasPendingHardwareExit) {
+ // If we had a pending hardware exit, jump to the end state.
+ mHasPendingHardwareExit = false;
+
+ if (jumpToEnd) {
+ mOuterOpacity = 0;
+ }
+ }
+
mHardwareAnimating = false;
}