package org.aisen.weibo.sina.ui.activity.base;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import org.aisen.android.ui.activity.basic.BaseActivity;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.base.AppContext;
import org.aisen.weibo.sina.support.bean.AccountBean;
import org.aisen.weibo.sina.support.utils.AccountUtils;
import org.aisen.weibo.sina.ui.fragment.account.AccountFragment;
import org.aisen.weibo.sina.ui.fragment.account.WebLoginFragment;
import org.aisen.weibo.sina.ui.fragment.base.BizFragment;
/**
* Created by wangdan on 15/12/13.
*/
public class SplashActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ui_splash);
if (AppContext.isLoggedIn()) {
toMain(750);
}
else {
toLogin();
}
}
@Override
public void onDestroy() {
super.onDestroy();
mHandler.removeCallbacks(toMainRunnable);
}
private Handler mHandler = new Handler() {
};
private Runnable toMainRunnable = new Runnable() {
@Override
public void run() {
MainActivity.login();
if (AppContext.isLoggedIn()) {
MainActivity.runCheckAccountTask(AppContext.getAccount());
}
finish();
}
};
private void toMain(int delay) {
mHandler.postDelayed(toMainRunnable, delay);
}
private void toLogin() {
if (AccountUtils.queryAccount().size() == 0) {
WebLoginFragment.launch(this, WebLoginFragment.Client.aisen, null, null, BizFragment.REQUEST_CODE_AUTH);
}
else {
AccountFragment.launch(this);
finish();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == BizFragment.REQUEST_CODE_AUTH) {
if (resultCode == Activity.RESULT_CANCELED) {
new MaterialDialog.Builder(this)
.forceStacking(true)
.content(R.string.login_faild_remind)
.positiveText(R.string.login_ok)
.negativeText(R.string.login_exit)
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(MaterialDialog dialog, DialogAction which) {
toLogin();
}
})
.onNegative(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(MaterialDialog dialog, DialogAction which) {
finish();
}
})
.show();
}
else if (resultCode == Activity.RESULT_OK) {
AccountBean accountBean = (AccountBean) data.getSerializableExtra("account");
AccountUtils.newAccount(accountBean);
AccountUtils.setLogedinAccount(accountBean);
AppContext.setAccount(accountBean);
toMain(0);
}
}
}
}