package com.mugua.mgvideo;
|
|
import android.app.Application;
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.graphics.Bitmap.Config;
|
import android.util.Log;
|
|
import com.alibaba.android.arouter.launcher.ARouter;
|
import com.alibaba.baichuan.android.trade.AlibcTradeSDK;
|
import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback;
|
import com.baidu.mobads.AppActivity;
|
import com.fun.xm.FSPlayer;
|
import com.funshion.playsdk.callback.FunshionPlayInitCallback;
|
import com.funshion.playsdk.register.IAuthCodeGetter;
|
import com.lcjian.library.util.ManifestDataUtil;
|
import com.lcjian.library.util.common.PackageUtils2;
|
import com.mugua.mgvideo.util.CrashHandler;
|
import com.mugua.mgvideo.util.FunshionConstant;
|
import com.mugua.mgvideo.util.UserUtil;
|
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
|
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
|
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
|
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
|
import com.qq.e.comm.managers.GDTADManager;
|
import com.umeng.analytics.MobclickAgent;
|
import com.umeng.commonsdk.UMConfigure;
|
import com.umeng.socialize.PlatformConfig;
|
import com.yeshi.base.utils.BeibeiConstant;
|
import com.yeshi.base.utils.ad.GDTConstant;
|
import com.yeshi.base.utils.ad.TTAdManagerHolder;
|
import com.yeshi.base.utils.downutil.StringUtils;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
public class MGVideoApplication extends Application {
|
|
public static MGVideoApplication application = null;
|
public static String deviceName = null;
|
public static String deviceNumber = null;
|
public static String KKNumber;
|
public static String MMNumber;
|
public static boolean showAd = true;
|
private static String TAG = "MGVideoApplication";
|
|
@Override
|
public void onCreate() {
|
if (BeibeiConstant.DEBUG) {
|
CrashHandler crashHandler = CrashHandler.getInstance();
|
crashHandler.init(getApplicationContext());
|
}
|
application = this;
|
// if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >=
|
// Build.VERSION_CODES.GINGERBREAD) {
|
// StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
|
// .detectAll().penaltyDialog().build());
|
// StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
|
// .detectAll().penaltyDeath().build());
|
// }
|
super.onCreate();
|
//同意用户协议
|
if (UserUtil.isAgreeUserProtocol(this) || BeibeiConstant.DEBUG) {
|
init(this);
|
}
|
}
|
|
public static void init(Application application) {
|
|
initImageLoader(application);
|
//友盟初始化
|
UMConfigure.setLogEnabled(true);
|
String description = ManifestDataUtil.getAppMetaData(application, "UMENG_CHANNEL");
|
UMConfigure.init(application, application.getResources().getString(R.string.umeng_key), description, UMConfigure.DEVICE_TYPE_PHONE, null);
|
// 选用AUTO页面采集模式
|
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
|
|
//电商SDK初始化
|
AlibcTradeSDK.asyncInit(application, new AlibcTradeInitCallback() {
|
@Override
|
public void onSuccess() {
|
}
|
|
@Override
|
public void onFailure(int code, String msg) {
|
}
|
});
|
// PlatformConfig.setWeixin(BeibeiConstant.WECHAT_ID,
|
// BeibeiConstant.WECHAT_KEY);
|
PlatformConfig.setQQZone(application.getString(R.string.qq_id), application.getString(R.string.qq_key));
|
// PlatformConfig.setSinaWeibo(BeibeiConstant.SINA_ID,
|
// BeibeiConstant.SINA_KEY,
|
// "http://sns.whalecloud.com/sina2/callback");
|
|
//百度内容联盟
|
try {
|
AppActivity.setActionBarColorTheme(AppActivity.ActionBarColorTheme.ACTION_BAR_BLACK_THEME);
|
} catch (Exception e) {
|
|
}
|
initAd(application);
|
initFunshion(application);
|
ARouter.init(application);
|
}
|
|
private static void initFunshion(Application application) {
|
try {
|
//初始化播放插件
|
FSPlayer.init(application, FunshionConstant.APP_ID, new IAuthCodeGetter() {
|
@Override
|
public void getAuthCode(final AuthCodeCallBack authCodeCallBack) {
|
MGVideoAPI.getFuntvAuthCode(application, new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
String authCode = jsonObject.optString("Data");
|
if (!StringUtils.isNullOrEmpty(authCode)) {
|
SharedPreferences.Editor editor = application.getSharedPreferences("funtv", Context.MODE_PRIVATE).edit();
|
editor.putString("authCode", authCode);
|
editor.commit();
|
}
|
authCodeCallBack.onSuccess(authCode);
|
} else {
|
SharedPreferences share = application.getSharedPreferences("funtv", Context.MODE_PRIVATE);
|
String authCode = share.getString("authCode", "");
|
if (!StringUtils.isNullOrEmpty(authCode)) {
|
authCodeCallBack.onSuccess(authCode);
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
SharedPreferences share = application.getSharedPreferences("funtv", Context.MODE_PRIVATE);
|
String authCode = share.getString("authCode", "");
|
if (!StringUtils.isNullOrEmpty(authCode)) {
|
authCodeCallBack.onSuccess(authCode);
|
}
|
}
|
}
|
);
|
|
}
|
}, new FunshionPlayInitCallback() {
|
|
@Override
|
public void onSuccess() {
|
Log.i(TAG, "风行播放器初始化成功");
|
}
|
|
@Override
|
public void onFail(int i, String s) {
|
Log.i(TAG, "风行播放器初始化失败:" + i + "-" + s);
|
}
|
});
|
} catch (Exception e) {
|
|
}
|
|
|
}
|
|
public static String getVersionName(Context context) {
|
try {
|
PackageInfo pi = context.getPackageManager().getPackageInfo(
|
PackageUtils2.getPackageName(context), 0);
|
return pi.versionName;
|
} catch (NameNotFoundException e) {
|
e.printStackTrace();
|
return "";
|
}
|
}
|
|
public static void initImageLoader(Context context) {
|
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
|
.cacheInMemory(true).bitmapConfig(Config.RGB_565)
|
.imageScaleType(ImageScaleType.EXACTLY).cacheOnDisk(true)
|
.build();
|
|
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
|
context).threadPoolSize(3)
|
.threadPriority(Thread.NORM_PRIORITY - 2)
|
.denyCacheImageMultipleSizesInMemory()
|
.diskCacheFileNameGenerator(new Md5FileNameGenerator())
|
.tasksProcessingOrder(QueueProcessingType.LIFO)
|
.denyCacheImageMultipleSizesInMemory()
|
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
|
.memoryCacheSize((int) (2 * 1024 * 1024))
|
.memoryCacheSizePercentage(13).diskCacheSize(50 * 1024 * 1024)
|
.imageDownloader(new BeibeiImageDownloader(context))
|
.diskCacheFileCount(100)
|
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
|
.defaultDisplayImageOptions(defaultOptions).writeDebugLogs() // Remove
|
.build();
|
|
ImageLoader.getInstance().init(config);
|
}
|
|
/**
|
* 穿山甲广告初始化
|
*/
|
private static void initAd(Application application) {
|
TTAdManagerHolder.init(application);
|
GDTADManager.getInstance().initWith(application, application.getString(R.string.ad_gdt_app_id));
|
}
|
|
|
}
|