package com.forfan.bigbang.component.activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import com.forfan.bigbang.BigBangApp; import com.forfan.bigbang.R; import com.forfan.bigbang.component.activity.setting.SettingActivity; import com.forfan.bigbang.component.base.BaseActivity; import com.forfan.bigbang.util.ConstantUtil; import com.forfan.bigbang.util.UrlCountUtil; import com.shang.commonjar.contentProvider.SPHelper; import com.umeng.onlineconfig.OnlineConfigAgent; import java.util.concurrent.TimeUnit; import rx.Observable; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Func1; public class SplashActivity extends BaseActivity { public static final String KEY = "key" +getVersion(BigBangApp.getInstance()); private static final java.lang.String GOTO_HOME = "go_home"; private static final java.lang.String GOTO_INTRO = "go_intro"; public static String getVersion(Context context) { try { PackageInfo pi = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); return pi.versionName; } catch (PackageManager.NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); return "1"; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { Intent intent = getIntent(); if (intent.getAction().equals(ConstantUtil.NOTIFY_SCREEN_CAPTURE_OVER_BROADCAST)) { UrlCountUtil.onEvent(UrlCountUtil.CLICK_NOFITY_SCREEN); sendBroadcast(new Intent(ConstantUtil.SCREEN_CAPTURE_OVER_BROADCAST)); finish(); return; } else if (intent.getAction().equals(ConstantUtil.NOTIFY_UNIVERSAL_COPY_BROADCAST)) { UrlCountUtil.onEvent(UrlCountUtil.CLICK_NOFITY_COPY); sendBroadcast(new Intent(ConstantUtil.UNIVERSAL_COPY_BROADCAST)); finish(); return; } }catch (Throwable e){} setContentView(R.layout.activity_splash); OnlineConfigAgent.getInstance().updateOnlineConfig(getApplicationContext()); setUpSplash(); } private void setUpSplash() { Observable.timer(2, TimeUnit.SECONDS) .compose(bindToLifecycle()) .observeOn(AndroidSchedulers.mainThread()) .flatMap(new Func1<Long, Observable<String>>() { @Override public Observable<String> call(Long aLong) { boolean isShowIntro = SPHelper.getBoolean(KEY, false); if (isShowIntro) return Observable.just(GOTO_HOME); else return Observable.just(GOTO_INTRO); } }) .subscribe(s -> { if (s.equals(GOTO_HOME)) { if(SPHelper.getBoolean(PreSettingActivity.SHOW,true)){ startActivity(new Intent(SplashActivity.this, PreSettingActivity.class)); }else { startActivity(new Intent(SplashActivity.this, SettingActivity.class)); } finish(); } else { startActivity(new Intent(SplashActivity.this, IntroActivity.class)); finish(); } }); } }