package com.targroup.coolapkconsole.activities;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Handler;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.content.DialogInterface;
import android.content.Intent;
import android.widget.Button;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import com.targroup.coolapkconsole.R;
import com.targroup.coolapkconsole.model.UserSave;
import com.targroup.coolapkconsole.utils.CoolapkApi;
import com.targroup.coolapkconsole.utils.JsoupUtil;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import rx.Subscriber;
/**
* Created by Administrator on 2017/1/30.
* Too Naive Splash...
* @author liangyuteng0927
*/
public class SplashActivity extends Activity {
private Subscriber<Boolean> mCheckLoginSubscriber = new Subscriber<Boolean>() {
@Override
public void onCompleted() {
mProgressBar.setVisibility(View.GONE);
}
@Override
public void onError(Throwable e) {
mProgressBar.setVisibility(View.GONE);
e.printStackTrace();
new AlertDialog.Builder(SplashActivity.this, R.style.AppTheme)
.setMessage(R.string.err_login)
.setCancelable(false)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).show();
}
@Override
public void onNext(Boolean aBoolean) {
if (!aBoolean) {
mLoginButton.setVisibility(View.VISIBLE);
mLoginButton.setAnimation(AnimationUtils.loadAnimation(getApplicationContext(),R.anim.anim_splash_button));
} else {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(SplashActivity.this, MainActivity.class));
finish();
}
},1000);
}
}
@Override
public void onStart () {
mProgressBar.setVisibility(View.VISIBLE);
}
};
@BindView(R.id.splash_background)
View background;
@BindView(R.id.splash_content)
RelativeLayout mSplashContent;
@BindView(R.id.splash_button_login)
Button mLoginButton;
@BindView(R.id.splash_progress)
ProgressBar mProgressBar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
ButterKnife.bind(this);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
ViewTreeObserver observer = background .getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
background.getViewTreeObserver().removeGlobalOnLayoutListener(this);
Animation animation = AnimationUtils.loadAnimation(SplashActivity.this, R.anim.anim_splash_image);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation a) {
execute();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
if (PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("ui_splashanim",true))
background.startAnimation(animation);
else
execute();
}
});
}
@Override
public void onDestroy () {
if (!mCheckLoginSubscriber.isUnsubscribed())
mCheckLoginSubscriber.unsubscribe();
super.onDestroy();
}
@Override
public void onStart () {
super.onStart();
}
private void execute(){
mSplashContent.setVisibility(View.VISIBLE);
mSplashContent.setAnimation(AnimationUtils.loadAnimation(SplashActivity.this,R.anim.anim_splash_button));
CoolapkApi.checkLogin(this).subscribe(mCheckLoginSubscriber);
}
@OnClick(R.id.splash_button_login)
public void login () {
startActivity(new Intent(SplashActivity.this, AuthActivity.class));
finish();
}
}