package com.wisedu.scc.love.activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.wisedu.scc.love.R;
import com.wisedu.scc.love.activity.base.BaseActivity;
import com.wisedu.scc.love.application.LoveApplication;
import com.wisedu.scc.love.config.Define;
import com.wisedu.scc.love.sqlite.ModelFactory;
import com.wisedu.scc.love.sqlite.SqlBuilder;
import com.wisedu.scc.love.sqlite.SqliteHelper;
import com.wisedu.scc.love.utils.BitmapUtil;
import com.wisedu.scc.love.utils.CommonUtil;
import com.wisedu.scc.love.utils.TerminalHelper;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
import java.io.File;
/**
* Created by JZ on 2015/3/5.
*/
@EActivity(R.layout.activity_splash)
public class SplashActivity extends BaseActivity{
@Bean
public TerminalHelper terminalHelper;
/*定义消息常量*/
private static final int LOAD_SPLASH_IMAGE = 0;
private static final int DO_INIT_TASK = 1;
private static final int TO_LOGIN_ACTIVITY = 2;
private static final int TO_MAIN_ACTIVITY = 3;
private String splashUri = "drawable://" + R.drawable.splash;
@Bean
public Define define;
@Bean
public SqliteHelper sqliteHelper;
@ViewById(R.id.splashImage)
public ImageView splashImage;
// 处理器
private Handler splashHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case LOAD_SPLASH_IMAGE:
loadSplash();
break;
case DO_INIT_TASK:
initTask();
break;
case TO_LOGIN_ACTIVITY:
toLoginActivity();
break;
case TO_MAIN_ACTIVITY:
toMainActivity();
break;
}
}
};
@AfterViews
public void doAfterViews(){
splashHandler.sendEmptyMessage(LOAD_SPLASH_IMAGE);
}
/*加载图片*/
public void loadSplash(){
ImageLoader.getInstance().displayImage(
splashUri, // 加载图片地址
splashImage, // 目标图片控件
Define.NORMAL_OPTIONS,
new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
CommonUtil.shortToast(SplashActivity.this, "网络不通,请检查网络设置");
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
if (loadedImage != null) {
splashImage.setImageBitmap(loadedImage);
splashImage.setScaleType(ImageView.ScaleType.FIT_XY);
splashHandler.sendEmptyMessage(DO_INIT_TASK);
}
}
@Override
public void onLoadingCancelled(String imageUri, View view) {}
});
}
/*初始化资源*/
public void initTask(){
new Thread(new Runnable() {
@Override
public void run() {
try {
// 在此初始化资源
dealInit();
Thread.sleep(2000);
splashHandler.sendEmptyMessage(TO_LOGIN_ACTIVITY);
} catch (Exception e){
e.printStackTrace();
}
}
}).start();
}
/*跳转至登录页*/
public void toLoginActivity(){
if(checkLogin()){
splashHandler.sendEmptyMessage(TO_MAIN_ACTIVITY);
} else {
startActivity(new Intent(this, LoginActivity_.class));
SplashActivity.this.finish();
}
}
/*跳转至主页*/
public void toMainActivity(){
startActivity(new Intent(this, MainActivity_.class));
SplashActivity.this.finish();
}
/**
* 检查是否已登录
* @return
*/
private boolean checkLogin(){
return sqliteHelper.check(ModelFactory.getLoginTableName()
, SqlBuilder.geneWhere("=", "status"), new String[]{"on"});
}
/**
* TODO 初始化要做的事情
*/
private void dealInit(){
/*sqliteHelper.dropTable(ModelFactory.getLoginTableName());
sqliteHelper.dropTable(ModelFactory.getUserTableName());*/
// 判断默认头像是否存在,不存在则复制到SD卡
File file = BitmapUtil.getImageFile(getApplicationContext(), LoveApplication.DEFAULT_AVATAR);
if(!file.exists() || file.isFile()){
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.avatar_default);
BitmapUtil.saveBitmap(file, bitmap);
}
}
}