Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5d37d71 authored by Dan Sandler's avatar Dan Sandler Committed by Daniel Sandler
Browse files

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
parent 4a09e4c1
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -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();
    }
}