package com.mugua.mgvideo;
|
|
import android.Manifest;
|
import android.app.Application;
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.graphics.Bitmap.Config;
|
import android.os.Build;
|
import android.telephony.TelephonyManager;
|
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.bytedance.sdk.openadsdk.TTAdSdk;
|
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.SDCardUtil;
|
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.qq.e.comm.managers.GDTAdSdk;
|
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.CSJConstant;
|
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;
|
|
import androidx.core.app.ActivityCompat;
|
import androidx.multidex.MultiDex;
|
|
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";
|
|
public static boolean inited;
|
|
//兼容4.4以下版本
|
protected void attachBaseContext(Context newBase) {
|
super.attachBaseContext(newBase);
|
MultiDex.install(this);
|
}
|
|
|
@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, null);
|
}
|
}
|
|
public static void init(Application application, final InitListener initListener) {
|
inited = true;
|
try {
|
TelephonyManager manager = (TelephonyManager) application.getSystemService(TELEPHONY_SERVICE);
|
Build bd = new Build();
|
String model = bd.MODEL;
|
MGVideoApplication.deviceName = model;
|
if ((ActivityCompat.checkSelfPermission(application, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED)) {
|
MGVideoApplication.deviceNumber = manager.getDeviceId();
|
}
|
} catch (Exception e) {
|
}
|
|
// 初始化大设备
|
SDCardUtil.initStorage(application);
|
|
initImageLoader(application);
|
//友盟初始化
|
UMConfigure.setLogEnabled(true);
|
String description = ManifestDataUtil.getAppMetaData(application, "UMENG_CHANNEL");
|
UMConfigure.setEncryptEnabled(true);
|
UMConfigure.preInit(application, application.getResources().getString(R.string.umeng_key), description);
|
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, initListener);
|
// initFunshion(application);
|
ARouter.init(application);
|
ARouter.openDebug();
|
ARouter.openLog();
|
}
|
|
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, final InitListener initListener) {
|
//初始化广告位
|
CSJConstant.SPLASH_AD = application.getString(R.string.ad_csj_pid_splash);
|
CSJConstant.CODE_FULL_VIDEO_VIDEO_DETAIL = application.getString(R.string.ad_csj_pid_video_detail_fullvideo);
|
CSJConstant.RECOMMEND_BIG_IMG_AD = application.getString(R.string.ad_csj_pid_recommend_big);
|
|
GDTConstant.GDT_SPLASH_AD_ID = application.getString(R.string.ad_gdt_pid_home_and_play_big_picture);
|
GDTConstant.PID_HOME_RECOMMEND_BIG_IMG = application.getString(R.string.ad_gdt_pid_home_recommend);
|
GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN2 = application.getString(R.string.ad_gdt_pid_2_video_list_column2);
|
GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN3 = application.getString(R.string.ad_gdt_pid_2_video_list_column3);
|
GDTConstant.PID_2_SEARCH_RESULT_ALBUM = application.getString(R.string.ad_gdt_pid_2_search_result_album);
|
GDTConstant.GDT_HOME_AND_PLAY_BIG_PICTURE = application.getString(R.string.ad_gdt_pid_home_and_play_big_picture);
|
GDTConstant.GDT_TEMPLATE_SEARCH_RESULT = application.getString(R.string.ad_gdt_pid_template_search_result);
|
GDTConstant.GDT_EXIT_DIALOG = application.getString(R.string.ad_gdt_pid_exit_dialog);
|
|
GDTAdSdk.init(application, application.getString(R.string.ad_gdt_app_id));
|
|
TTAdManagerHolder.init(application, new TTAdSdk.InitCallback() {
|
|
@Override
|
public void success() {
|
if (initListener != null) {
|
initListener.onFinish();
|
}
|
}
|
|
@Override
|
public void fail(int i, String s) {
|
if (initListener != null) {
|
initListener.onFinish();
|
}
|
}
|
});
|
|
|
}
|
|
|
//初始化监听
|
public interface InitListener {
|
public void onFinish();
|
}
|
|
|
}
|