package android.marshon.likequanmintv.start;
import android.animation.Animator;
import android.animation.ValueAnimator;
import android.content.Intent;
import android.marshon.likequanmintv.R;
import android.marshon.likequanmintv.base.APP;
import android.marshon.likequanmintv.bean.AppStart;
import android.marshon.likequanmintv.event.BannerEvent;
import android.marshon.likequanmintv.librarys.http.rxjava.MSubscriber;
import android.marshon.likequanmintv.mvp.main.MainActivity;
import android.marshon.likequanmintv.mvp.recommend.interactor.RecommendFragmentInteractorImpl;
import android.marshon.likequanmintv.utils.WebContainerActivity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import com.google.gson.Gson;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import rx.Subscription;
/**
* Created by Marshon.Chen on 2016/6/1.
* DESC:
*/
public class SplashActivity extends AppCompatActivity implements Animator.AnimatorListener {
private static final int CODE_AD = 111;
private View rootView;
private RecommendFragmentInteractorImpl mInteractor=new RecommendFragmentInteractorImpl();
private Subscription mSubscription;
private static boolean hasAa;
Handler mhandler=new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.act_splash);
if (!APP.isInited){
mhandler.postDelayed(new Runnable() {
@Override
public void run() {
start();
initData();
}
},3000);
}else {
start();
initData();
}
}
private void initData() {
mSubscription = mInteractor.getStartInfo(new MSubscriber<JSONObject>() {
@Override
public void onNext(JSONObject appinfoJson) {
super.onNext(appinfoJson);
try {
JSONArray androidstartArray = appinfoJson.optJSONArray("androidstart");
JSONObject androidstartObject = androidstartArray.getJSONObject(0);
Gson mGson=new Gson();
JSONArray appfocusArray = appinfoJson.optJSONArray("app-focus");
EventBus.getDefault().postSticky(new BannerEvent(appfocusArray));
if (androidstartObject!=null){
//广告
final AppStart mAppStart=mGson.fromJson(androidstartObject.toString(), AppStart.class);
if (mAppStart!=null){
hasAa=true;
//去广告页面
mhandler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent=new Intent(SplashActivity.this, WebContainerActivity.class);
intent.putExtra(Intent.EXTRA_TITLE,""+mAppStart.title);
intent.putExtra(Intent.EXTRA_TEXT,""+mAppStart.link);
intent.putExtra("isAd",true);
startActivityForResult(intent,CODE_AD);
}
},1500);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
private void start() {
rootView = findViewById(R.id.main_root);
final View viewById = findViewById(R.id.tt);
ValueAnimator valueAnimator=ValueAnimator.ofFloat(0.3f,1.0f);
valueAnimator.setDuration(1500);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float alpha = (float) animation.getAnimatedValue();
rootView.setAlpha(alpha);
viewById.setScaleX(alpha);
viewById.setScaleY(alpha);
}
});
valueAnimator.addListener(this);
valueAnimator.start();
}
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
if (hasAa)return;
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
gotoMain();
}
private void gotoMain(){
String firstrun = "";
if (TextUtils.isEmpty(firstrun)){
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.anim_slide_in_right,R.anim.anim_slide_out_left);
// finish();
}else{
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.anim_slide_in_right,R.anim.anim_slide_out_left);
// finish();
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (RESULT_OK==resultCode&&requestCode==CODE_AD){
gotoMain();
}
}
@Override
protected void onDestroy() {
if (mSubscription!=null&&mSubscription.isUnsubscribed()){
mSubscription.unsubscribe();
}
super.onDestroy();
}
}