From e5d37d7115f4fec324f9aac4dc3039815e001632 Mon Sep 17 00:00:00 2001 From: Dan Sandler Date: Wed, 18 Oct 2017 16:06:28 -0400 Subject: [PATCH] Stop octopus animation when paused Bug: 65597560 Test: 1. launch easter egg adb shell am start \ -a android.intent.action.MAIN \ -c com.android.internal.category.PLATLOGO 2. go home adb shell input keyevent 3 3. ensure octo is not consuming CPU adb shell top Change-Id: I5e95e56ddb212f951b461264d3af40682d08fee3 --- .../src/com/android/egg/octo/Ocquarium.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/packages/EasterEgg/src/com/android/egg/octo/Ocquarium.java b/packages/EasterEgg/src/com/android/egg/octo/Ocquarium.java index bbbdf80612d74..8a06cc604f1e8 100644 --- a/packages/EasterEgg/src/com/android/egg/octo/Ocquarium.java +++ b/packages/EasterEgg/src/com/android/egg/octo/Ocquarium.java @@ -26,6 +26,7 @@ import com.android.egg.R; public class Ocquarium extends Activity { ImageView mImageView; + private OctopusDrawable mOcto; @Override protected void onCreate(Bundle savedInstanceState) { @@ -43,10 +44,9 @@ public class Ocquarium extends Activity { bg.addView(mImageView, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); - final OctopusDrawable octo = new OctopusDrawable(getApplicationContext()); - octo.setSizePx((int) (OctopusDrawable.randfrange(40f,180f) * dp)); - mImageView.setImageDrawable(octo); - octo.startDrift(); + mOcto = new OctopusDrawable(getApplicationContext()); + mOcto.setSizePx((int) (OctopusDrawable.randfrange(40f,180f) * dp)); + mImageView.setImageDrawable(mOcto); mImageView.setOnTouchListener(new View.OnTouchListener() { boolean touching; @@ -54,24 +54,36 @@ public class Ocquarium extends Activity { public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getActionMasked()) { case MotionEvent.ACTION_DOWN: - if (octo.hitTest(motionEvent.getX(), motionEvent.getY())) { + if (mOcto.hitTest(motionEvent.getX(), motionEvent.getY())) { touching = true; - octo.stopDrift(); + mOcto.stopDrift(); } break; case MotionEvent.ACTION_MOVE: if (touching) { - octo.moveTo(motionEvent.getX(), motionEvent.getY()); + mOcto.moveTo(motionEvent.getX(), motionEvent.getY()); } break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: touching = false; - octo.startDrift(); + mOcto.startDrift(); break; } return true; } }); } + + @Override + protected void onPause() { + mOcto.stopDrift(); + super.onPause(); + } + + @Override + protected void onResume() { + super.onResume(); + mOcto.startDrift(); + } }