package com.aiyou;
import android.app.Application;
import android.content.Context;
import android.text.TextUtils;
import android.widget.Toast;
import com.aiyou.bbs.bean.Favorite;
import com.aiyou.bbs.bean.Section;
import com.aiyou.bbs.utils.BBSManager;
import com.aiyou.iptv.utils.IptvManager;
import com.aiyou.map.data.MapHelper;
import com.aiyou.utils.AiYouManager;
import com.aiyou.utils.JsonHelper;
import com.aiyou.utils.NetWorkManager;
import com.aiyou.utils.SwitchManager;
import com.aiyou.utils.filecache.FileManager;
import com.aiyou.utils.thread.ThreadUtils;
import com.baidu.lbsapi.BMapManager;
import com.baidu.lbsapi.MKGeneralListener;
import com.baidu.mapapi.SDKInitializer;
import com.umeng.analytics.MobclickAgent;
import com.umeng.fb.push.FeedbackPush;
import com.umeng.message.PushAgent;
import com.umeng.update.UmengUpdateAgent;
/**
* @author sollian
*/
public class AiYouApplication extends Application {
private static AiYouApplication mInstance;
/**
* 百度地图
*/
public BMapManager mBMapManager;
/**
* 友盟推送
*/
public PushAgent mPushAgent;
public static AiYouApplication getInstance() {
return mInstance;
}
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
/**
* 初始化
*/
AiYouManager.getInstance(this);
NetWorkManager.getInstance(this);
SwitchManager.getInstance(this);
if (FileManager.checkSDCard()) {
removeExpiredCache();
} else {
Toast.makeText(getBaseContext(), "SD卡未安装或空间不足", Toast.LENGTH_SHORT).show();
}
try {
// 百度地图初始化
SDKInitializer.initialize(this);
initEngineManager(this);
} catch (Exception e) {
e.printStackTrace();
}
/**
* 友盟推送
*/
mPushAgent = PushAgent.getInstance(this);
mPushAgent.setDebugMode(false);
/**
* 友盟用户反馈
*/
FeedbackPush.getInstance(this).init(false);
/**
* 友盟自动更新
*/
// 非wifi环境更新开启,要放在updata()之前调用
UmengUpdateAgent.setUpdateOnlyWifi(SwitchManager.getInstance(this).getUpdateOnlyWifi());
UmengUpdateAgent.update(this);
/**
* 友盟在线参数—— 获取帖子尾巴
*/
MobclickAgent.updateOnlineConfig(this);
BBSManager.getInstance(this).setAppTail(MobclickAgent.getConfigParams(this, "app_tail"));
//获取iptv频道列表
IptvManager.getChanelList();
MapHelper.initMapDatas(this);
initSections();
initFavorite();
}
/**
* 清理过期文件
*/
private void removeExpiredCache() {
ThreadUtils.execute(new Runnable() {
@Override
public void run() {
FileManager.removeExpiredCache(FileManager.DIR_IMG);
FileManager.removeExpiredCache(FileManager.DIR_LARGEIMG);
}
});
}
private void initSections() {
if (!NetWorkManager.getInstance(getBaseContext()).isNetAvailable()) {
return;
}
ThreadUtils.execute(new Runnable() {
@Override
public void run() {
Section.updateRootSection(AiYouApplication.getInstance());
}
});
}
private void initFavorite() {
if (Favorite.mFavorite != null) {
return;
}
if (!NetWorkManager.getInstance(getBaseContext()).isNetAvailable()) {
return;
}
ThreadUtils.execute(new Runnable() {
@Override
public void run() {
String strJson = Favorite.getFavorite(AiYouApplication.getInstance(), 0);
if (!TextUtils.isEmpty(strJson) && JsonHelper.checkError(strJson) == null) {
Favorite.mFavorite = new Favorite(strJson);
}
}
});
}
private void initEngineManager(Context context) {
if (mBMapManager == null) {
mBMapManager = new BMapManager(context);
}
}
public static class MyGeneralListener implements MKGeneralListener {
@Override
public void onGetPermissionState(int iError) {
}
}
}