package net.qiujuer.tips; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Toast; import net.qiujuer.genius.kit.handler.Run; import net.qiujuer.tips.factory.presenter.AppPresenter; import net.qiujuer.tips.view.activity.BaseActivity; import net.qiujuer.tips.view.activity.GuideActivity; import net.qiujuer.tips.view.activity.MainActivity; import net.qiujuer.tips.view.util.AnimationListener; public class LaunchActivity extends BaseActivity { private int mDoneCount = 0; private boolean mAlreadySkip = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_launch); iconIn(); Thread thread = new Thread("GraveTips-Launch-InitThread") { @Override public void run() { Application application = (Application) getApplication(); application.init(); skipOnDone(); } }; thread.setDaemon(true); thread.start(); } private void iconIn() { Animation anim = AnimationUtils.loadAnimation(this, R.anim.anim_launch_item_fade_in); anim.setStartOffset(480); anim.setAnimationListener(new AnimationListener() { @Override public void onAnimationEnd(Animation animation) { super.onAnimationEnd(animation); Animation anim = AnimationUtils.loadAnimation(LaunchActivity.this, R.anim.anim_launch_item_scale_in); anim.setAnimationListener(new AnimationListener() { @Override public void onAnimationEnd(Animation animation) { skipOnDone(); } }); View view = findViewById(R.id.launch_icon); view.setVisibility(View.VISIBLE); view.startAnimation(anim); } }); findViewById(R.id.content).startAnimation(anim); } private void skipOnDone() { if (mAlreadySkip || ((++mDoneCount) < 2)) return; mAlreadySkip = true; Run.getUiHandler().postDelayed(new Runnable() { @Override public void run() { skipByDelay(); } }, 1000); } private void skipByDelay() { Intent intent; if (AppPresenter.isFirstUse()) { Toast.makeText(this, R.string.app_welcome, Toast.LENGTH_LONG).show(); intent = new Intent(this, GuideActivity.class); } else { intent = new Intent(this, MainActivity.class); } startActivity(intent); finish(); } }