package net.oschina.app; import java.io.File; import java.util.List; import net.oschina.app.common.FileUtils; import net.oschina.app.common.StringUtils; import net.oschina.app.ui.Main; import net.wolfcs.ui.MainActivity; import android.app.Activity; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.widget.LinearLayout; /** * 应用程序启动类:显示欢迎界面并跳转到主界面 * @author liux (http://my.oschina.net/liux) * @version 1.0 * @created 2012-3-21 */ public class AppStart extends Activity { final AppContext ac = (AppContext) getApplication(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final View view = View.inflate(this, R.layout.start, null); LinearLayout wellcome = (LinearLayout) view.findViewById(R.id.app_start_view); check(wellcome); setContentView(view); // 渐变展示启动屏 AlphaAnimation aa = new AlphaAnimation(0.3f, 1.0f); aa.setDuration(2000); view.startAnimation(aa); aa.setAnimationListener(new AnimationListener() { @Override public void onAnimationEnd(Animation arg0) { redirectTo(); } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationStart(Animation animation) { } }); // 兼容低版本cookie(1.5版本以下,包括1.5.0,1.5.1) AppContext appContext = (AppContext) getApplication(); String cookie = appContext.getProperty("cookie"); if (StringUtils.isEmpty(cookie)) { String cookie_name = appContext.getProperty("cookie_name"); String cookie_value = appContext.getProperty("cookie_value"); if (!StringUtils.isEmpty(cookie_name) && !StringUtils.isEmpty(cookie_value)) { cookie = cookie_name + "=" + cookie_value; appContext.setProperty("cookie", cookie); appContext.removeProperty("cookie_domain", "cookie_name", "cookie_value", "cookie_version", "cookie_path"); } } } /** * 检查是否需要换图片 * * @param view */ private void check(LinearLayout view) { String path = FileUtils.getAppCache(this, "welcomeback"); List<File> files = FileUtils.listPathFiles(path); if (!files.isEmpty()) { File f = files.get(0); long time[] = getTime(f.getName()); long today = StringUtils.getToday(); if (today >= time[0] && today <= time[1]) { view.setBackgroundDrawable(Drawable.createFromPath(f.getAbsolutePath())); } } } /** * 分析显示的时间 * * @param time * @return */ private long[] getTime(String time) { long res[] = new long[2]; try { time = time.substring(0, time.indexOf(".")); String t[] = time.split("-"); res[0] = Long.parseLong(t[0]); if (t.length >= 2) { res[1] = Long.parseLong(t[1]); } else { res[1] = Long.parseLong(t[0]); } } catch (Exception e) { } return res; } /** * 跳转到... */ private void redirectTo() { Intent intent = new Intent(this, MainActivity.class); startActivity(intent); finish(); } }