package com.electric.chargingpile.application; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.StrictMode; import android.support.multidex.MultiDexApplication; import android.util.Log; import com.amap.api.maps.model.LatLng; import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.Utils; import com.electric.chargingpile.BuildConfig; import com.electric.chargingpile.data.AdDetail; import com.electric.chargingpile.data.Zhan; import com.electric.chargingpile.gen.DaoMaster; import com.electric.chargingpile.gen.DaoSession; import com.electric.chargingpile.manager.ProfileManager; import com.electric.chargingpile.util.SharedPreferencesHelper; import com.mabeijianxi.smallvideorecord2.DeviceUtils; import com.mabeijianxi.smallvideorecord2.JianXiCamera; import com.mob.MobSDK; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; 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.tencent.bugly.crashreport.CrashReport; import com.zhy.http.okhttp.OkHttpUtils; import org.json.JSONException; import org.json.JSONObject; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import cn.jpush.android.api.JPushInterface; public class MainApplication extends MultiDexApplication { public static MainApplication instances; private DaoMaster.DevOpenHelper mHelper; private SQLiteDatabase db; private DaoMaster mDaoMaster; private DaoSession mDaoSession; public static int mScreenWidth; public static int mScreenHeight; public static SharedPreferencesHelper sph; public static List collectList; public static String userPhone = ""; public static String userTpye = ""; public static String userId = ""; public static String userCar = ""; public static String userIcon = ""; public static LatLng center = null; // 用户位置 public static String userNickname = ""; public static String mapStatus = ""; public static String costWay = ""; public static String sudu = ""; public static String shuxing = ""; public static String messageToken = ""; public static String map = ""; public static String atCity = ""; public static String sql = ""; public static String uptime = ""; public static String details_flag = "0"; public static String firstPoint = ""; public static Boolean firstSsyd; public static String password = ""; public static String url = "http://59.110.68.162";// 充电桩测试环境 // public static String url = "http://cdz.evcharge.cc";// 充电桩正式环境 // public static String urlNew = "http://123.56.67.7:83/api/0300";// 一电测试环境 public static String urlNew = "https://api.touchev.com:83/api/0300";// 一电正式环境 public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/"; // public static String url = "https://cdz.d1ev.com"; public static String build_flag = "0"; public static String support = "0"; public static String freestop = ""; public static String selecthotel = ""; public static String selectexpressway = ""; public static String selectjingdian = ""; public static String logid = ""; public static String suitcar = ""; public static Boolean gestureguide; public static String h5_url = ""; public static String push_id = ""; public static String imei = ""; public static String current_url = ""; public static String goods_type = ""; public static String ad_link = ""; public static String ok = ""; public static String type = ""; public static String userPassword = ""; public static String mainSkip = ""; public static String level_one = ""; public static String level_two = ""; public static String level_three = ""; public static String level_four = ""; public static String level_five = ""; public static String huodonglabel = ""; public static String mianStop = ""; public static String search_address = ""; public static boolean isMap = true; public static int count; public static int round; public static int msgOne; public static String msgTime; public static String firstOpenTime; public static int msgTwo; public static List list_addetail; public static String festival_time = ""; public static boolean isIgnore = true; public static Double search_jing = 0.0, search_wei = 0.0; public static Context context; public static String current_code = "3.3"; public static String storePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "cdz_android"; public static String q_content = ""; public static Map q_map = new HashMap<>(); public static boolean isFirstExample; public static boolean isAppStart; public static boolean haveActivity = false; public static String ad_major = ""; private String mCurrentCity = ""; @SuppressLint("MissingPermission") @Override public void onCreate() { super.onCreate(); this.context = getApplicationContext(); StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { builder.detectFileUriExposure(); } MobSDK.init(this); instances = this; setDatabase(); Utils.init(this); LogUtils.getConfig().setLogSwitch(true); //极光 JPushInterface.setDebugMode(true); JPushInterface.init(this); String rid = JPushInterface.getRegistrationID(getApplicationContext()); push_id = rid; Intent intent = new Intent(); if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) { Bundle bundle = intent.getExtras(); String extras = bundle.getString(JPushInterface.EXTRA_EXTRA); try { JSONObject jsonObject = new JSONObject(extras); String url = jsonObject.getString("extra"); Log.e("extra==", url); } catch (JSONException e) { e.printStackTrace(); } } // TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE); // imei = tm.getDeviceId(); CrashReport.initCrashReport(getApplicationContext(), "900010422", BuildConfig.DEBUG); initImageLoader(getApplicationContext()); try { // OkHttpUtil.getInstance().setCertificates(getAssets().open("ca.crt")); OkHttpUtils.getInstance().setCertificates(getAssets().open("ca.crt")); OkHttpUtils.getInstance().setCertificates(); } catch (IOException e) { e.printStackTrace(); } // SDKInitializer.initialize(getApplicationContext()); mScreenWidth = getResources().getDisplayMetrics().widthPixels; mScreenHeight = getResources().getDisplayMetrics().heightPixels; Log.e("mScreenWidth", mScreenWidth + ""); Log.e("mScreenHeight", mScreenHeight + ""); sph = new SharedPreferencesHelper(this); collectList = new ArrayList<>(); isAppStart = ProfileManager.getInstance().getAppStart(getApplicationContext()); userPhone = ProfileManager.getInstance().getUsername(getApplicationContext()); userId = ProfileManager.getInstance().getUserid(getApplicationContext()); userPassword = ProfileManager.getInstance().getKeyUserpassword(getApplicationContext()); userCar = ProfileManager.getInstance().getUsercar(getApplicationContext()); userIcon = ProfileManager.getInstance().getUsericon(getApplicationContext()); Log.e("111", "onCreate: " + userIcon); msgOne = ProfileManager.getInstance().getMsgOne(getApplicationContext()); msgTime = ProfileManager.getInstance().getSystemMsgTime(getApplicationContext()); firstOpenTime = ProfileManager.getInstance().getFirstOpenTime(getApplicationContext()); // msgTwo = ProfileManager.getInstance().getMsgTwo(getApplicationContext()); loginRemind(); setFestival(); initSmallVideo(); } public static MainApplication getInstance() { if (null == instances) { instances = new MainApplication(); } return instances; } public void setmCurrentCity(String mCurrentCity) { this.mCurrentCity = mCurrentCity; } public String getmCurrentCity() { return mCurrentCity; } /** * 视频的初始化 */ public static void initSmallVideo() { // 设置拍摄视频缓存路径 File dcim = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); if (DeviceUtils.isZte()) { if (dcim.exists()) { JianXiCamera.setVideoCachePath(dcim + "/mabeijianxi/"); } else { JianXiCamera.setVideoCachePath(dcim.getPath().replace("/sdcard/", "/sdcard-ext/") + "/mabeijianxi/"); } } else { JianXiCamera.setVideoCachePath(dcim + "/mabeijianxi/"); } // 初始化拍摄,遇到问题可选择开启此标记,以方便生成日志 //JianXiCamera.initialize(false, null); } public static void initImageLoader(Context context) { ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context).threadPoolSize(5).threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory() .discCacheFileNameGenerator(new Md5FileNameGenerator()).discCacheSize(50 * 1024 * 1024).memoryCacheSize(5 * 1024 * 1024).build(); ImageLoader.getInstance().init(config); } public static DisplayImageOptions getCacheOptions(int image) { return new DisplayImageOptions.Builder().showImageForEmptyUri(image).showImageOnFail(image).cacheInMemory(true).cacheOnDisc(true).considerExifParams(true) .imageScaleType(ImageScaleType.IN_SAMPLE_INT).resetViewBeforeLoading(false).bitmapConfig(Bitmap.Config.RGB_565).build(); } // public void showTextToast(String msg) { // if (toast == null) { // toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT); // } else { // toast.setText(msg); // } // toast.show(); // } public static boolean isLogin() { if ("".equals(userPhone)) { return false; } return true; } private void loginRemind() { round = ProfileManager.getInstance().getRound(getApplicationContext()); count = ProfileManager.getInstance().getCount(getApplicationContext()); if (!MainApplication.isLogin()) { int i = count + 1; Log.e("i***-", i + ""); ProfileManager.getInstance().setCount(getApplicationContext(), i); count = i; } } private void setFestival() { int time = (int) (System.currentTimeMillis() / 1000); if (time >= 1484841600 && time <= 1486569599) { MainApplication.festival_time = "1"; } else if (time >= 1486569600 && time <= 1486915199) { MainApplication.festival_time = "2"; } } /** * 设置greenDao */ private void setDatabase() { // 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。 // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。 // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。 // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。 mHelper = new DaoMaster.DevOpenHelper(this, "my-search-text-db", null); db = mHelper.getWritableDatabase(); // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。 mDaoMaster = new DaoMaster(db); mDaoSession = mDaoMaster.newSession(); } public DaoSession getDaoSession() { return mDaoSession; } public SQLiteDatabase getDb() { return db; } }