package com.mgw.member.ui.activity;
/**create by hyb
* modify by hy
* */
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.SystemClock;
import android.view.Window;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import com.hx.hxchat.db.LinkerDao;
import com.mgw.member.R;
import com.mgw.member.http.HttpHelper;
import com.mgw.member.manager.BaseApplication;
import com.mgw.member.manager.ThreadManager;
import com.mgw.member.ottoEvent.BusProvider;
import com.mgw.member.service.Myservice;
import com.mgw.member.ui.activity.login.LoginActivity;
import com.mgw.member.uitls.AppManager;
import com.mgw.member.uitls.LogUtils;
import com.mgw.member.uitls.NetworkProber;
import com.mgw.member.uitls.PreferenceHelper;
import com.mgw.member.uitls.UIUtils;
public class FirstActivity extends MGWBaseActivity {
private static final String TAG = FirstActivity.class.getSimpleName();
/** 解压路径 */
private static final String htmlsavePath = Environment.getExternalStorageDirectory().getPath() + "/mgw" + "/unziphtml";
/** guide解压路径 */
private static final String imagesavePath = Environment.getExternalStorageDirectory().getPath() + "/mgw" + "/guideimage";
/**
* 网络连接错误
*/
public final static int MESSAGE_TYPE_NETERROR = 208;
/**
* 动画播放完毕
*/
public final static int MESSAGE_TYPE_ANIMOVER = 209;
public final static int MESSAGE_TYPE_PLAYANIM = 210;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
private boolean isUpdateApping = false;
@Override
protected void initView() {
super.initView();
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_first);
AppManager.getAppManager().addActivity(this);
Intent intent = new Intent(this, Myservice.class);
startService(intent);
CheckNet();
// initData();
ThreadManager.getSinglePool().execute(new InitDbTask());
//
SharedPreferences.Editor sharedata = getSharedPreferences("mgw_data", 0).edit();
sharedata.putString("mgw_pwd", "");
sharedata.putString("mgw_account", "");
sharedata.commit();
//
}
@Override
protected void onDestroy() {
super.onDestroy();
// 结束Activity&从堆栈中移除
AppManager.getAppManager().finishActivity(this);
}
/**
* 跳转到其他UI Created by huyan
*/
private void jumpToOtherUI() {
Animation animation = new AlphaAnimation(1.0f, 0.6f);
animation.setDuration(3000);
animation.setFillAfter(true);
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
m_handler.sendEmptyMessage(MESSAGE_TYPE_ANIMOVER);
}
});
findViewById(R.id.root).startAnimation(animation);
}
@Override
protected void onResume() {
super.onResume();
BusProvider.getInstance().register(this);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
BusProvider.getInstance().unregister(this);
}
/**
* 消息处理handler
*/
private final Handler m_handler = new Handler() {
@Override
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case MESSAGE_TYPE_NETERROR:
// Toast.makeText(getApplicationContext(), "网络异常,美顾问即将退出!",
// Toast.LENGTH_SHORT).show();
SharedPreferences sharedPreferences = getSharedPreferences("mgw", Context.MODE_PRIVATE);
Editor edit = sharedPreferences.edit();
edit.putBoolean("logined", false);
edit.commit();
NetworkProber.setNetworkMethod(FirstActivity.this);
break;
case MESSAGE_TYPE_ANIMOVER:
UIUtils.postDelayed(new Runnable() {
@Override
public void run() {
int i=0;
//防止低端机型 运算过慢 导致anr异常
while (BaseApplication.getApplication().isHtmlupdate&&i<30) {
new Thread(new Runnable() {
@Override
public void run() {
SystemClock.sleep(100);
}
}).start();
LogUtils.i(TAG, "SystemClock.sleep"+i);
i++;
}
SharedPreferences sharedPreferences = getSharedPreferences("mgw_data", Context.MODE_PRIVATE);
int useCount = sharedPreferences.getInt("useCount", 0);
boolean logined = sharedPreferences.getBoolean("logined", false);
if (!BaseApplication.getApplication().isApKupdate) {
if (useCount < 1) {
show2Splash();
} else {
Show2Login();
}
useCount++;
Editor edit = sharedPreferences.edit();
edit.putInt("useCount", useCount);
edit.commit();
} else {
LogUtils.i(TAG, "正在下载新应用");
Intent intent = new Intent(mContext, UpdateAlertDialog.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("fv_exp", BaseApplication.getApplication().fv_exp);
intent.putExtra("FVersion_Name", BaseApplication.getApplication().FVersion_Name);
intent.putExtra("FVersion_FileURL", BaseApplication.getApplication().FVersion_FileURL);
mContext.startActivity(intent);
}
}
}, 0);
break;
case MESSAGE_TYPE_PLAYANIM:
jumpToOtherUI();
break;
default:
break;
}
};
};
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
CheckNet();
};
/** 检查网络连接是否可用 */
public void CheckNet() {
new Thread(new Runnable() {
@Override
public void run() {
if (!HttpHelper.isMobileNetworkActive(FirstActivity.this) && !HttpHelper.isNetworkAvailable(FirstActivity.this)) {
m_handler.sendEmptyMessage(MESSAGE_TYPE_NETERROR);
} else {
m_handler.sendEmptyMessage(MESSAGE_TYPE_PLAYANIM);
}
}
}).start();
}
/** 获取当前apk版本 */
public String getVersionName() {
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_CONFIGURATIONS);
return pInfo.versionName;
} catch (Exception e) {
e.printStackTrace();
}
return "1.0";
}
/** 获取当前html版本 */
public String gethtmlVersionName() {
try {
SharedPreferences sp = getSharedPreferences("mgw_data", 0);
return sp.getString("htmlVersion", "1");
} catch (Exception e) {
}
return "1";
}
/**
* 进入登录页面
*/
private void Show2Login() {
// SharedPreferences.Editor sharedata = getSharedPreferences("mgw_data",
// 0).edit();
// sharedata.putString("mgw_data", "");
// sharedata.putString("mgw_pwd", "");
// sharedata.commit();
startActivity(new Intent(this, LoginActivity.class));
finish();
}
/** 跳转到引导页面 */
private void show2Splash() {
startActivity(new Intent(this, SplashActivity.class));
finish();
}
/**
* 初始化数据库操作
*
* @author hy
*/
private class InitDbTask implements Runnable {
@Override
public void run() {
if (PreferenceHelper.getInstance(mContext).getAppLogined()) {
// try {
// BaseApplication.getApplication().getFriendsInfo();
// } catch (EaseMobException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// LogUtils.e(TAG, e.toString());
// }
}
// CheckLinker();
// if (count < 1) {
// FileUtils.CopyAssets(mContext, "image", imagesavePath);
// }
}
}
// huanxing start
@Override
protected void onStart() {
super.onStart();
// new Thread(new Runnable() {
// public void run() {
// if (MGWHXSDKHelper.getInstance().isLogined()) {
// // ** 免登陆情况 加载所有本地群和会话
// //不是必须的,不加sdk也会自动异步去加载(不会重复加载);
// //加上的话保证进了主页面会话和群组都已经load完毕
// long start = System.currentTimeMillis();
// EMGroupManager.getInstance().loadAllGroups();
// EMChatManager.getInstance().loadAllConversations();
// long costTime = System.currentTimeMillis() - start;
// //等待sleeptime时长
// if (sleepTime - costTime > 0) {
// try {
// Thread.sleep(sleepTime - costTime);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// }
// //进入主页面
// startActivity(new Intent(SplashActivity.this, MainActivity.class));
// finish();
// }else {
// try {
// Thread.sleep(sleepTime);
// } catch (InterruptedException e) {
// }
// startActivity(new Intent(SplashActivity.this, LoginActivity.class));
// finish();
// }
// }
// }).start();
}
/**
* 获取当前应用程序的版本号
*/
private String getVersion() {
String st = getResources().getString(R.string.Version_number_is_wrong);
PackageManager pm = getPackageManager();
try {
PackageInfo packinfo = pm.getPackageInfo(getPackageName(), 0);
String version = packinfo.versionName;
return version;
} catch (NameNotFoundException e) {
e.printStackTrace();
return st;
}
}
// huanxing start
public static final int REQUEST_CODE_SETNICK = 1;
/*
* 检查临时联系人表
*/
private void CheckLinker() {
String strCreateTableSql = "CREATE TABLE " + LinkerDao.TABLE_NAME + " (" + LinkerDao.COLUMN_NAME_NICK + " TEXT, " + LinkerDao.COLUMN_NAME_UserID + " TEXT, " + LinkerDao.COLUMN_NAME_PHOTO
+ " TEXT, " + LinkerDao.COLUMN_NAME_ID + " TEXT PRIMARY KEY);";
if (BaseApplication.getApplication().GetDbhandler().tabIsExist(LinkerDao.TABLE_NAME)) {
if (!BaseApplication.getApplication().GetDbhandler().isExistField(LinkerDao.TABLE_NAME, LinkerDao.COLUMN_NAME_NICK)
|| !BaseApplication.getApplication().GetDbhandler().isExistField(LinkerDao.TABLE_NAME, LinkerDao.COLUMN_NAME_ID)
|| !BaseApplication.getApplication().GetDbhandler().isExistField(LinkerDao.TABLE_NAME, LinkerDao.COLUMN_NAME_PHOTO)
|| !BaseApplication.getApplication().GetDbhandler().isExistField(LinkerDao.TABLE_NAME, LinkerDao.COLUMN_NAME_UserID)
|| !BaseApplication.getApplication().GetDbhandler().isExistField(LinkerDao.TABLE_NAME, LinkerDao.COLUMN_LINKER_USER)) {
BaseApplication.getApplication().GetDbhandler().LocalExecuteUpdate("drop table " + LinkerDao.TABLE_NAME);
BaseApplication.getApplication().GetDbhandler().LocalExecuteUpdate(strCreateTableSql);
}
} else {
BaseApplication.getApplication().GetDbhandler().LocalExecuteUpdate(strCreateTableSql);
}
}
// @Subscribe
// public void AppShouldUpdateEvent(AppShouldUpdateEvent event) {
// if (event.isCanUpdate()) {
// isUpdateApping=true;
// Intent intent = new Intent(mContext, UpdateAlertDialog.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// intent.putExtra("fv_exp", event.getFv_exp());
// intent.putExtra("FVersion_Name", event.getFVersion_Name());
// intent.putExtra("FVersion_FileURL", event.getFVersion_FileURL());
// mContext.startActivity(intent);
//
// }
//
// }
}