/**============================================================
* 版权: 久其软件 版权所有 (c)
* 包: com.jiuqi.njt.ui
* 修改记录:
* 日期 作者 内容
* =============================================================
* 2013-7-31 liyue
* ============================================================*/
package com.jiuqi.njt.ui;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import com.jiuqi.njt.R;
import com.jiuqi.njt.data.CheckStateInterface;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.OptsharepreInterface;
import com.jiuqi.njt.db.ModuleDBHelper;
import com.jiuqi.njt.model.CModuleBean;
import com.jiuqi.njt.register.RegisterUtils;
import com.jiuqi.njt.register.city.AllProvince;
import com.jiuqi.njt.register.city.City;
import com.jiuqi.njt.register.city.CityBean;
import com.jiuqi.njt.util.Constants;
import com.jiuqi.njt.util.DateUtil;
import com.jiuqi.njt.util.ModuleUtil;
import com.jiuqi.njt.util.login.AutoLoginTask;
/**
* <p>
* SplashActivity
* </p>
*
* <p>
* Copyright: 版权所有 (c)<br>
* Company: 久其
* </p>
*
* @author liyue
* @version 2013-7-31
*/
public class SplashActivity extends Activity {
private boolean _active = true;
private OptsharepreInterface sharePre;
private MyApp application;
// 初始化8个模块
private ModuleUtil moduleUtil;
private List<String> userModuleStrList;
private List<CModuleBean> userModuleBeansList;
private List<String> roleModuleStrList;
private List<CModuleBean> roleModuleBeansList;
private ModuleDBHelper helper = null;
private final static String TAG = "SplashActivity";
// private WriteFile writeFile = new WriteFile(TAG+ JqydDateUtil.getDateDayOne(new Date()));
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Intent intent= getIntent();
String name =intent.getStringExtra("name");
String pwd = intent.getStringExtra("pwd");
sharePre = new OptsharepreInterface(SplashActivity.this);
checkLoginState(name, pwd);
/**
* 如果数据库中没有天气预报行政区划数据,启动线程解析获取数据
*/
if (!sharePre.getPres(Constants.SAVECITYDATA).equals("1")) {
/**
* 启动线程去读取RAW文件夹下面的行政区划数据,
*/
new Thread(new City(SplashActivity.this)).start();
// new Thread(new Runnable() {
// @Override
// public void run() {
// new AllProvince().getProvinceData(SplashActivity.this);
// }
// }).start();
}
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
final View view = View.inflate(this, R.layout.splash_activity, null);
setContentView(view);
this.setTitle("久其农机通");
application = (MyApp) getApplicationContext();
// 渐变展示启动屏
AlphaAnimation aa = new AlphaAnimation(0.3f, 1.0f);
aa.setDuration(2000);
view.startAnimation(aa);
aa.setAnimationListener(new AnimationListener()
{
@Override
public void onAnimationEnd(Animation arg0)
{
toMainActivity();
}
@Override
public void onAnimationRepeat(Animation animation)
{
}
@Override
public void onAnimationStart(Animation animation)
{
// 检测网络状况
if (new CheckStateInterface(SplashActivity.this).checkConnection())
{
checkLoginState();// 检测是否自动登录
}
}
});
deleteMoreFile();
}
private void deleteMoreFile() {
// TODO Auto-generated method stub
int count = 6;
// DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","Home1Activity", count);
// DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","SplashActivity", count);
// DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","ModulerCustomActivity", count);
// DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","AutoLoginTask", count);
// DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","GetRoleAndUserModuleTask", count);
try {
DateUtil.deleteMoreFile(SplashActivity.this, "", "crash-", count);
DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","LXRBRZ-UPLOCATION", count);
DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","LXRBRZ-UPPLAN", count);
DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","LXRBRZ-UPLOCATIONMGR", count);
DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","LOCATIONUTIL", count);
DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","Retransmission", count);
DateUtil.deleteMoreFile(SplashActivity.this, "lxsb_recordLog","WearthActivityNew", count);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
_active = false;
}
return true;
}
/**
* 检查自动登录状态
*/
private void checkLoginState(String name,String pwd) {
Log.e("mly", name + "------" + pwd );
// 获取用户名密码
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(pwd))
{
sharePre.putPres("isAutoLogin", "1");
sharePre.putPres("account", name);
sharePre.putPres("password", pwd);
// handler.sendEmptyMessage(100);
}
}
/**
* 检查自动登录状态
*/
private void checkLoginState() {
String isAuto = sharePre.getPres("isAutoLogin");
Log.e(TAG, "自动登录"+"1".equals(isAuto));
if ("1".equals(isAuto))
{
// 获取用户名密码
String account = sharePre.getPres("account");
String pwd = sharePre.getPres("password");
if (!TextUtils.isEmpty(account) && !TextUtils.isEmpty(pwd))
{
// Intent intent = new Intent(SplashActivity.this,AutoLoginService.class);
// intent.putExtra("NOTCHECK", true);
// startService(new Intent(SplashActivity.this,AutoLoginService.class));
// handler.sendEmptyMessage(100);
// new AutoLoginTask(SplashActivity.this).execute();
// new AutoLoginTask(SplashActivity.this).execute();
}
}
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
case 100:
new AutoLoginTask(SplashActivity.this).execute();
// RegisterUtils.loginSuccess(SplashActivity.this);
break;
default:
break;
}
}
};
@SuppressLint("NewApi")
private void toMainActivity() {
String isAuto = sharePre.getPres("isAutoLogin");
if (!showHelpOnFirstLaunch() && sharePre.getPres("isWelcome").equals("yes"))
{
if ("1".equals(isAuto)) {
startActivity(new Intent(SplashActivity.this, LoginActivityNew.class));
}else{
// 显示过
startActivity(new Intent(SplashActivity.this, NjtMainActivity.class));
}
}
else
{
// // 1、初次打开应用时把数据默认到数据库
// helper = new ModuleDBHelper(this);
// if ((helper.queryRoleModule(sharePre.getPres("roleguid")).size() == 0)&& (helper.queryUserModule(sharePre.getPres("guid")).size() == 0))
// {
// initializeUserModuleData();
// initializeRoleModuleData();
// }
// else
// {
// Log.wtf("177", "数据库有内容");
// }
if ("1".equals(isAuto)) {
handler.sendEmptyMessage(100);
}
startActivity(new Intent(SplashActivity.this, GuideActivity.class));
}
finish();
}
/**
*
* Description: 判断是否是新版本 Title: showHelpOnFirstLaunch
*/
private boolean showHelpOnFirstLaunch() {
try {
PackageInfo info = getPackageManager().getPackageInfo("com.jiuqi.njt", 0);
String currentVersion = String.valueOf(info.versionCode);
String lastVersion = sharePre.getPres("lastVersionCode");
System.out.println("curr:" + currentVersion + "la:" + lastVersion);
if (!currentVersion.equals(lastVersion)) {
sharePre.putPres("lastVersionCode", currentVersion);
return true;
}
} catch (PackageManager.NameNotFoundException e) {
}
return false;
}
// 在初次打开应用时把用户模块数据默认到数据库中方法
@SuppressLint("NewApi")
private void initializeUserModuleData() {
moduleUtil = new ModuleUtil();
userModuleStrList = new ArrayList<String>();
userModuleBeansList = new ArrayList<CModuleBean>();
List<CModuleBean> queryList = new ArrayList<CModuleBean>();
userModuleStrList = moduleUtil.getUserModuleDefalut();
userModuleBeansList = getCModuleBeanList(userModuleStrList);
helper.addUserModule(userModuleBeansList, sharePre.getPres("guid"));
queryList = helper.queryUserModule(sharePre.getPres("guid"));
}
// 在初次打开应用时把角色模块数据默认到数据库中方法
@SuppressLint("NewApi")
private void initializeRoleModuleData() {
moduleUtil = new ModuleUtil();
roleModuleStrList = new ArrayList<String>();
roleModuleBeansList = new ArrayList<CModuleBean>();
roleModuleStrList = moduleUtil.getRoleModuleDefalut();
roleModuleBeansList = getCModuleBeanList(roleModuleStrList);
helper.addRoleModule(roleModuleBeansList);
roleModuleBeansList = helper.queryRoleModule(sharePre
.getPres("roleguid"));
}
// 把List<String>拆分再转换成List<CModule>集合的方法
@SuppressLint("NewApi")
private List<CModuleBean> getCModuleBeanList(List<String> list) {
List<CModuleBean> moduleBeanslist = new ArrayList<CModuleBean>();
CModuleBean cmBean;
for (int i = 0; i < list.size(); i++) {
String sigleModulestr = list.get(i);
String[] strarray = sigleModulestr.split(",");
cmBean = new CModuleBean();
cmBean.setCode(Integer.parseInt(strarray[0]));
cmBean.setpCode(Integer.parseInt(strarray[1]));
cmBean.setName(strarray[2]);
cmBean.setImage(strarray[3]);
if (strarray[4].equals("1")) {
cmBean.setShow(true);
} else {
cmBean.setShow(false);
}
cmBean.setOrderNumber(Integer.parseInt(strarray[5]));
cmBean.setLevel(Integer.parseInt(strarray[6]));
cmBean.setTypeModule("1");
if (strarray[7].equals("1")) {
cmBean.setDefaultDisplay(true);
} else {
cmBean.setDefaultDisplay(false);
}
cmBean.setUrl("");
cmBean.setRoleGuid(sharePre.getPres("roleguid"));
moduleBeanslist.add(cmBean);
}
return moduleBeanslist;
}
}