From f2cc0aea30c17c538f4c14cfdc5609e1d63d5851 Mon Sep 17 00:00:00 2001 From: Godfather <981964879@qq.com> Date: Wed, 6 Apr 2022 18:11:55 +0800 Subject: [PATCH] version: fix:netfixes update: --- .../activity/checknet/CheckNetActivity.java | 24 +- .../sn/activity/checknet/CheckNetContact.java | 22 +- .../activity/checknet/CheckNetPresenter.java | 601 +-------- .../sn/activity/main/MainAPresenter.java | 12 +- .../com/aoleyun/sn/bean/DeveloperBean.java | 17 + .../com/aoleyun/sn/bean/SnTimeControl.java | 26 + .../main/java/com/aoleyun/sn/bean/TopApp.java | 16 + .../aoleyun/sn/manager/ConnectManager.java | 6 +- .../sn/network/NetInterfaceManager.java | 1071 ++++++++++++----- .../sn/network/api/get/GetDesktopApi.java | 3 +- .../sn/network/api/get/GetDeveloperApi.java | 3 +- .../sn/network/api/get/GetJpushTagsApi.java | 3 +- .../sn/network/api/get/SnTimeControlApi.java | 3 +- .../sn/network/api/get/TopAppControlApi.java | 3 +- .../sn/network/api/post/ForceDownloadApi.java | 7 +- .../interceptor/RepeatRequestInterceptor.java | 19 +- .../aoleyun/sn/receiver/NewAppReceiver.java | 19 +- .../sn/service/main/MainSPresenter.java | 475 +------- .../aoleyun/sn/service/main/MainService.java | 41 +- .../com/aoleyun/sn/tpush/MessageReceiver.java | 27 +- 20 files changed, 1003 insertions(+), 1395 deletions(-) create mode 100644 app/src/main/java/com/aoleyun/sn/bean/DeveloperBean.java create mode 100644 app/src/main/java/com/aoleyun/sn/bean/SnTimeControl.java create mode 100644 app/src/main/java/com/aoleyun/sn/bean/TopApp.java diff --git a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetActivity.java b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetActivity.java index 841e110..a5883fc 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetActivity.java +++ b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetActivity.java @@ -197,31 +197,11 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma @Override public void setJpushPlatformTagsFinish() { - mCheckNetPresenter.checkStoreUpdate(); + mCheckNetPresenter.checkAoleyunUpdate(); } @Override - public void checkStoreUpdateFinish() { - mCheckNetPresenter.checkInfoUpdate(); - } - - @Override - public void checkInfoUpdateFinish() { - mCheckNetPresenter.checkDesktopUpdate(); - } - - @Override - public void checkDesktopUpdateFinish() { - mCheckNetPresenter.checkNotifyUpdate(); - } - - @Override - public void checkNotifyUpdateFinish() { - mCheckNetPresenter.checkBrowserUpdate(); - } - - @Override - public void checkBrowserUpdateFinish() { + public void checkAoleyunUpdateFinish() { mCheckNetPresenter.checkTestUpdate(); } diff --git a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetContact.java b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetContact.java index 75ea85e..d323c3c 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetContact.java +++ b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetContact.java @@ -21,16 +21,8 @@ public class CheckNetContact { //设置极光推送平台标签 void setJpushPlatformTags(int platform); - //获取应用市场更新 - void checkStoreUpdate(); //获取设备信息更新 - void checkInfoUpdate(); - //获取桌面升级 - void checkDesktopUpdate(); - //获取通知升级 - void checkNotifyUpdate(); - //获取浏览器升级 - void checkBrowserUpdate(); + void checkAoleyunUpdate(); //获取测试应用更新 void checkTestUpdate(); @@ -101,16 +93,10 @@ public class CheckNetContact { void getEBagCodeFinish(); //设置极光推送平台标签 void setJpushPlatformTagsFinish(); - //获取应用市场更新 - void checkStoreUpdateFinish(); + //获取设备信息更新 - void checkInfoUpdateFinish(); - //获取桌面升级 - void checkDesktopUpdateFinish(); - //获取通知升级 - void checkNotifyUpdateFinish(); - //获取浏览器升级 - void checkBrowserUpdateFinish(); + void checkAoleyunUpdateFinish(); + //获取测试应用更新 void checkTestUpdateFinish(); //开始 diff --git a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetPresenter.java b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetPresenter.java index fbbab7a..be1eed6 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetPresenter.java +++ b/app/src/main/java/com/aoleyun/sn/activity/checknet/CheckNetPresenter.java @@ -2,7 +2,6 @@ package com.aoleyun.sn.activity.checknet; import android.content.ContentResolver; import android.content.Context; -import android.content.Intent; import android.content.pm.PackageManager; import android.provider.Settings; import android.text.TextUtils; @@ -11,43 +10,32 @@ import android.util.Log; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aoleyun.sn.BuildConfig; -import com.aoleyun.sn.base.BaseApplication; import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.DefaultApp; -import com.aoleyun.sn.bean.ForceDownloadBean; -import com.aoleyun.sn.bean.ForceDownloadData; import com.aoleyun.sn.bean.LogoImg; import com.aoleyun.sn.bean.NetAndLaunchBean; -import com.aoleyun.sn.bean.PoweroffBean; import com.aoleyun.sn.bean.WiFiAlias; import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.JGYActions; -import com.aoleyun.sn.comm.PackageNames; import com.aoleyun.sn.network.NetInterfaceManager; -import com.aoleyun.sn.service.main.MainService; import com.aoleyun.sn.utils.ApkUtils; -import com.aoleyun.sn.utils.ForegroundAppUtil; import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.SysSettingUtils; -import com.aoleyun.sn.utils.TimeUtils; import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.URLUtils; import com.aoleyun.sn.utils.Utils; import com.aoleyun.sn.utils.WiFiUtils; -import com.arialyy.aria.core.Aria; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import com.google.gson.reflect.TypeToken; import com.tencent.mmkv.MMKV; import com.trello.rxlifecycle4.LifecycleProvider; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import java.io.IOException; -import java.lang.reflect.Type; import java.util.Arrays; import java.util.List; @@ -132,22 +120,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void sendMACAddress() { - NetInterfaceManager.getInstance().sendMACAddress(lifecycle, new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseResponse response) { - - } - - @Override - public void onError(Throwable e) { - - } - + NetInterfaceManager.getInstance().sendMACAddress(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.sendMACFinish(); @@ -161,22 +134,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { mView.updateDeviceInfoFinish(); return; } - NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseResponse response) { - - } - - @Override - public void onError(Throwable e) { - - } - + NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.updateDeviceInfoFinish(); @@ -192,58 +150,20 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { return; } NetInterfaceManager.getInstance() - .getSnTimeObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSnTimeControl", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - requestSucceeded = true; - Log.e("getSnTimeControl", "onNext: "); - int code = response.code; - if (code == OK) { - JSONObject jsonObject = (JSONObject) JSON.toJSON(response.data); - String start_time = jsonObject.getString("start_time"); - String end_time = jsonObject.getString("end_time"); - TimeUtils.ContralTime c = TimeUtils.String2ContralTime(mContext, start_time + "-" + end_time); - if (null != c) { - Log.e("getTimeControl", "OK:" + c.toString()); - } - } else { - TimeUtils.setEmpty(mContext); - TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(mContext); - if (null != c) { - Log.e("getTimeControl", c.toString()); - } - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getSnTimeControl", "onError: " + e.getMessage()); - onComplete(); - } - + .getSnTimeControl(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getSnTimeControl", "onComplete: "); - Intent intent = new Intent(); - intent.setAction(MainService.TimeChangedReceiver.ACTION_UPDATE); - mContext.sendBroadcast(intent); mView.getSnTimeControlFinish(); } }); + } @Override public void getEBagCode() { NetInterfaceManager.getInstance() .getEBagCodeControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { @@ -281,22 +201,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getLockedState() { NetInterfaceManager.getInstance() - .getLockedState(lifecycle, new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getLockedState", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse response) { - Log.e("getLockedState", "onNext: "); - } - - @Override - public void onError(Throwable e) { - Log.e("getLockedState", "onError: " + e.getMessage()); - } - + .getLockedState(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { Log.e("getLockedState", "onComplete: "); @@ -309,25 +214,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void setPushTags() { - NetInterfaceManager.getInstance().setPushTags(lifecycle, new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - Log.e("setPushTags", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse response) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - String batch = jsonObject.get("batch").getAsString(); - mView.setTagsFinish(!TextUtils.isEmpty(batch)); - Log.e("setPushTags", "onNext: "); - } - - @Override - public void onError(Throwable e) { - Log.e("setPushTags", "onError: " + e.getMessage()); - } - + NetInterfaceManager.getInstance().setPushTags(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { Log.e("setPushTags", "onComplete: "); @@ -341,212 +228,12 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { } @Override - public void checkStoreUpdate() { - checkUpdateStore(); - } - - private void checkUpdateStore() { + public void checkAoleyunUpdate() { NetInterfaceManager.getInstance() - .getUpdateApi() - .getUpdate(PackageNames.APPSTORE, - JGYUtils.getInstance().checkAppPlatform()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("checkUpdateStore", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - requestSucceeded = true; - Log.e("checkUpdateStore", "onNext: " + response.data); - if (response.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - JGYUtils.getInstance().installAPK(jsonObject); - } else { - Log.e("checkUpdateStore", "onNext: " + response); - } - Log.e("checkUpdateStore", "onNext: "); - - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("checkUpdateStore", "onError: " + e.getMessage()); - onComplete(); - } - + .checkAoleyunUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("checkUpdateStore", "onComplete: "); - mView.checkStoreUpdateFinish(); - } - }); - } - - @Override - public void checkInfoUpdate() { - NetInterfaceManager.getInstance() - .getUpdateApi() - .getUpdate(BuildConfig.APPLICATION_ID, - JGYUtils.getInstance().checkAppPlatform()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("checkAoleyunUpdate", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - requestSucceeded = true; - Log.e("checkAoleyunUpdate", "onNext: " + response.data); - if (response.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - JGYUtils.getInstance().installAPK(jsonObject); - } else { - Log.e("checkAoleyunUpdate", "onNext: " + response); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("checkAoleyunUpdate", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("checkAoleyunUpdate", "onComplete: "); - mView.checkInfoUpdateFinish(); - } - }); - } - - @Override - public void checkDesktopUpdate() { - NetInterfaceManager.getInstance() - .getUpdateApi() - .getUpdate(PackageNames.DESKTOP, - JGYUtils.getInstance().checkAppPlatform()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("checkDesktopUpdate", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - requestSucceeded = true; - Log.e("checkDesktopUpdate", "onNext: " + response.data); - if (response.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - JGYUtils.getInstance().installAPK(jsonObject); - } else { - Log.e("checkDesktopUpdate", "onNext: " + response); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("checkDesktopUpdate", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("checkDesktopUpdate", "onComplete: "); - mView.checkDesktopUpdateFinish(); - } - }); - } - - @Override - public void checkNotifyUpdate() { - NetInterfaceManager.getInstance() - .getUpdateApi() - .getUpdate(PackageNames.NOTIFICATIONS, - JGYUtils.getInstance().checkAppPlatform()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("checkNotifyUpdate", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - requestSucceeded = true; - Log.e("checkNotifyUpdate", "onNext: " + response.data); - if (response.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - JGYUtils.getInstance().installAPK(jsonObject); - } else { - Log.e("checkNotifyUpdate", "onNext: " + response); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("checkNotifyUpdate", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("checkNotifyUpdate", "onComplete: "); - mView.checkNotifyUpdateFinish(); - } - }); - } - - @Override - public void checkBrowserUpdate() { - NetInterfaceManager.getInstance() - .getUpdateApi() - .getUpdate(PackageNames.BROWSER, - JGYUtils.getInstance().checkAppPlatform()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("checkBrowserUpdate", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - requestSucceeded = true; - Log.e("checkBrowserUpdate", "onNext: " + response.data); - if (response.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - JGYUtils.getInstance().installAPK(jsonObject); - } else { - Log.e("checkBrowserUpdate", "onNext: " + response); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("checkBrowserUpdate", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("checkBrowserUpdate", "onComplete: "); - mView.checkBrowserUpdateFinish(); + mView.checkAoleyunUpdateFinish(); } }); } @@ -557,35 +244,9 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void checkTestUpdate() { NetInterfaceManager.getInstance() - .getTestUpdateObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("checkTestUpdate", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse> listBaseResponse) { - requestSucceeded = true; - Log.e("checkTestUpdate", "onNext: " + listBaseResponse.data); - if (listBaseResponse.code == OK) { - List APPlist = listBaseResponse.data; - JGYUtils.getInstance().installTestAPK(APPlist); - } else { - Log.e("checkTestUpdate", "onNext: " + listBaseResponse.msg); - } - } - - @Override - public void onError(Throwable e) { - Log.e("checkTestUpdate", "onError: " + e.getMessage()); - onComplete(); - } - + .checkTestUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("checkTestUpdate", "onComplete: "); mView.checkTestUpdateFinish(); } }); @@ -604,7 +265,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { public void getAppLimit() { NetInterfaceManager.getInstance() .getAppLimitObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -662,51 +323,9 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getForceDownload() { NetInterfaceManager.getInstance() - .getForceDownloadObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getForceDownload", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ForceDownloadBean forceDownloadBean) { - requestSucceeded = true; - Log.e("getForceDownload", "onNext: "); - switch (forceDownloadBean.getCode()) { - case OK: - Log.e("getForceDownload", "isDownloading=" + BaseApplication.getInstance().isDownloading()); - BaseApplication.getInstance().checkIsDownloading(); - if (!BaseApplication.getInstance().isDownloading()) { - Type type = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - List forceDownloadData = gson.fromJson(gson.toJson(forceDownloadBean.getData()), type); - JGYUtils.getInstance().forceDownload(forceDownloadData); - } else { - Aria.download(this).resumeAllTask(); - } - break; - case -200: - boolean qch_force_app = Settings.System.putString(crv, "qch_force_app", "invalid"); - Log.e("getForceDownload", "qch_force_app:" + qch_force_app); - break; - default: - Log.e("getForceDownload", forceDownloadBean.getMsg()); - break; - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getForceDownload", "onError: " + e.getMessage()); - onComplete(); - } - + .getForceDownload(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getForceDownload", "onComplete: "); mView.getForceDownloadFinish(); } }); @@ -767,7 +386,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { NetInterfaceManager.getInstance() .getDesktopIconObservable() .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -831,7 +450,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { .getAppAutoStartUpdateAndNetObservable() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -868,7 +487,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { NetInterfaceManager.getInstance() .getAppIDControlObservable() .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -937,7 +556,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { NetInterfaceManager.getInstance() .getSystemSettingObservable() .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -995,7 +614,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { public void getDefaultApp() { NetInterfaceManager.getInstance() .getDefaultAppApi() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer>() { @Override public void onSubscribe(Disposable d) { @@ -1040,7 +659,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { .getROMApp(NetInterfaceManager.HTTP_KEY, customVersion) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { @@ -1079,43 +698,10 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getDeveloper() { NetInterfaceManager.getInstance() - .getDeveloperControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getDeveloper", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse baseResponse) { - requestSucceeded = true; - if (baseResponse.code == OK) { - JSONObject jsonObject = (JSONObject) JSON.toJSON(baseResponse.data); - int is_developer = jsonObject.getInteger("is_developer"); - Log.e("getDeveloper", "onNext: " + is_developer); - //后台1是0否 底层0是1否 - JGYUtils.getInstance().setDeveloperOptions(is_developer == 0 ? 1 : 0); - } else { - JGYUtils.getInstance().setDeveloperOptions(1); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getDeveloper", "onError: " + e.getMessage()); - if (!BuildConfig.DEBUG) { - int oldStatus = Settings.System.getInt(crv, "qch_Developeroptions", 1); - Log.e("getDeveloper", "oldStatus: " + oldStatus); - JGYUtils.getInstance().setDeveloperOptions(oldStatus); - } - onComplete(); - } - + .getDeveloper(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.getDeveloperFinish(); - Log.e("getDeveloper", "onComplete: "); } }); } @@ -1127,44 +713,9 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { return; } NetInterfaceManager.getInstance() - .getLogoImgObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("setLogoImg", "onSubscribe: "); - - } - - @Override - public void onNext(@NonNull BaseResponse logoImgBaseResponse) { - requestSucceeded = true; - Log.e("setLogoImg", "onNext: " + logoImgBaseResponse.data); - if (logoImgBaseResponse.code == OK) { - LogoImg logoImg = logoImgBaseResponse.data; - String file_url = logoImg.getFile_url(); - String file_md5 = logoImg.getFile_md5(); - String batch = logoImg.getBatch(); - if (TextUtils.isEmpty(file_url)) { - Log.e("setLogoImg", "onNext: file_url is empty"); - } else { - JGYUtils.getInstance().checkBootFile(file_url, file_md5); - } - } else { - Log.e("setLogoImg", "onNext: delete"); - JGYUtils.getInstance().removeBootanimation(); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("setLogoImg", "onError: " + e.getMessage()); - onComplete(); - } - + .setLogoImg(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("setLogoImg", "onComplete: "); mView.setLogoImgFinish(); } }); @@ -1177,41 +728,10 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { return; } NetInterfaceManager.getInstance() - .getTopAppControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("setTopApp", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse response) { - requestSucceeded = true; - Log.e("setTopApp", "onNext: " + response.data); - if (response.code == OK) { - JSONObject jsonObject = (JSONObject) JSON.toJSON(response.data); - String app_package = jsonObject.getString("app_package"); - ForegroundAppUtil.setTopAppClass(mContext, app_package); - SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, app_package); - ForegroundAppUtil.openTopApp(mContext); - } else { - ForegroundAppUtil.setTopAppClass(mContext, ""); - SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, ""); - } - } - - @Override - public void onError(Throwable e) { - Log.e("setTopApp", "onError: " + e.getMessage()); - onComplete(); - } - + .getTopApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("setTopApp", "onComplete: "); mView.setTopAppFinish(); - ToastUtil.betaShow("获取管控结束"); } }); } @@ -1234,53 +754,9 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { return; } NetInterfaceManager.getInstance() - .getDesktopObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getDefaultDesktop", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ResponseBody responseBody) { - requestSucceeded = true; - try { - JSONObject jsonObject = JSONObject.parseObject(responseBody.string()); - Log.e("getDefaultDesktop", "onNext: " + jsonObject.toString()); - int code = jsonObject.getInteger("code"); - if (code == OK) { - JSONObject data = jsonObject.getJSONObject("data"); - JGYUtils.getInstance().installDesktop(data); - } else { - Log.e("getDefaultDesktop", "onNext: " + "删除定制桌面"); - String whiteList = Settings.System.getString(crv, JGYActions.ACTION_JGY_SHORTCUTLIST); - if (!TextUtils.isEmpty(whiteList)) { - if (!whiteList.contains(ApkUtils.desktopAPP.get(0))) { - ApkUtils.UninstallAPP(mContext, ApkUtils.desktopAPP.get(0)); - Log.e("getDefaultDesktop", "skip: " + ApkUtils.desktopAPP.get(0)); - } - if (!whiteList.contains(ApkUtils.desktopAPP.get(1))) { - ApkUtils.UninstallAPP(mContext, ApkUtils.desktopAPP.get(1)); - Log.e("getDefaultDesktop", "skip: " + ApkUtils.desktopAPP.get(1)); - } - } - } - } catch (IOException e) { - e.printStackTrace(); - Log.e("getDefaultDesktop", "onNext: IOException: " + e.getMessage()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getDefaultDesktop", "onError: " + e.getMessage()); - onComplete(); - } - + .getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getDefaultDesktop", "onComplete: "); NetInterfaceManager.getInstance().getAllAppList(); mView.getDefaultDesktopFinish(); } @@ -1290,36 +766,9 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getPoweroffTime() { NetInterfaceManager.getInstance() - .getPoweroffTimeControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getPoweroffTime", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse> listBaseResponse) { - Log.e("getPoweroffTime", "onNext: " + listBaseResponse); - MMKV mmkv = MMKV.defaultMMKV(); - if (listBaseResponse.code == 200) { - List poweroffBeanList = listBaseResponse.data; - String poweroffTime = new Gson().toJson(poweroffBeanList); - mmkv.encode("poweroffTime", poweroffTime); - } else { - mmkv.encode("PoweroffTime", ""); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getPoweroffTime", "onError: " + e.getLocalizedMessage()); - onComplete(); - } - + .getPoweroffTime(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getPoweroffTime", "onComplete: "); mView.setPoweroffTime(); } }); @@ -1328,7 +777,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getWiFiPasswd() { NetInterfaceManager.getInstance().getWiFiControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer>>() { @Override public void onSubscribe(Disposable d) { diff --git a/app/src/main/java/com/aoleyun/sn/activity/main/MainAPresenter.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainAPresenter.java index 7ed6845..1c4b56f 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/main/MainAPresenter.java +++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainAPresenter.java @@ -83,7 +83,17 @@ public class MainAPresenter implements MainAContact.Presenter { */ @Override public void getStudesInfo(boolean refresh) { - NetInterfaceManager.getInstance().getStudesInfo(false, getLifecycle(), studentsInfo -> mView.setStudesInfo(studentsInfo)); + NetInterfaceManager.getInstance().getStudesInfo(false, getLifecycle(), new NetInterfaceManager.StudesInfoListener() { + @Override + public void setStudentsInfo(StudentsInfo studentsInfo) { + mView.setStudesInfo(studentsInfo); + } + + @Override + public void onComplete() { + + } + }); } diff --git a/app/src/main/java/com/aoleyun/sn/bean/DeveloperBean.java b/app/src/main/java/com/aoleyun/sn/bean/DeveloperBean.java new file mode 100644 index 0000000..fa8369f --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/DeveloperBean.java @@ -0,0 +1,17 @@ +package com.aoleyun.sn.bean; + +import java.io.Serializable; + +public class DeveloperBean implements Serializable { + private static final long serialVersionUID = -7758392818747033266L; + + int is_developer; + + public int getIs_developer() { + return is_developer; + } + + public void setIs_developer(int is_developer) { + this.is_developer = is_developer; + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/SnTimeControl.java b/app/src/main/java/com/aoleyun/sn/bean/SnTimeControl.java new file mode 100644 index 0000000..d826db5 --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/SnTimeControl.java @@ -0,0 +1,26 @@ +package com.aoleyun.sn.bean; + +import java.io.Serializable; + +public class SnTimeControl implements Serializable { + private static final long serialVersionUID = -5109419027724042835L; + + String start_time; + String end_time; + + public String getStart_time() { + return start_time; + } + + public void setStart_time(String start_time) { + this.start_time = start_time; + } + + public String getEnd_time() { + return end_time; + } + + public void setEnd_time(String end_time) { + this.end_time = end_time; + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/TopApp.java b/app/src/main/java/com/aoleyun/sn/bean/TopApp.java new file mode 100644 index 0000000..1b4913e --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/TopApp.java @@ -0,0 +1,16 @@ +package com.aoleyun.sn.bean; + +import java.io.Serializable; + +public class TopApp implements Serializable { + private static final long serialVersionUID = -5153233413348871257L; + String app_package; + + public String getApp_package() { + return app_package; + } + + public void setApp_package(String app_package) { + this.app_package = app_package; + } +} diff --git a/app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java b/app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java index 9734f02..f6626f1 100644 --- a/app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java +++ b/app/src/main/java/com/aoleyun/sn/manager/ConnectManager.java @@ -87,9 +87,11 @@ public class ConnectManager { } public boolean isNeedConnect(String key, ConnectMode connectMode) { - long lastTime = mMMKV.decodeLong(key); + long nowTime = System.currentTimeMillis(); + long lastTime = mMMKV.decodeLong(key, 0); long intervalTime = getConnectModeTime(connectMode); - return System.currentTimeMillis() - lastTime > intervalTime; + //防止一分钟内重复请求 + return nowTime - lastTime > intervalTime && nowTime - lastTime > ONE_MINUTES_TIME; } diff --git a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java index 372bbfb..4455e75 100644 --- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java @@ -16,19 +16,23 @@ import com.alibaba.fastjson.JSONObject; import com.aoleyun.sn.BuildConfig; import com.aoleyun.sn.base.BaseApplication; import com.aoleyun.sn.bean.AppListInfo; +import com.aoleyun.sn.bean.AppUpdateInfo; import com.aoleyun.sn.bean.Appground; import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.Batch; import com.aoleyun.sn.bean.BrowserBookmarks; import com.aoleyun.sn.bean.BrowserData; import com.aoleyun.sn.bean.DefaultApp; -import com.aoleyun.sn.bean.ForceDownloadBean; +import com.aoleyun.sn.bean.DeveloperBean; import com.aoleyun.sn.bean.ForceDownloadData; import com.aoleyun.sn.bean.LogoImg; import com.aoleyun.sn.bean.NetAndLaunchBean; import com.aoleyun.sn.bean.PoweroffBean; import com.aoleyun.sn.bean.ScreenLockState; import com.aoleyun.sn.bean.SnRunLog; +import com.aoleyun.sn.bean.SnTimeControl; import com.aoleyun.sn.bean.StudentsInfo; +import com.aoleyun.sn.bean.TopApp; import com.aoleyun.sn.bean.WiFiAlias; import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.JGYActions; @@ -37,47 +41,47 @@ import com.aoleyun.sn.disklrucache.CacheHelper; import com.aoleyun.sn.disklrucache.DiskLruCacheHelper; import com.aoleyun.sn.manager.ConnectManager; import com.aoleyun.sn.manager.ConnectMode; +import com.aoleyun.sn.network.api.get.CheckTestUpdateApi; +import com.aoleyun.sn.network.api.get.DefaultAppApi; +import com.aoleyun.sn.network.api.get.GetDesktopApi; +import com.aoleyun.sn.network.api.get.GetDeveloperApi; +import com.aoleyun.sn.network.api.get.GetJpushTagsApi; import com.aoleyun.sn.network.api.get.GetPublicIPApi; +import com.aoleyun.sn.network.api.get.GetSnRunLogApi; +import com.aoleyun.sn.network.api.get.GetWiFiAliasApi; +import com.aoleyun.sn.network.api.get.LogoImgApi; +import com.aoleyun.sn.network.api.get.ScreenLockStateApi; +import com.aoleyun.sn.network.api.get.SnTimeControlApi; +import com.aoleyun.sn.network.api.get.TopAppControlApi; import com.aoleyun.sn.network.api.post.AppLimitApi; -import com.aoleyun.sn.network.api.post.DeselectIDApi; -import com.aoleyun.sn.network.api.post.ForceDownloadApi; -import com.aoleyun.sn.network.api.post.NetAndLaunchApi; -import com.aoleyun.sn.network.api.post.SystemSettingApi; -import com.aoleyun.sn.network.api.post.UploadAppInfoApi; import com.aoleyun.sn.network.api.post.AppinsideWebApi; import com.aoleyun.sn.network.api.post.BrowserBookmarksApi; import com.aoleyun.sn.network.api.post.BrowserListApi; -import com.aoleyun.sn.network.api.get.CheckTestUpdateApi; import com.aoleyun.sn.network.api.post.CheckUpdateApi; import com.aoleyun.sn.network.api.post.CustomROMAppApi; -import com.aoleyun.sn.network.api.get.DefaultAppApi; +import com.aoleyun.sn.network.api.post.DeselectIDApi; import com.aoleyun.sn.network.api.post.DesktopIconApi; import com.aoleyun.sn.network.api.post.DevicesLockedStateApi; +import com.aoleyun.sn.network.api.post.ForceDownloadApi; import com.aoleyun.sn.network.api.post.GetAllAppApi; import com.aoleyun.sn.network.api.post.GetAppLogApi; import com.aoleyun.sn.network.api.post.GetBatchApi; -import com.aoleyun.sn.network.api.get.GetDesktopApi; -import com.aoleyun.sn.network.api.get.GetDeveloperApi; import com.aoleyun.sn.network.api.post.GetEBagCodeApi; import com.aoleyun.sn.network.api.post.GetLockStateApi; -import com.aoleyun.sn.network.api.get.GetJpushTagsApi; import com.aoleyun.sn.network.api.post.GetPoweroffApi; -import com.aoleyun.sn.network.api.get.GetSnRunLogApi; import com.aoleyun.sn.network.api.post.GetUploadIsLogApi; import com.aoleyun.sn.network.api.post.GetUploadLogApi; -import com.aoleyun.sn.network.api.get.GetWiFiAliasApi; -import com.aoleyun.sn.network.api.get.LogoImgApi; import com.aoleyun.sn.network.api.post.MACAddressApi; +import com.aoleyun.sn.network.api.post.NetAndLaunchApi; import com.aoleyun.sn.network.api.post.NewAppinsideWebApi; -import com.aoleyun.sn.network.api.get.ScreenLockStateApi; import com.aoleyun.sn.network.api.post.SendDownloadInfoApi; import com.aoleyun.sn.network.api.post.SendDownloadTimesApi; import com.aoleyun.sn.network.api.post.SendRestoreTimesApi; import com.aoleyun.sn.network.api.post.SendScreenshotApi; -import com.aoleyun.sn.network.api.get.SnTimeControlApi; import com.aoleyun.sn.network.api.post.StudentsInfoApi; -import com.aoleyun.sn.network.api.get.TopAppControlApi; +import com.aoleyun.sn.network.api.post.SystemSettingApi; import com.aoleyun.sn.network.api.post.UpdateDeviceInfoApi; +import com.aoleyun.sn.network.api.post.UploadAppInfoApi; import com.aoleyun.sn.network.interceptor.RepeatRequestInterceptor; import com.aoleyun.sn.rlog.LogDBManager; import com.aoleyun.sn.service.LogcatService; @@ -89,6 +93,7 @@ import com.aoleyun.sn.utils.GsonUtils; import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.TimeUtils; +import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.URLUtils; import com.aoleyun.sn.utils.Utils; import com.aoleyun.sn.utils.WiFiUtils; @@ -106,6 +111,7 @@ import com.trello.rxlifecycle4.android.ActivityEvent; import java.io.File; import java.io.IOException; import java.lang.reflect.Type; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; @@ -119,6 +125,7 @@ import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.functions.Function5; import io.reactivex.rxjava3.schedulers.Schedulers; import io.reactivex.rxjava3.subjects.BehaviorSubject; import okhttp3.Cache; @@ -160,7 +167,7 @@ public class NetInterfaceManager { private NetInterfaceManager(Context context) { this.mContext = context; - cacheHelper = new CacheHelper(mContext); + this.cacheHelper = new CacheHelper(mContext); if (okHttpClient == null) { try { mDiskLruCacheHelper = new DiskLruCacheHelper(mContext); @@ -307,7 +314,7 @@ public class NetInterfaceManager { * * @return */ - public Observable getPushTagsObservable() { + public Observable> getPushTagsObservable() { return mRetrofit.create(GetJpushTagsApi.class) .getJpushTags(Utils.getSerial()) .subscribeOn(Schedulers.io()) @@ -377,7 +384,7 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getForceDownloadObservable() { + public Observable>> getForceDownloadObservable() { return mRetrofit.create(ForceDownloadApi.class) .getForceDownloadApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) .subscribeOn(Schedulers.io()) @@ -391,7 +398,7 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getSnTimeObservable() { + public Observable> getSnTimeObservable() { return mRetrofit.create(SnTimeControlApi.class) .getSnTimeControl(Utils.getSerial()) .subscribeOn(Schedulers.io()) @@ -405,7 +412,7 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getDesktopObservable() { + public Observable getDesktopObservable() { return mRetrofit.create(GetDesktopApi.class) .getDesktop(Utils.getSerial()) .subscribeOn(Schedulers.io()) @@ -426,14 +433,14 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getTopAppControl() { + public Observable> getTopAppControl() { return mRetrofit.create(TopAppControlApi.class) .getSnAppControl(Utils.getSerial()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } - public Observable getDeveloperControl() { + public Observable> getDeveloperControl() { return mRetrofit.create(GetDeveloperApi.class) .getDeveloperState(Utils.getSerial()) .subscribeOn(Schedulers.io()) @@ -523,10 +530,6 @@ public class NetInterfaceManager { return mRetrofit.create(GetBatchApi.class); } - public SnTimeControlApi getSnTimeControlApi() { - return mRetrofit.create(SnTimeControlApi.class); - } - public TopAppControlApi getTopAppControlApi() { return mRetrofit.create(TopAppControlApi.class); } @@ -584,8 +587,473 @@ public class NetInterfaceManager { void onComplete(); } + public interface onCompleteCallback { + void onComplete(); + } + + synchronized public void checkAoleyunUpdate(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.SIX_HOUR; + if (refresh) { + connectMode = ConnectMode.ONE_HOUR; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.CHECK_UPDATE, connectMode)) { + checkAoleyunUpdate(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.CHECK_UPDATE); + //为 "" 是已经请求成功的 + if (jsonString == null) { + checkAoleyunUpdate(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type listType = new TypeToken>() { + }.getType(); + List appUpdateInfos = gson.fromJson(jsonString, listType); + for (AppUpdateInfo info : appUpdateInfos) { + JsonObject jsonObject = parseString(new Gson().toJson(info)).getAsJsonObject(); + JGYUtils.getInstance().installAPK(jsonObject); + } + callback.onComplete(); + } + } + } + + /** + * 获取奥乐云所有app更新 + * + * @param lifecycle + * @param callback + */ + synchronized public void checkAoleyunUpdate(BehaviorSubject lifecycle, onCompleteCallback callback) { + Observable> infoUpdateObservable = NetInterfaceManager.getInstance() + .getUpdateApi().getUpdate(BuildConfig.APPLICATION_ID, JGYUtils.getInstance().checkAppPlatform()); + Observable> storeUpdateObservable = NetInterfaceManager.getInstance() + .getUpdateApi().getUpdate(PackageNames.APPSTORE, JGYUtils.getInstance().checkAppPlatform()); + Observable> desktopUpdateObservable = NetInterfaceManager.getInstance() + .getUpdateApi().getUpdate(PackageNames.DESKTOP, JGYUtils.getInstance().checkAppPlatform()); + Observable> notifyUpdateObservable = NetInterfaceManager.getInstance() + .getUpdateApi().getUpdate(PackageNames.NOTIFICATIONS, JGYUtils.getInstance().checkAppPlatform()); + Observable> browserUpdateObservable = NetInterfaceManager.getInstance() + .getUpdateApi().getUpdate(PackageNames.BROWSER, JGYUtils.getInstance().checkAppPlatform()); + + Observable.zip(infoUpdateObservable, storeUpdateObservable, desktopUpdateObservable, notifyUpdateObservable, browserUpdateObservable, + new Function5, BaseResponse, BaseResponse, BaseResponse, BaseResponse, List>() { + @Override + public List apply(BaseResponse appUpdateInfoBaseResponse, BaseResponse appUpdateInfoBaseResponse2, BaseResponse appUpdateInfoBaseResponse3, BaseResponse appUpdateInfoBaseResponse4, BaseResponse appUpdateInfoBaseResponse5) throws Throwable { + List appUpdateInfos = new ArrayList<>(); + if (appUpdateInfoBaseResponse.code == OK) { + appUpdateInfos.add(appUpdateInfoBaseResponse.data); + } + if (appUpdateInfoBaseResponse2.code == OK) { + appUpdateInfos.add(appUpdateInfoBaseResponse2.data); + } + if (appUpdateInfoBaseResponse3.code == OK) { + appUpdateInfos.add(appUpdateInfoBaseResponse3.data); + } + if (appUpdateInfoBaseResponse4.code == OK) { + appUpdateInfos.add(appUpdateInfoBaseResponse4.data); + } + if (appUpdateInfoBaseResponse5.code == OK) { + appUpdateInfos.add(appUpdateInfoBaseResponse5.data); + } + return appUpdateInfos; + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("checkAoleyunUpdate", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull List appUpdateInfos) { + String jsonString = GsonUtils.toJsonString(appUpdateInfos); + cacheHelper.put(UrlAddress.CHECK_UPDATE, jsonString); + Log.e("checkAoleyunUpdate", "onNext: " + jsonString); + for (AppUpdateInfo info : appUpdateInfos) { + JsonObject jsonObject = parseString(new Gson().toJson(info)).getAsJsonObject(); + JGYUtils.getInstance().installAPK(jsonObject); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("checkAoleyunUpdate", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("checkAoleyunUpdate", "onComplete: "); + callback.onComplete(); + } + }); + } + + /** + * 获取灰度测试更新 + */ + public void checkTestUpdate(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.SIX_HOUR; + if (refresh) { + connectMode = ConnectMode.ONE_HOUR; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_SN_APP_TEST, connectMode)) { + checkTestUpdate(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_SN_APP_TEST); + //为 "" 是已经请求成功的 + if (jsonString == null) { + checkTestUpdate(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type listType = new TypeToken>() { + }.getType(); + List APPlist = gson.fromJson(jsonString, listType); + JGYUtils.getInstance().installTestAPK(APPlist); + callback.onComplete(); + } + } + } + + public void checkTestUpdate(BehaviorSubject lifecycle, onCompleteCallback callback) { + getTestUpdateObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>>() { + @Override + public void onSubscribe(Disposable d) { + Log.e("checkTestUpdate", "onSubscribe: "); + } + + @Override + public void onNext(BaseResponse> listBaseResponse) { + Log.e("checkTestUpdate", "onNext: " + listBaseResponse.data); + if (listBaseResponse.code == OK) { + cacheHelper.put(UrlAddress.GET_SN_APP_TEST, GsonUtils.toJsonString(listBaseResponse.data)); + List APPlist = listBaseResponse.data; + JGYUtils.getInstance().installTestAPK(APPlist); + } else { + cacheHelper.put(UrlAddress.GET_SN_APP_TEST, ""); + Log.e("checkTestUpdate", "onNext: " + listBaseResponse.msg); + } + } + + @Override + public void onError(Throwable e) { + Log.e("checkTestUpdate", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("checkTestUpdate", "onComplete: "); + callback.onComplete(); + } + }); + } + + + public void getForceDownload(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_FORCE_INSTALL_LIST, connectMode)) { + getForceDownload(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getForceDownload(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type listType = new TypeToken>() { + }.getType(); + List APPlist = gson.fromJson(jsonString, listType); + JGYUtils.getInstance().installTestAPK(APPlist); + callback.onComplete(); + } + } + } + + public void getForceDownload(BehaviorSubject lifecycle, onCompleteCallback callback) { + getForceDownloadObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getForceDownloadObserver(callback)); + } + + public void getForceDownload(onCompleteCallback callback) { + getForceDownloadObservable() + .subscribe(getForceDownloadObserver(callback)); + } + + public void getForceDownload() { + getForceDownloadObservable() + .subscribe(getForceDownloadObserver(null)); + } + + private Observer getForceDownloadObserver(onCompleteCallback callback) { + return new Observer>>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getForceDownload", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse> forceDownloadBean) { + Log.e("getForceDownload", "onNext: "); + if (forceDownloadBean.code == OK) { + cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST); + Log.e("getForceDownload", "isDownloading =" + BaseApplication.getInstance().isDownloading()); + List forceDownloadData = forceDownloadBean.data; + cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, GsonUtils.toJsonString(forceDownloadData)); + BaseApplication.getInstance().checkIsDownloading(); + if (!BaseApplication.getInstance().isDownloading()) { + JGYUtils.getInstance().forceDownload(forceDownloadData); + } else { + Aria.download(this).resumeAllTask(); + } + } else if (forceDownloadBean.code == -200) { + cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, ""); + boolean qch_force_app = Settings.System.putString(mContext.getContentResolver(), "qch_force_app", "invalid"); + Log.e("getForceDownload", "qch_force_app:" + qch_force_app); + } else { + cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, ""); + Log.e("getForceDownload", forceDownloadBean.msg); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getForceDownload", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getForceDownload", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; + } + + + public void getDefaultDesktop(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_DESKTOP, connectMode)) { + getDefaultDesktop(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_DESKTOP); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getDefaultDesktop(lifecycle, callback); + } else { + JSONObject data = JSON.parseObject(jsonString); + JGYUtils.getInstance().installDesktop(data); + callback.onComplete(); + } + } + } + + public void getDefaultDesktop(BehaviorSubject lifecycle, onCompleteCallback callback) { + getDesktopObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getDefaultDesktop", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("getDefaultDesktop", "onNext: " + baseResponse); + if (baseResponse.code == OK) { + String jsonString = GsonUtils.toJsonString(baseResponse.data); + JSONObject data = JSON.parseObject(jsonString); + cacheHelper.put(UrlAddress.GET_DESKTOP, jsonString); + JGYUtils.getInstance().installDesktop(data); + } else { + Log.e("getDefaultDesktop", "onNext: " + "删除定制桌面"); + cacheHelper.put(UrlAddress.GET_DESKTOP, ""); + String whiteList = Settings.System.getString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST); + if (!TextUtils.isEmpty(whiteList)) { + if (!whiteList.contains(ApkUtils.desktopAPP.get(0))) { + ApkUtils.UninstallAPP(mContext, ApkUtils.desktopAPP.get(0)); + Log.e("getDefaultDesktop", "skip: " + ApkUtils.desktopAPP.get(0)); + } + if (!whiteList.contains(ApkUtils.desktopAPP.get(1))) { + ApkUtils.UninstallAPP(mContext, ApkUtils.desktopAPP.get(1)); + Log.e("getDefaultDesktop", "skip: " + ApkUtils.desktopAPP.get(1)); + } + } + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getDefaultDesktop", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getDefaultDesktop", "onComplete: "); + NetInterfaceManager.getInstance().getAllAppList(); + callback.onComplete(); + } + }); + } + + public void setLogoImg(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_LOGO_IMG, connectMode)) { + setLogoImg(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_LOGO_IMG); + //为 "" 是已经请求成功的 + if (jsonString == null) { + setLogoImg(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type listType = new TypeToken() { + }.getType(); + LogoImg logoImg = gson.fromJson(jsonString, listType); + String file_url = logoImg.getFile_url(); + String file_md5 = logoImg.getFile_md5(); + if (TextUtils.isEmpty(file_url)) { + Log.e("setLogoImg", "onNext: file_url is empty"); + } else { + JGYUtils.getInstance().checkBootFile(file_url, file_md5); + } + callback.onComplete(); + } + } + } + + public void setLogoImg(BehaviorSubject lifecycle, onCompleteCallback callback) { + getLogoImgObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("setLogoImg", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse logoImgBaseResponse) { + Log.e("setLogoImg", "onNext: " + logoImgBaseResponse.data); + if (logoImgBaseResponse.code == OK) { + LogoImg logoImg = logoImgBaseResponse.data; + cacheHelper.put(UrlAddress.GET_LOGO_IMG, GsonUtils.toJsonString(logoImg)); + String file_url = logoImg.getFile_url(); + String file_md5 = logoImg.getFile_md5(); + String batch = logoImg.getBatch(); + if (TextUtils.isEmpty(file_url)) { + Log.e("setLogoImg", "onNext: file_url is empty"); + } else { + JGYUtils.getInstance().checkBootFile(file_url, file_md5); + } + } else { + Log.e("setLogoImg", "onNext: delete"); + JGYUtils.getInstance().removeBootanimation(); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("setLogoImg", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("setLogoImg", "onComplete: "); + callback.onComplete(); + } + }); + } + + public void getDeveloper(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_DEVELOPER, connectMode)) { + getDeveloper(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_DEVELOPER); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getDeveloper(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type listType = new TypeToken() { + }.getType(); + DeveloperBean developerBean = gson.fromJson(jsonString, listType); + JGYUtils.getInstance().setDeveloperOptions(developerBean.getIs_developer() == 0 ? 1 : 0); + callback.onComplete(); + } + } + } + + public void getDeveloper(BehaviorSubject lifecycle, onCompleteCallback callback) { + getDeveloperControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + Log.e("getDeveloper", "onSubscribe: "); + } + + @Override + public void onNext(BaseResponse baseResponse) { + Log.e("getDeveloper", "onNext: " + baseResponse); + if (baseResponse.code == OK) { + DeveloperBean developerBean = baseResponse.data; + cacheHelper.put(UrlAddress.GET_DEVELOPER, GsonUtils.toJsonString(developerBean)); + int is_developer = developerBean.getIs_developer(); + Log.e("getDeveloper", "onNext: " + is_developer); + //后台1是0否 底层0是1否 + JGYUtils.getInstance().setDeveloperOptions(is_developer == 0 ? 1 : 0); + } else { + JGYUtils.getInstance().setDeveloperOptions(1); + } + } + + @Override + public void onError(Throwable e) { + Log.e("getDeveloper", "onError: " + e.getMessage()); + if (!BuildConfig.DEBUG) { + int oldStatus = Settings.System.getInt(mContext.getContentResolver(), "qch_Developeroptions", 1); + Log.e("getDeveloper", "oldStatus: " + oldStatus); + JGYUtils.getInstance().setDeveloperOptions(oldStatus); + } + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getDeveloper", "onComplete: "); + callback.onComplete(); + } + }); + } + + public interface StudesInfoListener { void setStudentsInfo(StudentsInfo studentsInfo); + + void onComplete(); } /** @@ -600,10 +1068,10 @@ public class NetInterfaceManager { if (refresh) { connectMode = ConnectMode.DEFAULT; } - if (ConnectManager.getInstance().isNeedConnect(getStudesInfo, connectMode)) { + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_STUDENTS_INFO, connectMode)) { getInfo(lifecycle, studesInfoListener); } else { - String jsonString = cacheHelper.getAsString(getStudesInfo); + String jsonString = cacheHelper.getAsString(UrlAddress.GET_STUDENTS_INFO); //为 "" 是已经请求成功的 if (jsonString == null) { getInfo(lifecycle, studesInfoListener); @@ -617,8 +1085,6 @@ public class NetInterfaceManager { } } - private String getStudesInfo = "getStudesInfo"; - /** * 获取基本信息 * @@ -626,7 +1092,8 @@ public class NetInterfaceManager { * @param studesInfoListener */ private void getInfo(BehaviorSubject lifecycle, StudesInfoListener studesInfoListener) { - getStudesInfoObservable().compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + getStudesInfoObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(new Observer>() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -638,9 +1105,9 @@ public class NetInterfaceManager { Log.e("getStudesInfo", "onNext: " + studentsInfoBaseResponse.data); if (studentsInfoBaseResponse.code == OK) { studesInfoListener.setStudentsInfo(studentsInfoBaseResponse.data); - cacheHelper.put(getStudesInfo, GsonUtils.toJsonString(studentsInfoBaseResponse.data)); + cacheHelper.put(UrlAddress.GET_STUDENTS_INFO, GsonUtils.toJsonString(studentsInfoBaseResponse.data)); } else { - cacheHelper.put(getStudesInfo, ""); + cacheHelper.put(UrlAddress.GET_STUDENTS_INFO, ""); Log.e("getStudesInfo", "onNext: " + studentsInfoBaseResponse.toString()); } } @@ -654,18 +1121,18 @@ public class NetInterfaceManager { @Override public void onComplete() { Log.e("getStudesInfo", "onComplete: "); + studesInfoListener.onComplete(); } }); } - public void getLockedState(BehaviorSubject provider, ObserverCallback callback) { + public void getLockedState(BehaviorSubject lifecycle, onCompleteCallback callback) { getDevicesLockedStateObservable() - .compose(RxLifecycle.bindUntilEvent(provider, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { Log.e(TAG + ":" + "getLockedState", "onSubscribe: "); - callback.onSubscribe(d); } @Override @@ -693,13 +1160,11 @@ public class NetInterfaceManager { Settings.System.putInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED); Log.e(TAG + ":" + "getLockedState", "locked: " + false); } - callback.onNext(response); } @Override public void onError(@NonNull Throwable e) { Log.e(TAG + ":" + "getLockedState", "onError: " + e.getMessage()); - callback.onError(e); onComplete(); } @@ -717,7 +1182,7 @@ public class NetInterfaceManager { * @param lifecycle * @param callback */ - public void sendMACAddress(BehaviorSubject lifecycle, ObserverCallback callback) { + public void sendMACAddress(BehaviorSubject lifecycle, onCompleteCallback callback) { String macJson = (String) SPUtils.get(mContext, "macJson", ""); String jsonString = JGYUtils.getInstance().getMacJson(); // Log.e(TAG, "sendMACAddress: macJson = " + macJson); @@ -732,12 +1197,10 @@ public class NetInterfaceManager { @Override public void onSubscribe(@NonNull Disposable d) { Log.e("sendMACAddress", "onSubscribe: "); - callback.onSubscribe(d); } @Override public void onNext(@NonNull BaseResponse response) { - callback.onNext(response); if (response.code == OK) { Log.e("sendMACAddress", response.msg); SPUtils.put(mContext, "macJson", JGYUtils.getInstance().getMacJson()); @@ -749,7 +1212,6 @@ public class NetInterfaceManager { @Override public void onError(@NonNull Throwable e) { Log.e("sendMACAddress", "onError: " + e.getMessage()); - callback.onError(e); onComplete(); } @@ -762,101 +1224,105 @@ public class NetInterfaceManager { } + synchronized public void setPushTags(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(CommonConfig.DEVICES_TAG, connectMode)) { + setPushTags(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(CommonConfig.DEVICES_TAG); + //为 "" 是已经请求成功的 + if (jsonString == null) { + setPushTags(lifecycle, callback); + } else { + Set tagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_TAG); + Log.e("setPushTags", "tagSets: " + tagSets); + clearAndAppendTags(tagSets); + callback.onComplete(); + } + } + } + + /** * 设置推送得标签 * * @param lifecycle * @param callback */ - public void setPushTags(BehaviorSubject lifecycle, ObserverCallback callback) { - long lastTime = mMMKV.decodeLong(CommonConfig.GET_DEVICES_TAG_LASTTIME, 0); - long time = System.currentTimeMillis() - lastTime; - if (time < ConnectManager.ONE_HOUR_TIME) { - Set tagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_TAG); - Log.e("setPushTags", "tagSets: " + tagSets); - XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagSets, new XGIOperateCallback() { - @Override - public void onSuccess(Object o, int i) { - Log.e("setPushTags", "onSuccess: " + o); + synchronized public void setPushTags(BehaviorSubject lifecycle, onCompleteCallback callback) { + Set set = new HashSet<>(); + JGYUtils.getInstance().getAppPlatform(new JGYUtils.GetAppPlatformCallback() { + @Override + public void getAppPlatform(int platform) { + if (platform == JGYUtils.MTKPlatform) { + set.add(JGYUtils.MTKTag); + } else if (platform == JGYUtils.ZhanruiPlatform) { + set.add(JGYUtils.ZhanruiTag); } - - @Override - public void onFail(Object o, int i, String s) { - Log.e("setPushTags", "onFail: " + o); - } - }); - - } else { - Set set = new HashSet<>(); - JGYUtils.getInstance().getAppPlatform(new JGYUtils.GetAppPlatformCallback() { - @Override - public void getAppPlatform(int platform) { - if (platform == JGYUtils.MTKPlatform) { - set.add(JGYUtils.MTKTag); - } else if (platform == JGYUtils.ZhanruiPlatform) { - set.add(JGYUtils.ZhanruiTag); + } + }); + getPushTagsObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e(TAG + ":" + "setPushTags", "onSubscribe: "); } - } - }); - getPushTagsObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e(TAG + ":" + "setPushTags", "onSubscribe: "); - callback.onSubscribe(d); - } - @Override - public void onNext(@NonNull BaseResponse response) { - callback.onNext(response); - mMMKV.encode(CommonConfig.GET_DEVICES_TAG_LASTTIME, System.currentTimeMillis()); - if (response.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - String batch = jsonObject.get("batch").getAsString(); - Log.e(TAG + ":" + "setPushTags", "onNext: " + batch); - if (!TextUtils.isEmpty(batch)) { - set.add(batch); - } else { - Log.e(TAG + ":" + "setPushTags", "onNext: " + "batch empty"); - } + @Override + public void onNext(@NonNull BaseResponse response) { + if (response.code == OK) { + String batch = response.data.getBatch(); + cacheHelper.put(CommonConfig.DEVICES_TAG, GsonUtils.toJsonString(response.data)); + Log.e(TAG + ":" + "setPushTags", "onNext: " + batch); + if (!TextUtils.isEmpty(batch)) { + set.add(batch); } else { - Log.e(TAG + ":" + "setPushTags", "onNext: " + response.toString()); + Log.e(TAG + ":" + "setPushTags", "onNext: " + "batch empty"); } - mMMKV.encode(CommonConfig.DEVICES_TAG, set); + } else { + cacheHelper.put(CommonConfig.DEVICES_TAG, ""); + Log.e(TAG + ":" + "setPushTags", "onNext: " + response.toString()); } + mMMKV.encode(CommonConfig.DEVICES_TAG, set); + } - @Override - public void onError(@NonNull Throwable e) { - Log.e(TAG + ":" + "setPushTags", "onError: " + e.getMessage()); - callback.onError(e); - onComplete(); - } - - @Override - public void onComplete() { - Log.e(TAG + ":" + "setPushTags", "onComplete: "); - callback.onComplete(); - Log.e("setPushTags", "tagSets: " + set); - XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), set, new XGIOperateCallback() { - @Override - public void onSuccess(Object o, int i) { - Log.e("setPushTags", "onSuccess: " + o); - } - - @Override - public void onFail(Object o, int i, String s) { - Log.e("setPushTags", "onFail: " + o); - } - }); - } - }); - } + @Override + public void onError(@NonNull Throwable e) { + Log.e(TAG + ":" + "setPushTags", "onError: " + e.getMessage()); + onComplete(); + } + @Override + public void onComplete() { + Log.e(TAG + ":" + "setPushTags", "onComplete: "); + Log.e("setPushTags", "tagSets: " + set); + clearAndAppendTags(set); + callback.onComplete(); + } + }); } + synchronized private void clearAndAppendTags(Set tagSets) { + XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagSets, new XGIOperateCallback() { + @Override + public void onSuccess(Object o, int i) { + Log.e("setPushTags", "onSuccess: " + o); + } + + @Override + public void onFail(Object o, int i, String s) { + Log.e("setPushTags", "onFail: " + o); + } + }); + } + + @SuppressLint("NewApi") - public void updateDeviceInfo(ObserverCallback callback) { + public void updateDeviceInfo(onCompleteCallback callback) { String address = String.valueOf(SPUtils.get(mContext, "AmapAddress", "-")); if ("-".equals(address)) { address = "定位失败"; @@ -881,54 +1347,51 @@ public class NetInterfaceManager { .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { - callback.onSubscribe(d); + Log.e("updateDeviceInfo", "onSubscribe: "); } @Override public void onNext(BaseResponse baseResponse) { - callback.onNext(baseResponse); - Log.e("updateDeviceInfo", "上传的结果" + baseResponse.toString()); + Log.e("updateDeviceInfo", "onNext: " + baseResponse.toString()); } @Override public void onError(Throwable e) { - callback.onError(e); - Log.e("updateDeviceInfo", e.getMessage()); + Log.e("updateDeviceInfo", "onSubscribe: " + e.getMessage()); onComplete(); } @Override public void onComplete() { + Log.e("updateDeviceInfo", "onComplete: "); callback.onComplete(); } }); } - public void sendInstalledAppInfo(ObserverCallback callback) { + public void sendInstalledAppInfo(onCompleteCallback callback) { String jsonString = ApkUtils.getRunningAppInfo(mContext); - getUploadAppInfoApi().getUploadAppInfoApi(NetInterfaceManager.HTTP_KEY, - Utils.getSerial(), - jsonString) + getUploadAppInfoApi() + .getUploadAppInfoApi(NetInterfaceManager.HTTP_KEY, + Utils.getSerial(), + jsonString) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { Log.e("sendInstalledAppInfo", "onSubscribe: "); - callback.onSubscribe(d); } @Override public void onNext(BaseResponse baseResponse) { Log.e("sendInstalledAppInfo", "onNext: " + baseResponse.toString()); - callback.onNext(baseResponse); } @Override public void onError(Throwable e) { Log.e("sendInstalledAppInfo", "onError: " + e.getMessage()); - callback.onError(e); onComplete(); } @@ -1183,9 +1646,6 @@ public class NetInterfaceManager { void setScreenLockState(boolean locked, String tips); } - - public String getScreenLockState = "getScreenLockState"; - public void getScreenLockState(boolean refresh, BehaviorSubject lifecycle, ScreenLockStateListener listener) { int locked = Settings.System.getInt(mContext.getContentResolver(), JGYActions.ACTION_QCH_UNLOCK_IPAD, 0); if (JGYUtils.isOfficialVersion() || locked == 1) { @@ -1196,10 +1656,10 @@ public class NetInterfaceManager { if (refresh) { connectMode = ConnectMode.ONE_HOUR; } - if (ConnectManager.getInstance().isNeedConnect(getScreenLockState, connectMode)) { + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_LOCK_SCREEN_STATE, connectMode)) { getScreenLock(lifecycle, listener); } else { - String jsonString = cacheHelper.getAsString(getScreenLockState); + String jsonString = cacheHelper.getAsString(UrlAddress.GET_LOCK_SCREEN_STATE); if (jsonString == null) { getScreenLock(lifecycle, listener); } else { @@ -1226,12 +1686,12 @@ public class NetInterfaceManager { Log.e("getScreenLockState", "onNext: " + response); if (response.code == OK) { ScreenLockState screenLockState = response.data; - cacheHelper.put(getScreenLockState, GsonUtils.toJsonString(screenLockState)); + cacheHelper.put(UrlAddress.GET_LOCK_SCREEN_STATE, GsonUtils.toJsonString(screenLockState)); int is_screen_lock = screenLockState.getIs_screen_lock(); String name = screenLockState.getName(); listener.setScreenLockState(is_screen_lock == 1, name); } else { - cacheHelper.put(getScreenLockState, ""); + cacheHelper.put(UrlAddress.GET_LOCK_SCREEN_STATE, ""); listener.setScreenLockState(false, ""); Log.e("getScreenLockState", "onNext: " + response); } @@ -1250,7 +1710,7 @@ public class NetInterfaceManager { }); } - public void setHideDesktopIcon() { + public void getDesktopIcon() { getDesktopIconObservable() .observeOn(Schedulers.io()) .subscribe(new Observer() { @@ -1420,100 +1880,83 @@ public class NetInterfaceManager { }); } - public void getForceDownload() { - NetInterfaceManager.getInstance() - .getForceDownloadObservable() - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e(TAG + ":" + "getForceDownload", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ForceDownloadBean forceDownloadBean) { - Log.e(TAG + ":" + "getForceDownload", "onNext: "); - switch (forceDownloadBean.getCode()) { - case 200: - Log.e(TAG + ":" + "getForceDownload", "isDownloading=" + BaseApplication.getInstance().isDownloading()); - BaseApplication.getInstance().checkIsDownloading(); - if (!BaseApplication.getInstance().isDownloading()) { - Type type = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - List forceDownloadData = gson.fromJson(gson.toJson(forceDownloadBean.getData()), type); - JGYUtils.getInstance().forceDownload(forceDownloadData); - } else { - Aria.download(this).resumeAllTask(); - } - break; - case -200: - boolean qch_force_app = Settings.System.putString(mContext.getContentResolver(), "qch_force_app", "invalid"); - Log.e(TAG + ":" + "getForceDownload", "qch_force_app:" + qch_force_app); - break; - default: - Log.e(TAG + ":" + "getForceDownload", forceDownloadBean.getMsg()); - break; - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e(TAG + ":" + "getForceDownload", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e(TAG + ":" + "getForceDownload", "onComplete: "); - } - }); + public void getSnTimeControl(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.SIX_HOUR; + if (refresh) { + connectMode = ConnectMode.ONE_HOUR; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_LOCK_SCREEN_STATE, connectMode)) { + getSnTimeControl(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_LOCK_SCREEN_STATE); + if (jsonString == null) { + getSnTimeControl(lifecycle, callback); + } else { + Intent intent = new Intent(); + intent.setAction(MainService.TimeChangedReceiver.ACTION_UPDATE); + mContext.sendBroadcast(intent); + callback.onComplete(); + } + } } + public void getSnTimeControl(BehaviorSubject lifecycle, onCompleteCallback callback) { + getSnTimeObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getSnTimeObserver(callback)); + } + + public void getSnTimeControl() { - getSnTimeControlApi() - .getSnTimeControl(Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getSnTimeControl", "onSubscribe: "); - } + getSnTimeObservable() + .subscribe(getSnTimeObserver(null)); + } - @Override - public void onNext(BaseResponse response) { - Log.e("getSnTimeControl", "onNext: "); - int code = response.code; - if (code == 200) { - JSONObject jsonObject = (JSONObject) JSON.toJSON(response.data); - String start_time = jsonObject.getString("start_time"); - String end_time = jsonObject.getString("end_time"); - TimeUtils.ContralTime c = TimeUtils.String2ContralTime(mContext, start_time + "-" + end_time); - if (null != c) { - Log.e("getTimeControl", "200: " + c.toString()); - } - } else { - TimeUtils.setEmpty(mContext); - TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(mContext); - if (null != c) { - Log.e("getTimeControl", c.toString()); - } - } - } + private Observer getSnTimeObserver(onCompleteCallback callback) { + return new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getSnTimeControl", "onSubscribe: "); + } - @Override - public void onError(Throwable e) { - Log.e("getSnTimeControl", "onError: " + e.getMessage()); + @Override + public void onNext(@NonNull BaseResponse response) { + Log.e("getSnTimeControl", "onNext: "); + int code = response.code; + if (code == OK) { + SnTimeControl snTimeControl = response.data; + String start_time = snTimeControl.getStart_time(); + String end_time = snTimeControl.getEnd_time(); + TimeUtils.ContralTime c = TimeUtils.String2ContralTime(mContext, start_time + "-" + end_time); + if (null != c) { + Log.e("getTimeControl", "OK:" + c.toString()); } + } else { + TimeUtils.setEmpty(mContext); + TimeUtils.ContralTime c = TimeUtils.getDefaltContralTime(mContext); + if (null != c) { + Log.e("getTimeControl", c.toString()); + } + } + } - @Override - public void onComplete() { - Log.e("getSnTimeControl", "onComplete: "); - Intent intent = new Intent(); - intent.setAction(MainService.TimeChangedReceiver.ACTION_UPDATE); - mContext.sendBroadcast(intent); - } - }); + @Override + public void onError(@NonNull Throwable e) { + Log.e("getSnTimeControl", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getSnTimeControl", "onComplete: "); + Intent intent = new Intent(); + intent.setAction(MainService.TimeChangedReceiver.ACTION_UPDATE); + mContext.sendBroadcast(intent); + if (callback != null) { + callback.onComplete(); + } + } + }; } public interface GetAppinsideWebCallback { @@ -1590,38 +2033,72 @@ public class NetInterfaceManager { }); } - public void getTopApp() { - getTopAppControlApi().getSnAppControl(Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { + public void getTopApp(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_TOP_APP_CONTROL, connectMode)) { + getTopApp(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_TOP_APP_CONTROL); + if (jsonString == null) { + getTopApp(lifecycle, callback); + } else { +// Gson gson = new Gson(); +// Type Type = new TypeToken() { +// }.getType(); +// TopApp topApp = gson.fromJson(jsonString, Type); +// if (topApp != null) { +// String app_package = topApp.getApp_package(); +// ForegroundAppUtil.setTopAppClass(mContext, app_package); +// SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, app_package); +// ForegroundAppUtil.openTopApp(mContext); +// }else { +// ForegroundAppUtil.setTopAppClass(mContext, ""); +// } + callback.onComplete(); + } + } + } + + + public void getTopApp(BehaviorSubject lifecycle, onCompleteCallback callback) { + getTopAppControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { @Override public void onSubscribe(Disposable d) { - + Log.e("getTopApp", "onSubscribe: "); } @Override - public void onNext(BaseResponse response) { - if (response.code == 200) { - JSONObject jsonObject = (JSONObject) JSON.toJSON(response.data); - String app_package = jsonObject.getString("app_package"); - SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, app_package); + public void onNext(BaseResponse response) { + Log.e("getTopApp", "onNext: " + response.data); + if (response.code == OK) { + String app_package = response.data.getApp_package(); + cacheHelper.put(UrlAddress.GET_TOP_APP_CONTROL, GsonUtils.toJsonString(response.data)); ForegroundAppUtil.setTopAppClass(mContext, app_package); + SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, app_package); ForegroundAppUtil.openTopApp(mContext); } else { - SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, ""); + cacheHelper.put(UrlAddress.GET_TOP_APP_CONTROL, ""); ForegroundAppUtil.setTopAppClass(mContext, ""); + SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, ""); } } @Override public void onError(Throwable e) { - + Log.e("getTopApp", "onError: " + e.getMessage()); + onComplete(); } @Override public void onComplete() { - + Log.e("getTopApp", "onComplete: "); + callback.onComplete(); + ToastUtil.betaShow("获取app霸屏管控结束"); } }); } @@ -1660,40 +2137,83 @@ public class NetInterfaceManager { }); } - public void getPoweroffTime() { - NetInterfaceManager.getInstance() - .getPoweroffTimeControl() - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getPoweroffTime", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse> listBaseResponse) { - Log.e("getPoweroffTime", "onNext: " + listBaseResponse); - MMKV mmkv = MMKV.defaultMMKV(); - if (listBaseResponse.code == 200) { - List poweroffBeanList = listBaseResponse.data; - String poweroffTime = new Gson().toJson(poweroffBeanList); - mmkv.encode("poweroffTime", poweroffTime); - } else { - mmkv.encode("PoweroffTime", ""); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getPoweroffTime", "onError: " + e.getLocalizedMessage()); - } - - @Override - public void onComplete() { - Log.e("getPoweroffTime", "onComplete: "); - } - }); + public void getPoweroffTime(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_POWEROFF_TIME, connectMode)) { + getPoweroffTime(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_POWEROFF_TIME); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getPoweroffTime(lifecycle, callback); + } else { +// Gson gson = new Gson(); +// Type Type = new TypeToken>() { +// }.getType(); +// List poweroffBeanList = gson.fromJson(jsonString, Type); + callback.onComplete(); + } + } } + + public void getPoweroffTime(BehaviorSubject lifecycle, onCompleteCallback callback) { + getPoweroffTimeControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getPoweroffTimeObserver(callback)); + } + + + public void getPoweroffTime(onCompleteCallback callback) { + getPoweroffTimeControl() + .subscribe(getPoweroffTimeObserver(callback)); + } + + public void getPoweroffTime() { + getPoweroffTimeControl() + .subscribe(getPoweroffTimeObserver(null)); + } + + private Observer getPoweroffTimeObserver(onCompleteCallback callback) { + return new Observer>>() { + @Override + public void onSubscribe(Disposable d) { + Log.e("getPoweroffTime", "onSubscribe: "); + } + + @Override + public void onNext(BaseResponse> listBaseResponse) { + Log.e("getPoweroffTime", "onNext: " + listBaseResponse); + if (listBaseResponse.code == 200) { + List poweroffBeanList = listBaseResponse.data; + String poweroffTime = GsonUtils.toJsonString(poweroffBeanList); + cacheHelper.put(UrlAddress.GET_POWEROFF_TIME, poweroffTime); + mMMKV.encode("poweroffTime", poweroffTime); + } else { + mMMKV.encode("PoweroffTime", ""); + } + } + + @Override + public void onError(Throwable e) { + Log.e("getPoweroffTime", "onError: " + e.getLocalizedMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getPoweroffTime", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; + } + + public void getWiFiPasswd() { getWiFiControl() .subscribe(new Observer>>() { @@ -1727,6 +2247,7 @@ public class NetInterfaceManager { }); } + private static int REQUEST_CODE = 12345; public void getRunLog() { diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/GetDesktopApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/GetDesktopApi.java index 4c1f299..239eafa 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/get/GetDesktopApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/get/GetDesktopApi.java @@ -1,5 +1,6 @@ package com.aoleyun.sn.network.api.get; +import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; @@ -9,7 +10,7 @@ import retrofit2.http.Query; public interface GetDesktopApi { @GET(UrlAddress.GET_DESKTOP) - Observable getDesktop( + Observable getDesktop( @Query("sn") String sn ); } diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/GetDeveloperApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/GetDeveloperApi.java index 892c6a3..282ec84 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/get/GetDeveloperApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/get/GetDeveloperApi.java @@ -1,6 +1,7 @@ package com.aoleyun.sn.network.api.get; import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.DeveloperBean; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; @@ -9,7 +10,7 @@ import retrofit2.http.Query; public interface GetDeveloperApi { @GET(UrlAddress.GET_DEVELOPER) - Observable getDeveloperState( + Observable> getDeveloperState( @Query("sn") String sn ); } diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/GetJpushTagsApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/GetJpushTagsApi.java index 6a37203..65d95b0 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/get/GetJpushTagsApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/get/GetJpushTagsApi.java @@ -1,6 +1,7 @@ package com.aoleyun.sn.network.api.get; import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.Batch; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; @@ -9,7 +10,7 @@ import retrofit2.http.Query; public interface GetJpushTagsApi { @GET(UrlAddress.GET_DEVICES_TAGS) - Observable getJpushTags( + Observable> getJpushTags( @Query("sn") String sn ); } diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/SnTimeControlApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/SnTimeControlApi.java index f20b00a..a7aeb01 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/get/SnTimeControlApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/get/SnTimeControlApi.java @@ -1,6 +1,7 @@ package com.aoleyun.sn.network.api.get; import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.SnTimeControl; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; @@ -9,7 +10,7 @@ import retrofit2.http.Query; public interface SnTimeControlApi { @GET(UrlAddress.GET_SN_TIME_CONTROL) - Observable getSnTimeControl( + Observable> getSnTimeControl( @Query("sn") String sn ); } diff --git a/app/src/main/java/com/aoleyun/sn/network/api/get/TopAppControlApi.java b/app/src/main/java/com/aoleyun/sn/network/api/get/TopAppControlApi.java index c3551df..515a2c9 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/get/TopAppControlApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/get/TopAppControlApi.java @@ -1,6 +1,7 @@ package com.aoleyun.sn.network.api.get; import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.TopApp; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; @@ -9,7 +10,7 @@ import retrofit2.http.Query; public interface TopAppControlApi { @GET(UrlAddress.GET_TOP_APP_CONTROL) - Observable getSnAppControl( + Observable> getSnAppControl( @Query("sn") String sn ); } diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/ForceDownloadApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/ForceDownloadApi.java index eb7b81b..c1f8b6f 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/post/ForceDownloadApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/post/ForceDownloadApi.java @@ -1,8 +1,11 @@ package com.aoleyun.sn.network.api.post; -import com.aoleyun.sn.bean.ForceDownloadBean; +import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.ForceDownloadData; import com.aoleyun.sn.network.UrlAddress; +import java.util.List; + import io.reactivex.rxjava3.core.Observable; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; @@ -11,7 +14,7 @@ import retrofit2.http.POST; public interface ForceDownloadApi { @FormUrlEncoded @POST(UrlAddress.GET_FORCE_INSTALL_LIST) - Observable getForceDownloadApi( + Observable>> getForceDownloadApi( @Field("key") String key, @Field("sn") String sn ); diff --git a/app/src/main/java/com/aoleyun/sn/network/interceptor/RepeatRequestInterceptor.java b/app/src/main/java/com/aoleyun/sn/network/interceptor/RepeatRequestInterceptor.java index eafdf26..55c0a87 100644 --- a/app/src/main/java/com/aoleyun/sn/network/interceptor/RepeatRequestInterceptor.java +++ b/app/src/main/java/com/aoleyun/sn/network/interceptor/RepeatRequestInterceptor.java @@ -13,6 +13,7 @@ import okhttp3.Interceptor; import okhttp3.Protocol; import okhttp3.Request; import okhttp3.Response; +import okio.Buffer; public class RepeatRequestInterceptor implements Interceptor { private static final String TAG = RepeatRequestInterceptor.class.getSimpleName(); @@ -29,7 +30,7 @@ public class RepeatRequestInterceptor implements Interceptor { long time = System.currentTimeMillis();//请求时间 try { if (requestIdsMap.size() > 0 && requestIdsMap.containsKey(requestKey)) { - Log.e("REPEAT-REQUEST", "重复请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + request.body()); + Log.e("REPEAT-REQUEST", "重复请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + bodyToString(request)); //下面这行写了不会抛出onerror // chain.call().cancel(); return new Response.Builder() @@ -38,7 +39,7 @@ public class RepeatRequestInterceptor implements Interceptor { .build(); } requestIdsMap.put(requestKey, time); - Log.e("REPEAT-REQUEST", "注册请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + request.body()); + Log.e("REPEAT-REQUEST", "注册请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + bodyToString(request)); // RepeatRequestInterceptor.Builder builder = request.newBuilder(); // builder.addHeader("header", jsonObject.toString()); return chain.proceed(request); @@ -48,8 +49,20 @@ public class RepeatRequestInterceptor implements Interceptor { } finally { if (requestIdsMap.containsKey(requestKey) && requestIdsMap.containsValue(time)) {//请求任务完成删除map中的数据 requestIdsMap.remove(requestKey); - Log.e("REPEAT-REQUEST", "移除请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + request.body()); + Log.e("REPEAT-REQUEST", "移除请求:" + requestKey + " Method @" + request.method() + " --- " + " URL = " + request.url() + "\t" + bodyToString(request)); } } } + + private static String bodyToString(final Request request){ + try { + final Request copy = request.newBuilder().build(); + final Buffer buffer = new Buffer(); + copy.body().writeTo(buffer); + return buffer.readUtf8(); + } catch ( Exception e) { + return "-"; + } + } + } diff --git a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java index 26a21d7..bd9a25c 100644 --- a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java @@ -85,7 +85,7 @@ public class NewAppReceiver extends BroadcastReceiver { Observable.create((ObservableEmitter emitter) -> { newAppListener = emitter::onNext; }) - .throttleLast(5, TimeUnit.SECONDS) + .throttleLast(5, TimeUnit.MINUTES) //这句很关键,这是RxJava中的操作符,在规定时间内观察者不在接收被观察者发送的事件 .subscribe(new Observer() { @Override @@ -97,22 +97,7 @@ public class NewAppReceiver extends BroadcastReceiver { public void onNext(@NonNull String s) { Log.e(TAG, "sendAppInfo: onNext: " + s); SaveListUtils.getDownLoadList().remove(s); - NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseResponse response) { - - } - - @Override - public void onError(Throwable e) { - - } - + NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java b/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java index 296534a..6dcca79 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainSPresenter.java @@ -10,24 +10,17 @@ import android.util.Log; import com.alibaba.fastjson.JSONObject; import com.aoleyun.sn.BuildConfig; -import com.aoleyun.sn.base.BaseApplication; -import com.aoleyun.sn.bean.AppUpdateInfo; import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.DefaultApp; -import com.aoleyun.sn.bean.ForceDownloadBean; -import com.aoleyun.sn.bean.ForceDownloadData; import com.aoleyun.sn.bean.LogoImg; import com.aoleyun.sn.bean.NetAndLaunchBean; -import com.aoleyun.sn.bean.PoweroffBean; import com.aoleyun.sn.bean.StudentsInfo; import com.aoleyun.sn.bean.WiFiAlias; 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.disklrucache.CacheHelper; import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.utils.ApkUtils; -import com.aoleyun.sn.utils.ForegroundAppUtil; import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.TimeUtils; @@ -35,28 +28,23 @@ import com.aoleyun.sn.utils.ToastUtil; import com.aoleyun.sn.utils.URLUtils; import com.aoleyun.sn.utils.Utils; import com.aoleyun.sn.utils.WiFiUtils; -import com.arialyy.aria.core.Aria; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import com.google.gson.reflect.TypeToken; import com.tencent.mmkv.MMKV; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import java.io.IOException; -import java.lang.reflect.Type; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Set; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.annotations.NonNull; -import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; -import io.reactivex.rxjava3.functions.Function5; import io.reactivex.rxjava3.schedulers.Schedulers; import io.reactivex.rxjava3.subjects.BehaviorSubject; import okhttp3.ResponseBody; @@ -74,6 +62,7 @@ public class MainSPresenter implements MainSContact.Presenter { private Context mContext; private ContentResolver crv; private MMKV mMMKV = MMKV.defaultMMKV(); + private CacheHelper cacheHelper; private final String DEFAULT_INFO = "暂无信息"; private final int OK = 200; @@ -90,7 +79,8 @@ public class MainSPresenter implements MainSContact.Presenter { public MainSPresenter(Context context) { this.mContext = context; - crv = mContext.getContentResolver(); + this.crv = mContext.getContentResolver(); + this.cacheHelper = new CacheHelper(mContext); Log.e(TAG, "MainSPresenter: " + context.getClass()); } @@ -111,22 +101,7 @@ public class MainSPresenter implements MainSContact.Presenter { public void getLockedState(String key) { Log.e(TAG, "getLockedState: " + key); NetInterfaceManager.getInstance() - .getLockedState(lifecycle, new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getLockedState", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse response) { - Log.e("getLockedState", "onNext: "); - } - - @Override - public void onError(Throwable e) { - Log.e("getLockedState", "onError: " + e.getMessage()); - } - + .getLockedState(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { Log.e("getLockedState", "onComplete: "); @@ -139,25 +114,14 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void setPushTags() { - NetInterfaceManager.getInstance().setPushTags(lifecycle, new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - Log.e("setPushTags", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse response) { - Log.e("setPushTags", "onNext: "); - } - - @Override - public void onError(Throwable e) { - Log.e("setPushTags", "onError: " + e.getMessage()); - } - + NetInterfaceManager.getInstance().setPushTags(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("setPushTags", "onComplete: "); + Set tagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_TAG); + Log.e("setPushTags", "onComplete: tagSets =" + tagSets); + String tags = cacheHelper.getAsString(CommonConfig.DEVICES_TAG); + Log.e("setPushTags", "onComplete: tags = " + tags); + mView.setTagsFinish(tagSets == null || tagSets.size() < 2); } }); } @@ -196,6 +160,11 @@ public class MainSPresenter implements MainSContact.Presenter { public void setStudentsInfo(StudentsInfo studentsInfo) { mView.setStudesInfo(); } + + @Override + public void onComplete() { + mView.setStudesInfo(); + } }); } @@ -205,22 +174,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void sendMACAddress() { - NetInterfaceManager.getInstance().sendMACAddress(lifecycle, new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseResponse response) { - - } - - @Override - public void onError(Throwable e) { - - } - + NetInterfaceManager.getInstance().sendMACAddress(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.sendMACFinish(); @@ -234,22 +188,7 @@ public class MainSPresenter implements MainSContact.Presenter { mView.updateDeviceInfoFinish(); return; } - NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseResponse response) { - - } - - @Override - public void onError(Throwable e) { - - } - + NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.updateDeviceInfoFinish(); @@ -262,22 +201,7 @@ public class MainSPresenter implements MainSContact.Presenter { */ @Override public void sendInstalled() { - NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseResponse response) { - - } - - @Override - public void onError(Throwable e) { - - } - + NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.sendInstalledFinish(); @@ -292,127 +216,22 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void checkAoleyunUpdate() { - long lastCheckAllUpdateTime = mMMKV.decodeLong(CommonConfig.LAST_CHECK_ALL_UPDATE_TIME, 0); - if (System.currentTimeMillis() - lastCheckAllUpdateTime < 60 * 60 * 1000) { - Log.e(TAG, "checkAoleyunUpdate: " + lastCheckAllUpdateTime); - String jsonString = mMMKV.decodeString(CommonConfig.ALL_APP_UPDATE, ""); - if (TextUtils.isEmpty(jsonString)) { - return; - } - Gson gson = new Gson(); - Type listType = new TypeToken>() { - }.getType(); - List appUpdateInfos = gson.fromJson(jsonString, listType); - for (AppUpdateInfo info : appUpdateInfos) { - JsonObject jsonObject = parseString(new Gson().toJson(info)).getAsJsonObject(); - JGYUtils.getInstance().installAPK(jsonObject); - } - return; - } - Observable> infoUpdateObservable = NetInterfaceManager.getInstance() - .getUpdateApi().getUpdate(BuildConfig.APPLICATION_ID, JGYUtils.getInstance().checkAppPlatform()); - Observable> storeUpdateObservable = NetInterfaceManager.getInstance() - .getUpdateApi().getUpdate(PackageNames.APPSTORE, JGYUtils.getInstance().checkAppPlatform()); - Observable> desktopUpdateObservable = NetInterfaceManager.getInstance() - .getUpdateApi().getUpdate(PackageNames.DESKTOP, JGYUtils.getInstance().checkAppPlatform()); - Observable> notifyUpdateObservable = NetInterfaceManager.getInstance() - .getUpdateApi().getUpdate(PackageNames.NOTIFICATIONS, JGYUtils.getInstance().checkAppPlatform()); - Observable> browserUpdateObservable = NetInterfaceManager.getInstance() - .getUpdateApi().getUpdate(PackageNames.BROWSER, JGYUtils.getInstance().checkAppPlatform()); - - Observable.zip(infoUpdateObservable, storeUpdateObservable, desktopUpdateObservable, notifyUpdateObservable, browserUpdateObservable, - new Function5, BaseResponse, BaseResponse, BaseResponse, BaseResponse, List>() { - @Override - public List apply(BaseResponse appUpdateInfoBaseResponse, BaseResponse appUpdateInfoBaseResponse2, BaseResponse appUpdateInfoBaseResponse3, BaseResponse appUpdateInfoBaseResponse4, BaseResponse appUpdateInfoBaseResponse5) throws Throwable { - List appUpdateInfos = new ArrayList<>(); - if (appUpdateInfoBaseResponse.code == OK) { - appUpdateInfos.add(appUpdateInfoBaseResponse.data); - } - if (appUpdateInfoBaseResponse2.code == OK) { - appUpdateInfos.add(appUpdateInfoBaseResponse2.data); - } - if (appUpdateInfoBaseResponse3.code == OK) { - appUpdateInfos.add(appUpdateInfoBaseResponse3.data); - } - if (appUpdateInfoBaseResponse4.code == OK) { - appUpdateInfos.add(appUpdateInfoBaseResponse4.data); - } - if (appUpdateInfoBaseResponse5.code == OK) { - appUpdateInfos.add(appUpdateInfoBaseResponse5.data); - } - return appUpdateInfos; - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("checkAoleyunUpdate", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull List appUpdateInfos) { - mMMKV.encode(CommonConfig.LAST_CHECK_ALL_UPDATE_TIME, System.currentTimeMillis()); - String jsonString = new Gson().toJson(appUpdateInfos); - Log.e("checkAoleyunUpdate", "onNext: " + jsonString); - mMMKV.encode(CommonConfig.ALL_APP_UPDATE, jsonString); - for (AppUpdateInfo info : appUpdateInfos) { - JsonObject jsonObject = parseString(new Gson().toJson(info)).getAsJsonObject(); - JGYUtils.getInstance().installAPK(jsonObject); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("checkAoleyunUpdate", "onError: " + e.getMessage()); - } - + NetInterfaceManager.getInstance() + .checkAoleyunUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("checkAoleyunUpdate", "onComplete: "); + mView.checkAoleyunUpdateFinish(); } }); - - } - /** - * 获取灰度测试更新 - */ + @Override public void checkTestUpdate() { NetInterfaceManager.getInstance() - .getTestUpdateObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("checkTestUpdate", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse> listBaseResponse) { - - Log.e("checkTestUpdate", "onNext: " + listBaseResponse.data); - if (listBaseResponse.code == OK) { - List APPlist = listBaseResponse.data; - JGYUtils.getInstance().installTestAPK(APPlist); - } else { - Log.e("checkTestUpdate", "onNext: " + listBaseResponse.msg); - } - } - - @Override - public void onError(Throwable e) { - Log.e("checkTestUpdate", "onError: " + e.getMessage()); - onComplete(); - } - + .checkTestUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("checkTestUpdate", "onComplete: "); mView.checkTestUpdateFinish(); } }); @@ -421,51 +240,9 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getForceDownload() { NetInterfaceManager.getInstance() - .getForceDownloadObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getForceDownload", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ForceDownloadBean forceDownloadBean) { - - Log.e("getForceDownload", "onNext: "); - switch (forceDownloadBean.getCode()) { - case OK: - Log.e("getForceDownload", "isDownloading=" + BaseApplication.getInstance().isDownloading()); - BaseApplication.getInstance().checkIsDownloading(); - if (!BaseApplication.getInstance().isDownloading()) { - Type type = new TypeToken>() { - }.getType(); - Gson gson = new Gson(); - List forceDownloadData = gson.fromJson(gson.toJson(forceDownloadBean.getData()), type); - JGYUtils.getInstance().forceDownload(forceDownloadData); - } else { - Aria.download(this).resumeAllTask(); - } - break; - case -200: - boolean qch_force_app = Settings.System.putString(mContext.getContentResolver(), "qch_force_app", "invalid"); - Log.e("getForceDownload", "qch_force_app:" + qch_force_app); - break; - default: - Log.e("getForceDownload", forceDownloadBean.getMsg()); - break; - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getForceDownload", "onError: " + e.getMessage()); - onComplete(); - } - + .getForceDownload(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getForceDownload", "onComplete: "); mView.getForceDownloadFinish(); } }); @@ -478,53 +255,9 @@ public class MainSPresenter implements MainSContact.Presenter { return; } NetInterfaceManager.getInstance() - .getDesktopObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getDefaultDesktop", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ResponseBody responseBody) { - - try { - JSONObject jsonObject = JSONObject.parseObject(responseBody.string()); - Log.e("getDefaultDesktop", "onNext: " + jsonObject.toString()); - int code = jsonObject.getInteger("code"); - if (code == OK) { - JSONObject data = jsonObject.getJSONObject("data"); - JGYUtils.getInstance().installDesktop(data); - } else { - Log.e("getDefaultDesktop", "onNext: " + "删除定制桌面"); - String whiteList = Settings.System.getString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST); - if (!TextUtils.isEmpty(whiteList)) { - if (!whiteList.contains(ApkUtils.desktopAPP.get(0))) { - ApkUtils.UninstallAPP(mContext, ApkUtils.desktopAPP.get(0)); - Log.e("getDefaultDesktop", "skip: " + ApkUtils.desktopAPP.get(0)); - } - if (!whiteList.contains(ApkUtils.desktopAPP.get(1))) { - ApkUtils.UninstallAPP(mContext, ApkUtils.desktopAPP.get(1)); - Log.e("getDefaultDesktop", "skip: " + ApkUtils.desktopAPP.get(1)); - } - } - } - } catch (IOException e) { - e.printStackTrace(); - Log.e("getDefaultDesktop", "onNext: IOException: " + e.getMessage()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getDefaultDesktop", "onError: " + e.getMessage()); - onComplete(); - } - + .getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getDefaultDesktop", "onComplete: "); NetInterfaceManager.getInstance().getAllAppList(); mView.getDefaultDesktopFinish(); } @@ -538,44 +271,9 @@ public class MainSPresenter implements MainSContact.Presenter { return; } NetInterfaceManager.getInstance() - .getLogoImgObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("setLogoImg", "onSubscribe: "); - - } - - @Override - public void onNext(@NonNull BaseResponse logoImgBaseResponse) { - - Log.e("setLogoImg", "onNext: " + logoImgBaseResponse.data); - if (logoImgBaseResponse.code == OK) { - LogoImg logoImg = logoImgBaseResponse.data; - String file_url = logoImg.getFile_url(); - String file_md5 = logoImg.getFile_md5(); - String batch = logoImg.getBatch(); - if (TextUtils.isEmpty(file_url)) { - Log.e("setLogoImg", "onNext: file_url is empty"); - } else { - JGYUtils.getInstance().checkBootFile(file_url, file_md5); - } - } else { - Log.e("setLogoImg", "onNext: delete"); - JGYUtils.getInstance().removeBootanimation(); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("setLogoImg", "onError: " + e.getMessage()); - onComplete(); - } - + .setLogoImg(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("setLogoImg", "onComplete: "); mView.setLogoImgFinish(); } }); @@ -588,43 +286,10 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getDeveloper() { NetInterfaceManager.getInstance() - .getDeveloperControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getDeveloper", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse baseResponse) { - - if (baseResponse.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(baseResponse.data)).getAsJsonObject(); - int is_developer = jsonObject.get("is_developer").getAsInt(); - Log.e("getDeveloper", "onNext: " + is_developer); - //后台1是0否 底层0是1否 - JGYUtils.getInstance().setDeveloperOptions(is_developer == 0 ? 1 : 0); - } else { - JGYUtils.getInstance().setDeveloperOptions(1); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getDeveloper", "onError: " + e.getMessage()); - if (!BuildConfig.DEBUG) { - int oldStatus = Settings.System.getInt(mContext.getContentResolver(), "qch_Developeroptions", 1); - Log.e("getDeveloper", "oldStatus: " + oldStatus); - JGYUtils.getInstance().setDeveloperOptions(oldStatus); - } - onComplete(); - } - + .getDeveloper(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.getDeveloperFinish(); - Log.e("getDeveloper", "onComplete: "); } }); } @@ -641,7 +306,7 @@ public class MainSPresenter implements MainSContact.Presenter { public void getAppLimit() { NetInterfaceManager.getInstance() .getAppLimitObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -694,7 +359,7 @@ public class MainSPresenter implements MainSContact.Presenter { .getROMApp(NetInterfaceManager.HTTP_KEY, customVersion) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { @@ -769,7 +434,7 @@ public class MainSPresenter implements MainSContact.Presenter { NetInterfaceManager.getInstance() .getDesktopIconObservable() .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -833,7 +498,7 @@ public class MainSPresenter implements MainSContact.Presenter { .getAppAutoStartUpdateAndNetObservable() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -870,7 +535,7 @@ public class MainSPresenter implements MainSContact.Presenter { NetInterfaceManager.getInstance() .getAppIDControlObservable() .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -938,7 +603,7 @@ public class MainSPresenter implements MainSContact.Presenter { NetInterfaceManager.getInstance() .getSystemSettingObservable() .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -996,7 +661,7 @@ public class MainSPresenter implements MainSContact.Presenter { public void getDefaultApp() { NetInterfaceManager.getInstance() .getDefaultAppApi() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer>() { @Override public void onSubscribe(Disposable d) { @@ -1040,41 +705,10 @@ public class MainSPresenter implements MainSContact.Presenter { return; } NetInterfaceManager.getInstance() - .getTopAppControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("setTopApp", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse response) { - - Log.e("setTopApp", "onNext: " + response.data); - if (response.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - String app_package = jsonObject.get("app_package").getAsString(); - ForegroundAppUtil.setTopAppClass(mContext, app_package); - SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, app_package); - ForegroundAppUtil.openTopApp(mContext); - } else { - ForegroundAppUtil.setTopAppClass(mContext, ""); - SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, ""); - } - } - - @Override - public void onError(Throwable e) { - Log.e("setTopApp", "onError: " + e.getMessage()); - onComplete(); - } - + .getTopApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("setTopApp", "onComplete: "); mView.setTopAppFinish(); - ToastUtil.betaShow("获取管控结束"); } }); } @@ -1082,36 +716,9 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getPoweroffTime() { NetInterfaceManager.getInstance() - .getPoweroffTimeControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getPoweroffTime", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse> listBaseResponse) { - - Log.e("getPoweroffTime", "onNext: " + listBaseResponse); - if (listBaseResponse.code == OK) { - List poweroffBeanList = listBaseResponse.data; - String poweroffTime = new Gson().toJson(poweroffBeanList); - mMMKV.encode("poweroffTime", poweroffTime); - } else { - mMMKV.encode("PoweroffTime", ""); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getPoweroffTime", "onError: " + e.getLocalizedMessage()); - onComplete(); - } - + .getPoweroffTime(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getPoweroffTime", "onComplete: "); mView.setPoweroffTime(); } }); @@ -1125,7 +732,7 @@ public class MainSPresenter implements MainSContact.Presenter { } NetInterfaceManager.getInstance() .getSnTimeObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { @@ -1176,7 +783,7 @@ public class MainSPresenter implements MainSContact.Presenter { public void getEBagCode() { NetInterfaceManager.getInstance() .getEBagCodeControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { @@ -1214,7 +821,7 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getWiFiPasswd() { NetInterfaceManager.getInstance().getWiFiControl() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) .subscribe(new Observer>>() { @Override public void onSubscribe(Disposable d) { diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java index dc5c9c1..113d57b 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainService.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainService.java @@ -18,6 +18,8 @@ import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.AsyncTask; import android.os.Build; +import android.os.Debug; +import android.os.Handler; import android.os.IBinder; import android.provider.Settings; import android.text.TextUtils; @@ -101,6 +103,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void onConnected(NetworkUtils.NetworkType networkType) { + Debug.waitForDebugger(); ToastUtil.betaShow("网络已连接"); String WiFiAlias = Utils.getWifiAlias(this); Log.e("OnNetworkStatusChanged", "onConnected: " + WiFiAlias); @@ -135,28 +138,12 @@ public class MainService extends Service implements MainSContact.MainView, Netwo super.onPostExecute(aLong); AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); am.setTime(aLong); - tPushInit(); - NetInterfaceManager.getInstance().setPushTags(lifecycleSubject, new NetInterfaceManager.ObserverCallback() { + Handler.getMain().postDelayed(new Runnable() { @Override - public void onSubscribe(Disposable d) { - Log.e("TimeTask", "onSubscribe: "); + public void run() { + tPushInit(); } - - @Override - public void onNext(BaseResponse response) { - Log.e("TimeTask", "onNext: "); - } - - @Override - public void onError(Throwable e) { - Log.e("TimeTask", "onError: " + e.getMessage()); - } - - @Override - public void onComplete() { - Log.e("TimeTask", "onComplete: "); - } - }); + }, 10000); Log.e(TAG, "getTimeFromNtpServer: " + aLong); } } @@ -188,6 +175,12 @@ public class MainService extends Service implements MainSContact.MainView, Netwo Log.e("TPush", "注册失败,错误码:" + errCode + ",错误信息:" + msg); } }); + NetInterfaceManager.getInstance().setPushTags(false, lifecycleSubject, new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + Log.e("TimeTask", "onComplete: "); + } + }); } private final BehaviorSubject lifecycleSubject = BehaviorSubject.create(); @@ -387,9 +380,13 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public int onStartCommand(Intent intent, int flags, int startId) { + Log.e(TAG, "onStartCommand: "); JGYUtils.getInstance().wakeUpAppstore(); - if (!checkAoleyunApp()) { - mPresenter.checkAoleyunUpdate(); + if (mMMKV.decodeInt(CommonConfig.DEVICES_FRIST_START, 1) == 0) { + if (!checkAoleyunApp()) { + Log.e(TAG, "onStartCommand: " + "checkAoleyunApp"); + mPresenter.checkAoleyunUpdate(); + } } return START_STICKY; } diff --git a/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java b/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java index 4f78be7..47768cd 100644 --- a/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java @@ -29,8 +29,10 @@ import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.RemoteDebug; import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.JGYActions; +import com.aoleyun.sn.disklrucache.CacheHelper; import com.aoleyun.sn.manager.AmapManager; import com.aoleyun.sn.network.NetInterfaceManager; +import com.aoleyun.sn.network.UrlAddress; import com.aoleyun.sn.service.main.MainService; import com.aoleyun.sn.tpush.common.NotificationService; import com.aoleyun.sn.tpush.po.XGNotification; @@ -173,6 +175,7 @@ public class MessageReceiver extends XGPushBaseReceiver { private Context mContext; private ContentResolver mResolver; private PackageManager mPackageManager; + private CacheHelper cacheHelper; /** * 消息透传处理 @@ -185,6 +188,7 @@ public class MessageReceiver extends XGPushBaseReceiver { this.mContext = context; this.mResolver = context.getContentResolver(); this.mPackageManager = context.getPackageManager(); + this.cacheHelper = new CacheHelper(context); String text = "收到消息:" + message.toString(); // 获取自定义key-value String customContent = message.getCustomContent(); @@ -490,7 +494,7 @@ public class MessageReceiver extends XGPushBaseReceiver { case MSG_INSTALL: ToastUtil.betaShow("收到管控:应用安装"); doDownloadAndInstall(extras); - NetInterfaceManager.getInstance().setHideDesktopIcon(); + NetInterfaceManager.getInstance().getDesktopIcon(); break; case MSG_LOCK: ToastUtil.betaShow("收到管控:设备锁定"); @@ -564,7 +568,7 @@ public class MessageReceiver extends XGPushBaseReceiver { Handler.getMain().postDelayed(() -> { //后台发送时数据库未改变,有时候可能获取到的数据时上一次的 Log.e(TAG, "run: HIDE_DESKTOP_ICON "); - NetInterfaceManager.getInstance().setHideDesktopIcon(); + NetInterfaceManager.getInstance().getDesktopIcon(); }, 2000); break; case DISABLE_APP_SLIDE: @@ -615,22 +619,7 @@ public class MessageReceiver extends XGPushBaseReceiver { Log.e(TAG, (String) SPUtils.get(mContext, "AmapAddress", "-")); Log.e(TAG, (String) SPUtils.get(mContext, "AmapError", "-")); Log.e(TAG, "amap: " + sb.toString()); - NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.ObserverCallback() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseResponse response) { - - } - - @Override - public void onError(Throwable e) { - - } - + NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { @@ -1115,6 +1104,8 @@ public class MessageReceiver extends XGPushBaseReceiver { private void getTopApp(String extras) { JSONObject jsonObject = JSON.parseObject(extras); + cacheHelper.put(UrlAddress.GET_TOP_APP_CONTROL, extras); + String packageName = jsonObject.getString("app_package"); if (TextUtils.isEmpty(packageName)) { SPUtils.put(mContext, ForegroundAppUtil.TOPAPP_KEY, "");