package com.hyrt.cei.application;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import com.hyrt.cei.db.DataHelper;
//import com.hyrt.cei.ui.information.funId;
//import com.hyrt.cei.ui.main.Welcome;
import com.hyrt.cei.util.AsyncImageLoader;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.WriteOrRead;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.ColumnEntry;
import com.hyrt.cei.vo.Courseware;
import com.hyrt.cei.vo.ReportColumn;
import com.hyrt.cei.vo.funId;
import com.hyrt.cei.webservice.service.Service;
import com.hyrt.ceiphone.WelcomeActivity;
import com.hyrt.ceiphone.exception.CrashHandler;
import android.app.Application;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class CeiApplication extends Application {
public String nowStart;
public int bgindex;
public AsyncImageLoader asyncImageLoader;
public DataHelper dataHelper;
public ColumnEntry columnEntry;
private Object INSTANCE_LOCK = new Object();
public List<funId> buyEconData;
public List<funId> buyReportData;
public List<ReportColumn> ReportColumns;
public List<Class> activitys;
@Override
public void onCreate() {
activitys = new ArrayList<Class>();
asyncImageLoader = new AsyncImageLoader(this);
columnEntry = new ColumnEntry();
buyEconData = new ArrayList<funId>();
buyReportData = new ArrayList<funId>();
ReportColumns=new ArrayList<ReportColumn>();
synchronized (INSTANCE_LOCK) {
if (dataHelper == null) {
dataHelper = new DataHelper(this);
}
}
initSdCard();
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
//URL url;
//HttpURLConnection conn;
try {
/*url = new URL(MyTools.url);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(2000);
conn.setReadTimeout(3000);
conn.setUseCaches(false);
conn.setRequestProperty("Charset", "utf8");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Accept-Encoding",
"gzip,deflate");
if(conn.getContentLength() > 100)
WelcomeActivity.isGoUnline = false;
else
WelcomeActivity.isGoUnline = true;
conn.disconnect();*/
//如果在线则自动更新学习状态
if(columnEntry != null && dataHelper != null && columnEntry.getUserId() != null){
List<Courseware> coursewares = dataHelper.getStudyRecord();
for(int i=0;i<coursewares.size();i++){
if(("1").equals(coursewares.get(i).getIscompleted() )
//&& ("-1").equals(coursewares.get(i).getTimePoint())
&& coursewares.get(i).getUploadTime() > 0){
String rs = Service.saveUserClassTime(columnEntry.getUserId(),coursewares.get(i));
if(XmlUtil.parseReturnCode(rs).equals("1")){
coursewares.get(i).setTimePoint("0");
coursewares.get(i).setUploadTime(0);
dataHelper.updatePlayRecord( coursewares.get(i));
}
}
}
}
Thread.sleep(100000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
/*CrashHandler crashHandler = CrashHandler.getInstance();
crashHandler.init(getApplicationContext());*/
super.onCreate();
}
private void initSdCard() {
File filePath = new File(MyTools.RESOURCE_PATH);
if (!filePath.exists())
filePath.mkdirs();
File coursewareFilePath = new File(MyTools.RESOURCE_PATH
+ MyTools.KJ_PARTPATH);
if (!coursewareFilePath.exists())
coursewareFilePath.mkdirs();
File bgFilePath = new File(MyTools.RESOURCE_PATH + "pdf/");
if (!bgFilePath.exists())
bgFilePath.mkdirs();
}
public boolean isNet() {
if(WelcomeActivity.isGoUnline)
return false;
ConnectivityManager cManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cManager.getActiveNetworkInfo();
if (info != null && info.isAvailable()) {
return true;
} else {
return false;
}
}
/**
* 当内存被清除时,加载此方法
*/
@Override
public void onLowMemory() {
columnEntry.getColumnEntryChilds().clear();
columnEntry.getSelectColumnEntryChilds().clear();
String result = WriteOrRead.read(MyTools.nativeData,
WelcomeActivity.INITRESOURCES_FILENAME);
XmlUtil.parseInitResources(result, columnEntry);
// 请求个人资源100%
result = WriteOrRead.read(MyTools.nativeData,
WelcomeActivity.INITSELFRESOURCES_FILENAME);
XmlUtil.parseInitSelfResources(result, columnEntry);
super.onLowMemory();
}
}