|
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 androidx.multidex.MultiDexApplication;
import android.text.TextUtils;
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.PreferenceManager;
import com.electric.chargingpile.manager.ProfileManager;
import com.electric.chargingpile.util.SharedPreferencesHelper;
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<Zhan> collectList;
public static String userPhone = "";
public static String userTpye = ""; // 1:国标 2:特斯拉
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 = ""; // 1: 快充 2:慢充
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 pic_url = "http://59.110.68.162/zhannew/uploadfile/";
// public static String url = "http://cdz.evcharge.cc";// 充电桩正式环境
// public static String pic_url = "http://cdz.evcharge.cc/zhannew/uploadfile/";
// 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 url = "https://cdz.d1ev.com";
public static String build_flag = "0";
public static String support = "0"; // true:本APP支付 false:其他方式支付
public static String freestop = ""; // true:免费停车
public static String selecthotel = ""; // true:酒店
public static String selectexpressway = ""; // true:高速
public static String selectjingdian = ""; // true:景点
public static String logid = "";
public static String suitcar = "";
public static Boolean gestureguide;
public static String h5_url = "";
private String pushID = "";
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<AdDetail> 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.5";
public static String storePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "cdz_android";
public static String q_content = "";
public static Map<String, String> q_map = new HashMap<>();
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(false);
JPushInterface.init(this);
CrashReport.initCrashReport(getApplicationContext(), "900010422", BuildConfig.DEBUG);
initImageLoader(getApplicationContext());
try {
OkHttpUtils.getInstance().setCertificates(getAssets().open("ca.crt"));
OkHttpUtils.getInstance().setCertificates();
} catch (IOException e) {
e.printStackTrace();
}
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());
loginRemind();
setFestival();
}
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 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 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;
}
public String getPushID() {
if (TextUtils.isEmpty(pushID)) {
return ProfileManager.getInstance().getPushID(getApplicationContext());
} else {
return pushID;
}
}
public void setPushID(String pushID) {
this.pushID = pushID;
ProfileManager.getInstance().setPushID(getApplicationContext(), pushID);
}
}
|