package com.basic.security.base;
|
|
import android.app.Activity;
|
import android.app.Application;
|
import android.app.Service;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager;
|
import android.os.Build;
|
|
import com.basic.security.activity.MainActivity;
|
import com.basic.security.manager.DeviceManager;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.utils.Config;
|
import com.basic.security.utils.Constants;
|
import com.basic.security.utils.ExceptionUtil;
|
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
import com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreator;
|
import com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreator;
|
import com.scwang.smartrefresh.layout.api.RefreshFooter;
|
import com.scwang.smartrefresh.layout.api.RefreshHeader;
|
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
|
import com.scwang.smartrefresh.layout.header.ClassicsHeader;
|
|
import org.xutils.x;
|
|
import java.lang.reflect.Field;
|
import java.util.HashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.ListIterator;
|
import java.util.Map;
|
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.Executors;
|
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.ReentrantLock;
|
|
import interfaces.heweather.com.interfacesmodule.view.HeConfig;
|
|
public class BaseApplication extends Application {
|
static Map<String, String> localSetting = new HashMap();
|
private static BaseApplication application;
|
|
static {
|
SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
|
@Override
|
public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
|
layout.setPrimaryColorsId(com.basic.security.utils.RUtils.R_color_transparent, android.R.color.white);
|
return new ClassicsHeader(context);
|
}
|
});
|
SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
|
@Override
|
public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
|
return new ClassicsFooter(context).setDrawableSize(20);
|
}
|
});
|
}
|
|
public final Lock detectLock = new ReentrantLock();
|
public MainActivity activity;
|
public Map<String, String> devInfo = new HashMap<>();
|
public ExecutorService executorService = Executors.newCachedThreadPool();
|
private List<Activity> activitys = new LinkedList<>();
|
private List<Service> services = new LinkedList<>();
|
private ModelAdapter backTime;
|
|
public static BaseApplication getApplication() {
|
return application;
|
}
|
|
public static Map<String, String> getLocalSetting() {
|
return localSetting;
|
}
|
|
public void onTerminate() {
|
super.onTerminate();
|
}
|
|
@Override
|
public void onCreate() {
|
super.onCreate();
|
x.Ext.init(this);
|
application = this;
|
init();
|
HeConfig.init("HE1811151724201473", "b5fe07c5d66c43d089e60baf2fa655ac");
|
HeConfig.switchToFreeServerNode();
|
Constants.deviceId = DeviceManager.getDeviceId();
|
testFunction();
|
}
|
|
private void testFunction() {
|
}
|
|
public void init() {
|
com.basic.security.utils.CrashHandler.getInstance().init(this);
|
PackageManager packageManager = getPackageManager();
|
try {
|
PackageInfo packageInfo = packageManager.getPackageInfo(getPackageName(), PackageManager.GET_ACTIVITIES);
|
if (packageInfo != null) {
|
devInfo.put("versionName", packageInfo.versionName);
|
devInfo.put("versionCode", packageInfo.versionCode + "");
|
}
|
Field[] fields = Build.class.getDeclaredFields();
|
for (Field field : fields) {
|
field.setAccessible(true);
|
devInfo.put(field.getName(), field.get(null).toString());
|
}
|
} catch (PackageManager.NameNotFoundException e) {
|
ExceptionUtil.printException(e);
|
} catch (IllegalAccessException e) {
|
ExceptionUtil.printException(e);
|
}
|
Config.init();
|
}
|
|
public void closeApplication() {
|
closeActivitys();
|
closeServices();
|
}
|
|
private void closeActivitys() {
|
ListIterator<Activity> iterator = activitys.listIterator();
|
while (iterator.hasNext()) {
|
Activity activity = iterator.next();
|
if (activity != null) {
|
activity.finish();
|
}
|
}
|
}
|
|
private void closeServices() {
|
ListIterator<Service> iterator = services.listIterator();
|
while (iterator.hasNext()) {
|
Service service = iterator.next();
|
if (service != null) {
|
stopService(new Intent(this, service.getClass()));
|
}
|
}
|
}
|
}
|