package com.replica.replicaisland; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import android.app.Activity; import android.content.Intent; import android.media.AudioManager; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; public class DifficultyMenuActivity extends Activity { private View mBabyButton; private View mKidsButton; private View mAdultsButton; private View mBackground; private View mBabyText; private View mKidsText; private View mAdultsText; private Animation mButtonFlickerAnimation; private Animation mFadeOutAnimation; private Animation mAlternateFadeOutAnimation; private View.OnClickListener sBabyButtonListener = new View.OnClickListener() { public void onClick(View v) { Intent i = new Intent(getBaseContext(), AndouKun.class); i.putExtras(getIntent()); i.putExtra("difficulty", 0); v.startAnimation(mButtonFlickerAnimation); mFadeOutAnimation.setAnimationListener(new StartActivityAfterAnimation(i)); mBackground.startAnimation(mFadeOutAnimation); mKidsButton.startAnimation(mAlternateFadeOutAnimation); mAdultsButton.startAnimation(mAlternateFadeOutAnimation); mBabyText.startAnimation(mAlternateFadeOutAnimation); mKidsText.startAnimation(mAlternateFadeOutAnimation); mAdultsText.startAnimation(mAlternateFadeOutAnimation); } }; private View.OnClickListener sKidsButtonListener = new View.OnClickListener() { public void onClick(View v) { Intent i = new Intent(getBaseContext(), AndouKun.class); i.putExtras(getIntent()); i.putExtra("difficulty", 1); v.startAnimation(mButtonFlickerAnimation); mFadeOutAnimation.setAnimationListener(new StartActivityAfterAnimation(i)); mBackground.startAnimation(mFadeOutAnimation); mBabyButton.startAnimation(mAlternateFadeOutAnimation); mAdultsButton.startAnimation(mAlternateFadeOutAnimation); mBabyText.startAnimation(mAlternateFadeOutAnimation); mKidsText.startAnimation(mAlternateFadeOutAnimation); mAdultsText.startAnimation(mAlternateFadeOutAnimation); } }; private View.OnClickListener sAdultsButtonListener = new View.OnClickListener() { public void onClick(View v) { Intent i = new Intent(getBaseContext(), AndouKun.class); i.putExtras(getIntent()); i.putExtra("difficulty", 2); v.startAnimation(mButtonFlickerAnimation); mFadeOutAnimation.setAnimationListener(new StartActivityAfterAnimation(i)); mBackground.startAnimation(mFadeOutAnimation); mBabyButton.startAnimation(mAlternateFadeOutAnimation); mKidsButton.startAnimation(mAlternateFadeOutAnimation); mBabyText.startAnimation(mAlternateFadeOutAnimation); mKidsText.startAnimation(mAlternateFadeOutAnimation); mAdultsText.startAnimation(mAlternateFadeOutAnimation); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.difficulty_menu); mBabyButton = findViewById(R.id.babyButton); mKidsButton = findViewById(R.id.kidsButton); mAdultsButton = findViewById(R.id.adultsButton); mBabyText = findViewById(R.id.babyText); mKidsText = findViewById(R.id.kidsText); mAdultsText = findViewById(R.id.adultsText); mBackground = findViewById(R.id.mainMenuBackground); mBabyButton.setOnClickListener(sBabyButtonListener); mKidsButton.setOnClickListener(sKidsButtonListener); mAdultsButton.setOnClickListener(sAdultsButtonListener); mButtonFlickerAnimation = AnimationUtils.loadAnimation(this, R.anim.button_flicker); mFadeOutAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_out); mAlternateFadeOutAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_out); // Keep the volume control type consistent across all activities. setVolumeControlStream(AudioManager.STREAM_MUSIC); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { boolean result = true; if (keyCode == KeyEvent.KEYCODE_BACK) { finish(); if (UIConstants.mOverridePendingTransition != null) { try { UIConstants.mOverridePendingTransition.invoke(DifficultyMenuActivity.this, R.anim.activity_fade_in, R.anim.activity_fade_out); } catch (InvocationTargetException ite) { DebugLog.d("Activity Transition", "Invocation Target Exception"); } catch (IllegalAccessException ie) { DebugLog.d("Activity Transition", "Illegal Access Exception"); } } } else { result = super.onKeyDown(keyCode, event); } return result; } protected class StartActivityAfterAnimation implements Animation.AnimationListener { private Intent mIntent; StartActivityAfterAnimation(Intent intent) { mIntent = intent; } public void onAnimationEnd(Animation animation) { mBabyButton.setVisibility(View.INVISIBLE); mBabyButton.clearAnimation(); mKidsButton.setVisibility(View.INVISIBLE); mKidsButton.clearAnimation(); mAdultsButton.setVisibility(View.INVISIBLE); mAdultsButton.clearAnimation(); startActivity(mIntent); finish(); // This activity dies when it spawns a new intent. if (UIConstants.mOverridePendingTransition != null) { try { UIConstants.mOverridePendingTransition.invoke(DifficultyMenuActivity.this, R.anim.activity_fade_in, R.anim.activity_fade_out); } catch (InvocationTargetException ite) { DebugLog.d("Activity Transition", "Invocation Target Exception"); } catch (IllegalAccessException ie) { DebugLog.d("Activity Transition", "Illegal Access Exception"); } } } public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } } }