version:2.9
fix:优化接口,增加检测其他应用 update:
This commit is contained in:
@@ -34,6 +34,8 @@ import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.aoleyun.sn.utils.ServiceAliveUtils;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
import com.blankj.utilcode.util.PathUtils;
|
||||
import com.google.gson.Gson;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
|
||||
|
||||
import java.io.File;
|
||||
@@ -78,7 +80,7 @@ public class SplashActivity extends AppCompatActivity {
|
||||
|
||||
private void initView() {
|
||||
if (BuildConfig.DEBUG) {
|
||||
JGYUtils.getInstance().cleanBackgroundMemory();
|
||||
// JGYUtils.getInstance().cleanBackgroundMemory();
|
||||
// NetInterfaceManager.getInstance().uploadLogFile();
|
||||
bt_log = findViewById(R.id.bt_log);
|
||||
bt_log.setVisibility(View.VISIBLE);
|
||||
@@ -148,7 +150,8 @@ public class SplashActivity extends AppCompatActivity {
|
||||
// mAm.killBackgroundProcesses("com.android.documentsui");
|
||||
// BaseApplication.cleanJpushAlias();
|
||||
// BaseApplication.cleanJpushTag();
|
||||
Log.e(TAG, "debugTest: SPUtils all " + SPUtils.getAll(this));
|
||||
Log.e(TAG, "debugTest: " + new Gson().toJson(MMKV.defaultMMKV().allKeys()));
|
||||
Log.e(TAG, "debugTest: SPUtils all " + new Gson().toJson(SPUtils.getAll(this)));
|
||||
try {
|
||||
PackageManager packageManager = getPackageManager();
|
||||
packageManager.setApplicationEnabledSetting(PackageNames.OLD_DEVICE_INFO, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
|
||||
|
||||
@@ -681,38 +681,33 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getAppLimitObservable()
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e(TAG + ":" + "getAppLimit", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull ResponseBody responseBody) {
|
||||
public void onNext(@NonNull BaseResponse baseResponse) {
|
||||
requestSucceeded = true;
|
||||
try {
|
||||
String bodyString = responseBody.string();
|
||||
Log.e(TAG + ":" + "getAppLimit", "onNext: " + bodyString);
|
||||
JsonObject jsonObject = JsonParser.parseString(bodyString).getAsJsonObject();
|
||||
int code = jsonObject.get("code").getAsInt();
|
||||
if (code == OK) {
|
||||
String data = jsonObject.get("data").getAsJsonObject().get("result").getAsString();
|
||||
//开机图标
|
||||
boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data);
|
||||
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
|
||||
JGYUtils.getInstance().writeAppPackageList(mContext, data);
|
||||
mView.getAppLimitFinish(data);
|
||||
} else {
|
||||
boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, " ");
|
||||
JGYUtils.getInstance().writeAppPackageList(mContext, "");
|
||||
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
|
||||
Log.e(TAG + ":" + "getAppLimit", "onNext: " + bodyString);
|
||||
mView.getAppLimitFinish("");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
Log.e(TAG + ":" + "getAppLimit", "onNext: IOException: " + e.getMessage());
|
||||
Log.e(TAG + ":" + "getAppLimit", "onNext: " + baseResponse);
|
||||
JsonObject jsonObject = JsonParser.parseString(baseResponse.data.toString()).getAsJsonObject();
|
||||
int code = baseResponse.code;
|
||||
if (code == OK) {
|
||||
String data = jsonObject.get("result").getAsString();
|
||||
//开机图标
|
||||
boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data);
|
||||
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
|
||||
JGYUtils.getInstance().writeAppPackageList(mContext, data);
|
||||
mView.getAppLimitFinish(data);
|
||||
} else {
|
||||
boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, " ");
|
||||
JGYUtils.getInstance().writeAppPackageList(mContext, "");
|
||||
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
|
||||
Log.e(TAG + ":" + "getAppLimit", "onNext: " + baseResponse);
|
||||
mView.getAppLimitFinish("");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -732,60 +727,11 @@ public class CheckNetPresenter implements CheckNetContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void getDeviceBatch(String packageList) {
|
||||
// if (JGYUtils.isOfficialVersion() || TextUtils.isEmpty(packageList)) {
|
||||
// mView.getDeviceBatchFinished();
|
||||
// return;
|
||||
// }
|
||||
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0);
|
||||
Log.e(TAG, "getDeviceBatch: " + locked);
|
||||
if (locked == 0) {
|
||||
// NetInterfaceManager.getInstance()
|
||||
// .getBatchObservable()
|
||||
// .observeOn(Schedulers.io())
|
||||
// .subscribe(new Observer<ResponseBody>() {
|
||||
// @Override
|
||||
// public void onSubscribe(@NonNull Disposable d) {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onSubscribe: ");
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(@NonNull ResponseBody responseBody) {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onNext: ");
|
||||
// try {
|
||||
// String respons = responseBody.string();
|
||||
// JSONObject jsonObject = JSON.parseObject(respons);
|
||||
// int code = jsonObject.getInteger("code");
|
||||
// if (code == OK) {
|
||||
// String data = jsonObject.getString("data");
|
||||
// List<Batch> batchList = JSON.parseArray(data, Batch.class);
|
||||
// if (null != batchList && batchList.size() > 1) {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onNext: " + "deleteOtherApp");
|
||||
// if (!BuildConfig.DEBUG) {
|
||||
JGYUtils.getInstance().deleteOtherApp();
|
||||
// }
|
||||
// } else {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "批次为空");
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onNext: respons:" + respons);
|
||||
// }
|
||||
// }
|
||||
// } catch (IOException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(@NonNull Throwable e) {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onError: " + e.getMessage());
|
||||
// onComplete();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// Log.e(TAG+":"+"getDeviceBatch", "onComplete: ");
|
||||
mView.getDeviceBatchFinish();
|
||||
// }
|
||||
// });
|
||||
// mView.getDeviceBatchFinished();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,8 +9,6 @@ import com.aoleyun.sn.base.BaseView;
|
||||
|
||||
public class MainAContact {
|
||||
public interface Presenter extends BasePresenter<MainView> {
|
||||
/*设置二维码*/
|
||||
void getQRImage(String mac);
|
||||
/*获取学生信息*/
|
||||
void getStudesInfo();
|
||||
/*获取设备锁定状态*/
|
||||
@@ -20,10 +18,8 @@ public class MainAContact {
|
||||
}
|
||||
|
||||
public interface MainView extends BaseView {
|
||||
/*获取二维码*/
|
||||
void setQRImage(Bitmap qrImage);
|
||||
/*设置账户类型*/
|
||||
void settrade_type(int tradeType);
|
||||
void settradeType(int tradeType);
|
||||
/*设置批次信息*/
|
||||
void setBatchText(String text, int visibility);
|
||||
/*设置班级信息*/
|
||||
@@ -34,6 +30,7 @@ public class MainAContact {
|
||||
void setNameText(String text, int visibility);
|
||||
/*设置头像*/
|
||||
void setHead(String url);
|
||||
|
||||
/*获取设备锁定状态*/
|
||||
void setLockedState(boolean loocked);
|
||||
/*手动获取设备信息更新*/
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
|
||||
@@ -38,6 +39,7 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
private static final String TAG = MainAPresenter.class.getSimpleName();
|
||||
private MainAContact.MainView mView;
|
||||
private Context mContext;
|
||||
private MMKV mMMKV = MMKV.defaultMMKV();
|
||||
|
||||
public static final String GET_SETTING_FINISH_TIME = "GET_SETTING_FINISH_TIME";
|
||||
|
||||
@@ -46,6 +48,9 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
private final String DEFAULT_INFO = "暂无信息";
|
||||
private final int OK = 200;
|
||||
|
||||
private static final long ONE_MINUTE_TIME = 60 * 1000;
|
||||
private static final long TEN_MINUTE_TIME = ONE_MINUTE_TIME * 10;
|
||||
|
||||
private final static int NOTFOUND = -300;
|
||||
|
||||
private BehaviorSubject<ActivityEvent> lifecycle;
|
||||
@@ -63,10 +68,6 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
Log.e(TAG, "MainSPresenter: " + context.getClass());
|
||||
}
|
||||
|
||||
public boolean isRequestSucceeded() {
|
||||
return requestSucceeded;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void attachView(@androidx.annotation.NonNull MainAContact.MainView view) {
|
||||
this.mView = view;
|
||||
@@ -79,23 +80,7 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
|
||||
private native String getAeskey();
|
||||
|
||||
@Override
|
||||
public void getQRImage(String mac) {
|
||||
// Log.e(TAG, "getQRImage: " + mac);
|
||||
// JsonObject jsonObject = new JsonObject();
|
||||
// jsonObject.addProperty("sn", Utils.getSerial());
|
||||
// jsonObject.addProperty("mac", mac);
|
||||
// String json = jsonObject.toString();
|
||||
// String content = mac;
|
||||
// try {
|
||||
// content = CXAESUtil.encrypt(getAeskey(), json);
|
||||
// Log.e(TAG, "getQRImage: " + content);
|
||||
// } catch (Exception e) {
|
||||
// Log.e(TAG, "getQRImage: " + e.getMessage());
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// mView.setQRImage(JGYUtils.getInstance().createQRImage(content, 300, 300));
|
||||
}
|
||||
private static final String GET_STUDES_INFO_TIME = "getStudesInfo_key";
|
||||
|
||||
/**
|
||||
* 通过sn获取用户信息
|
||||
@@ -103,6 +88,10 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
@Override
|
||||
public void getStudesInfo() {
|
||||
setState();
|
||||
long lastTime = mMMKV.decodeLong(GET_STUDES_INFO_TIME, 0);
|
||||
if (System.currentTimeMillis() - TEN_MINUTE_TIME < lastTime) {
|
||||
return;
|
||||
}
|
||||
NetInterfaceManager.getInstance()
|
||||
.getStudesInfoObservable()
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
@@ -114,11 +103,12 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse<StudentsInfo> studentsInfoBaseResponse) {
|
||||
mMMKV.encode(GET_STUDES_INFO_TIME, System.currentTimeMillis());
|
||||
requestSucceeded = true;
|
||||
Log.e(TAG + ":" + "getStudesInfo", "onNext: " + studentsInfoBaseResponse.data);
|
||||
if (studentsInfoBaseResponse.code == OK) {
|
||||
int trade_type = studentsInfoBaseResponse.data.getTrade_type();
|
||||
mView.settrade_type(trade_type);
|
||||
mView.settradeType(trade_type);
|
||||
String sno = studentsInfoBaseResponse.data.getSno();
|
||||
String realname = studentsInfoBaseResponse.data.getRealname();
|
||||
String classes = studentsInfoBaseResponse.data.getClasses();
|
||||
@@ -162,9 +152,6 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
|
||||
SPUtils.put(mContext, CommonConfig.ADMIN_ID, studentsInfoBaseResponse.data.getAdmin_id());
|
||||
} else {
|
||||
/*
|
||||
* 没有获取到的时候显示缓存
|
||||
* */
|
||||
Log.e(TAG + ":" + "getStudesInfo", "onNext: " + studentsInfoBaseResponse.toString());
|
||||
}
|
||||
}
|
||||
@@ -225,35 +212,11 @@ public class MainAPresenter implements MainAContact.Presenter {
|
||||
}
|
||||
}
|
||||
|
||||
private long lastgetLockedTime;
|
||||
private long one_minute = 1000 * 60;
|
||||
|
||||
@Override
|
||||
public void getLockedState() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getLockedState(lifecycle, new NetInterfaceManager.ObserverCallback() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(BaseResponse response) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e(TAG, "onComplete: ");
|
||||
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
|
||||
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
|
||||
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED);
|
||||
}
|
||||
});
|
||||
int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED);
|
||||
Log.e(TAG + ":" + "getLockedState", "locked: " + locked);
|
||||
mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,11 +2,8 @@ package com.aoleyun.sn.activity.main;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.SystemClock;
|
||||
import android.text.TextUtils;
|
||||
@@ -18,14 +15,12 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.activity.requestlog.RequestLogActivity;
|
||||
import com.aoleyun.sn.base.BaseActivity;
|
||||
import com.aoleyun.sn.service.main.MainService;
|
||||
import com.aoleyun.sn.utils.ExampleUtil;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
import com.aoleyun.sn.utils.SaveListUtils;
|
||||
import com.aoleyun.sn.utils.SysSettingUtils;
|
||||
@@ -117,19 +112,10 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
}
|
||||
}
|
||||
|
||||
private MainAPresenter mPresenter;
|
||||
private MainAPresenter mMainAPresenter;
|
||||
|
||||
private boolean updateApp = false;
|
||||
|
||||
//jiguang
|
||||
public static boolean isForeground = false;
|
||||
//for receive customer msg from jpush server
|
||||
private MessageReceiver mMessageReceiver;
|
||||
public static final String MESSAGE_RECEIVED_ACTION = "com.aoleyun.sn.MESSAGE_RECEIVED_ACTION";
|
||||
public static final String KEY_TITLE = "title";
|
||||
public static final String KEY_MESSAGE = "message";
|
||||
public static final String KEY_EXTRAS = "extras";
|
||||
|
||||
@Override
|
||||
public void onDisconnected() {
|
||||
Log.e("OnNetworkStatusChanged", "onDisconnected: ");
|
||||
@@ -140,7 +126,7 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
Log.e("OnNetworkStatusChanged", "onConnected: ");
|
||||
timeMillis = SystemClock.elapsedRealtime();
|
||||
//直接获取数据
|
||||
mPresenter.getLockedState();
|
||||
mMainAPresenter.getLockedState();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -151,9 +137,9 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
@Override
|
||||
public void initView() {
|
||||
ButterKnife.bind(this);
|
||||
mPresenter = new MainAPresenter(this);
|
||||
mPresenter.attachView(this);
|
||||
mPresenter.setLifecycle(lifecycleSubject);
|
||||
mMainAPresenter = new MainAPresenter(this);
|
||||
mMainAPresenter.attachView(this);
|
||||
mMainAPresenter.setLifecycle(lifecycleSubject);
|
||||
JGYUtils.startServices(MainActivity.this);
|
||||
Log.e(TAG, "initView: " + "start request");
|
||||
NetworkUtils.registerNetworkStatusChangedListener(this);
|
||||
@@ -161,6 +147,53 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
setStoreUpdateListener(bt_checkupdate);
|
||||
}
|
||||
|
||||
private void setStoreUpdateListener(View view) {
|
||||
ObservableOnSubscribe<View> mObservableOnSubscribe = new ObservableOnSubscribe<View>() {
|
||||
@Override
|
||||
public void subscribe(@NonNull ObservableEmitter<View> emitter) throws Throwable {
|
||||
view.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (updateApp) {
|
||||
ToastUtil.show("你已经检查过更新,请稍后再试");
|
||||
} else {
|
||||
emitter.onNext(view);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
Observer<View> mObserver = new Observer<View>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("mObserver", "onSubscribe");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull View view) {
|
||||
Log.e("mObserver", "onNext");
|
||||
ToastUtil.show("正在检查更新");
|
||||
mMainAPresenter.buttonCheckUpdate(bt_checkupdate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("mObserver", "onError" + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("mObserver", "onComplete");
|
||||
}
|
||||
};
|
||||
|
||||
Observable.create(mObservableOnSubscribe)
|
||||
.throttleFirst(10, TimeUnit.SECONDS)
|
||||
//这句很关键,这是RxJava中的操作符,在规定时间内观察者不在接收被观察者发送的事件
|
||||
.subscribe(mObserver);
|
||||
}
|
||||
|
||||
private void getDevicesInfo() {
|
||||
String sn = Utils.getSerial();
|
||||
tv_devsn.setText(sn);
|
||||
@@ -170,21 +203,18 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
tv_devmac.setText("获取失败");
|
||||
} else {
|
||||
tv_devmac.setText(macaddr);
|
||||
// mPresenter.getQRImage(macaddr);
|
||||
}
|
||||
tv_version.setText(BuildConfig.VERSION_NAME);
|
||||
//获取自定义版本
|
||||
//Log.e(TAG, "getDevicesInfo: " + Utils.getProperty("ro.build.id", "获取失败"));
|
||||
//展讯获取自定义版本
|
||||
//获取自定义版本号
|
||||
Log.e(TAG, "getDevicesInfo: CustomVersion: " + Utils.getCustomVersion());
|
||||
Log.e(TAG, "getDevicesInfo: RomVersion: " + Utils.getRomVersion());
|
||||
tv_customversion.setText(Utils.getCustomVersion());
|
||||
}
|
||||
|
||||
private void checkSNError(String sn) {
|
||||
//sn长度12位
|
||||
if (sn.length() != 12) {
|
||||
// showSNErrorDialog("设备SN号码格式错误!");
|
||||
//sn长度最长30位
|
||||
if (sn.length() > 30) {
|
||||
showSNErrorDialog("设备SN号码格式错误!");
|
||||
} else {
|
||||
Log.e(TAG, "checkSNError: " + sn);
|
||||
}
|
||||
@@ -192,8 +222,6 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
if (JGYUtils.getInstance().checkSNPlatform(sn) != JGYUtils.getInstance().checkAppPlatform()) {
|
||||
// showSNErrorDialog("SN数据与平台不符,请联系管理员!");
|
||||
}
|
||||
//设置极光推送标签
|
||||
// JGYUtils.getInstance().getAppPlatform(platform -> mPresenter.setJpushPlatformTags(platform));
|
||||
}
|
||||
|
||||
private void showSNErrorDialog(String content) {
|
||||
@@ -215,23 +243,16 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
|
||||
@Override
|
||||
public void initData() {
|
||||
// JPushInterface.init(this);
|
||||
registerMessageReceiver();
|
||||
Log.e("getMacAddress", Utils.getAndroid10MAC(this));
|
||||
timeMillis = SystemClock.elapsedRealtime();
|
||||
Utils.getPublicIP(this);
|
||||
startService(new Intent(MainActivity.this, MainService.class));
|
||||
mPresenter.getLockedState();
|
||||
mPresenter.getStudesInfo();
|
||||
mMainAPresenter.getLockedState();
|
||||
mMainAPresenter.getStudesInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setQRImage(Bitmap qrImage) {
|
||||
head.setImageBitmap(qrImage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void settrade_type(int tradeType) {
|
||||
public void settradeType(int tradeType) {
|
||||
if (tradeType == 1) {
|
||||
tv_class_name.setText("班级");
|
||||
tv_number_name.setText("学号");
|
||||
@@ -331,27 +352,24 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
isForeground = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
isForeground = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
isForeground = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
mPresenter.detachView();
|
||||
JGYUtils.startServices(MainActivity.this);
|
||||
NetworkUtils.unregisterNetworkStatusChangedListener(this);
|
||||
mMainAPresenter.detachView();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -373,80 +391,4 @@ public class MainActivity extends BaseActivity implements MainAContact.MainView,
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
private void setStoreUpdateListener(View view) {
|
||||
ObservableOnSubscribe<View> mObservableOnSubscribe = new ObservableOnSubscribe<View>() {
|
||||
@Override
|
||||
public void subscribe(@NonNull ObservableEmitter<View> emitter) throws Exception {
|
||||
view.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (updateApp) {
|
||||
ToastUtil.show("你已经检查过更新,请稍后再试");
|
||||
} else {
|
||||
emitter.onNext(view);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
Observer<View> mObserver = new Observer<View>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("mObserver", "onSubscribe");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull View view) {
|
||||
Log.e("mObserver", "onNext");
|
||||
ToastUtil.show("正在检查更新");
|
||||
mPresenter.buttonCheckUpdate(bt_checkupdate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("mObserver", "onError");
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("mObserver", "onComplete");
|
||||
}
|
||||
};
|
||||
|
||||
Observable.create(mObservableOnSubscribe)
|
||||
.throttleFirst(10, TimeUnit.SECONDS)
|
||||
//这句很关键,这是RxJava中的操作符,在规定时间内观察者不在接收被观察者发送的事件
|
||||
.subscribe(mObserver);
|
||||
}
|
||||
|
||||
//jiguang
|
||||
public void registerMessageReceiver() {
|
||||
mMessageReceiver = new MessageReceiver();
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
|
||||
filter.addAction(MESSAGE_RECEIVED_ACTION);
|
||||
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, filter);
|
||||
}
|
||||
|
||||
public static class MessageReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
try {
|
||||
if (MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
|
||||
String messge = intent.getStringExtra(KEY_MESSAGE);
|
||||
String extras = intent.getStringExtra(KEY_EXTRAS);
|
||||
StringBuilder showMsg = new StringBuilder();
|
||||
showMsg.append(KEY_MESSAGE + " : " + messge + "\n");
|
||||
if (!ExampleUtil.isEmpty(extras)) {
|
||||
showMsg.append(KEY_EXTRAS + " : " + extras + "\n");
|
||||
}
|
||||
// setCostomMsg(showMsg.toString());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,7 +248,7 @@ public class BaseApplication extends MultiDexApplication {
|
||||
case 6017:
|
||||
case 6027:
|
||||
Log.e("jiguangInterface", s + "别名绑定的设备数超过限制");
|
||||
cleanJpushAlias();
|
||||
// cleanJpushAlias();
|
||||
setJpushAlias();
|
||||
break;
|
||||
default:
|
||||
@@ -338,7 +338,7 @@ public class BaseApplication extends MultiDexApplication {
|
||||
break;
|
||||
case 6018:
|
||||
Log.e("jiguangInterface", s + "Tags 过多");
|
||||
cleanJpushTag();
|
||||
// cleanJpushTag();
|
||||
ToastUtil.show("设备标签数量超出限制,联系管理员修改\t" + "code:6018");
|
||||
break;
|
||||
case 6021:
|
||||
|
||||
@@ -27,9 +27,9 @@ import com.aoleyun.sn.bean.PoweroffBean;
|
||||
import com.aoleyun.sn.bean.SnRunLog;
|
||||
import com.aoleyun.sn.bean.WiFiAlias;
|
||||
import com.aoleyun.sn.comm.JGYActions;
|
||||
import com.aoleyun.sn.network.api.newapi.GetPublicIPApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SnTimeControlApi;
|
||||
import com.aoleyun.sn.network.api.newapi.TopAppControlApi;
|
||||
import com.aoleyun.sn.network.api.GetPublicIPApi;
|
||||
import com.aoleyun.sn.network.api.SnTimeControlApi;
|
||||
import com.aoleyun.sn.network.api.TopAppControlApi;
|
||||
import com.aoleyun.sn.service.LogcatService;
|
||||
import com.aoleyun.sn.service.main.MainService;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
@@ -621,33 +621,26 @@ public class HTTPInterface {
|
||||
public static void getAppLimit(Context context) {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getAppLimitObservable()
|
||||
.subscribe(new Observer<ResponseBody>() {
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getAppLimit", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull ResponseBody responseBody) {
|
||||
try {
|
||||
String bodyString = responseBody.string();
|
||||
Log.e("getAppLimit", "onNext: " + bodyString);
|
||||
JsonObject jsonObject = JsonParser.parseString(bodyString).getAsJsonObject();
|
||||
int code = jsonObject.get("code").getAsInt();
|
||||
if (code == 200) {
|
||||
String data = jsonObject.get("data").getAsJsonObject().get("result").getAsString();
|
||||
public void onNext(@NonNull BaseResponse baseResponse) {
|
||||
Log.e("getAppLimit", "onNext: " + baseResponse);
|
||||
JsonObject jsonObject = JsonParser.parseString(baseResponse.data.toString()).getAsJsonObject();
|
||||
if (baseResponse.code == 200) {
|
||||
String data = jsonObject.get("result").getAsString();
|
||||
//开机图标 只记录后台传的包名
|
||||
boolean write = Settings.System.putString(context.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data);
|
||||
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write);
|
||||
JGYUtils.getInstance().writeAppPackageList(context, data);
|
||||
JGYUtils.getInstance().deleteOtherApp();
|
||||
} else {
|
||||
Log.e("getAppLimit", "onNext: " + bodyString);
|
||||
Log.e("getAppLimit", "onNext: " + baseResponse);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
Log.e("getAppLimit", "onNext: IOException: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.util.Log;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.bean.AppListInfo;
|
||||
import com.aoleyun.sn.bean.Appground;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.BrowserBookmarks;
|
||||
@@ -30,40 +31,40 @@ import com.aoleyun.sn.network.api.ForceDownloadApi;
|
||||
import com.aoleyun.sn.network.api.NetAndLaunchApi;
|
||||
import com.aoleyun.sn.network.api.SystemSettingApi;
|
||||
import com.aoleyun.sn.network.api.UploadAppInfoApi;
|
||||
import com.aoleyun.sn.network.api.newapi.AppinsideWebApi;
|
||||
import com.aoleyun.sn.network.api.newapi.BrowserBookmarksApi;
|
||||
import com.aoleyun.sn.network.api.newapi.BrowserListApi;
|
||||
import com.aoleyun.sn.network.api.newapi.CheckTestUpdateApi;
|
||||
import com.aoleyun.sn.network.api.newapi.CheckUpdateApi;
|
||||
import com.aoleyun.sn.network.api.newapi.CustomROMAppApi;
|
||||
import com.aoleyun.sn.network.api.newapi.DefaultAppApi;
|
||||
import com.aoleyun.sn.network.api.newapi.DesktopIconApi;
|
||||
import com.aoleyun.sn.network.api.newapi.DevicesLockedStateApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetAllAppApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetAppLogApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetBatchApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetDesktopApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetDeveloperApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetEBagCodeApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetLockStateApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetJpushTagsApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetPoweroffApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetSnRunLogApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetUploadIsLogApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetUploadLogApi;
|
||||
import com.aoleyun.sn.network.api.newapi.GetWiFiAliasApi;
|
||||
import com.aoleyun.sn.network.api.newapi.LogoImgApi;
|
||||
import com.aoleyun.sn.network.api.newapi.MACAddressApi;
|
||||
import com.aoleyun.sn.network.api.newapi.NewAppinsideWebApi;
|
||||
import com.aoleyun.sn.network.api.newapi.ScreenLockStateApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SendDownloadInfoApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SendDownloadTimesApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SendRestoreTimesApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SendScreenshotApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SnTimeControlApi;
|
||||
import com.aoleyun.sn.network.api.newapi.StudentsInfosApi;
|
||||
import com.aoleyun.sn.network.api.newapi.TopAppControlApi;
|
||||
import com.aoleyun.sn.network.api.newapi.UpdateDeviceInfoApi;
|
||||
import com.aoleyun.sn.network.api.AppinsideWebApi;
|
||||
import com.aoleyun.sn.network.api.BrowserBookmarksApi;
|
||||
import com.aoleyun.sn.network.api.BrowserListApi;
|
||||
import com.aoleyun.sn.network.api.CheckTestUpdateApi;
|
||||
import com.aoleyun.sn.network.api.CheckUpdateApi;
|
||||
import com.aoleyun.sn.network.api.CustomROMAppApi;
|
||||
import com.aoleyun.sn.network.api.DefaultAppApi;
|
||||
import com.aoleyun.sn.network.api.DesktopIconApi;
|
||||
import com.aoleyun.sn.network.api.DevicesLockedStateApi;
|
||||
import com.aoleyun.sn.network.api.GetAllAppApi;
|
||||
import com.aoleyun.sn.network.api.GetAppLogApi;
|
||||
import com.aoleyun.sn.network.api.GetBatchApi;
|
||||
import com.aoleyun.sn.network.api.GetDesktopApi;
|
||||
import com.aoleyun.sn.network.api.GetDeveloperApi;
|
||||
import com.aoleyun.sn.network.api.GetEBagCodeApi;
|
||||
import com.aoleyun.sn.network.api.GetLockStateApi;
|
||||
import com.aoleyun.sn.network.api.GetJpushTagsApi;
|
||||
import com.aoleyun.sn.network.api.GetPoweroffApi;
|
||||
import com.aoleyun.sn.network.api.GetSnRunLogApi;
|
||||
import com.aoleyun.sn.network.api.GetUploadIsLogApi;
|
||||
import com.aoleyun.sn.network.api.GetUploadLogApi;
|
||||
import com.aoleyun.sn.network.api.GetWiFiAliasApi;
|
||||
import com.aoleyun.sn.network.api.LogoImgApi;
|
||||
import com.aoleyun.sn.network.api.MACAddressApi;
|
||||
import com.aoleyun.sn.network.api.NewAppinsideWebApi;
|
||||
import com.aoleyun.sn.network.api.ScreenLockStateApi;
|
||||
import com.aoleyun.sn.network.api.SendDownloadInfoApi;
|
||||
import com.aoleyun.sn.network.api.SendDownloadTimesApi;
|
||||
import com.aoleyun.sn.network.api.SendRestoreTimesApi;
|
||||
import com.aoleyun.sn.network.api.SendScreenshotApi;
|
||||
import com.aoleyun.sn.network.api.SnTimeControlApi;
|
||||
import com.aoleyun.sn.network.api.StudentsInfosApi;
|
||||
import com.aoleyun.sn.network.api.TopAppControlApi;
|
||||
import com.aoleyun.sn.network.api.UpdateDeviceInfoApi;
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
import com.aoleyun.sn.utils.JGYUtils;
|
||||
@@ -76,7 +77,6 @@ import com.google.gson.JsonParser;
|
||||
import com.tencent.android.tpush.XGIOperateCallback;
|
||||
import com.tencent.android.tpush.XGPushManager;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle4.LifecycleProvider;
|
||||
import com.trello.rxlifecycle4.RxLifecycle;
|
||||
import com.trello.rxlifecycle4.android.ActivityEvent;
|
||||
|
||||
@@ -95,10 +95,10 @@ import java.util.concurrent.TimeUnit;
|
||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.annotations.NonNull;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.ObservableEmitter;
|
||||
import io.reactivex.rxjava3.core.ObservableOnSubscribe;
|
||||
import io.reactivex.rxjava3.core.ObservableSource;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.functions.Function;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject;
|
||||
import okhttp3.Cache;
|
||||
@@ -338,7 +338,7 @@ public class NetInterfaceManager {
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
public Observable<ResponseBody> getAppLimitObservable() {
|
||||
public Observable<BaseResponse> getAppLimitObservable() {
|
||||
return mRetrofit.create(AppLimitApi.class)
|
||||
.getAppLimitApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial())
|
||||
.subscribeOn(Schedulers.io())
|
||||
@@ -559,7 +559,7 @@ public class NetInterfaceManager {
|
||||
|
||||
public void getLockedState(BehaviorSubject<ActivityEvent> provider, ObserverCallback callback) {
|
||||
long lastTime = mMMKV.decodeLong(GET_LOCKED_STATE_TIME, 0);
|
||||
if (System.currentTimeMillis() - ONE_MINUTE_TIME < lastTime) {
|
||||
if (System.currentTimeMillis() - TEN_MINUTE_TIME < lastTime) {
|
||||
callback.onComplete();
|
||||
return;
|
||||
}
|
||||
@@ -691,7 +691,8 @@ public class NetInterfaceManager {
|
||||
}
|
||||
String address = String.valueOf(SPUtils.get(mContext, "AmapAddress", "-"));
|
||||
if ("-".equals(address)) {
|
||||
address = (String) SPUtils.get(mContext, "AmapError", "-");
|
||||
address = "定位失败";
|
||||
// address = (String) SPUtils.get(mContext, "AmapError", "-");
|
||||
}
|
||||
String longitude = String.valueOf(SPUtils.get(mContext, "longitude", "0"));
|
||||
String latitude = String.valueOf(SPUtils.get(mContext, "latitude", "0"));
|
||||
@@ -813,6 +814,4 @@ public class NetInterfaceManager {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -10,13 +10,24 @@ public class UrlAddress {
|
||||
/*根网址*/
|
||||
public static final String HTTP_TAG_HEAD_NEW = BuildConfig.ROOT_URL;
|
||||
|
||||
|
||||
/*下载接口 根据包名匹配 请求后更新下载次数*/
|
||||
public static final String SEND_DOWNLOAD_TIMES = "count/index";
|
||||
/*app下载完成发送下载次数*/
|
||||
public static final String SEND_DOWNLOAD_FILE_INFO = "app/downloadApp";
|
||||
/*获取系统默认程序*/
|
||||
public static final String GET_DEFAULT_APP = "app/getDefaultApp";
|
||||
/*下载接口 根据包名匹配 请求后更新下载次数*/
|
||||
public static final String SEND_DOWNLOAD_TIMES = "count/index";
|
||||
/*获取设备锁定状态*/
|
||||
public static final String GET_DEVICES_LOCKED = "lock/index";
|
||||
/*获取批次*/
|
||||
public static final String GET_BATCH = "log/getBatch";
|
||||
/*上传锁屏状态*/
|
||||
public static final String GET_LOCK_STATE = "Application/getLockState";
|
||||
/*APPID管控*/
|
||||
public static final String GET_APPID = "application/index";
|
||||
/*获取系统设置*/
|
||||
public static final String GET_FIRMWARE = "firmware/get";
|
||||
/*上传安装的应用信息*/
|
||||
public static final String UPLOAD_APPINFO = "log/index";
|
||||
/*发送设备信息*/
|
||||
public static final String SEND_DEVICES = "Mac/getMac";
|
||||
/*发送app使用情况*/
|
||||
@@ -67,8 +78,7 @@ public class UrlAddress {
|
||||
public static final String GET_ALL_APP = "recommend/index";
|
||||
/*获取电子书包激活码*/
|
||||
public static final String GET_EBAG_CODE = "And/getEbagCode";
|
||||
/*获取系统默认程序*/
|
||||
public static final String GET_DEFAULT_APP = "app/getDefaultApp";
|
||||
|
||||
/*恢复出厂设置次数*/
|
||||
public static final String SEND_RESTORE_TIMES = "And/restore";
|
||||
/*获取远程关机时间*/
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
@@ -11,7 +11,7 @@ import retrofit2.http.POST;
|
||||
public interface AppLimitApi {
|
||||
@FormUrlEncoded
|
||||
@POST(UrlAddress.SET_WHITE_PACKAGE_LIST)
|
||||
Observable<ResponseBody> getAppLimitApi(
|
||||
Observable<BaseResponse> getAppLimitApi(
|
||||
@Field("key") String key,
|
||||
@Field("sn") String sn
|
||||
);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
|
||||
import com.aoleyun.sn.bean.Appground;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.BrowserBookmarks;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.BrowserData;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.ForceDownloadData;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.DefaultApp;
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.Field;
|
||||
@@ -8,7 +10,7 @@ import retrofit2.http.POST;
|
||||
|
||||
public interface DeselectIDApi {
|
||||
@FormUrlEncoded
|
||||
@POST("application/index")
|
||||
@POST(UrlAddress.GET_APPID)
|
||||
Observable<ResponseBody> getDeselectIDApi(
|
||||
@Field("key") String key,
|
||||
@Field("sn") String sn
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.AppListInfo;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,6 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
@@ -8,7 +10,7 @@ import retrofit2.http.POST;
|
||||
|
||||
public interface GetBatchApi {
|
||||
@FormUrlEncoded
|
||||
@POST("log/getBatch")
|
||||
@POST(UrlAddress.GET_BATCH)
|
||||
Observable<ResponseBody> getBatch(
|
||||
@Field("sn") String sn
|
||||
);
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,6 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
@@ -8,7 +10,7 @@ import retrofit2.http.POST;
|
||||
|
||||
public interface GetLockStateApi {
|
||||
@FormUrlEncoded
|
||||
@POST("Application/getLockState")
|
||||
@POST(UrlAddress.GET_LOCK_STATE)
|
||||
Observable<ResponseBody> getLockState(
|
||||
@Field("sn") String sn,
|
||||
@Field("status") String status,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.PoweroffBean;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.SnRunLog;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.SnRunLog;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.SnRunLog;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.LogoImg;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.StudentsInfo;
|
||||
@@ -1,15 +1,16 @@
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import okhttp3.ResponseBody;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
|
||||
public interface SystemSettingApi {
|
||||
@FormUrlEncoded
|
||||
@POST("firmware/get")
|
||||
@POST(UrlAddress.GET_FIRMWARE)
|
||||
Observable<ResponseBody> getSystemSettingApi(
|
||||
@Field("key") String key,
|
||||
@Field("sn") String sn
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.aoleyun.sn.network.api.newapi;
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.aoleyun.sn.network.api;
|
||||
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
@@ -9,7 +10,7 @@ import retrofit2.http.POST;
|
||||
|
||||
public interface UploadAppInfoApi {
|
||||
@FormUrlEncoded
|
||||
@POST("log/index")
|
||||
@POST(UrlAddress.UPLOAD_APPINFO)
|
||||
Observable<BaseResponse> getUploadAppInfoApi(
|
||||
@Field("key") String key,
|
||||
@Field("sn") String sn,
|
||||
|
||||
@@ -28,10 +28,8 @@ import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.comm.CommonConfig;
|
||||
import com.aoleyun.sn.comm.PackageNames;
|
||||
import com.aoleyun.sn.manager.AmapManager;
|
||||
import com.aoleyun.sn.network.HTTPInterface;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.network.api.newapi.GetLockStateApi;
|
||||
import com.aoleyun.sn.network.api.newapi.SendScreenStatusApi;
|
||||
import com.aoleyun.sn.network.api.SendScreenStatusApi;
|
||||
import com.aoleyun.sn.receiver.BootReceiver;
|
||||
import com.aoleyun.sn.receiver.NewAppReceiver;
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
@@ -339,6 +337,11 @@ public class GuardService extends Service {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param status
|
||||
* @param time
|
||||
* 和锁屏状态无关,记录设备使用时长的
|
||||
*/
|
||||
private void getLockState(String status, String time) {
|
||||
if (JGYUtils.isOfficialVersion()) {
|
||||
return;
|
||||
@@ -558,6 +561,7 @@ public class GuardService extends Service {
|
||||
@Download.onTaskFail
|
||||
void taskFail(DownloadTask task, Exception e) {
|
||||
try {
|
||||
Aria.download(this).resumeAllTask();
|
||||
final String filepath = task.getFilePath();
|
||||
final String packageName = task.getExtendField();
|
||||
JSONObject jsonObject = JSON.parseObject(task.getExtendField());
|
||||
|
||||
@@ -1,174 +1,169 @@
|
||||
package com.aoleyun.sn.service.main;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import com.aoleyun.sn.base.BasePresenter;
|
||||
import com.aoleyun.sn.base.BaseView;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class MainSContact {
|
||||
public interface Presenter extends BasePresenter<MainView> {
|
||||
//获取学生信息
|
||||
void getStudesInfo();
|
||||
//获取设备锁定状态
|
||||
|
||||
/*分支1*/
|
||||
/*获取设备锁定状态*/
|
||||
void getLockedState(String key);
|
||||
//是否第一次联网
|
||||
void getFirstConnect();
|
||||
//关闭所有功能
|
||||
void setDisableSetting();
|
||||
//发送mac地址
|
||||
void sendMACAddress();
|
||||
//更新设备信息
|
||||
void updateDeviceInfo();
|
||||
//获取时间管控
|
||||
void getSnTimeControl();
|
||||
//获取电子书包激活码
|
||||
void getEBagCode();
|
||||
//设置极光推送别名
|
||||
void setJpushAlias();
|
||||
//设置极光推送平台标签
|
||||
void setJpushPlatformTags(int platform);
|
||||
//获取应用市场更新
|
||||
void checkStoreUpdate();
|
||||
//获取设备信息更新
|
||||
void checkInfoUpdate();
|
||||
//获取桌面升级
|
||||
void checkDesktopUpdate();
|
||||
//获取通知升级
|
||||
void checkNotifyUpdate();
|
||||
//获取浏览器升级
|
||||
void checkBrowserUpdate();
|
||||
//手动获取设备信息更新
|
||||
void buttonCheckUpdate(View view);
|
||||
//获取测试应用更新
|
||||
void checkTestUpdate();
|
||||
//开始
|
||||
//设置极光推送标签
|
||||
/*设置极光推送标签*/
|
||||
void setPushTags();
|
||||
//获取开发者选项
|
||||
void getDeveloper();
|
||||
//获取设备后台设置
|
||||
void getSystemSettingbegin();
|
||||
//获取可被写入的安装包名
|
||||
void getAppLimit();
|
||||
//获取设备批次
|
||||
void getDeviceBatch(String packageList);
|
||||
//获取强制下载apk
|
||||
/*获取设备批次*/
|
||||
void getDeviceBatch();
|
||||
|
||||
|
||||
/*分支2 基本信息*/
|
||||
/*是否第一次联网*/
|
||||
void getFirstConnect();
|
||||
/*获取学生信息*/
|
||||
void getStudesInfo();
|
||||
|
||||
/*分支3 上传信息*/
|
||||
/*发送mac地址*/
|
||||
void sendMACAddress();
|
||||
/*更新设备信息*/
|
||||
void updateDeviceInfo();
|
||||
/*上传安装的应用列表*/
|
||||
void sendInstalled();
|
||||
|
||||
/*分支4 获取应用*/
|
||||
/*获取设备信息更新*/
|
||||
void checkInfoUpdate();
|
||||
/*获取应用市场更新*/
|
||||
void checkStoreUpdate();
|
||||
/*获取桌面升级*/
|
||||
void checkDesktopUpdate();
|
||||
/*获取通知升级*/
|
||||
void checkNotifyUpdate();
|
||||
/*获取浏览器升级*/
|
||||
void checkBrowserUpdate();
|
||||
/*获取测试应用更新*/
|
||||
void checkTestUpdate();
|
||||
/*获取强制下载apk*/
|
||||
void getForceDownload();
|
||||
//获取浏览器上网管控设置
|
||||
void getBrowserList();
|
||||
//获取浏览器书签设置管控
|
||||
void getBrowserBookmarks(String whitelist);
|
||||
//设置白名单的url
|
||||
void getBrowserWhiteList();
|
||||
//获取应用图标桌面可见性管控
|
||||
void getDesktopIcon();
|
||||
//获取应用自启升级和网络权限管理
|
||||
void getAppAutoStartUpdateAndNet();
|
||||
//获取第三方应用子页面ID连网限制
|
||||
void getAppIDControl();
|
||||
//获取第三方应用内部网页跳转屏蔽
|
||||
void setAppinsideWeb();
|
||||
//获取系统其他管控设置
|
||||
void setSystemSetting();
|
||||
//获取系统默认程序设置
|
||||
void getDefaultApp();
|
||||
//获取自定义版本内置app
|
||||
void getROMApp();
|
||||
//设置开机动画
|
||||
void setLogoImg();
|
||||
//应用霸屏
|
||||
void setTopApp();
|
||||
//获取桌面
|
||||
/*获取桌面*/
|
||||
void getDefaultDesktop();
|
||||
//获取关机时间
|
||||
/*设置开机动画*/
|
||||
void setLogoImg();
|
||||
|
||||
/*分支5 获取管控*/
|
||||
/*获取开发者选项*/
|
||||
void getDeveloper();
|
||||
/*获取设备后台设置*/
|
||||
void getSystemSettingBegin();
|
||||
/*获取可被写入的安装包名*/
|
||||
void getAppLimit();
|
||||
/*获取自定义内置app*/
|
||||
void getROMApp();
|
||||
/*获取浏览器书签设置管控*/
|
||||
void getBrowserBookmarks();
|
||||
/*设置白名单的url 单独*/
|
||||
void getBrowserWhiteList();
|
||||
/*获取应用图标桌面可见性管控*/
|
||||
void getDesktopIcon();
|
||||
/*获取应用自启升级和网络权限管理*/
|
||||
void getAppAutoStartUpdateAndNet();
|
||||
/*获取第三方应用子页面ID连网限制*/
|
||||
void getAppIDControl();
|
||||
/*获取第三方应用内部网页跳转屏蔽*/
|
||||
void setAppinsideWeb();
|
||||
/*获取系统其他管控设置*/
|
||||
void setSystemSetting();
|
||||
/*获取系统默认程序设置*/
|
||||
void getDefaultApp();
|
||||
/*应用霸屏*/
|
||||
void setTopApp();
|
||||
/*获取关机时间*/
|
||||
void getPoweroffTime();
|
||||
//获取wifi密码
|
||||
/*获取时间管控*/
|
||||
void getSnTimeControl();
|
||||
/*获取电子书包激活码*/
|
||||
void getEBagCode();
|
||||
/*获取wifi密码*/
|
||||
void getWiFiPasswd();
|
||||
/*
|
||||
* MainService
|
||||
* */
|
||||
//获取屏幕锁状态
|
||||
/*获取屏幕锁状态*/
|
||||
void getScreenLockState();
|
||||
}
|
||||
|
||||
public interface MainView extends BaseView {
|
||||
//获取设备锁定状态
|
||||
void setLockedState(boolean loocked);
|
||||
//是否第一次联网
|
||||
void setFirstConnect(boolean state);
|
||||
//发送mac地址
|
||||
void sendMACFinish();
|
||||
//更新设备信息
|
||||
void updateDeviceInfoFinish();
|
||||
//获取时间管控
|
||||
void getSnTimeControlFinish();
|
||||
//获取电子书包激活码
|
||||
void getEBagCodeFinish();
|
||||
//设置极光推送别名
|
||||
void setAliasFinish();
|
||||
//设置极光推送平台标签
|
||||
void setJpushPlatformTagsFinish();
|
||||
//获取应用市场更新
|
||||
void checkStoreUpdateFinish();
|
||||
//获取设备信息更新
|
||||
void checkInfoUpdateFinish();
|
||||
//获取桌面升级
|
||||
void checkDesktopUpdateFinish();
|
||||
//获取通知升级
|
||||
void checkNotifyUpdateFinish();
|
||||
//获取浏览器升级
|
||||
void checkBrowserUpdateFinish();
|
||||
//手动获取设备信息更新
|
||||
void buttonCheckUpdateFinish(boolean update, JsonObject jsonObject);
|
||||
//获取测试应用更新
|
||||
void checkTestUpdateFinish();
|
||||
//开始
|
||||
//设置极光推送标签
|
||||
void setTagsFinish(boolean noTag);
|
||||
//获取开发者选项结束
|
||||
void getDeveloperFinish();
|
||||
//设置设备后台设置
|
||||
void getSystemSettingbegin();
|
||||
//获取可被写入的安装包名结束
|
||||
void getAppLimitFinish(String packageList);
|
||||
//获取设备批次结束
|
||||
void getDeviceBatchFinish();
|
||||
//获取强制下载apk结束
|
||||
void getForceDownloadFinish();
|
||||
//获取浏览器上网管控设置结束
|
||||
void getBrowserListFinish(String whitelist);
|
||||
//获取浏览器书签设置管控结束
|
||||
void getBrowserBookmarksFinish();
|
||||
//获取应用图标桌面可见性管控结束
|
||||
void getDesktopIconFinish();
|
||||
//获取应用自启升级和网络权限管理结束
|
||||
void getAppAutoStartUpdateAndNetFinish();
|
||||
//获取第三方应用子页面ID连网限制结束
|
||||
void getAppIDControlFinish();
|
||||
//获取第三方应用内部网页跳转屏蔽结束
|
||||
void setAppinsideWebFinish();
|
||||
//获取系统其他管控设置结束
|
||||
void setSystemSettingFinish();
|
||||
//获取系统默认程序设置
|
||||
void setDefaultAppFinish();
|
||||
//获取自定义版本内置app
|
||||
void getROMAppFinish();
|
||||
|
||||
//设置开机动画
|
||||
void setLogoImgFinish();
|
||||
//获取应用霸屏结束
|
||||
void setTopAppFinish();
|
||||
//获取桌面结束
|
||||
/*获取设备锁定状态*/
|
||||
void setLockedState(boolean loocked);
|
||||
/*设置极光推送标签*/
|
||||
void setTagsFinish(boolean noTag);
|
||||
/*获取设备批次结束*/
|
||||
void getDeviceBatchFinish();
|
||||
|
||||
|
||||
/*是否第一次联网*/
|
||||
void setFirstConnect(boolean state);
|
||||
/*获取学生信息*/
|
||||
void setStudesInfo();
|
||||
|
||||
/*发送mac地址*/
|
||||
void sendMACFinish();
|
||||
/*更新设备信息*/
|
||||
void updateDeviceInfoFinish();
|
||||
/*上传安装的应用列表*/
|
||||
void sendInstalledFinish();
|
||||
|
||||
/*获取设备信息更新*/
|
||||
void checkInfoUpdateFinish();
|
||||
/*获取应用市场更新*/
|
||||
void checkStoreUpdateFinish();
|
||||
/*获取桌面升级*/
|
||||
void checkDesktopUpdateFinish();
|
||||
/*获取通知升级*/
|
||||
void checkNotifyUpdateFinish();
|
||||
/*获取浏览器升级*/
|
||||
void checkBrowserUpdateFinish();
|
||||
/*获取测试应用更新*/
|
||||
void checkTestUpdateFinish();
|
||||
/*获取强制下载apk结束*/
|
||||
void getForceDownloadFinish();
|
||||
/*获取桌面结束*/
|
||||
void getDefaultDesktopFinish();
|
||||
//获取关机时间
|
||||
/*设置开机动画*/
|
||||
void setLogoImgFinish();
|
||||
|
||||
/*获取开发者选项结束*/
|
||||
void getDeveloperFinish();
|
||||
/*设置设备后台设置*/
|
||||
void setSystemSetting();
|
||||
/*获取可被写入的安装包名结束*/
|
||||
void getAppLimitFinish();
|
||||
/*获取自定义内置app*/
|
||||
void getROMAppFinish();
|
||||
/*获取浏览器书签设置管控结束*/
|
||||
void getBrowserBookmarksFinish();
|
||||
/*设置白名单的url 单独*/
|
||||
void setBrowserWhiteList();
|
||||
/*获取应用图标桌面可见性管控结束*/
|
||||
void getDesktopIconFinish();
|
||||
/*获取应用自启升级和网络权限管理结束*/
|
||||
void getAppAutoStartUpdateAndNetFinish();
|
||||
/*获取第三方应用子页面ID连网限制结束*/
|
||||
void getAppIDControlFinish();
|
||||
/*获取第三方应用内部网页跳转屏蔽结束*/
|
||||
void setAppinsideWebFinish();
|
||||
/*获取系统其他管控设置结束*/
|
||||
void setSystemSettingFinish();
|
||||
/*获取系统默认程序设置*/
|
||||
void setDefaultAppFinish();
|
||||
/*获取应用霸屏结束*/
|
||||
void setTopAppFinish();
|
||||
/*获取关机时间*/
|
||||
void setPoweroffTime();
|
||||
//获取wifi密码结束
|
||||
/*获取时间管控*/
|
||||
void getSnTimeControlFinish();
|
||||
/*获取电子书包激活码*/
|
||||
void getEBagCodeFinish();
|
||||
/*获取wifi密码结束*/
|
||||
void setWiFiPasswd();
|
||||
/*
|
||||
* MainService
|
||||
* */
|
||||
//设置屏幕锁状态结束
|
||||
/*设置屏幕锁状态结束*/
|
||||
void setScreenLockStateFinish(boolean locked, String tips);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,11 +5,9 @@ import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.Service;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.net.ConnectivityManager;
|
||||
@@ -18,7 +16,6 @@ import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Build;
|
||||
import android.os.IBinder;
|
||||
import android.os.SystemClock;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.util.DisplayMetrics;
|
||||
@@ -37,14 +34,12 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.aoleyun.sn.BuildConfig;
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.activity.main.MainAPresenter;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.PoweroffBean;
|
||||
import com.aoleyun.sn.comm.CommonConfig;
|
||||
import com.aoleyun.sn.comm.JGYActions;
|
||||
import com.aoleyun.sn.comm.PackageNames;
|
||||
import com.aoleyun.sn.manager.ConnectManager;
|
||||
import com.aoleyun.sn.network.NetInterfaceManager;
|
||||
import com.aoleyun.sn.receiver.BootReceiver;
|
||||
import com.aoleyun.sn.rlog.LogDBManager;
|
||||
import com.aoleyun.sn.utils.ApkUtils;
|
||||
import com.aoleyun.sn.utils.ForegroundAppUtil;
|
||||
@@ -57,7 +52,6 @@ import com.aoleyun.sn.utils.ToastUtil;
|
||||
import com.aoleyun.sn.utils.Utils;
|
||||
import com.blankj.utilcode.util.NetworkUtils;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.tencent.mmkv.MMKV;
|
||||
import com.trello.rxlifecycle4.LifecycleProvider;
|
||||
@@ -87,7 +81,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
public static MainSPresenter mPresenter;
|
||||
public static boolean netWorkIsRunning = false;
|
||||
private MMKV mMMKV = MMKV.defaultMMKV();
|
||||
|
||||
@Override
|
||||
@@ -109,6 +102,9 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
start.onstar(WiFiAlias);
|
||||
}
|
||||
}
|
||||
if (!checkAoleyunApp()){
|
||||
mPresenter.checkInfoUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
private final BehaviorSubject<ActivityEvent> lifecycleSubject = BehaviorSubject.create();
|
||||
@@ -198,7 +194,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private interface Start {
|
||||
void onstar(String key);
|
||||
}
|
||||
@@ -215,25 +210,24 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
private Observer<String> timeObserver = new Observer<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
Log.e("timeObserver", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String string) {
|
||||
connectKey = string;
|
||||
Log.e("TimeObserver", "onNext: " + string);
|
||||
mPresenter.getFirstConnect();
|
||||
Log.e("timeObserver", "onNext: " + string);
|
||||
mPresenter.getLockedState(string);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
Log.e("timeObserver", "onError: " + e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
Log.e("timeObserver", "onComplete: ");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -254,6 +248,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
mPresenter = new MainSPresenter(this);
|
||||
mPresenter.attachView(this);
|
||||
mPresenter.setLifecycle(lifecycleSubject);
|
||||
|
||||
Observable.create(subscribe)
|
||||
.throttleFirst(1, TimeUnit.MINUTES)
|
||||
.subscribe(timeObserver);
|
||||
@@ -263,24 +258,23 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
if ((int) SPUtils.get(this, CommonConfig.JGY_FIRST_CONNECT, 0) == 0) {
|
||||
// TODO: 2021/5/26 待底层修改,临时解决办法
|
||||
Log.e(TAG, "onCreate: " + "Disable All Settings");
|
||||
mPresenter.setDisableSetting();
|
||||
SysSettingUtils.setDisableSetting(this);
|
||||
start.onstar(ConnectManager.REBOOT_LAST_ONNECT_TIME);
|
||||
}
|
||||
int oldVersionCode = (int) SPUtils.get(this, CommonConfig.SN_VERSIONCODE, 0);
|
||||
if (oldVersionCode < BuildConfig.VERSION_CODE) {
|
||||
Log.e(TAG, "onCreate: " + "upgrade successful");
|
||||
} else {
|
||||
// if (ConnectManager.getInstance().isRebootFistConnect()) {
|
||||
start.onstar(ConnectManager.REBOOT_LAST_ONNECT_TIME);
|
||||
start.onstar(ConnectManager.REBOOT_LAST_ONNECT_TIME);
|
||||
// }
|
||||
}
|
||||
SPUtils.put(this, CommonConfig.SN_VERSIONCODE, BuildConfig.VERSION_CODE);
|
||||
registerReceivers();
|
||||
NetworkUtils.registerNetworkStatusChangedListener(this);
|
||||
addShortcut();
|
||||
// cleanLauncherCache();
|
||||
timeChangedStart.onstar(System.currentTimeMillis());
|
||||
setStatusbar();
|
||||
//发送设备mac地址和信息
|
||||
setFloatingWindow(this);
|
||||
createNotificationChannel();
|
||||
sendSimpleNotification();
|
||||
@@ -289,6 +283,9 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
JGYUtils.getInstance().wakeUpAppstore();
|
||||
if (!checkAoleyunApp()){
|
||||
mPresenter.checkInfoUpdate();
|
||||
}
|
||||
return START_STICKY;
|
||||
}
|
||||
|
||||
@@ -301,6 +298,18 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
mPresenter.detachView();
|
||||
}
|
||||
|
||||
private boolean checkAoleyunApp() {
|
||||
if (!ApkUtils.isAvailable(this, PackageNames.APPSTORE)) return false;
|
||||
if (!ApkUtils.isAvailable(this, PackageNames.DESKTOP)) return false;
|
||||
if (!ApkUtils.isAvailable(this, PackageNames.NOTIFICATIONS)) return false;
|
||||
if (!ApkUtils.isAvailable(this, PackageNames.BROWSER)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private static final String CHANNEL_ID = "CHANNEL_ID";
|
||||
private static final String channel_name = "系统通知";
|
||||
private static final String channel_description = "我的设备系统通知";
|
||||
|
||||
private void createNotificationChannel() {
|
||||
// Create the NotificationChannel, but only on API 26+ because
|
||||
// the NotificationChannel class is new and not in the support library
|
||||
@@ -317,10 +326,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
}
|
||||
}
|
||||
|
||||
private static final String CHANNEL_ID = "CHANNEL_ID";
|
||||
private static final String channel_name = "系统通知";
|
||||
private static final String channel_description = "我的设备系统通知";
|
||||
|
||||
private void sendSimpleNotification() {
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID")
|
||||
.setSmallIcon(R.mipmap.ic_launcher)
|
||||
@@ -337,7 +342,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
}
|
||||
|
||||
private void addShortcut() {
|
||||
ApkUtils.addShortcut(MainService.this);
|
||||
ApkUtils.addShortcut(this);
|
||||
}
|
||||
|
||||
private void setStatusbar() {
|
||||
@@ -571,8 +576,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
}
|
||||
|
||||
private void checkShutdownTime() {
|
||||
MMKV mmkv = MMKV.defaultMMKV();
|
||||
String poweroffTime = mmkv.decodeString("poweroffTime", "");
|
||||
String poweroffTime = mMMKV.decodeString("poweroffTime", "");
|
||||
Log.e("checkShutdownTime", "poweroffTime: " + poweroffTime);
|
||||
Gson gson = new Gson();
|
||||
Type listType = new TypeToken<List<PoweroffBean>>() {
|
||||
@@ -597,7 +601,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
private static final String UPLOAD_LOG_TIME = "23:00:00";
|
||||
|
||||
private void checkUploadLogTime() {
|
||||
int is_log_type = (int) SPUtils.get(MainService.this, CommonConfig.UPLOAD_LOG_TYPE, 0);
|
||||
int is_log_type = (int) SPUtils.get(this, CommonConfig.UPLOAD_LOG_TYPE, 0);
|
||||
if (is_log_type == 0) {
|
||||
Log.e(TAG, "checkUploadLogTime: " + "is_log_type = " + is_log_type);
|
||||
} else {
|
||||
@@ -614,7 +618,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
synchronized private void setFloatingWindow(Context context) {
|
||||
ForegroundAppUtil.openTopApp(context);
|
||||
long nowTime = System.currentTimeMillis();
|
||||
TimeUtils.ContralTime contralTime = TimeUtils.getDefaltContralTime(MainService.this);
|
||||
TimeUtils.ContralTime contralTime = TimeUtils.getDefaltContralTime(this);
|
||||
Log.e(TAG, "setFloatingWindow: " + contralTime);
|
||||
Log.e(TAG, "setFloatingWindow: screenlocked: " + screenlocked);
|
||||
if (null != contralTime) {
|
||||
@@ -700,57 +704,38 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
Log.e(TAG, "installApkByPackage: " + "packageName: " + pkg + " not in whitelist");
|
||||
} else {
|
||||
Log.e(TAG, "installApkByPackage: " + "packageName: " + pkg);
|
||||
ApkUtils.installApp(MainService.this, filePath);
|
||||
ApkUtils.installApp(this, filePath);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLockedState(boolean loocked) {
|
||||
Log.e(TAG, "netWorkIsRunning: " + netWorkIsRunning);
|
||||
//发送设备mac地址和信息
|
||||
mPresenter.sendMACAddress();
|
||||
//设置极光推送别名
|
||||
mPresenter.setJpushAlias();
|
||||
//设置极光推送标签
|
||||
mPresenter.setPushTags();
|
||||
if (loocked) {
|
||||
ToastUtil.betaShow("设备已上锁");
|
||||
//上传APP信息
|
||||
NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.ObserverCallback() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(BaseResponse response) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
mPresenter.setPushTags();
|
||||
mPresenter.getDeveloper();
|
||||
SaveListUtils.getList();
|
||||
if (netWorkIsRunning) {
|
||||
//如果正在执行,不执行
|
||||
// return;
|
||||
}
|
||||
netWorkIsRunning = true;
|
||||
} else {
|
||||
ToastUtil.betaShow("设备已解锁");
|
||||
netWorkIsRunning = false;
|
||||
SysSettingUtils.setEnableSetting(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTagsFinish(boolean noTag) {
|
||||
if (noTag) {
|
||||
//没有批次就没有管控
|
||||
Log.e(TAG, "setTagsFinish: " + "not set tag");
|
||||
} else {
|
||||
mPresenter.getDeviceBatch();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDeviceBatchFinish() {
|
||||
mPresenter.getFirstConnect();
|
||||
}
|
||||
|
||||
/**
|
||||
* 首次使用默认关闭所有功能
|
||||
*
|
||||
@@ -760,12 +745,22 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
public void setFirstConnect(boolean state) {
|
||||
Log.e(TAG, "isFirstConnect: " + "end request: " + state);
|
||||
if (state) {
|
||||
mPresenter.setDisableSetting();
|
||||
Log.e(TAG, "setDisableSetting: ");
|
||||
//设置系统管控
|
||||
SysSettingUtils.setDisableSetting(this);
|
||||
} else {
|
||||
|
||||
}
|
||||
mPresenter.getStudesInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStudesInfo() {
|
||||
Log.e(TAG, "setStudesInfo: " + "基本信息获取完毕");
|
||||
mPresenter.sendMACAddress();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void sendMACFinish() {
|
||||
mPresenter.updateDeviceInfo();
|
||||
@@ -773,36 +768,23 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
|
||||
@Override
|
||||
public void updateDeviceInfoFinish() {
|
||||
mPresenter.getSnTimeControl();
|
||||
mPresenter.sendInstalled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSnTimeControlFinish() {
|
||||
mPresenter.getEBagCode();
|
||||
public void sendInstalledFinish() {
|
||||
Log.e(TAG, "sendInstalledFinish: ");
|
||||
mPresenter.checkInfoUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getEBagCodeFinish() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAliasFinish() {
|
||||
public void checkInfoUpdateFinish() {
|
||||
mPresenter.checkStoreUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setJpushPlatformTagsFinish() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkStoreUpdateFinish() {
|
||||
mPresenter.checkInfoUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkInfoUpdateFinish() {
|
||||
mPresenter.checkDesktopUpdate();
|
||||
}
|
||||
|
||||
@@ -821,61 +803,54 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
mPresenter.checkTestUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buttonCheckUpdateFinish(boolean update, JsonObject jsonObject) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkTestUpdateFinish() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTagsFinish(boolean noTag) {
|
||||
if (noTag) {
|
||||
Log.e(TAG, "setTagsFinished: " + "not set tag");
|
||||
netWorkIsRunning = false;
|
||||
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime()) + " ms");
|
||||
} else {
|
||||
mPresenter.getSystemSettingbegin();
|
||||
}
|
||||
mPresenter.getDeveloper();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDeveloperFinish() {
|
||||
Log.e(TAG, "getDeveloperFinished: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSystemSettingbegin() {
|
||||
mPresenter.getAppLimit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAppLimitFinish(String packageList) {
|
||||
mPresenter.getDeviceBatch(packageList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDeviceBatchFinish() {
|
||||
mPresenter.getForceDownload();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getForceDownloadFinish() {
|
||||
mPresenter.getBrowserList();
|
||||
mPresenter.getDefaultDesktop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getBrowserListFinish(String whitelist) {
|
||||
mPresenter.getBrowserBookmarks(whitelist);
|
||||
public void getDefaultDesktopFinish() {
|
||||
mPresenter.setLogoImg();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLogoImgFinish() {
|
||||
Log.e(TAG, "setLogoImgFinish: ");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void getDeveloperFinish() {
|
||||
mPresenter.getSystemSettingBegin();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSystemSetting() {
|
||||
mPresenter.getAppLimit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAppLimitFinish() {
|
||||
mPresenter.getROMApp();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getROMAppFinish() {
|
||||
mPresenter.getBrowserBookmarks();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getBrowserBookmarksFinish() {
|
||||
mPresenter.getBrowserWhiteList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBrowserWhiteList() {
|
||||
mPresenter.getDesktopIcon();
|
||||
}
|
||||
|
||||
@@ -906,39 +881,33 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
|
||||
@Override
|
||||
public void setDefaultAppFinish() {
|
||||
mPresenter.getROMApp();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getROMAppFinish() {
|
||||
mPresenter.setLogoImg();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLogoImgFinish() {
|
||||
mPresenter.setTopApp();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTopAppFinish() {
|
||||
mPresenter.getDefaultDesktop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDefaultDesktopFinish() {
|
||||
mPresenter.getPoweroffTime();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPoweroffTime() {
|
||||
mPresenter.getSnTimeControl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSnTimeControlFinish() {
|
||||
mPresenter.getEBagCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getEBagCodeFinish() {
|
||||
mPresenter.getWiFiPasswd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWiFiPasswd() {
|
||||
MMKV.defaultMMKV().encode(MainAPresenter.GET_SETTING_FINISH_TIME, System.currentTimeMillis());
|
||||
netWorkIsRunning = false;
|
||||
Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime()) + " ms");
|
||||
mMMKV.encode(MainAPresenter.GET_SETTING_FINISH_TIME, System.currentTimeMillis());
|
||||
mPresenter.getScreenLockState();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -948,15 +917,17 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
showFloatingWindow(tips);
|
||||
}
|
||||
screenlocked = true;
|
||||
SPUtils.put(MainService.this, "is_screen_lock", true);
|
||||
SPUtils.put(MainService.this, "screen_tips", tips);
|
||||
SPUtils.put(this, "is_screen_lock", true);
|
||||
SPUtils.put(this, "screen_tips", tips);
|
||||
} else {
|
||||
if (!timelocked) {
|
||||
hideFloatingWindow();
|
||||
}
|
||||
screenlocked = false;
|
||||
SPUtils.put(MainService.this, "is_screen_lock", false);
|
||||
SPUtils.put(MainService.this, "screen_tips", "");
|
||||
SPUtils.put(this, "is_screen_lock", false);
|
||||
SPUtils.put(this, "screen_tips", "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user