private void easterEggProgress(int eggIndex) { int eggsFound = 0; for (int i = 0; i < EGG_COUNT; i++) { if (mEasterEggTracker[i]) { eggsFound++; } } if (!mEasterEggTracker[eggIndex]) { mEasterEggTracker[eggIndex] = true; eggsFound++; // Play sound switch (eggsFound) { case 1: mCallback.playSoundOnce(R.raw.confirm1); break; case 2: mCallback.playSoundOnce(R.raw.confirm2); break; case 3: mCallback.playSoundOnce(R.raw.confirm3); break; } } if (eggsFound == EGG_COUNT) { showEasterEgg(); // reset easter egg state for (int i = 0; i < EGG_COUNT; i++) { mEasterEggTracker[i] = false; } } }
// Make the UFO spin around and fly away private void easterEggInteraction() { mCallback.playSoundOnce(R.raw.easter_egg); // Fade into the distance ObjectAnimator anim = ObjectAnimator.ofFloat(mImageUfo, "size", 1.0f, 0f); anim.setInterpolator(new AccelerateInterpolator()); anim.setDuration(ImageWithAlphaAndSize.ANIM_DURATION); anim.addListener( new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) {} @Override public void onAnimationEnd(Animator animation) { mImageUfo.setAlpha(ImageWithAlphaAndSize.INVISIBLE); } @Override public void onAnimationCancel(Animator animation) {} @Override public void onAnimationRepeat(Animator animation) {} }); anim.start(); }