diff --git a/app/build.gradle b/app/build.gradle index b6f76fd..0489195 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,8 +61,8 @@ android { //新平台正式 cube { flavorDimensions "default" - versionCode 27 - versionName "3.6" + versionCode 28 + versionName "3.7" /*********************************极光推送************************************/ manifestPlaceholders = [ XG_ACCESS_ID : "1500026372", 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 a5883fc..41dc1da 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 @@ -1,6 +1,5 @@ package com.aoleyun.sn.activity.checknet; -import android.os.SystemClock; import android.util.Log; import android.view.KeyEvent; import android.widget.Button; @@ -47,7 +46,6 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma Button bt_confirm; private CheckNetPresenter mCheckNetPresenter; - private boolean netWorkIsRunning = false; private MMKV mMMKV = MMKV.defaultMMKV(); @Override @@ -58,7 +56,6 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma @Override public void onConnected(NetworkUtils.NetworkType networkType) { Log.e("OnNetworkStatusChanged", "onConnected: "); - timeMillis = SystemClock.elapsedRealtime(); giv_1.setBackgroundResource(R.drawable.successful); //直接获取数据 mCheckNetPresenter.getLockedState(); @@ -149,13 +146,10 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma }); } - //执行所有接口耗时 - long timeMillis; @Override public void initData() { Log.e("getMacAddress", Utils.getAndroid10MAC(this)); - timeMillis = SystemClock.elapsedRealtime(); } /** @@ -219,16 +213,10 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma //发送设备mac地址和信息 mCheckNetPresenter.sendMACAddress(); if (loocked) { - if (netWorkIsRunning) { - //如果正在执行,不执行 - return; - } SaveListUtils.getList(); //获取系统管控 mCheckNetPresenter.setPushTags(); - netWorkIsRunning = true; } else { - netWorkIsRunning = false; SysSettingUtils.setEnableSetting(this); } } @@ -239,16 +227,14 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma */ @Override public void setTagsFinish(boolean noTag) { - if (mCheckNetPresenter.isRequestSucceeded()) { - Log.e(TAG, "setTagsFinish: " + mCheckNetPresenter.isRequestSucceeded()); + if (mCheckNetPresenter.isRequestSuccessful()) { + Log.e(TAG, "setTagsFinish: " + mCheckNetPresenter.isRequestSuccessful()); giv_2.setBackgroundResource(R.drawable.successful); } else { giv_2.setBackgroundResource(R.drawable.failed); } if (noTag) { Log.e(TAG, "setTagsFinished: " + "not set tag"); - netWorkIsRunning = false; - Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - timeMillis) + " ms"); } else { mCheckNetPresenter.getSystemSettingbegin(); } @@ -260,8 +246,13 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma } @Override - public void getAppLimitFinish(String packageList) { - mCheckNetPresenter.getDeviceBatch(packageList); + public void getAppLimitFinish() { + mCheckNetPresenter.getAllAppList(); + } + + @Override + public void getAllAppListFinish() { + mCheckNetPresenter.getDeviceBatch(); } @Override @@ -337,14 +328,12 @@ public class CheckNetActivity extends BaseActivity implements CheckNetContact.Ma @Override public void getDefaultDesktopFinish() { - netWorkIsRunning = false; - if (mCheckNetPresenter.isRequestSucceeded()) { + if (mCheckNetPresenter.isRequestSuccessful()) { giv_3.setBackgroundResource(R.drawable.successful); } else { giv_3.setBackgroundResource(R.drawable.failed); } mMMKV.encode(CommonConfig.DEVICES_FRIST_START, 0); - Log.e(TAG, "SettingFinished: " + (SystemClock.elapsedRealtime() - timeMillis) + " ms"); } @Override 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 d323c3c..6d0744d 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 @@ -38,8 +38,10 @@ public class CheckNetContact { void getSystemSettingbegin(); //获取可被写入的安装包名 void getAppLimit(); + /*获取所有app详细信息*/ + void getAllAppList(); //获取设备批次 - void getDeviceBatch(String packageList); + void getDeviceBatch(); //获取强制下载apk void getForceDownload(); //获取浏览器上网管控设置 @@ -109,7 +111,9 @@ public class CheckNetContact { //设置设备后台设置 void getSystemSettingbegin(); //获取可被写入的安装包名结束 - void getAppLimitFinish(String packageList); + void getAppLimitFinish(); + /*获取所有app详细信息*/ + void getAllAppListFinish(); //获取设备批次结束 void getDeviceBatchFinish(); //获取强制下载apk结束 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 be1eed6..e919cb2 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,50 +2,21 @@ package com.aoleyun.sn.activity.checknet; import android.content.ContentResolver; import android.content.Context; -import android.content.pm.PackageManager; import android.provider.Settings; -import android.text.TextUtils; import android.util.Log; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.aoleyun.sn.BuildConfig; -import com.aoleyun.sn.bean.BaseResponse; -import com.aoleyun.sn.bean.DefaultApp; -import com.aoleyun.sn.bean.LogoImg; -import com.aoleyun.sn.bean.NetAndLaunchBean; -import com.aoleyun.sn.bean.WiFiAlias; import com.aoleyun.sn.comm.CommonConfig; import com.aoleyun.sn.comm.JGYActions; import com.aoleyun.sn.network.NetInterfaceManager; -import com.aoleyun.sn.utils.ApkUtils; import com.aoleyun.sn.utils.JGYUtils; import com.aoleyun.sn.utils.SPUtils; import com.aoleyun.sn.utils.SysSettingUtils; 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.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -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.util.Arrays; -import java.util.List; - -import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; -import io.reactivex.rxjava3.annotations.NonNull; -import io.reactivex.rxjava3.core.Observer; -import io.reactivex.rxjava3.disposables.Disposable; -import io.reactivex.rxjava3.schedulers.Schedulers; import io.reactivex.rxjava3.subjects.BehaviorSubject; -import okhttp3.ResponseBody; /** * @author jgy @@ -55,10 +26,10 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { private CheckNetContact.MainView mView; private Context mContext; private ContentResolver crv; + private NetInterfaceManager mNetInterfaceManager; //是否有接口请求成功 - public boolean requestSucceeded = false; - private final int OK = 200; + public boolean requestSucceeded = true; private LifecycleProvider provider; @@ -82,12 +53,13 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { public CheckNetPresenter(Context context) { this.mContext = context; - crv = mContext.getContentResolver(); + this.crv = mContext.getContentResolver(); + this.mNetInterfaceManager = NetInterfaceManager.getInstance(); Log.e(TAG, "MainPresenter: " + context.getClass()); } - public boolean isRequestSucceeded() { - Log.e(TAG, "isRequestSucceeded: " + requestSucceeded); + public boolean isRequestSuccessful() { + Log.e(TAG, "isRequestSuccessful: " + requestSucceeded); return requestSucceeded; } @@ -120,7 +92,7 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void sendMACAddress() { - NetInterfaceManager.getInstance().sendMACAddress(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + mNetInterfaceManager.sendMACAddress(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { mView.sendMACFinish(); @@ -132,14 +104,14 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { public void updateDeviceInfo() { if (JGYUtils.isOfficialVersion()) { mView.updateDeviceInfoFinish(); - return; + } else { + mNetInterfaceManager.updateDeviceInfo(new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.updateDeviceInfoFinish(); + } + }); } - NetInterfaceManager.getInstance().updateDeviceInfo(new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.updateDeviceInfoFinish(); - } - }); } @@ -147,77 +119,46 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { public void getSnTimeControl() { if (JGYUtils.isOfficialVersion()) { mView.getSnTimeControlFinish(); - return; + } else { + mNetInterfaceManager.getSnTimeControl(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getSnTimeControlFinish(); + } + }); } - NetInterfaceManager.getInstance() - .getSnTimeControl(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.getSnTimeControlFinish(); - } - }); - } @Override public void getEBagCode() { - NetInterfaceManager.getInstance() - .getEBagCodeControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getEBagCode", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse baseResponse) { - requestSucceeded = true; - Log.e("getEBagCode", "onNext: " + baseResponse); - int code = baseResponse.code; - if (code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(baseResponse.data)).getAsJsonObject(); - String ebagCode = jsonObject.get("ebagCode").getAsString(); - SPUtils.put(mContext, "ebagCode", ebagCode); - } else { - Log.e("getEBagCode", "onNext: " + baseResponse.data); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getEBagCode", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getEBagCode", "onComplete: "); - mView.getEBagCodeFinish(); - } - }); + mNetInterfaceManager.getEBagCode(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getEBagCodeFinish(); + } + }); } @Override public void getLockedState() { - NetInterfaceManager.getInstance() - .getLockedState(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - Log.e("getLockedState", "onComplete: "); - int locked = Settings.System.getInt(crv, JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED); - Log.e("getLockedState", "locked: " + locked); - mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED); - } - }); + mNetInterfaceManager.getLockedState(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + Log.e("getLockedState", "onComplete: "); + int locked = Settings.System.getInt(crv, JGYActions.ACTION_QCH_UNLOCK_IPAD, JGYActions.FRAME_CODE_LOCKED); + Log.e("getLockedState", "locked: " + locked); + mView.setLockedState(locked == JGYActions.FRAME_CODE_LOCKED); + } + }); } @Override public void setPushTags() { - NetInterfaceManager.getInstance().setPushTags(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + mNetInterfaceManager.setPushTags(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { Log.e("setPushTags", "onComplete: "); + mView.setTagsFinish(false); } }); } @@ -229,13 +170,12 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void checkAoleyunUpdate() { - NetInterfaceManager.getInstance() - .checkAoleyunUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.checkAoleyunUpdateFinish(); - } - }); + mNetInterfaceManager.checkAoleyunUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.checkAoleyunUpdateFinish(); + } + }); } /** @@ -243,13 +183,12 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { */ @Override public void checkTestUpdate() { - NetInterfaceManager.getInstance() - .checkTestUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.checkTestUpdateFinish(); - } - }); + mNetInterfaceManager.checkTestUpdate(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.checkTestUpdateFinish(); + } + }); } @@ -263,55 +202,27 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getAppLimit() { + mNetInterfaceManager.getAppLimit(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getAppLimitFinish(); + } + }); + } + + @Override + public void getAllAppList() { NetInterfaceManager.getInstance() - .getAppLimitObservable() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getAppLimit", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse baseResponse) { - requestSucceeded = true; - Log.e("getAppLimit", "onNext: " + baseResponse); - int code = baseResponse.code; - if (code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(baseResponse.data)).getAsJsonObject(); - String data = jsonObject.get("result").getAsString(); - //开机图标 - boolean write = Settings.System.putString(crv, JGYActions.ACTION_JGY_SHORTCUTLIST, data); - Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write); - JGYUtils.getInstance().writeAppPackageList(mContext, data); - mView.getAppLimitFinish(data); - } else { - boolean write = Settings.System.putString(crv, JGYActions.ACTION_JGY_SHORTCUTLIST, " "); - JGYUtils.getInstance().writeAppPackageList(mContext, ""); - Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write); - Log.e("getAppLimit", "onNext: " + baseResponse); - mView.getAppLimitFinish(""); - } - - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getAppLimit", "onError: " + e.getMessage()); - String oldListString = Settings.System.getString(crv, JGYActions.ACTION_JGY_SHORTCUTLIST); - Log.e("getAppLimit", "oldListString: " + oldListString); - mView.getAppLimitFinish(oldListString); - } - + .getAllAppList(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getAppLimit", "onComplete: "); + mView.getAllAppListFinish(); } }); } @Override - public void getDeviceBatch(String packageList) { + public void getDeviceBatch() { int locked = Settings.System.getInt(crv, JGYActions.ACTION_QCH_UNLOCK_IPAD, 0); Log.e(TAG, "getDeviceBatch: " + locked); if (locked == 0) { @@ -322,13 +233,12 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getForceDownload() { - NetInterfaceManager.getInstance() - .getForceDownload(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.getForceDownloadFinish(); - } - }); + mNetInterfaceManager.getForceDownload(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getForceDownloadFinish(); + } + }); } // TODO: 2021/6/8 使用现有代码会影响浏览器主页管控 @@ -349,29 +259,10 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getBrowserBookmarks(String whitelist) { - NetInterfaceManager.getInstance().getHomePageBookmarks(new NetInterfaceManager.BookmarksCallback() { - @Override - public void onSubscribe() { - Log.e("getBrowserBookmarks", "onSubscribe: "); - } - - @Override - public void onNext() { - requestSucceeded = true; - Log.e("getBrowserBookmarks", "onNext: "); - } - - @Override - public void onError(Throwable e) { - Log.e("getBrowserBookmarks", "onError: " + e.getMessage()); - } - + mNetInterfaceManager.getBookMarkBlackWhiteList(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getBrowserBookmarks", "onComplete: "); - if (mView != null) { - mView.getBrowserBookmarksFinish(); - } + mView.getBrowserBookmarksFinish(); } }); } @@ -383,163 +274,39 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void getDesktopIcon() { - NetInterfaceManager.getInstance() - .getDesktopIconObservable() - .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getDesktopIcon", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - requestSucceeded = true; - Log.e("getDesktopIcon", "onNext: "); - ApkUtils.showAllAPP(mContext); - if (response.code == OK) { - String data = response.data.toString(); - Log.e("getDesktopIcon", "data: " + data); - if (!TextUtils.isEmpty(data)) { - List newList = Arrays.asList(data.split(","));//新的list - PackageManager pm = mContext.getPackageManager(); - for (String pack : newList) { - try { - // TODO: 2021/5/24 需要后端替换包名,暂时解决方案 - try { - if ("com.mediatek.camera".equals(pack)) { - pm.setApplicationEnabledSetting("com.android.camera2", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - } - if ("com.android.mms".equals(pack)) { - pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - } - } catch (Exception ex) { - Log.e("getDesktopIcon", "Exception: ex: " + ex.getMessage()); - } - pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - Log.e("getDesktopIcon", pack); - } catch (Exception e) { - Log.e("getDesktopIcon", "Exception: " + e.getMessage()); - } - } - } - } else { - Log.e("getDesktopIcon", "onNext: " + response.toString()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getDesktopIcon", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getDesktopIcon", "onComplete: "); - JGYUtils.getInstance().hideSystemAPP(); - mView.getDesktopIconFinish(); - } - }); + mNetInterfaceManager.getDesktopIcon(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + JGYUtils.getInstance().hideSystemAPP(); + mView.getDesktopIconFinish(); + } + }); } @Override public void getAppAutoStartUpdateAndNet() { - NetInterfaceManager.getInstance() - .getAppAutoStartUpdateAndNetObservable() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getAppAutoStart", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) { - requestSucceeded = true; - Log.e("getAppAutoStart", "onNext: " + netAndLaunchBean.toString()); - if (netAndLaunchBean.getCode() == OK) { - JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean); - } else { - Log.e("getAppAutoStart", "onNext: " + netAndLaunchBean.toString()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getAppAutoStart", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getAppAutoStart", "onComplete: "); - mView.getAppAutoStartUpdateAndNetFinish(); - } - }); + mNetInterfaceManager.getAppAutoStartUpdateAndNet(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getAppAutoStartUpdateAndNetFinish(); + } + }); } @Override public void getAppIDControl() { - NetInterfaceManager.getInstance() - .getAppIDControlObservable() - .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getAppIDControl", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ResponseBody responseBody) { - requestSucceeded = true; - Log.e("getAppIDControl", "onNext: "); - try { - String bodyString = responseBody.string(); - Log.e("getAppIDControl", "bodyString: " + bodyString); - JsonObject jsonObject = JsonParser.parseString(bodyString).getAsJsonObject(); - int code = jsonObject.get("code").getAsInt(); - if (code == OK) { - JsonObject data = jsonObject.getAsJsonObject("data"); - JsonElement ids = data.get("ids"); - JsonElement packages = data.get("package"); - if (null == ids || null == packages) { - JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); - } else { - JGYUtils.getInstance().writeDeselectIDtoSystem(ids.getAsString(), packages.getAsString()); - } - } else { - JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); - Log.e("getAppIDControl", "onNext: " + bodyString); - } - } catch (IOException e) { - e.printStackTrace(); - Log.e("getAppIDControl", "onNext: IOException: " + e.getMessage()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getAppIDControl", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getAppIDControl", "onComplete: "); - mView.getAppIDControlFinish(); - } - }); + mNetInterfaceManager.getAppIDControl(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getAppIDControlFinish(); + } + }); } @Override public void setAppinsideWeb() { Log.e(TAG, "setAppinsideWeb: "); - NetInterfaceManager.getInstance().getAppinsideWeb(new NetInterfaceManager.GetAppinsideWebCallback() { + mNetInterfaceManager.getAppinsideWeb(new NetInterfaceManager.GetAppinsideWebCallback() { @Override public void onComplete() { Log.e(TAG, "setAppinsideWeb: " + "onComplete"); @@ -553,192 +320,76 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { @Override public void setSystemSetting() { - NetInterfaceManager.getInstance() - .getSystemSettingObservable() - .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("setSystemSetting", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ResponseBody responseBody) { - requestSucceeded = true; - SPUtils.put(mContext, CommonConfig.JGY_FIRST_CONNECT, 1); - try { - String bodyString = responseBody.string(); - Log.e("setSystemSetting", "onNext: " + bodyString); - JsonObject jsonObject = JsonParser.parseString(bodyString).getAsJsonObject(); - int code = jsonObject.get("code").getAsInt(); - if (code == OK) { - String data = jsonObject.getAsJsonObject("data").toString(); - //结果保存到本地 - JGYUtils.getInstance().SettingSysData(data); - } else { - //没有数据全部关闭 -// SysSettingUtils.setDisableSetting(mContext); -// SPUtils.put(mContext, "SystemSettingData", ""); - JGYUtils.getInstance().SettingSysData(""); - //获取系统管控先不要关闭开发人员选项 - if (!BuildConfig.DEBUG) { - Settings.System.putInt(crv, "qch_Developeroptions", 1); - } - } - } catch (IOException e) { - e.printStackTrace(); - Log.e("setSystemSetting", "onNext: IOException: " + e.getMessage()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("setSystemSetting", "onError: " + e.getMessage()); - String oldData = (String) SPUtils.get(mContext, "SystemSettingData", ""); - Log.e("setSystemSetting", "oldData: " + oldData); - JGYUtils.getInstance().SettingSysData(oldData); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("setSystemSetting", "onComplete: "); - mView.setSystemSettingFinish(); - } - }); - + mNetInterfaceManager.setSystemSetting(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.setSystemSettingFinish(); + } + }); } @Override public void getDefaultApp() { - NetInterfaceManager.getInstance() - .getDefaultAppApi() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getDefaultApp", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse defaultAppBaseResponse) { - requestSucceeded = true; - Log.e("getDefaultApp", "onNext: " + JSONObject.toJSONString(defaultAppBaseResponse.data)); - int code = defaultAppBaseResponse.code; - if (code == OK) { - DefaultApp defaultApp = defaultAppBaseResponse.data; - JGYUtils.getInstance().setDefaultDesktop(defaultApp.getDefault_launcher()); - if (defaultApp.getDefault_launcher() != null) { - SPUtils.put(mContext, "default_launcher", defaultApp.getDefault_launcher()); - } - } else { - Log.e("getDefaultApp", "onNext: " + defaultAppBaseResponse.msg); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getDefaultApp", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getDefaultApp", "onComplete: "); - mView.setDefaultAppFinish(); - } - }); + mNetInterfaceManager.getDefaultApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.setDefaultAppFinish(); + } + }); } @Override public void getROMApp() { - String customVersion = Utils.getCustomVersion(); - Log.e(TAG, "getROMApp: " + customVersion); - NetInterfaceManager.getInstance().getCustomROMAppApi() - .getROMApp(NetInterfaceManager.HTTP_KEY, customVersion) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getROMApp", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse baseResponse) { - requestSucceeded = true; - Log.e("getROMApp", "onNext: " + baseResponse); - if (baseResponse.code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(baseResponse.data)).getAsJsonObject(); - String packageName = jsonObject.get("package_name").getAsString(); - Settings.System.putString(crv, "jgy_customromapp", packageName); - } else { - Log.e("getROMApp", "onNext: " + baseResponse.msg); - Settings.System.putString(crv, "jgy_customromapp", " "); -// onComplete(); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getROMApp", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getROMApp", "onComplete: "); - mView.getROMAppFinish(); - } - }); + mNetInterfaceManager.getCustomROMApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getROMAppFinish(); + } + }); } @Override public void getDeveloper() { - NetInterfaceManager.getInstance() - .getDeveloper(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.getDeveloperFinish(); - } - }); + mNetInterfaceManager.getDeveloper(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getDeveloperFinish(); + } + }); } @Override public void setLogoImg() { if (JGYUtils.isOfficialVersion()) { mView.setLogoImgFinish(); - return; + } else { + mNetInterfaceManager.setLogoImg(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.setLogoImgFinish(); + } + }); } - NetInterfaceManager.getInstance() - .setLogoImg(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.setLogoImgFinish(); - } - }); } @Override public void setTopApp() { if (JGYUtils.isOfficialVersion()) { mView.setTopAppFinish(); - return; + + } else { + mNetInterfaceManager.getTopApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.setTopAppFinish(); + } + }); } - NetInterfaceManager.getInstance() - .getTopApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.setTopAppFinish(); - } - }); } @Override synchronized public void getScreenLockState() { - NetInterfaceManager.getInstance().getScreenLockState(true, getLifecycle(), new NetInterfaceManager.ScreenLockStateListener() { + mNetInterfaceManager.getScreenLockState(true, getLifecycle(), new NetInterfaceManager.ScreenLockStateListener() { @Override public void setScreenLockState(boolean locked, String tips) { mView.setScreenLockStateFinish(locked, tips); @@ -750,64 +401,39 @@ public class CheckNetPresenter implements CheckNetContact.Presenter { public void getDefaultDesktop() { if (JGYUtils.isOfficialVersion()) { mView.getDefaultDesktopFinish(); - NetInterfaceManager.getInstance().getAppLimit(); - return; + mNetInterfaceManager.getAppLimit(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + + } + }); + } else { + mNetInterfaceManager.getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getDefaultDesktopFinish(); + } + }); } - NetInterfaceManager.getInstance() - .getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - NetInterfaceManager.getInstance().getAllAppList(); - mView.getDefaultDesktopFinish(); - } - }); } @Override public void getPoweroffTime() { - NetInterfaceManager.getInstance() - .getPoweroffTime(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { - @Override - public void onComplete() { - mView.setPoweroffTime(); - } - }); + mNetInterfaceManager.getPoweroffTime(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.setPoweroffTime(); + } + }); } @Override public void getWiFiPasswd() { - NetInterfaceManager.getInstance().getWiFiControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getWiFiPasswd", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse> listBaseResponse) { - Log.e("getWiFiPasswd", "onNext: "); - if (listBaseResponse.code == 200) { - WiFiUtils.saveWiFiPasswd(listBaseResponse.data); - MMKV.defaultMMKV().encode("WiFiPassword", JsonParser.parseString(new Gson().toJson(listBaseResponse.data)).toString()); - } else { - Log.e("getWiFiPasswd", "onNext: msg = " + listBaseResponse.msg); - WiFiUtils.saveWiFiPasswd(listBaseResponse.data); - MMKV.defaultMMKV().encode("WiFiPassword", ""); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getWiFiPasswd", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getWiFiPasswd", "onComplete: "); - mView.setWiFiPasswd(); - } - }); + mNetInterfaceManager.getWiFiPasswd(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.setWiFiPasswd(); + } + }); } } 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 1c4b56f..1522ea0 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 @@ -12,21 +12,14 @@ import com.aoleyun.sn.bean.AppUpdateInfo; import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.StudentsInfo; import com.aoleyun.sn.comm.JGYActions; -import com.aoleyun.sn.disklrucache.CacheHelper; -import com.aoleyun.sn.manager.ConnectManager; -import com.aoleyun.sn.manager.ConnectMode; import com.aoleyun.sn.network.NetInterfaceManager; -import com.aoleyun.sn.utils.GsonUtils; import com.aoleyun.sn.utils.JGYUtils; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import com.google.gson.reflect.TypeToken; import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; -import java.lang.reflect.Type; - import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observer; diff --git a/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java b/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java index 90a6f5b..76f5906 100644 --- a/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java +++ b/app/src/main/java/com/aoleyun/sn/base/BaseApplication.java @@ -16,7 +16,6 @@ import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.manager.AmapManager; import com.aoleyun.sn.manager.ConnectManager; import com.aoleyun.sn.manager.FileManager; -import com.aoleyun.sn.network.HTTPInterface; import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.network.UrlAddress; import com.aoleyun.sn.rlog.LogDBManager; @@ -378,7 +377,6 @@ public class BaseApplication extends MultiDexApplication { public static void setJpushTags() { Log.e(TAG, "30s后重新设置tags"); -// HTTPInterface.setPushTags(context); } private static OnAliasResult onAliasResult; diff --git a/app/src/main/java/com/aoleyun/sn/bean/AppID.java b/app/src/main/java/com/aoleyun/sn/bean/AppID.java new file mode 100644 index 0000000..e9ba6b9 --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/AppID.java @@ -0,0 +1,29 @@ +package com.aoleyun.sn.bean; + +import com.google.gson.annotations.SerializedName; + +import java.io.Serializable; + +public class AppID implements Serializable { + private static final long serialVersionUID = -2177988059115315546L; + + String ids; + @SerializedName("package") + String packages; + + public String getIds() { + return ids; + } + + public void setIds(String ids) { + this.ids = ids; + } + + public String getPackages() { + return packages; + } + + public void setPackages(String packages) { + this.packages = packages; + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/AppLimit.java b/app/src/main/java/com/aoleyun/sn/bean/AppLimit.java new file mode 100644 index 0000000..08df8a7 --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/AppLimit.java @@ -0,0 +1,17 @@ +package com.aoleyun.sn.bean; + +import java.io.Serializable; + +public class AppLimit implements Serializable { + private static final long serialVersionUID = -4550724319678357614L; + + String result; + + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/CustomROMApp.java b/app/src/main/java/com/aoleyun/sn/bean/CustomROMApp.java new file mode 100644 index 0000000..94a1d2b --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/CustomROMApp.java @@ -0,0 +1,17 @@ +package com.aoleyun.sn.bean; + +import java.io.Serializable; + +public class CustomROMApp implements Serializable { + private static final long serialVersionUID = 4050973622829547418L; + + String package_name; + + public String getPackage_name() { + return package_name; + } + + public void setPackage_name(String package_name) { + this.package_name = package_name; + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/EBagCode.java b/app/src/main/java/com/aoleyun/sn/bean/EBagCode.java new file mode 100644 index 0000000..32654c8 --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/EBagCode.java @@ -0,0 +1,17 @@ +package com.aoleyun.sn.bean; + +import java.io.Serializable; + +public class EBagCode implements Serializable { + private static final long serialVersionUID = -5406288064300275496L; + + String ebagCode; + + public String getEbagCode() { + return ebagCode; + } + + public void setEbagCode(String ebagCode) { + this.ebagCode = ebagCode; + } +} diff --git a/app/src/main/java/com/aoleyun/sn/bean/NetAndLaunchBean.java b/app/src/main/java/com/aoleyun/sn/bean/NetAndLaunchBean.java index 4017c4a..4dd8cc9 100644 --- a/app/src/main/java/com/aoleyun/sn/bean/NetAndLaunchBean.java +++ b/app/src/main/java/com/aoleyun/sn/bean/NetAndLaunchBean.java @@ -3,6 +3,8 @@ package com.aoleyun.sn.bean; import com.google.gson.Gson; import com.google.gson.JsonParser; +import org.jetbrains.annotations.NotNull; + import java.io.Serializable; import java.util.List; @@ -38,6 +40,7 @@ public class NetAndLaunchBean implements Serializable { this.data = data; } + @NotNull @Override public String toString() { return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString(); diff --git a/app/src/main/java/com/aoleyun/sn/disklrucache/CacheHelper.java b/app/src/main/java/com/aoleyun/sn/disklrucache/CacheHelper.java index a1dc5c6..d5d7a48 100644 --- a/app/src/main/java/com/aoleyun/sn/disklrucache/CacheHelper.java +++ b/app/src/main/java/com/aoleyun/sn/disklrucache/CacheHelper.java @@ -103,6 +103,7 @@ public class CacheHelper { // ======================================= public void put(String key, String value) { + Log.e(TAG, "put: " + key); mMMKV.encode(key, System.currentTimeMillis()); DiskLruCache.Editor edit = null; diff --git a/app/src/main/java/com/aoleyun/sn/network/HTTPInterface.java b/app/src/main/java/com/aoleyun/sn/network/HTTPInterface.java deleted file mode 100644 index f6d43e7..0000000 --- a/app/src/main/java/com/aoleyun/sn/network/HTTPInterface.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.aoleyun.sn.network; - -public class HTTPInterface { - private static final String TAG = HTTPInterface.class.getSimpleName(); - private static final int OK = 200; - - - -} \ No newline at end of file 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 4455e75..4f43dbf 100644 --- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java @@ -15,6 +15,8 @@ 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.AppID; +import com.aoleyun.sn.bean.AppLimit; import com.aoleyun.sn.bean.AppListInfo; import com.aoleyun.sn.bean.AppUpdateInfo; import com.aoleyun.sn.bean.Appground; @@ -22,8 +24,10 @@ 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.CustomROMApp; import com.aoleyun.sn.bean.DefaultApp; import com.aoleyun.sn.bean.DeveloperBean; +import com.aoleyun.sn.bean.EBagCode; import com.aoleyun.sn.bean.ForceDownloadData; import com.aoleyun.sn.bean.LogoImg; import com.aoleyun.sn.bean.NetAndLaunchBean; @@ -123,8 +127,11 @@ import java.util.concurrent.TimeUnit; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.ObservableSource; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.functions.BiFunction; +import io.reactivex.rxjava3.functions.Function; import io.reactivex.rxjava3.functions.Function5; import io.reactivex.rxjava3.schedulers.Schedulers; import io.reactivex.rxjava3.subjects.BehaviorSubject; @@ -240,6 +247,9 @@ public class NetInterfaceManager { } public static void init(Context context) { + if (context == null) { + throw new RuntimeException("Context is NULL"); + } if (INSTANCE == null) { INSTANCE = new NetInterfaceManager(context); } @@ -349,7 +359,7 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getAppIDControlObservable() { + public Observable> getAppIDControlObservable() { return mRetrofit.create(DeselectIDApi.class) .getDeselectIDApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) .subscribeOn(Schedulers.io()) @@ -370,14 +380,14 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getSystemSettingObservable() { + public Observable getSystemSettingObservable() { return mRetrofit.create(SystemSettingApi.class) .getSystemSettingApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } - public Observable getAppLimitObservable() { + public Observable> getAppLimitObservable() { return mRetrofit.create(AppLimitApi.class) .getAppLimitApi(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) .subscribeOn(Schedulers.io()) @@ -447,7 +457,7 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getEBagCodeControl() { + public Observable> getEBagCodeControl() { return mRetrofit.create(GetEBagCodeApi.class) .getEBagCode(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) .subscribeOn(Schedulers.io()) @@ -482,13 +492,27 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable> getSnRunLogApiControl() { + public Observable> getSnRunLogControl() { return mRetrofit.create(GetSnRunLogApi.class) .GetSnRunLog(Utils.getSerial()) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } + public Observable> getCustomROMAppControl() { + return mRetrofit.create(CustomROMAppApi.class) + .getROMApp(NetInterfaceManager.HTTP_KEY, Utils.getCustomVersion()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } + + public Observable>> GetAllAppApiControl() { + return mRetrofit.create(GetAllAppApi.class) + .getAllAppList(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()); + } + /* * * API @@ -538,14 +562,6 @@ public class NetInterfaceManager { return mRetrofit.create(CheckUpdateApi.class); } - public CustomROMAppApi getCustomROMAppApi() { - return mRetrofit.create(CustomROMAppApi.class); - } - - public GetAllAppApi GetAllAppApi() { - return mRetrofit.create(GetAllAppApi.class); - } - public GetAppLogApi getAppLogApi() { return mRetrofit.create(GetAppLogApi.class); } @@ -591,6 +607,12 @@ public class NetInterfaceManager { void onComplete(); } + public interface onSuccessfulCallback { + void onSuccessful(); + + void onComplete(); + } + synchronized public void checkAoleyunUpdate(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { ConnectMode connectMode = ConnectMode.SIX_HOUR; if (refresh) { @@ -841,7 +863,6 @@ public class NetInterfaceManager { }; } - public void getDefaultDesktop(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { ConnectMode connectMode = ConnectMode.ONE_HOUR; if (refresh) { @@ -856,7 +877,9 @@ public class NetInterfaceManager { getDefaultDesktop(lifecycle, callback); } else { JSONObject data = JSON.parseObject(jsonString); - JGYUtils.getInstance().installDesktop(data); + if (data != null) { + JGYUtils.getInstance().installDesktop(data); + } callback.onComplete(); } } @@ -905,7 +928,6 @@ public class NetInterfaceManager { @Override public void onComplete() { Log.e("getDefaultDesktop", "onComplete: "); - NetInterfaceManager.getInstance().getAllAppList(); callback.onComplete(); } }); @@ -925,9 +947,9 @@ public class NetInterfaceManager { setLogoImg(lifecycle, callback); } else { Gson gson = new Gson(); - Type listType = new TypeToken() { + Type type = new TypeToken() { }.getType(); - LogoImg logoImg = gson.fromJson(jsonString, listType); + LogoImg logoImg = gson.fromJson(jsonString, type); String file_url = logoImg.getFile_url(); String file_md5 = logoImg.getFile_md5(); if (TextUtils.isEmpty(file_url)) { @@ -997,9 +1019,9 @@ public class NetInterfaceManager { getDeveloper(lifecycle, callback); } else { Gson gson = new Gson(); - Type listType = new TypeToken() { + Type type = new TypeToken() { }.getType(); - DeveloperBean developerBean = gson.fromJson(jsonString, listType); + DeveloperBean developerBean = gson.fromJson(jsonString, type); JGYUtils.getInstance().setDeveloperOptions(developerBean.getIs_developer() == 0 ? 1 : 0); callback.onComplete(); } @@ -1049,6 +1071,522 @@ public class NetInterfaceManager { }); } + public void getCustomROMApp(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_ROM_APP, connectMode)) { + getCustomROMApp(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_ROM_APP); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getCustomROMApp(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + CustomROMApp customROMApp = gson.fromJson(jsonString, type); + + callback.onComplete(); + } + } + } + + public void getCustomROMApp(BehaviorSubject lifecycle, onCompleteCallback callback) { + getCustomROMAppControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + Log.e("getROMApp", "onSubscribe: "); + } + + @Override + public void onNext(BaseResponse baseResponse) { + Log.e("getROMApp", "onNext: " + baseResponse); + if (baseResponse.code == OK) { + CustomROMApp customROMApp = baseResponse.data; + cacheHelper.put(UrlAddress.GET_ROM_APP, GsonUtils.toJsonString(customROMApp)); + String packageName = customROMApp.getPackage_name(); + Settings.System.putString(mContext.getContentResolver(), "jgy_customromapp", packageName); + } else { + cacheHelper.put(UrlAddress.GET_ROM_APP, ""); + Log.e("getROMApp", "onNext: " + baseResponse.msg); + Settings.System.putString(mContext.getContentResolver(), "jgy_customromapp", " "); + } + } + + @Override + public void onError(Throwable e) { + Log.e("getROMApp", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getROMApp", "onComplete: "); + callback.onComplete(); + } + }); + } + + public void getDesktopIcon(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_HIDE_DESKTOPICON, connectMode)) { + getDesktopIcon(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_HIDE_DESKTOPICON); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getDesktopIcon(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken>() { + }.getType(); + List list = gson.fromJson(jsonString, type); + PackageManager pm = mContext.getPackageManager(); + for (String pack : list) { + try { + // TODO: 2021/5/24 需要后端替换包名,暂时解决方案 + if ("com.mediatek.camera".equals(pack)) { + pm.setApplicationEnabledSetting("com.android.camera2", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); + } + if ("com.android.mms".equals(pack)) { + pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); + } + pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); + Log.e("getDesktopIcon", pack); + } catch (Exception e) { + Log.e("getDesktopIcon", "Exception: " + e.getMessage()); + } + } + callback.onComplete(); + } + } + } + + public void getDesktopIcon(BehaviorSubject lifecycle, onCompleteCallback callback) { + getDesktopIconObservable() + .observeOn(Schedulers.io()) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getDesktopIconObserver(callback)); + } + + public void getDesktopIcon(onCompleteCallback callback) { + getDesktopIconObservable() + .observeOn(Schedulers.io()) + .subscribe(getDesktopIconObserver(callback)); + } + + public void getDesktopIcon() { + getDesktopIconObservable() + .observeOn(Schedulers.io()) + .subscribe(getDesktopIconObserver(null)); + } + + public Observer getDesktopIconObserver(onCompleteCallback callback) { + return new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getDesktopIcon", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse response) { + Log.e("getDesktopIcon", "onNext: " + response); + ApkUtils.showAllAPP(mContext); + if (response.code == OK) { + String data = response.data.toString(); + if (!TextUtils.isEmpty(data)) { + List newList = Arrays.asList(data.split(","));//新的list + cacheHelper.put(UrlAddress.GET_HIDE_DESKTOPICON, GsonUtils.toJsonString(newList)); + PackageManager pm = mContext.getPackageManager(); + for (String pack : newList) { + try { + // TODO: 2021/5/24 需要后端替换包名,暂时解决方案 + if ("com.mediatek.camera".equals(pack)) { + pm.setApplicationEnabledSetting("com.android.camera2", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); + } + if ("com.android.mms".equals(pack)) { + pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); + } + pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); + Log.e("getDesktopIcon", pack); + } catch (Exception e) { + Log.e("getDesktopIcon", "Exception: " + e.getMessage()); + } + } + } else { + cacheHelper.put(UrlAddress.GET_HIDE_DESKTOPICON, ""); + } + } else { + cacheHelper.put(UrlAddress.GET_HIDE_DESKTOPICON, ""); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getDesktopIcon", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getDesktopIcon", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; + } + + public void getAppAutoStartUpdateAndNet(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.NET_AND_LAUNCH_API, connectMode)) { + getAppAutoStartUpdateAndNet(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.NET_AND_LAUNCH_API); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getAppAutoStartUpdateAndNet(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + NetAndLaunchBean netAndLaunchBean = gson.fromJson(jsonString, type); + JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean); + callback.onComplete(); + } + } + } + + public void getAppAutoStartUpdateAndNet(BehaviorSubject lifecycle, onCompleteCallback callback) { + getAppAutoStartUpdateAndNetObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAppAutoStart", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) { + Log.e("getAppAutoStart", "onNext: " + netAndLaunchBean.toString()); + if (netAndLaunchBean.getCode() == OK) { + cacheHelper.put(UrlAddress.NET_AND_LAUNCH_API, GsonUtils.toJsonString(netAndLaunchBean)); + JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean); + } else { + cacheHelper.put(UrlAddress.NET_AND_LAUNCH_API, ""); + Log.e("getAppAutoStart", "onNext: " + netAndLaunchBean.toString()); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAppAutoStart", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getAppAutoStart", "onComplete: "); + callback.onComplete(); + } + }); + } + + public void getAppIDControl(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_APPID, connectMode)) { + getAppIDControl(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_APPID); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getAppIDControl(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + AppID appID = gson.fromJson(jsonString, type); + if (appID == null) { + JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); + } else { + JGYUtils.getInstance().writeDeselectIDtoSystem(appID.getIds(), appID.getPackages()); + } + callback.onComplete(); + } + } + } + + public void getAppIDControl(BehaviorSubject lifecycle, onCompleteCallback callback) { + getAppIDControlObservable() + .observeOn(Schedulers.io()) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getAppIDControlObserver(callback)); + } + + public void getAppIDControl(onCompleteCallback callback) { + getAppIDControlObservable() + .observeOn(Schedulers.io()) + .subscribe(getAppIDControlObserver(callback)); + } + + public void getAppIDControl() { + getAppIDControlObservable() + .observeOn(Schedulers.io()) + .subscribe(getAppIDControlObserver(null)); + } + + public Observer> getAppIDControlObserver(onCompleteCallback callback) { + return new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAppIDControl", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("getAppIDControl", "onNext: " + baseResponse); + if (baseResponse.code == OK) { + AppID appID = baseResponse.data; + cacheHelper.put(UrlAddress.GET_APPID, GsonUtils.toJsonString(appID)); + String ids = appID.getIds(); + String packages = appID.getPackages(); + if (appID == null) { + JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); + } else { + JGYUtils.getInstance().writeDeselectIDtoSystem(ids, packages); + } + } else { + cacheHelper.put(UrlAddress.GET_APPID, ""); + JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAppIDControl", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getAppIDControl", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; + } + + + public void setSystemSetting(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_FIRMWARE, connectMode)) { + setSystemSetting(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_FIRMWARE); + //为 "" 是已经请求成功的 + if (jsonString == null) { + setSystemSetting(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + + callback.onComplete(); + } + } + } + + public void setSystemSetting(BehaviorSubject lifecycle, onCompleteCallback callback) { + getSystemSettingObservable() + .observeOn(Schedulers.io()) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("setSystemSetting", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("setSystemSetting", "onNext: " + baseResponse); + SPUtils.put(mContext, CommonConfig.JGY_FIRST_CONNECT, 1); + if (baseResponse.code == OK) { + String data = GsonUtils.toJsonString(baseResponse.data); + Log.e("setSystemSetting", "onNext: " + data); + cacheHelper.put(UrlAddress.GET_FIRMWARE, data); + //结果保存到本地 + JGYUtils.getInstance().SettingSysData(data); + } else { + //没有数据全部关闭 +// SysSettingUtils.setDisableSetting(mContext); +// SPUtils.put(mContext, "SystemSettingData", ""); + JGYUtils.getInstance().SettingSysData(""); + cacheHelper.put(UrlAddress.GET_FIRMWARE, ""); + //获取系统管控先不要关闭开发人员选项 + if (!BuildConfig.DEBUG) { + Settings.System.putInt(mContext.getContentResolver(), "qch_Developeroptions", 1); + } + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("setSystemSetting", "onError: " + e.getMessage()); + String oldData = (String) SPUtils.get(mContext, "SystemSettingData", ""); + Log.e("setSystemSetting", "oldData: " + oldData); + JGYUtils.getInstance().SettingSysData(oldData); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("setSystemSetting", "onComplete: "); + callback.onComplete(); + } + }); + } + + public void getEBagCode(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_EBAG_CODE, connectMode)) { + getEBagCode(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_EBAG_CODE); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getEBagCode(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + + callback.onComplete(); + } + } + } + + public void getEBagCode(BehaviorSubject lifecycle, onCompleteCallback callback) { + getEBagCodeControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + Log.e("getEBagCode", "onSubscribe: "); + } + + @Override + public void onNext(BaseResponse baseResponse) { + Log.e("getEBagCode", "onNext: " + baseResponse); + if (baseResponse.code == OK) { + EBagCode eBagCode = baseResponse.data; + cacheHelper.put(UrlAddress.GET_EBAG_CODE, GsonUtils.toJsonString(eBagCode)); + String ebagCode = eBagCode.getEbagCode(); + SPUtils.put(mContext, "ebagCode", ebagCode); + } else { + cacheHelper.put(UrlAddress.GET_EBAG_CODE, ""); + Log.e("getEBagCode", "onNext: " + baseResponse.data); + } + } + + @Override + public void onError(Throwable e) { + Log.e("getEBagCode", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getEBagCode", "onComplete: "); + callback.onComplete(); + } + }); + } + + + public void getDefaultApp(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_DEFAULT_APP, connectMode)) { + getDefaultApp(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_DEFAULT_APP); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getDefaultApp(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + DefaultApp defaultApp = gson.fromJson(jsonString, type); + if (defaultApp != null) { + JGYUtils.getInstance().setDefaultDesktop(defaultApp.getDefault_launcher()); + } + callback.onComplete(); + } + } + } + + public void getDefaultApp(BehaviorSubject lifecycle, onCompleteCallback callback) { + getDefaultAppApi() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(Disposable d) { + Log.e("getDefaultApp", "onSubscribe: "); + } + + @Override + public void onNext(BaseResponse defaultAppBaseResponse) { + Log.e("getDefaultApp", "onNext: " + JSONObject.toJSONString(defaultAppBaseResponse.data)); + int code = defaultAppBaseResponse.code; + if (code == OK) { + DefaultApp defaultApp = defaultAppBaseResponse.data; + JGYUtils.getInstance().setDefaultDesktop(defaultApp.getDefault_launcher()); + if (defaultApp.getDefault_launcher() != null) { + SPUtils.put(mContext, "default_launcher", defaultApp.getDefault_launcher()); + } + } else { + Log.e("getDefaultApp", "onNext: " + defaultAppBaseResponse.msg); + } + } + + @Override + public void onError(Throwable e) { + Log.e("getDefaultApp", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getDefaultApp", "onComplete: "); + callback.onComplete(); + } + }); + } + public interface StudesInfoListener { void setStudentsInfo(StudentsInfo studentsInfo); @@ -1223,11 +1761,10 @@ public class NetInterfaceManager { }); } - synchronized public void setPushTags(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { ConnectMode connectMode = ConnectMode.ONE_HOUR; if (refresh) { - connectMode = ConnectMode.DEFAULT; + connectMode = ConnectMode.FIFTEEN_MINUTES; } if (ConnectManager.getInstance().isNeedConnect(CommonConfig.DEVICES_TAG, connectMode)) { setPushTags(lifecycle, callback); @@ -1245,7 +1782,6 @@ public class NetInterfaceManager { } } - /** * 设置推送得标签 * @@ -1320,7 +1856,6 @@ public class NetInterfaceManager { }); } - @SuppressLint("NewApi") public void updateDeviceInfo(onCompleteCallback callback) { String address = String.valueOf(SPUtils.get(mContext, "AmapAddress", "-")); @@ -1369,7 +1904,6 @@ public class NetInterfaceManager { }); } - public void sendInstalledAppInfo(onCompleteCallback callback) { String jsonString = ApkUtils.getRunningAppInfo(mContext); getUploadAppInfoApi() @@ -1445,131 +1979,31 @@ public class NetInterfaceManager { }); } - - public interface BookmarksCallback { - void onSubscribe(); - - void onNext(); - - void onError(Throwable e); - - void onComplete(); - } - @SuppressLint("NewApi") - public void getHomePageBookmarks(BookmarksCallback callback) { + public void getHomePageBookmarks() { getBrowserBookmarksObservable() .observeOn(Schedulers.io()) .subscribe(new Observer>() { @Override public void onSubscribe(@NonNull Disposable d) { - callback.onSubscribe(); Log.e("getHomePageBookmarks", "onSubscribe: "); } @Override public void onNext(@NonNull BaseResponse browserBookmarksBaseResponse) { - callback.onNext(); Log.e("getHomePageBookmarks", "onNext: "); - if (browserBookmarksBaseResponse.code == 200) { - //主页不包含白名单添加进去 - String homepagURL = browserBookmarksBaseResponse.data.getHomepage(); - Log.e("getHomePageBookmarks ", "homepagURL: " + homepagURL); - String oldHome = Settings.System.getString(mContext.getContentResolver(), "homepagURL"); - Log.e("getHomePageBookmarks", "oldHome: " + oldHome); - //数据和之前不一样的时候清除缓存 - if (!TextUtils.isEmpty(oldHome) && !oldHome.equalsIgnoreCase(homepagURL)) { - try { - new CacheUtils().cleanApplicationUserData(mContext, "com.android.browser"); - } catch (Exception e) { - e.printStackTrace(); - Log.e(TAG, "setHomepagtag: " + e.getMessage()); - } - } - boolean home = Settings.System.putString(mContext.getContentResolver(), "homepagURL", homepagURL); - Log.e("getHomePageBookmarks", "onNext: homepagURL: save homepagURL = " + home); - String whitelist = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray"); - Log.e("getHomePageBookmarks ", "whitelist: " + whitelist); - -// if (!TextUtils.isEmpty(whitelist.trim())) { -// HashSet whiteLists = new HashSet<>(Arrays.asList(whitelist.trim().split(","))); -// whiteLists.add(homepagURL); -// String whiteString = String.join(",", whiteLists); -// boolean white = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", whiteString); -// Log.e("getHomePageBookmarks", "onNext: homepagURL: add to whiteList = " + whiteString + "write: " + white); -// } else { -// Log.e("getHomePageBookmarks", "onNext: whitelist is NULL"); -// boolean white = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", homepagURL); -// Log.e("getHomePageBookmarks", "onNext: homepagURL: homepagURL = " + homepagURL + "write: " + white); -// } - - //书签 - String labelpage = browserBookmarksBaseResponse.data.getLabelpage(); - Intent websiteBookMark = new Intent("qch_app_brower_website"); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - websiteBookMark.setPackage("com.android.settings") - .setPackage("com.android.browser"); - } - if (!TextUtils.isEmpty(labelpage)) { - HashSet labels = new HashSet<>(Arrays.asList(labelpage.split(","))); -// List urlList = new ArrayList<>(); -// for (String urls : labels) { -// urlList.add(JGYUtils.getPrefixHttpsURL(urls)); -// } - String join = String.join(",", labels); - Log.e("getHomePageBookmarks", "onNext: getHomePageBookmarks: " + join); - websiteBookMark.putExtra("websiteBookMark", join); - } else { - websiteBookMark.putExtra("websiteBookMark", "Invalid"); - } - mContext.sendBroadcast(websiteBookMark); - - //主页 - Intent homepag = new Intent("qch_app_brower_homepage"); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - homepag.setPackage("com.android.settings") - .setPackage("com.android.browser"); - } - if (!TextUtils.isEmpty(homepagURL)) { -// String newHomePage = JGYUtils.getPrefixHttpsURL(homepagURL); - Log.e("getHomePageBookmarks", "onNext: newHomePage: " + homepagURL); - homepag.putExtra("homepage", homepagURL); - } else { - homepag.putExtra("homepage", "Invalid"); - } - mContext.sendBroadcast(homepag); - } else { - Intent intent1 = new Intent("qch_app_brower_homepage"); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - intent1.setPackage("com.android.settings") - .setPackage("com.android.browser"); - } - intent1.putExtra("homepage", "Invalid"); - mContext.sendBroadcast(intent1); - - Settings.System.putString(mContext.getContentResolver(), "homepagURL", " "); - Intent intent2 = new Intent("qch_app_brower_website"); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - intent2.setPackage("com.android.settings") - .setPackage("com.android.browser"); - } - intent2.putExtra("websiteBookMark", "Invalid"); - mContext.sendBroadcast(intent2); - } + setBrowserBookmarks(browserBookmarksBaseResponse); } @Override public void onError(@NonNull Throwable e) { - callback.onError(e); Log.e("getHomePageBookmarks", "onError: " + e.getMessage()); onComplete(); } @Override public void onComplete() { - callback.onComplete(); Log.e("getHomePageBookmarks", "onComplete: "); - setBrowserBlackList(); } }); } @@ -1588,43 +2022,7 @@ public class NetInterfaceManager { public void onNext(BaseResponse browserDataBaseResponse) { Log.e("setBrowserBlackList", "onNext: "); String homePage = Settings.System.getString(mContext.getContentResolver(), "homepagURL"); - if (browserDataBaseResponse.code == 200) { - BrowserData data = browserDataBaseResponse.data; - String white = data.getWhite(); - if (!TextUtils.isEmpty(white)) { - if (!TextUtils.isEmpty(homePage) && !white.contains(homePage)) { - white += "," + homePage; - } - boolean DeselectBrowserArray = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", white); - Log.e("setBrowserBlackList", "setBrowserList white = " + white + ":" + DeselectBrowserArray); - } else { - Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", homePage); - } - String black = data.getBlack(); - if (!TextUtils.isEmpty(black)) { - boolean qch_webblack_url = Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", black); - Log.e("setBrowserBlackList", "setBrowserList black = " + black + ":" + qch_webblack_url); - } else { - Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " "); - } - String white_ip = data.getWhite_ip(); - if (!TextUtils.isEmpty(white_ip)) { - SPUtils.put(mContext, "white_ip", white_ip); - } else { - SPUtils.put(mContext, "white_ip", " "); - } - String black_ip = data.getBlack_ip(); - if (!TextUtils.isEmpty(black_ip)) { - SPUtils.put(mContext, "black_ip", black_ip); - } else { - SPUtils.put(mContext, "black_ip", " "); - } - } else { - Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", homePage); - Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " "); - SPUtils.put(mContext, "white_ip", " "); - SPUtils.put(mContext, "black_ip", " "); - } + setBlackWhiteLis(browserDataBaseResponse, homePage); } @Override @@ -1642,6 +2040,254 @@ public class NetInterfaceManager { }); } + public void getBookMarkBlackWhiteList(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.SET_HOMEPAG_TAG, connectMode) + || ConnectManager.getInstance().isNeedConnect(UrlAddress.SET_BROWSER_LIST, connectMode) + ) { + getBookMarkBlackWhiteList(lifecycle, callback); + } else { + String bookmarkString = cacheHelper.getAsString(UrlAddress.SET_HOMEPAG_TAG); + String browserjsonString = cacheHelper.getAsString(UrlAddress.SET_BROWSER_LIST); + //为 "" 是已经请求成功的 + if (bookmarkString == null) { + getHomePageBookmarks(); + } + if (browserjsonString == null) { + setBrowserBlackList(); + } + callback.onComplete(); + } + } + + public void getBookMarkBlackWhiteList(BehaviorSubject lifecycle, onCompleteCallback callback) { + Observable.zip(getBrowserBookmarksObservable(), getBrowserListSettingObservable(), new BiFunction, BaseResponse, String>() { + @Override + public String apply(BaseResponse browserBookmarksBaseResponse, BaseResponse browserDataBaseResponse) throws Throwable { + String homePage = ""; + if (browserBookmarksBaseResponse.code == OK) { + homePage = browserBookmarksBaseResponse.data.getHomepage(); + } + + setBrowserBookmarks(browserBookmarksBaseResponse); + setBlackWhiteLis(browserDataBaseResponse, homePage); + return homePage; + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getBookMarkBlackWhiteList", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull String homePage) { + Log.e("getBookMarkBlackWhiteList", "onSubscribe: homePage = " + homePage); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getBookMarkBlackWhiteList", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getBookMarkBlackWhiteList", "onComplete: "); + new URLUtils(mContext).setBrowserWhiteList(); + new URLUtils(mContext).setBrowserBlackList(); + callback.onComplete(); + } + }); + } + + public void getBookMarkBlackWhiteList() { + Observable.zip(getBrowserBookmarksObservable(), getBrowserListSettingObservable(), new BiFunction, BaseResponse, String>() { + @Override + public String apply(BaseResponse browserBookmarksBaseResponse, BaseResponse browserDataBaseResponse) throws Throwable { + String homePage = ""; + if (browserBookmarksBaseResponse.code == OK) { + homePage = browserBookmarksBaseResponse.data.getHomepage(); + } + + setBrowserBookmarks(browserBookmarksBaseResponse); + setBlackWhiteLis(browserDataBaseResponse, homePage); + return homePage; + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getBookMarkBlackWhiteList", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull String homePage) { + Log.e("getBookMarkBlackWhiteList", "onSubscribe: homePage = " + homePage); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getBookMarkBlackWhiteList", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getBookMarkBlackWhiteList", "onComplete: "); + new URLUtils(mContext).setBrowserWhiteList(); + new URLUtils(mContext).setBrowserBlackList(); + } + }); + } + + + private void setBrowserBookmarks(BaseResponse browserBookmarksBaseResponse) { + if (browserBookmarksBaseResponse.code == 200) { + BrowserBookmarks browserBookmarks = browserBookmarksBaseResponse.data; + cacheHelper.put(UrlAddress.SET_HOMEPAG_TAG, GsonUtils.toJsonString(browserBookmarks)); + + //主页不包含白名单添加进去 + String homepagURL = browserBookmarks.getHomepage(); + Log.e("getHomePageBookmarks ", "homepagURL: " + homepagURL); + String oldHome = Settings.System.getString(mContext.getContentResolver(), "homepagURL"); + Log.e("getHomePageBookmarks", "oldHome: " + oldHome); + //数据和之前不一样的时候清除缓存 + if (!TextUtils.isEmpty(oldHome) && !oldHome.equalsIgnoreCase(homepagURL)) { + try { + new CacheUtils().cleanApplicationUserData(mContext, "com.android.browser"); + } catch (Exception e) { + e.printStackTrace(); + Log.e(TAG, "setHomepagtag: " + e.getMessage()); + } + } + boolean home = Settings.System.putString(mContext.getContentResolver(), "homepagURL", homepagURL); + Log.e("getHomePageBookmarks", "onNext: homepagURL: save homepagURL = " + home); + String whitelist = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray"); + Log.e("getHomePageBookmarks ", "whitelist: " + whitelist); + +// if (!TextUtils.isEmpty(whitelist.trim())) { +// HashSet whiteLists = new HashSet<>(Arrays.asList(whitelist.trim().split(","))); +// whiteLists.add(homepagURL); +// String whiteString = String.join(",", whiteLists); +// boolean white = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", whiteString); +// Log.e("getHomePageBookmarks", "onNext: homepagURL: add to whiteList = " + whiteString + "write: " + white); +// } else { +// Log.e("getHomePageBookmarks", "onNext: whitelist is NULL"); +// boolean white = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", homepagURL); +// Log.e("getHomePageBookmarks", "onNext: homepagURL: homepagURL = " + homepagURL + "write: " + white); +// } + + //书签 + String labelpage = browserBookmarks.getLabelpage(); + Intent websiteBookMark = new Intent("qch_app_brower_website"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + websiteBookMark.setPackage("com.android.settings") + .setPackage("com.android.browser"); + } + if (!TextUtils.isEmpty(labelpage)) { + HashSet labels = new HashSet<>(Arrays.asList(labelpage.split(","))); +// List urlList = new ArrayList<>(); +// for (String urls : labels) { +// urlList.add(JGYUtils.getPrefixHttpsURL(urls)); +// } + String join = String.join(",", labels); + Log.e("getHomePageBookmarks", "onNext: getHomePageBookmarks: " + join); + websiteBookMark.putExtra("websiteBookMark", join); + } else { + websiteBookMark.putExtra("websiteBookMark", "Invalid"); + } + mContext.sendBroadcast(websiteBookMark); + + //主页 + Intent homepag = new Intent("qch_app_brower_homepage"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + homepag.setPackage("com.android.settings") + .setPackage("com.android.browser"); + } + if (!TextUtils.isEmpty(homepagURL)) { +// String newHomePage = JGYUtils.getPrefixHttpsURL(homepagURL); + Log.e("getHomePageBookmarks", "onNext: newHomePage: " + homepagURL); + homepag.putExtra("homepage", homepagURL); + } else { + homepag.putExtra("homepage", "Invalid"); + } + mContext.sendBroadcast(homepag); + } else { + cacheHelper.put(UrlAddress.SET_HOMEPAG_TAG, ""); + + Intent intent1 = new Intent("qch_app_brower_homepage"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + intent1.setPackage("com.android.settings") + .setPackage("com.android.browser"); + } + intent1.putExtra("homepage", "Invalid"); + mContext.sendBroadcast(intent1); + + Settings.System.putString(mContext.getContentResolver(), "homepagURL", " "); + Intent intent2 = new Intent("qch_app_brower_website"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + intent2.setPackage("com.android.settings") + .setPackage("com.android.browser"); + } + intent2.putExtra("websiteBookMark", "Invalid"); + mContext.sendBroadcast(intent2); + } + } + + private void setBlackWhiteLis(BaseResponse browserDataBaseResponse, String homePage) { + //黑白名单 + if (browserDataBaseResponse.code == 200) { + BrowserData browserData = browserDataBaseResponse.data; + cacheHelper.put(UrlAddress.SET_BROWSER_LIST, GsonUtils.toJsonString(browserData)); + String white = browserData.getWhite(); + if (!TextUtils.isEmpty(white)) { + if (!TextUtils.isEmpty(homePage) && !white.contains(homePage)) { + white += "," + homePage; + } + boolean DeselectBrowserArray = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", white); + Log.e("setBrowserBlackList", "setBrowserList white = " + white + ":" + DeselectBrowserArray); + } else { + Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", homePage); + } + String black = browserData.getBlack(); + if (!TextUtils.isEmpty(black)) { + boolean qch_webblack_url = Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", black); + Log.e("setBrowserBlackList", "setBrowserList black = " + black + ":" + qch_webblack_url); + } else { + Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " "); + } + String white_ip = browserData.getWhite_ip(); + if (!TextUtils.isEmpty(white_ip)) { + SPUtils.put(mContext, "white_ip", white_ip); + } else { + SPUtils.put(mContext, "white_ip", " "); + } + String black_ip = browserData.getBlack_ip(); + if (!TextUtils.isEmpty(black_ip)) { + SPUtils.put(mContext, "black_ip", black_ip); + } else { + SPUtils.put(mContext, "black_ip", " "); + } + } else { + cacheHelper.put(UrlAddress.SET_BROWSER_LIST, ""); + + Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", homePage); + Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " "); + SPUtils.put(mContext, "white_ip", " "); + SPUtils.put(mContext, "black_ip", " "); + } + } + + public interface ScreenLockStateListener { void setScreenLockState(boolean locked, String tips); } @@ -1710,176 +2356,165 @@ public class NetInterfaceManager { }); } - public void getDesktopIcon() { - getDesktopIconObservable() - .observeOn(Schedulers.io()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e(TAG + ":" + "getDesktopIcon", "onSubscribe: "); - } + public void getAppLimit(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.HALF_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.SET_WHITE_PACKAGE_LIST, connectMode)) { + getAppLimit(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.SET_WHITE_PACKAGE_LIST); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getAppLimit(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + AppLimit appLimit = gson.fromJson(jsonString, type); + Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, appLimit.getResult()); + callback.onComplete(); + } + } + } - @Override - public void onNext(@NonNull BaseResponse response) { - Log.e(TAG + ":" + "getDesktopIcon", "onNext: "); - ApkUtils.showAllAPP(mContext); - if (response.code == OK) { - String data = response.data.toString(); - Log.e(TAG + ":" + "getDesktopIcon", "data: " + data); - if (!TextUtils.isEmpty(data)) { - List newList = Arrays.asList(data.split(","));//新的list - PackageManager pm = mContext.getPackageManager(); - for (String pack : newList) { - try { - // TODO: 2021/5/24 需要后端替换包名,暂时解决方案 - try { - if ("com.mediatek.camera".equals(pack)) { - pm.setApplicationEnabledSetting("com.android.camera2", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - } - if ("com.android.mms".equals(pack)) { - pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - } - } catch (Exception ex) { - Log.e(TAG + ":" + "getDesktopIcon", "Exception: ex: " + ex.getMessage()); - } - pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - Log.e(TAG + ":" + "getDesktopIcon", pack); - } catch (Exception e) { - Log.e(TAG + ":" + "getDesktopIcon", "Exception: " + e.getMessage()); - } - } - } - } else { - Log.e(TAG + ":" + "getDesktopIcon", "onNext: " + response.toString()); - } - } + public void getAppLimit(BehaviorSubject lifecycle, onCompleteCallback callback) { + getAppLimitObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getAppLimitObserver(callback)); + } - @Override - public void onError(@NonNull Throwable e) { - Log.e(TAG + ":" + "getDesktopIcon", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e(TAG + ":" + "getDesktopIcon", "onComplete: "); - } - }); + public void getAppLimit(onCompleteCallback callback) { + getAppLimitObservable() + .subscribe(getAppLimitObserver(callback)); } public void getAppLimit() { getAppLimitObservable() - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getAppLimit", "onSubscribe: "); - } + .subscribe(getAppLimitObserver(null)); + } - @Override - public void onNext(@NonNull BaseResponse baseResponse) { - Log.e("getAppLimit", "onNext: " + baseResponse); - if (baseResponse.code == 200) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(baseResponse.data)).getAsJsonObject(); - String data = jsonObject.get("result").getAsString(); - //开机图标 只记录后台传的包名 - boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data); - Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write); - JGYUtils.getInstance().writeAppPackageList(mContext, data); - JGYUtils.getInstance().deleteOtherApp(); - } else { - Log.e("getAppLimit", "onNext: " + baseResponse); - } - } + private Observer getAppLimitObserver(onCompleteCallback callback) { + return new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAppLimit", "onSubscribe: "); + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getAppLimit", "onError: " + e.getMessage()); - onComplete(); - } + @Override + public void onNext(@NonNull BaseResponse baseResponse) { + Log.e("getAppLimit", "onNext: " + baseResponse); + if (baseResponse.code == 200) { + AppLimit appLimit = baseResponse.data; + cacheHelper.put(UrlAddress.SET_WHITE_PACKAGE_LIST, GsonUtils.toJsonString(appLimit)); + String result = appLimit.getResult(); + //开机图标 只记录后台传的包名 + boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, result); + Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write); + JGYUtils.getInstance().writeAppPackageList(mContext, result); + JGYUtils.getInstance().deleteOtherApp(); + } else { + cacheHelper.put(UrlAddress.SET_WHITE_PACKAGE_LIST, ""); + Log.e("getAppLimit", "onNext: " + baseResponse); + } + } - @Override - public void onComplete() { - Log.e("getAppLimit", "onComplete: "); - getAllAppList(); - } - }); + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAppLimit", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getAppLimit", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } +// getAllAppList(); + } + }; } /** - * 获取所有app包名 + * 获取所有app详细信息 */ + public void getAllAppList(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.HALF_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_ALL_APP, connectMode)) { + getAllAppList(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_ALL_APP); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getAllAppList(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken>() { + }.getType(); + List appListInfos = gson.fromJson(jsonString, type); + getAppAutoStartUpdateAndNet(appListInfos); + callback.onComplete(); + } + } + } + + public void getAllAppList(BehaviorSubject lifecycle, onCompleteCallback callback) { + GetAllAppApiControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getAllAppListObserver(callback)); + } + + public void getAllAppList(onCompleteCallback callback) { + GetAllAppApiControl() + .subscribe(getAllAppListObserver(callback)); + } + public void getAllAppList() { - GetAllAppApi() - .getAllAppList(NetInterfaceManager.HTTP_KEY, Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getAllAppList", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse> listBaseResponse) { - Log.e("getAllAppList", "onNext: " + JSONObject.toJSONString(listBaseResponse)); - int code = listBaseResponse.code; - if (code == 200) { - List appListInfos = listBaseResponse.data; - getAppAutoStartUpdateAndNet(appListInfos); - } else { - Log.e("getAllAppList", "onNext: " + "no data"); - Log.e("getAllAppList", "onNext: " + listBaseResponse.data); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getAllAppList", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getAllAppList", "onComplete: "); - getForceDownload(); - } - }); + GetAllAppApiControl() + .subscribe(getAllAppListObserver(null)); } - public void getAppAutoStartUpdateAndNet(List appListInfos) { - NetInterfaceManager.getInstance() - .getAppAutoStartUpdateAndNetObservable() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getAutoUpdateAndNet", "onSubscribe: "); - } + public Observer>> getAllAppListObserver(onCompleteCallback callback) { + return new Observer>>() { + @Override + public void onSubscribe(Disposable d) { + Log.e("getAllAppList", "onSubscribe: "); + } - @Override - public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) { - Log.e("getAutoUpdateAndNet", "onNext: " + netAndLaunchBean.toString()); - if (netAndLaunchBean.getCode() == 200) { - JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean, appListInfos); - } else { - Log.e("getAutoUpdateAndNet", "onNext: " + netAndLaunchBean.toString()); - } - } + @Override + public void onNext(BaseResponse> listBaseResponse) { + Log.e("getAllAppList", "onNext: " + listBaseResponse); + if (listBaseResponse.code == 200) { + List appListInfos = listBaseResponse.data; + cacheHelper.put(UrlAddress.GET_ALL_APP, GsonUtils.toJsonString(appListInfos)); + getAppAutoStartUpdateAndNet(appListInfos); + } else { + cacheHelper.put(UrlAddress.GET_ALL_APP, ""); + } + } - @Override - public void onError(@NonNull Throwable e) { - Log.e("getAutoUpdateAndNet", "onError: " + e.getMessage()); - onComplete(); - } + @Override + public void onError(Throwable e) { + Log.e("getAllAppList", "onError: " + e.getMessage()); + onComplete(); + } - @Override - public void onComplete() { - Log.e("getAutoUpdateAndNet", "onComplete: "); - } - }); + @Override + public void onComplete() { + Log.e("getAllAppList", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; } + public void getSnTimeControl(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { ConnectMode connectMode = ConnectMode.SIX_HOUR; if (refresh) { @@ -2103,6 +2738,40 @@ public class NetInterfaceManager { }); } + public void getAppAutoStartUpdateAndNet(List appListInfos) { + NetInterfaceManager.getInstance() + .getAppAutoStartUpdateAndNetObservable() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAutoUpdateAndNet", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) { + Log.e("getAutoUpdateAndNet", "onNext: " + netAndLaunchBean.toString()); + if (netAndLaunchBean.getCode() == 200) { + JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean, appListInfos); + } else { + Log.e("getAutoUpdateAndNet", "onNext: " + netAndLaunchBean.toString()); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAutoUpdateAndNet", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getAutoUpdateAndNet", "onComplete: "); + } + }); + } + public void getNetAndLaunchSetting() { NetInterfaceManager.getInstance() .getAppAutoStartUpdateAndNetObservable() @@ -2214,44 +2883,89 @@ public class NetInterfaceManager { } + public void getWiFiPasswd(boolean refresh, BehaviorSubject lifecycle, onCompleteCallback callback) { + ConnectMode connectMode = ConnectMode.ONE_HOUR; + if (refresh) { + connectMode = ConnectMode.DEFAULT; + } + if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_WIFI_ALIAS_PW, connectMode)) { + getWiFiPasswd(lifecycle, callback); + } else { + String jsonString = cacheHelper.getAsString(UrlAddress.GET_WIFI_ALIAS_PW); + //为 "" 是已经请求成功的 + if (jsonString == null) { + getWiFiPasswd(lifecycle, callback); + } else { + Gson gson = new Gson(); + Type type = new TypeToken() { + }.getType(); + + callback.onComplete(); + } + } + } + + public void getWiFiPasswd(BehaviorSubject lifecycle, onCompleteCallback callback) { + NetInterfaceManager.getInstance() + .getWiFiControl() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getWiFiPasswdObserver(callback)); + } + + public void getWiFiPasswd(onCompleteCallback callback) { + NetInterfaceManager.getInstance() + .getWiFiControl() + .subscribe(getWiFiPasswdObserver(callback)); + } + public void getWiFiPasswd() { - getWiFiControl() - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getWiFiPasswd", "onSubscribe: "); - } + NetInterfaceManager.getInstance() + .getWiFiControl() + .subscribe(getWiFiPasswdObserver(null)); + } - @Override - public void onNext(BaseResponse> listBaseResponse) { - Log.e("getWiFiPasswd", "onNext: "); - if (listBaseResponse.code == 200) { - WiFiUtils.saveWiFiPasswd(listBaseResponse.data); - MMKV.defaultMMKV().encode("WiFiPassword", JsonParser.parseString(new Gson().toJson(listBaseResponse.data)).toString()); - } else { - WiFiUtils.saveWiFiPasswd(listBaseResponse.data); - MMKV.defaultMMKV().encode("WiFiPassword", ""); - Log.e("getWiFiPasswd", "onNext: msg = " + listBaseResponse.msg); - } - } + public Observer>> getWiFiPasswdObserver(onCompleteCallback callback) { + return new Observer>>() { + @Override + public void onSubscribe(Disposable d) { + Log.e("getWiFiPasswd", "onSubscribe: "); + } - @Override - public void onError(Throwable e) { - Log.e("getWiFiPasswd", "onError: " + e.getMessage()); - } + @Override + public void onNext(BaseResponse> listBaseResponse) { + Log.e("getWiFiPasswd", "onNext: " + listBaseResponse); + if (listBaseResponse.code == OK) { + cacheHelper.put(UrlAddress.GET_WIFI_ALIAS_PW, GsonUtils.toJsonString(listBaseResponse.data)); + WiFiUtils.saveWiFiPasswd(listBaseResponse.data); + mMMKV.encode("WiFiPassword", parseString(new Gson().toJson(listBaseResponse.data)).toString()); + } else { + cacheHelper.put(UrlAddress.GET_WIFI_ALIAS_PW, ""); + WiFiUtils.saveWiFiPasswd(listBaseResponse.data); + mMMKV.encode("WiFiPassword", ""); + } + } - @Override - public void onComplete() { - Log.e("getWiFiPasswd", "onComplete: "); - } - }); + @Override + public void onError(Throwable e) { + Log.e("getWiFiPasswd", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getWiFiPasswd", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; } private static int REQUEST_CODE = 12345; public void getRunLog() { - getSnRunLogApiControl() + getSnRunLogControl() .subscribe(new Observer>() { @Override public void onSubscribe(Disposable d) { @@ -2306,15 +3020,17 @@ public class NetInterfaceManager { public interface PublicIP { void set(String ip); + } /** * 获取设备公网IP * - * @param context * @param publicIP */ - public static void getPublicIP(Context context, PublicIP publicIP) { + private static String IpAddr = ""; + + public static void getPublicIP(PublicIP publicIP) { Retrofit retrofit = new Retrofit.Builder() .client(NetInterfaceManager.getInstance().getOkHttpClient()) .baseUrl(UrlAddress.SHOUHU_CITYJSON) @@ -2343,15 +3059,9 @@ public class NetInterfaceManager { JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject(); String ip = jsonObject.get("cip").getAsString(); if (!TextUtils.isEmpty(ip)) { - publicIP.set(ip); - } else { - publicIP.set(""); + IpAddr = ip; } - } else { - publicIP.set(""); } - } else { - publicIP.set(""); } } catch (IOException e) { e.printStackTrace(); @@ -2362,12 +3072,12 @@ public class NetInterfaceManager { @Override public void onError(Throwable e) { Log.e("getPublicIP", "onError: " + e.getMessage()); - publicIP.set(""); } @Override public void onComplete() { Log.e("getPublicIP", "onComplete: "); + publicIP.set(IpAddr); } }); } diff --git a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java index 4c7e022..3a94a60 100644 --- a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java +++ b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java @@ -32,10 +32,10 @@ public class UrlAddress { public static final String GET_DEVICES_TAGS = "Sn/getSnTag"; /*浏览器书签主页设置*/ public static final String SET_HOMEPAG_TAG = "Label"; - /*app内部网页管控*/ - public static final String SET_APPINSIDEWEB = "Appground"; /*浏览器黑白名单地址*/ public static final String SET_BROWSER_LIST = "browser"; + /*app内部网页管控*/ + public static final String SET_APPINSIDEWEB = "Appground"; /*强制安装应用*/ public static final String GET_FORCE_INSTALL_LIST = "forceinstall/index"; /*应用白名单*/ diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/AppLimitApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/AppLimitApi.java index e5056b5..587ef65 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/post/AppLimitApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/post/AppLimitApi.java @@ -1,5 +1,6 @@ package com.aoleyun.sn.network.api.post; +import com.aoleyun.sn.bean.AppLimit; import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.network.UrlAddress; @@ -11,7 +12,7 @@ import retrofit2.http.POST; public interface AppLimitApi { @FormUrlEncoded @POST(UrlAddress.SET_WHITE_PACKAGE_LIST) - Observable getAppLimitApi( + Observable> getAppLimitApi( @Field("key") String key, @Field("sn") String sn ); diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/CustomROMAppApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/CustomROMAppApi.java index eb9ac2a..a55d5a0 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/post/CustomROMAppApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/post/CustomROMAppApi.java @@ -1,6 +1,7 @@ package com.aoleyun.sn.network.api.post; import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.CustomROMApp; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; @@ -11,7 +12,7 @@ import retrofit2.http.POST; public interface CustomROMAppApi { @FormUrlEncoded @POST(UrlAddress.GET_ROM_APP) - Observable getROMApp( + Observable> getROMApp( @Field("key") String key, @Field("version_number") String version_number ); diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/DeselectIDApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/DeselectIDApi.java index 6ea544b..eb28efe 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/post/DeselectIDApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/post/DeselectIDApi.java @@ -1,5 +1,7 @@ package com.aoleyun.sn.network.api.post; +import com.aoleyun.sn.bean.AppID; +import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; @@ -11,7 +13,7 @@ import retrofit2.http.POST; public interface DeselectIDApi { @FormUrlEncoded @POST(UrlAddress.GET_APPID) - Observable getDeselectIDApi( + Observable> getDeselectIDApi( @Field("key") String key, @Field("sn") String sn ); diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/GetEBagCodeApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/GetEBagCodeApi.java index f1ce10c..3f780ec 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/post/GetEBagCodeApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/post/GetEBagCodeApi.java @@ -1,6 +1,7 @@ package com.aoleyun.sn.network.api.post; import com.aoleyun.sn.bean.BaseResponse; +import com.aoleyun.sn.bean.EBagCode; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; @@ -11,7 +12,7 @@ import retrofit2.http.POST; public interface GetEBagCodeApi { @FormUrlEncoded @POST(UrlAddress.GET_EBAG_CODE) - Observable getEBagCode( + Observable> getEBagCode( @Field("key") String key, @Field("sn") String sn ); diff --git a/app/src/main/java/com/aoleyun/sn/network/api/post/SystemSettingApi.java b/app/src/main/java/com/aoleyun/sn/network/api/post/SystemSettingApi.java index 4d14063..277bf89 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/post/SystemSettingApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/post/SystemSettingApi.java @@ -1,9 +1,9 @@ package com.aoleyun.sn.network.api.post; +import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.network.UrlAddress; import io.reactivex.rxjava3.core.Observable; -import okhttp3.ResponseBody; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.POST; @@ -11,7 +11,7 @@ import retrofit2.http.POST; public interface SystemSettingApi { @FormUrlEncoded @POST(UrlAddress.GET_FIRMWARE) - Observable getSystemSettingApi( + Observable getSystemSettingApi( @Field("key") String key, @Field("sn") String sn ); 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 bd9a25c..ae84677 100644 --- a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java @@ -11,7 +11,6 @@ import android.util.Log; import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.comm.PackageNames; -import com.aoleyun.sn.network.HTTPInterface; import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.utils.ApkUtils; import com.aoleyun.sn.utils.CacheUtils; diff --git a/app/src/main/java/com/aoleyun/sn/service/GuardService.java b/app/src/main/java/com/aoleyun/sn/service/GuardService.java index eccf1ac..2a606c1 100644 --- a/app/src/main/java/com/aoleyun/sn/service/GuardService.java +++ b/app/src/main/java/com/aoleyun/sn/service/GuardService.java @@ -249,7 +249,6 @@ public class GuardService extends Service { } break; case Intent.ACTION_SCREEN_OFF: { -// HTTPInterface.getAppLimit(GuardService.this); long time = System.currentTimeMillis(); getLockState("1", String.valueOf(time)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java b/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java index 6a12829..64c3d8a 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainSContact.java @@ -32,9 +32,10 @@ public class MainSContact { /*分支4 获取应用*/ /*获取设备信息更新*/ void checkAoleyunUpdate(); - /*获取测试应用更新*/ void checkTestUpdate(); + /*获取可被写入的安装包名*/ + void getAppLimit(); /*获取强制下载apk*/ void getForceDownload(); /*获取桌面*/ @@ -47,8 +48,8 @@ public class MainSContact { void getDeveloper(); /*获取设备后台设置*/ void getSystemSettingBegin(); - /*获取可被写入的安装包名*/ - void getAppLimit(); + /*获取所有app详细信息*/ + void getAllAppList(); /*获取自定义内置app*/ void getROMApp(); /*获取浏览器书签设置管控*/ @@ -75,10 +76,10 @@ public class MainSContact { void getSnTimeControl(); /*获取电子书包激活码*/ void getEBagCode(); - /*获取wifi密码*/ - void getWiFiPasswd(); /*获取屏幕锁状态*/ void getScreenLockState(); + /*获取wifi密码*/ + void getWiFiPasswd(); } public interface MainView extends BaseView { @@ -105,9 +106,10 @@ public class MainSContact { /*获取设备信息更新*/ void checkAoleyunUpdateFinish(); - /*获取测试应用更新*/ void checkTestUpdateFinish(); + /*获取可被写入的安装包名结束*/ + void getAppLimitFinish(); /*获取强制下载apk结束*/ void getForceDownloadFinish(); /*获取桌面结束*/ @@ -119,8 +121,8 @@ public class MainSContact { void getDeveloperFinish(); /*设置设备后台设置*/ void setSystemSetting(); - /*获取可被写入的安装包名结束*/ - void getAppLimitFinish(); + /*获取所有app详细信息*/ + void getAllAppListFinish(); /*获取自定义内置app*/ void getROMAppFinish(); /*获取浏览器书签设置管控结束*/ @@ -147,9 +149,9 @@ public class MainSContact { void getSnTimeControlFinish(); /*获取电子书包激活码*/ void getEBagCodeFinish(); - /*获取wifi密码结束*/ - void setWiFiPasswd(); /*设置屏幕锁状态结束*/ void setScreenLockStateFinish(boolean locked, String tips); + /*获取wifi密码结束*/ + void setWiFiPasswd(); } } 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 6dcca79..26ab6d6 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 @@ -2,54 +2,25 @@ package com.aoleyun.sn.service.main; 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; import android.util.Log; -import com.alibaba.fastjson.JSONObject; -import com.aoleyun.sn.BuildConfig; -import com.aoleyun.sn.bean.BaseResponse; -import com.aoleyun.sn.bean.DefaultApp; -import com.aoleyun.sn.bean.LogoImg; -import com.aoleyun.sn.bean.NetAndLaunchBean; 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.disklrucache.CacheHelper; import com.aoleyun.sn.network.NetInterfaceManager; -import com.aoleyun.sn.utils.ApkUtils; 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; -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; import com.tencent.mmkv.MMKV; -import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; -import java.io.IOException; -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.Observer; -import io.reactivex.rxjava3.disposables.Disposable; -import io.reactivex.rxjava3.schedulers.Schedulers; import io.reactivex.rxjava3.subjects.BehaviorSubject; -import okhttp3.ResponseBody; - -import static com.google.gson.JsonParser.parseString; /** * MainService 的 Presenter @@ -64,9 +35,6 @@ public class MainSPresenter implements MainSContact.Presenter { private MMKV mMMKV = MMKV.defaultMMKV(); private CacheHelper cacheHelper; - private final String DEFAULT_INFO = "暂无信息"; - private final int OK = 200; - private BehaviorSubject lifecycle; public void setLifecycle(BehaviorSubject lifecycle) { @@ -237,6 +205,17 @@ public class MainSPresenter implements MainSContact.Presenter { }); } + @Override + public void getAppLimit() { + NetInterfaceManager.getInstance() + .getAppLimit(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getAppLimitFinish(); + } + }); + } + @Override public void getForceDownload() { NetInterfaceManager.getInstance() @@ -258,7 +237,6 @@ public class MainSPresenter implements MainSContact.Presenter { .getDefaultDesktop(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - NetInterfaceManager.getInstance().getAllAppList(); mView.getDefaultDesktopFinish(); } }); @@ -303,50 +281,12 @@ public class MainSPresenter implements MainSContact.Presenter { } @Override - public void getAppLimit() { + public void getAllAppList() { NetInterfaceManager.getInstance() - .getAppLimitObservable() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getAppLimit", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse baseResponse) { - - Log.e("getAppLimit", "onNext: " + baseResponse); - if (baseResponse.code == OK) { - Log.e("getAppLimit", "onNext: " + baseResponse.data.toString()); - JsonObject jsonObject = parseString(new Gson().toJson(baseResponse.data)).getAsJsonObject(); - String data = jsonObject.get("result").getAsString(); - //开机图标 - boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, data); - Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write); - JGYUtils.getInstance().writeAppPackageList(mContext, data); - mView.getAppLimitFinish(); - } else { - boolean write = Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, " "); - JGYUtils.getInstance().writeAppPackageList(mContext, ""); - Log.e(TAG, "onNext: only_jgy_shortcut_list: " + write); - Log.e("getAppLimit", "onNext: " + baseResponse); - mView.getAppLimitFinish(); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getAppLimit", "onError: " + e.getMessage()); - String oldListString = Settings.System.getString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST); - Log.e("getAppLimit", "oldListString: " + oldListString); - onComplete(); - } - + .getAllAppList(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getAppLimit", "onComplete: "); - mView.getAppLimitFinish(); + mView.getAllAppListFinish(); } }); } @@ -355,40 +295,10 @@ public class MainSPresenter implements MainSContact.Presenter { public void getROMApp() { String customVersion = Utils.getCustomVersion(); Log.e(TAG, "getROMApp: " + customVersion); - NetInterfaceManager.getInstance().getCustomROMAppApi() - .getROMApp(NetInterfaceManager.HTTP_KEY, customVersion) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getROMApp", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse baseResponse) { - - Log.e("getROMApp", "onNext: " + baseResponse); - if (baseResponse.code == OK) { - JsonObject jsonObject = parseString(new Gson().toJson(baseResponse.data)).getAsJsonObject(); - String packageName = jsonObject.get("package_name").getAsString(); - Settings.System.putString(mContext.getContentResolver(), "jgy_customromapp", packageName); - } else { - Log.e("getROMApp", "onNext: " + baseResponse.msg); - Settings.System.putString(mContext.getContentResolver(), "jgy_customromapp", " "); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getROMApp", "onError: " + e.getMessage()); - onComplete(); - } - + NetInterfaceManager.getInstance() + .getCustomROMApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getROMApp", "onComplete: "); mView.getROMAppFinish(); } }); @@ -396,29 +306,11 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getBrowserBookmarks() { - NetInterfaceManager.getInstance().getHomePageBookmarks(new NetInterfaceManager.BookmarksCallback() { - @Override - public void onSubscribe() { - Log.e("getBrowserBookmarks", "onSubscribe: "); - } - - @Override - public void onNext() { - - Log.e("getBrowserBookmarks", "onNext: "); - } - - @Override - public void onError(Throwable e) { - Log.e("getBrowserBookmarks", "onError: " + e.getMessage()); - } - + NetInterfaceManager.getInstance() + .getBookMarkBlackWhiteList(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getBrowserBookmarks", "onComplete: "); - if (mView != null) { - mView.getBrowserBookmarksFinish(); - } + mView.getBrowserBookmarksFinish(); } }); } @@ -432,60 +324,9 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getDesktopIcon() { NetInterfaceManager.getInstance() - .getDesktopIconObservable() - .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getDesktopIcon", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - - Log.e("getDesktopIcon", "onNext: "); - ApkUtils.showAllAPP(mContext); - if (response.code == OK) { - String data = response.data.toString(); - Log.e("getDesktopIcon", "data: " + data); - if (!TextUtils.isEmpty(data)) { - List newList = Arrays.asList(data.split(","));//新的list - PackageManager pm = mContext.getPackageManager(); - for (String pack : newList) { - try { - // TODO: 2021/5/24 需要后端替换包名,暂时解决方案 - try { - if ("com.mediatek.camera".equals(pack)) { - pm.setApplicationEnabledSetting("com.android.camera2", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - } - if ("com.android.mms".equals(pack)) { - pm.setApplicationEnabledSetting("com.android.messaging", PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - } - } catch (Exception ex) { - Log.e("getDesktopIcon", "Exception: ex: " + ex.getMessage()); - } - pm.setApplicationEnabledSetting(pack, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0); - Log.e("getDesktopIcon", pack); - } catch (Exception e) { - Log.e("getDesktopIcon", "Exception: " + e.getMessage()); - } - } - } - } else { - Log.e("getDesktopIcon", "onNext: " + response.toString()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getDesktopIcon", "onError: " + e.getMessage()); - onComplete(); - } - + .getDesktopIcon(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getDesktopIcon", "onComplete: "); JGYUtils.getInstance().hideSystemAPP(); mView.getDesktopIconFinish(); } @@ -495,36 +336,9 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getAppAutoStartUpdateAndNet() { NetInterfaceManager.getInstance() - .getAppAutoStartUpdateAndNetObservable() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getAppAutoStart", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull NetAndLaunchBean netAndLaunchBean) { - - Log.e("getAppAutoStart", "onNext: " + netAndLaunchBean.toString()); - if (netAndLaunchBean.getCode() == OK) { - JGYUtils.getInstance().setNetAndlaunch(netAndLaunchBean); - } else { - Log.e("getAppAutoStart", "onNext: " + netAndLaunchBean.toString()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getAppAutoStart", "onError: " + e.getMessage()); - onComplete(); - } - + .getAppAutoStartUpdateAndNet(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getAppAutoStart", "onComplete: "); mView.getAppAutoStartUpdateAndNetFinish(); } }); @@ -533,52 +347,9 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void getAppIDControl() { NetInterfaceManager.getInstance() - .getAppIDControlObservable() - .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getAppIDControl", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ResponseBody responseBody) { - - Log.e("getAppIDControl", "onNext: "); - try { - String bodyString = responseBody.string(); - Log.e("getAppIDControl", "bodyString: " + bodyString); - JsonObject jsonObject = parseString(bodyString).getAsJsonObject(); - int code = jsonObject.get("code").getAsInt(); - if (code == OK) { - JsonObject data = jsonObject.getAsJsonObject("data"); - JsonElement ids = data.get("ids"); - JsonElement packages = data.get("package"); - if (null == ids || null == packages) { - JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); - } else { - JGYUtils.getInstance().writeDeselectIDtoSystem(ids.getAsString(), packages.getAsString()); - } - } else { - JGYUtils.getInstance().writeDeselectIDtoSystem("", ""); - Log.e("getAppIDControl", "onNext: " + bodyString); - } - } catch (IOException e) { - e.printStackTrace(); - Log.e("getAppIDControl", "onNext: IOException: " + e.getMessage()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("getAppIDControl", "onError: " + e.getMessage()); - onComplete(); - } - + .getAppIDControl(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getAppIDControl", "onComplete: "); mView.getAppIDControlFinish(); } }); @@ -601,98 +372,20 @@ public class MainSPresenter implements MainSContact.Presenter { @Override public void setSystemSetting() { NetInterfaceManager.getInstance() - .getSystemSettingObservable() - .observeOn(Schedulers.io()) - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("setSystemSetting", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull ResponseBody responseBody) { - - SPUtils.put(mContext, CommonConfig.JGY_FIRST_CONNECT, 1); - try { - String bodyString = responseBody.string(); - Log.e("setSystemSetting", "onNext: " + bodyString); - JsonObject jsonObject = parseString(bodyString).getAsJsonObject(); - int code = jsonObject.get("code").getAsInt(); - if (code == OK) { - String data = jsonObject.getAsJsonObject("data").toString(); - //结果保存到本地 - JGYUtils.getInstance().SettingSysData(data); - } else { - //没有数据全部关闭 -// SysSettingUtils.setDisableSetting(mContext); -// SPUtils.put(mContext, "SystemSettingData", ""); - JGYUtils.getInstance().SettingSysData(""); - //获取系统管控先不要关闭开发人员选项 - if (!BuildConfig.DEBUG) { - Settings.System.putInt(mContext.getContentResolver(), "qch_Developeroptions", 1); - } - } - } catch (IOException e) { - e.printStackTrace(); - Log.e("setSystemSetting", "onNext: IOException: " + e.getMessage()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - Log.e("setSystemSetting", "onError: " + e.getMessage()); - String oldData = (String) SPUtils.get(mContext, "SystemSettingData", ""); - Log.e("setSystemSetting", "oldData: " + oldData); - JGYUtils.getInstance().SettingSysData(oldData); - onComplete(); - } - + .setSystemSetting(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("setSystemSetting", "onComplete: "); mView.setSystemSettingFinish(); } }); - } @Override public void getDefaultApp() { NetInterfaceManager.getInstance() - .getDefaultAppApi() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getDefaultApp", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse defaultAppBaseResponse) { - - Log.e("getDefaultApp", "onNext: " + JSONObject.toJSONString(defaultAppBaseResponse.data)); - int code = defaultAppBaseResponse.code; - if (code == OK) { - DefaultApp defaultApp = defaultAppBaseResponse.data; - JGYUtils.getInstance().setDefaultDesktop(defaultApp.getDefault_launcher()); - if (defaultApp.getDefault_launcher() != null) { - SPUtils.put(mContext, "default_launcher", defaultApp.getDefault_launcher()); - } - } else { - Log.e("getDefaultApp", "onNext: " + defaultAppBaseResponse.msg); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getDefaultApp", "onError: " + e.getMessage()); - onComplete(); - } - + .getDefaultApp(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getDefaultApp", "onComplete: "); mView.setDefaultAppFinish(); } }); @@ -728,132 +421,28 @@ public class MainSPresenter implements MainSContact.Presenter { public void getSnTimeControl() { if (JGYUtils.isOfficialVersion()) { mView.getSnTimeControlFinish(); - return; - } - NetInterfaceManager.getInstance() - .getSnTimeObservable() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - Log.e("getSnTimeControl", "onSubscribe: "); - } - - @Override - public void onNext(@NonNull BaseResponse response) { - - Log.e("getSnTimeControl", "onNext: "); - int code = response.code; - if (code == OK) { - JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); - String start_time = jsonObject.get("start_time").getAsString(); - String end_time = jsonObject.get("end_time").getAsString(); - 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()); - } + } else { + NetInterfaceManager.getInstance() + .getSnTimeControl(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.getSnTimeControlFinish(); } - } - - @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); - mView.getSnTimeControlFinish(); - } - }); - + }); + } } @Override public void getEBagCode() { NetInterfaceManager.getInstance() - .getEBagCodeControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getEBagCode", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse baseResponse) { - - Log.e("getEBagCode", "onNext: " + baseResponse); - int code = baseResponse.code; - if (code == OK) { - JsonObject jsonObject = parseString(new Gson().toJson(baseResponse.data)).getAsJsonObject(); - String ebagCode = jsonObject.get("ebagCode").getAsString(); - SPUtils.put(mContext, "ebagCode", ebagCode); - } else { - Log.e("getEBagCode", "onNext: " + baseResponse.data); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getEBagCode", "onError: " + e.getMessage()); - onComplete(); - } - + .getEBagCode(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { @Override public void onComplete() { - Log.e("getEBagCode", "onComplete: "); mView.getEBagCodeFinish(); } }); } - @Override - public void getWiFiPasswd() { - NetInterfaceManager.getInstance().getWiFiControl() - .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) - .subscribe(new Observer>>() { - @Override - public void onSubscribe(Disposable d) { - Log.e("getWiFiPasswd", "onSubscribe: "); - } - - @Override - public void onNext(BaseResponse> listBaseResponse) { - Log.e("getWiFiPasswd", "onNext: "); - if (listBaseResponse.code == OK) { - WiFiUtils.saveWiFiPasswd(listBaseResponse.data); - mMMKV.encode("WiFiPassword", parseString(new Gson().toJson(listBaseResponse.data)).toString()); - } else { - Log.e("getWiFiPasswd", "onNext: msg = " + listBaseResponse.msg); - WiFiUtils.saveWiFiPasswd(listBaseResponse.data); - mMMKV.encode("WiFiPassword", ""); - } - } - - @Override - public void onError(Throwable e) { - Log.e("getWiFiPasswd", "onError: " + e.getMessage()); - onComplete(); - } - - @Override - public void onComplete() { - Log.e("getWiFiPasswd", "onComplete: "); - mView.setWiFiPasswd(); - } - }); - } @Override public void getScreenLockState() { @@ -864,4 +453,15 @@ public class MainSPresenter implements MainSContact.Presenter { } }); } + + @Override + public void getWiFiPasswd() { + NetInterfaceManager.getInstance() + .getWiFiPasswd(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() { + @Override + public void onComplete() { + mView.setWiFiPasswd(); + } + }); + } } 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 113d57b..0121d43 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 @@ -103,7 +103,7 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void onConnected(NetworkUtils.NetworkType networkType) { - Debug.waitForDebugger(); +// Debug.waitForDebugger(); ToastUtil.betaShow("网络已连接"); String WiFiAlias = Utils.getWifiAlias(this); Log.e("OnNetworkStatusChanged", "onConnected: " + WiFiAlias); @@ -886,6 +886,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void checkTestUpdateFinish() { + mPresenter.getAppLimit(); + } + + @Override + public void getAppLimitFinish() { mPresenter.getForceDownload(); } @@ -911,11 +916,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void setSystemSetting() { - mPresenter.getAppLimit(); + mPresenter.getAllAppList(); } @Override - public void getAppLimitFinish() { + public void getAllAppListFinish() { mPresenter.getROMApp(); } @@ -981,11 +986,6 @@ public class MainService extends Service implements MainSContact.MainView, Netwo @Override public void getEBagCodeFinish() { - mPresenter.getWiFiPasswd(); - } - - @Override - public void setWiFiPasswd() { mPresenter.getScreenLockState(); } @@ -1006,5 +1006,11 @@ public class MainService extends Service implements MainSContact.MainView, Netwo SPUtils.put(this, "is_screen_lock", false); SPUtils.put(this, "screen_tips", ""); } + mPresenter.getWiFiPasswd(); + } + + @Override + public void setWiFiPasswd() { + } } 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 47768cd..4f1c699 100644 --- a/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/tpush/MessageReceiver.java @@ -805,50 +805,10 @@ public class MessageReceiver extends XGPushBaseReceiver { } private void getDeselectID() { - NetInterfaceManager.getInstance().getDeselectIDApi() - .getDeselectIDApi(NetInterfaceManager.HTTP_KEY, - Utils.getSerial()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable param1Disposable) { - Log.e("getDeselectID", "onSubscribe: "); - } - - @Override - public void onNext(ResponseBody param1ResponseBody) { - String ids = ""; - String packages = ""; - try { - String responString = param1ResponseBody.string(); - Log.e("getDeselectID", "onNext: " + responString); - JSONObject jSONObject = JSON.parseObject(responString); - int code = jSONObject.getInteger("code"); - if (code == 200) { - ids = jSONObject.getJSONObject("data").getString("ids"); - packages = jSONObject.getJSONObject("data").getString("package"); - } - } catch (Exception e) { - Log.e("getDeselectID", "onNext: Exception: " + e.getMessage()); - e.printStackTrace(); - } - JGYUtils.getInstance().writeDeselectIDtoSystem(ids, packages); - } - - @Override - public void onError(Throwable param1Throwable) { - Log.e("getDeselectID", "onError: " + param1Throwable.getMessage()); - } - - @Override - public void onComplete() { - Log.e("getDeselectID", "onComplete: "); - } - }); + NetInterfaceManager.getInstance() + .getAppIDControl(); } - private void setDisableSlideList(String jsonString) { JSONObject jSONObject = JSON.parseObject(jsonString); Log.e("setDisableSlideList", "jSONObject::" + jSONObject.toString()); @@ -949,27 +909,7 @@ public class MessageReceiver extends XGPushBaseReceiver { } private void setHomepagtag() { - NetInterfaceManager.getInstance().getHomePageBookmarks(new NetInterfaceManager.BookmarksCallback() { - @Override - public void onSubscribe() { - - } - - @Override - public void onNext() { - - } - - @Override - public void onError(Throwable e) { - - } - - @Override - public void onComplete() { - - } - }); + NetInterfaceManager.getInstance().getBookMarkBlackWhiteList(); } private void setAPPinsideWebsite(String s) { diff --git a/app/src/main/java/com/aoleyun/sn/utils/Utils.java b/app/src/main/java/com/aoleyun/sn/utils/Utils.java index 40f9a8f..16b68dd 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/Utils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/Utils.java @@ -53,7 +53,6 @@ import com.aoleyun.sn.BuildConfig; import com.aoleyun.sn.R; import com.aoleyun.sn.base.BaseApplication; import com.aoleyun.sn.comm.CommonConfig; -import com.aoleyun.sn.network.HTTPInterface; import com.aoleyun.sn.network.NetInterfaceManager; import com.arialyy.aria.core.Aria; import com.blankj.utilcode.util.FileUtils; @@ -1547,7 +1546,7 @@ public class Utils { * @param context */ public static void getPublicIP(Context context) { - NetInterfaceManager.getPublicIP(context, new NetInterfaceManager.PublicIP() { + NetInterfaceManager.getPublicIP(new NetInterfaceManager.PublicIP() { @Override public void set(String ip) { SPUtils.put(context, "PublicIP", ip); diff --git a/app/src/main/res/layout-land/activity_checknet.xml b/app/src/main/res/layout-land/activity_checknet.xml index 93be431..617b65a 100644 --- a/app/src/main/res/layout-land/activity_checknet.xml +++ b/app/src/main/res/layout-land/activity_checknet.xml @@ -124,7 +124,7 @@