diff --git a/app/build.gradle b/app/build.gradle index aa86a7c..0f57d7e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { defaultConfig { applicationId "com.aoleyun.sn" - versionCode 216 - versionName "1.6.0507" + versionCode 221 + versionName "1.6.0522" //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature. minSdkVersion 24 diff --git a/app/src/main/java/com/aoleyun/sn/activity/main/MainViewModel.java b/app/src/main/java/com/aoleyun/sn/activity/main/MainViewModel.java index fb81660..54fea3a 100644 --- a/app/src/main/java/com/aoleyun/sn/activity/main/MainViewModel.java +++ b/app/src/main/java/com/aoleyun/sn/activity/main/MainViewModel.java @@ -58,6 +58,7 @@ public class MainViewModel extends BaseViewModel mLockedData = new MutableLiveData<>(); @@ -240,6 +241,9 @@ public class MainViewModel extends BaseViewModel mQrCodeData = new MutableLiveData<>(); @@ -344,7 +348,7 @@ public class MainViewModel extends BaseViewModel data; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public List getData() { - return data; - } - - public void setData(List data) { - 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/bean/NetAndLaunchData.java b/app/src/main/java/com/aoleyun/sn/bean/NetAndLaunchData.java index 6d4f0ec..2c902b5 100644 --- a/app/src/main/java/com/aoleyun/sn/bean/NetAndLaunchData.java +++ b/app/src/main/java/com/aoleyun/sn/bean/NetAndLaunchData.java @@ -17,6 +17,7 @@ public class NetAndLaunchData implements Serializable { int is_appstore; int is_notification; int is_dynamic_perm; + int allow_install_app; public int getIs_slide() { @@ -93,6 +94,14 @@ public class NetAndLaunchData implements Serializable { this.is_dynamic_perm = is_dynamic_perm; } + public int getAllow_install_app() { + return allow_install_app; + } + + public void setAllow_install_app(int allow_install_app) { + this.allow_install_app = allow_install_app; + } + @Override public String toString() { return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString(); diff --git a/app/src/main/java/com/aoleyun/sn/bean/PushTag.java b/app/src/main/java/com/aoleyun/sn/bean/PushTag.java new file mode 100644 index 0000000..bbeaf3b --- /dev/null +++ b/app/src/main/java/com/aoleyun/sn/bean/PushTag.java @@ -0,0 +1,26 @@ +package com.aoleyun.sn.bean; + +import java.io.Serializable; + +public class PushTag implements Serializable { + private static final long serialVersionUID = 4259225499869024039L; + + String tag; + String tag_type; + + public String getTag() { + return tag; + } + + public void setTag(String tag) { + this.tag = tag; + } + + public String getTag_type() { + return tag_type; + } + + public void setTag_type(String tag_type) { + this.tag_type = tag_type; + } +} diff --git a/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java b/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java index f1d9226..085f0cd 100644 --- a/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java +++ b/app/src/main/java/com/aoleyun/sn/comm/CommonConfig.java @@ -67,6 +67,8 @@ public class CommonConfig { public final static String DEVICES_TAG = "Aoleyun_devices_tpush_tag"; /*分组标签*/ public final static String DEVICES_GROUP_TAG = "Aoleyun_devices_tpush_group_tag"; + /*公共应用标签*/ + public final static String SN_PUBLIC_APP_TAG = "Aoleyun_sn_public_app_tag"; /*上次获取标签的时间*/ public final static String GET_DEVICES_TAG_LASTTIME = "Aoleyun_devices_tag_last_time"; /*专注模式刷新*/ @@ -120,6 +122,8 @@ public class CommonConfig { /*强制安装应用,禁止卸载*/ public final static String AOLE_ACTION_FORCE_APP = "aole_force_app"; /*指定应用安装源 非指定包名不能安装apk*/ + public static final String SEEWO_APP_SOURCE_INSTALL_WHITELIST = "seewo_app_source_install_whitelist"; + /*指定应用安装源 非指定包名不能安装apk*/ public static final String APP_SOURCE_WHITE_LIST = "app_source_white_list"; /*应用ID管控*/ 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 4ec029d..f2ef54e 100644 --- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java @@ -1,5 +1,7 @@ package com.aoleyun.sn.network; +import static com.google.gson.JsonParser.parseString; + import android.annotation.SuppressLint; import android.app.AlarmManager; import android.app.PendingIntent; @@ -48,8 +50,9 @@ import com.aoleyun.sn.bean.LessonApp; import com.aoleyun.sn.bean.LessonJson; import com.aoleyun.sn.bean.LessonSetting; import com.aoleyun.sn.bean.LogoImg; -import com.aoleyun.sn.bean.NetAndLaunchBean; +import com.aoleyun.sn.bean.NetAndLaunchData; import com.aoleyun.sn.bean.PoweroffBean; +import com.aoleyun.sn.bean.PushTag; import com.aoleyun.sn.bean.ScreenLockState; import com.aoleyun.sn.bean.SnRunLog; import com.aoleyun.sn.bean.SnSetting; @@ -156,8 +159,6 @@ import retrofit2.Retrofit; import retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; -import static com.google.gson.JsonParser.parseString; - public class NetInterfaceManager { private static final String TAG = "NetInterfaceManager"; private static final RxCacheManager CACHE_MANAGER = RxCacheManager.getInstance(); @@ -167,7 +168,17 @@ public class NetInterfaceManager { CACHE_MANAGER.clearAllCache(); } - private static final long CACHE_EXPIRE_ONE_MINUTE = 60 * 1000; + public static void removeCache(String key) { + Log.e(TAG, "removeCache: key = " + key); + CACHE_MANAGER.removeCache(key); + } + + //缓存过期时间1秒 + private static final long CACHE_EXPIRE_ONE_SECOND = 1000; + //默认 缓存过期时间10秒 + private static final long DEFAULT_CACHE_EXPIRE = 10 * CACHE_EXPIRE_ONE_SECOND; + //缓存过期时间1分钟 + private static final long CACHE_EXPIRE_ONE_MINUTE = 60 * CACHE_EXPIRE_ONE_SECOND; //超时时间 private static final int TIME_OUT = 5; // 缓存大小 @@ -489,16 +500,16 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } - public Observable getAppAutoStartUpdateAndNetObservable() { + public Observable>> getAppAutoStartUpdateAndNetObservable() { return withCache(schedule(getAppControlApi().getNetAndLaunchApi(HTTP_KEY, Utils.getSerial(mContext))), UrlAddress.NET_AND_LAUNCH_API, - 60 * CACHE_EXPIRE_ONE_MINUTE); + DEFAULT_CACHE_EXPIRE); } public Observable>> getSnAppAttrObservable() { return withCache(schedule(getAppControlApi().getSnAppAttr(Utils.getSerial(mContext))), UrlAddress.GET_SN_APP_ATTR, - 60 * CACHE_EXPIRE_ONE_MINUTE); + CACHE_EXPIRE_ONE_MINUTE); } public Observable> getTopAppControl() { @@ -554,31 +565,31 @@ public class NetInterfaceManager { public Observable>> getTestUpdateObservable() { return withCache(schedule(getAppDownloadApi().getTestUpdate(Utils.getSerial(mContext))), UrlAddress.GET_SN_APP_TEST, - 720 * CACHE_EXPIRE_ONE_MINUTE); + 10 * CACHE_EXPIRE_ONE_MINUTE); } public Observable> getAppLimitObservable() { return withCache(schedule(getAppInstallStrategyApi().getAppLimitApi(HTTP_KEY, Utils.getSerial(mContext))), UrlAddress.SET_WHITE_PACKAGE_LIST, - 720 * CACHE_EXPIRE_ONE_MINUTE); + DEFAULT_CACHE_EXPIRE); } public Observable>> getAdminAppObservable() { return withCache(schedule(getAppInstallStrategyApi().getAdminApp(Utils.getSerial(mContext))), UrlAddress.GET_ADMIN_APP, - 720 * CACHE_EXPIRE_ONE_MINUTE); + DEFAULT_CACHE_EXPIRE); } public Observable>> getRankCommonAppObservable() { return withCache(schedule(getAppInstallStrategyApi().getRankApp(HTTP_KEY, Utils.getSerial(mContext), "1")), UrlAddress.HTTP_TAG_COMMOAPP, - 720 * CACHE_EXPIRE_ONE_MINUTE); + DEFAULT_CACHE_EXPIRE); } public Observable>> getAllAppControl() { return withCache(schedule(getAppInstallStrategyApi().getAllAppList(HTTP_KEY, Utils.getSerial(mContext))), UrlAddress.GET_ALL_APP, - 360 * CACHE_EXPIRE_ONE_MINUTE); + DEFAULT_CACHE_EXPIRE); } public Observable> getCustomRomAppControl() { @@ -622,12 +633,18 @@ public class NetInterfaceManager { * * @return */ - public Observable> getPushTagsObservable() { - return withCache(schedule(getDevicesStatusApi().getPushTags(Utils.getSerial(mContext))), + public Observable> getSnTagObservable() { + return withCache(schedule(getDevicesStatusApi().getSnTag(Utils.getSerial(mContext))), UrlAddress.GET_DEVICES_TAGS, 10 * CACHE_EXPIRE_ONE_MINUTE); } + public Observable> getPushTagObservable() { + return withCache(schedule(getDevicesStatusApi().getPushTag(Utils.getSerial(mContext), 1)), + UrlAddress.GET_PUSH_TAG, + 10 * CACHE_EXPIRE_ONE_MINUTE); + } + public Observable> getScreenLockObservable() { return schedule(getDevicesStatusApi().getScreenLockState(Utils.getSerial(mContext))); } @@ -1195,6 +1212,8 @@ public class NetInterfaceManager { } public void getForceDownload() { + removeCache(UrlAddress.GET_FORCE_INSTALL_LIST); + removeCache(UrlAddress.GROUP_APP_INSTALL_LIST); // getForceDownloadObservable() // .subscribe(getForceDownloadObserver(null)); Observable.zip(getForceDownloadObservable(), getGroupForceDownloadObservable(), new BiFunction>, @@ -1614,85 +1633,6 @@ public class NetInterfaceManager { }; } - public void getAppAutoStartUpdateAndNet(BehaviorSubject lifecycle, onCompleteCallback callback) { - getAppAutoStartUpdateAndNetObservable() - .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) - .subscribe(getAppAutoStartUpdateAndNetObserver(callback)); - } - - public void getAppAutoStartUpdateAndNet(List appListInfos) { - 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() { - getAppAutoStartUpdateAndNetObservable() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(getAppAutoStartUpdateAndNetObserver(null)); - } - - private Observer getAppAutoStartUpdateAndNetObserver(onCompleteCallback callback) { - return 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() == 200) { - 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: "); - if (callback != null) { - callback.onComplete(); - } - } - }; - } - public void getAppIDControl(BehaviorSubject lifecycle, onCompleteCallback callback) { getAppIDControlObservable() .observeOn(Schedulers.io()) @@ -2250,6 +2190,110 @@ public class NetInterfaceManager { }); } + public void getPushAndPubAppTag(BehaviorSubject lifecycle, PushTagCallback callback) { + Observable.zip(getSnTagObservable(), getPushTagObservable(), getTagBiFunction(callback)) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getTagObserver(callback)); + } + + public void getPushAndPubAppTag(PushTagCallback callback) { + Observable.zip(getSnTagObservable(), getPushTagObservable(), getTagBiFunction(callback)) + .subscribe(getTagObserver(callback)); + } + + public void getPushAndPubAppTag() { + Observable.zip(getSnTagObservable(), getPushTagObservable(), getTagBiFunction(null)) + .subscribe(getTagObserver(null)); + } + + private BiFunction, BaseResponse, Set> getTagBiFunction(PushTagCallback callback) { + return new BiFunction, BaseResponse, Set>() { + @Override + public Set apply(BaseResponse batchBaseResponse, BaseResponse pushTagBaseResponse) throws Throwable { + Log.e("getTagBiFunction", "apply: batchBaseResponse = " + batchBaseResponse); + Log.e("getTagBiFunction", "apply: pushTagBaseResponse = " + pushTagBaseResponse); + Set tagSet = new HashSet<>(); + if (batchBaseResponse.isSuccess()) { + Batch batchBean = batchBaseResponse.data; + String batchTag = batchBean.getBatch(); + if (!TextUtils.isEmpty(batchTag)) { + tagSet.add(batchTag); + mMMKV.encode(CommonConfig.DEVICES_TAG, batchTag); + if (callback != null) + callback.setPushTag(batchTag); + } else { + mMMKV.remove(CommonConfig.DEVICES_TAG); + if (callback != null) + callback.setPushTag(""); + } + Set groupTag = batchBean.getGroup_en_name(); + if (groupTag != null && !groupTag.isEmpty()) { + tagSet.addAll(groupTag); + mMMKV.encode(CommonConfig.DEVICES_GROUP_TAG, groupTag); + } else { + mMMKV.remove(CommonConfig.DEVICES_GROUP_TAG); + } + } else { + mMMKV.remove(CommonConfig.DEVICES_TAG); + mMMKV.remove(CommonConfig.DEVICES_GROUP_TAG); + if (callback != null) + callback.setPushTag(""); + } + + if (pushTagBaseResponse.isSuccess()) { + PushTag pushTag = pushTagBaseResponse.data; + String pubPushTag = pushTag.getTag(); + tagSet.add(pubPushTag); + mMMKV.encode(CommonConfig.SN_PUBLIC_APP_TAG, pubPushTag); + } else { + mMMKV.remove(CommonConfig.SN_PUBLIC_APP_TAG); + } + return tagSet; + } + }; + } + + private Observer> getTagObserver(PushTagCallback callback) { + return new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getTagObserver", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull Set strings) { + Log.e("getTagObserver", "onNext: " + strings); + clearAndAppendTags(strings); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getTagObserver", "onError: " + e.getMessage()); + Set tags = new HashSet<>(); + String batch = mMMKV.decodeString(CommonConfig.DEVICES_TAG, ""); + Log.e("getTagObserver", "onError: batch = " + batch); + if (!TextUtils.isEmpty(batch)) { + tags.add(batch); + } + Set groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>()); + Log.e("getTagObserver", "onError: groupTagSets = " + groupTagSets); + tags.addAll(groupTagSets); + String pubPushTag = mMMKV.decodeString(CommonConfig.SN_PUBLIC_APP_TAG, ""); + if (!TextUtils.isEmpty(pubPushTag)) { + tags.add(pubPushTag); + } + clearAndAppendTags(tags); + if (callback != null) + callback.setPushTag(batch); + } + + @Override + public void onComplete() { + Log.e("getTagObserver", "onComplete: "); + } + }; + } + public interface PushTagCallback { void setPushTag(String tag); } @@ -2260,17 +2304,20 @@ public class NetInterfaceManager { * @param lifecycle * @param callback */ - public void setPushTags(BehaviorSubject lifecycle, PushTagCallback callback) { - getPushTagsObservable() + @Deprecated + public void getSnTag(BehaviorSubject lifecycle, PushTagCallback callback) { + getSnTagObservable() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(getPushTagsObserver(callback)); } - public void setPushTags() { - getPushTagsObservable() + @Deprecated + public void getSnTag() { + getSnTagObservable() .subscribe(getPushTagsObserver(null)); } + @Deprecated private Observer> getPushTagsObserver(PushTagCallback callback) { return new Observer>() { @Override @@ -2294,7 +2341,7 @@ public class NetInterfaceManager { } if (TextUtils.isEmpty(batch)) { Log.e("setPushTags", "onNext: " + "batch empty"); - mMMKV.encode(CommonConfig.DEVICES_TAG, ""); + mMMKV.remove(CommonConfig.DEVICES_TAG); if (callback != null) callback.setPushTag(""); } else { @@ -2304,7 +2351,7 @@ public class NetInterfaceManager { tags.add(batch); } } else { - mMMKV.encode(CommonConfig.DEVICES_TAG, ""); + mMMKV.remove(CommonConfig.DEVICES_TAG); mMMKV.remove(CommonConfig.DEVICES_GROUP_TAG); if (callback != null) callback.setPushTag(""); @@ -2317,7 +2364,7 @@ public class NetInterfaceManager { public void onError(@NonNull Throwable e) { Log.e("setPushTags", "onError: " + e.getMessage()); String batch = mMMKV.decodeString(CommonConfig.DEVICES_TAG, ""); - Log.e("setPushTags", "onError: tagSets = " + batch); + Log.e("setPushTags", "onError: batch = " + batch); Set groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>()); Log.e("setPushTags", "onError: groupTagSets = " + groupTagSets); Set tags = new HashSet<>(); @@ -2339,74 +2386,64 @@ public class NetInterfaceManager { } public void clearAndAppendTags(Set tagSets) { - JgyUtils.getInstance().getAppPlatform(platform -> { - if (platform == JgyUtils.MTKPlatform) { - tagSets.add(JgyUtils.MTKTag); - } -// else if (platform == JgyUtils.CubePlatform) { -// tagSets.add(JgyUtils.ZhanruiTag); -// } - else if (platform == JgyUtils.ZhanruiPlatform) { - tagSets.add(JgyUtils.ZhanruiTag); - } else if (platform == JgyUtils.MTK11Platform) { - tagSets.add(JgyUtils.MTK11Tag); - } else if (platform == JgyUtils.TeclastP20sPlatform) { - tagSets.add(JgyUtils.TeclastP20sTag); - } else if (platform == JgyUtils.AH6016Platform) { - tagSets.add(JgyUtils.AH6016Tag); - } else if (platform == JgyUtils.ZR6016Platform) { - tagSets.add(JgyUtils.ZR6016Tag); - } else if (platform == JgyUtils.HRAD13Platform) { - tagSets.add(JgyUtils.HRAD13Tag); - } else if (platform == JgyUtils.G10PPlatform) { - tagSets.add(JgyUtils.G10PTag); - } else if (platform == JgyUtils.C2Platform) { - tagSets.add(JgyUtils.C2Tag); - } else if (platform == JgyUtils.YXPD1Platform) { - tagSets.add(JgyUtils.YXPD1TAG); - } else if (platform == JgyUtils.G11Platform) { - tagSets.add(JgyUtils.G11TAG); - } else if (platform == JgyUtils.MT8768Platform) { - tagSets.add(JgyUtils.MT8768Tag); - } else if (platform == JgyUtils.AUDG104Platform) { - tagSets.add(JgyUtils.AUDG104Tag); - } else if (platform == JgyUtils.HL500Platform) { - tagSets.add(JgyUtils.HL500Tag); - } else if (platform == JgyUtils.G11JPlatform) { - tagSets.add(JgyUtils.G11JTag); - } else if (platform == JgyUtils.P50Platform) { - tagSets.add(JgyUtils.P50Tag); - } else if (platform == JgyUtils.seewoPlatform) { - tagSets.add(JgyUtils.seewoTag); - } else if (platform == JgyUtils.U1302Platform) { - tagSets.add(JgyUtils.allwinner_U1302); - } else if (platform == JgyUtils.MT6765Platform) { - tagSets.add(JgyUtils.MT6765_TAG); - } else if (platform == JgyUtils.G128TPlatform) { - tagSets.add(JgyUtils.G128T_TAG); - } else if (platform == JgyUtils.QualcommTPlatform) { - tagSets.add(JgyUtils.Qualcomm_TAG); - } - }); + tagSets.add(JgyUtils.getInstance().getAppPlatform()); + Log.e(TAG, "clearAndAppendTags: " + tagSets); - Log.e(TAG, "AliyunPush: " + tagSets); String[] tag = new ArrayList<>(tagSets).toArray(new String[tagSets.size()]); CloudPushService pushService = PushServiceFactory.getCloudPushService(); pushService.bindTag(CloudPushService.DEVICE_TARGET, tag, null, new CommonCallback() { @Override public void onSuccess(String s) { - Log.e("AliyunPush", "bind tag " + Arrays.toString(tag) + " success\n"); + Log.e("clearAndAppendTags", "bind tag " + Arrays.toString(tag) + " success\n"); } @Override public void onFailed(String errorCode, String errorMsg) { - Log.e("AliyunPush", "bind tag " + Arrays.toString(tag) + " failed." + + Log.e("clearAndAppendTags", "bind tag " + Arrays.toString(tag) + " failed." + "errorCode: " + errorCode + ", errorMsg:" + errorMsg + "\n"); BaseApplication.onTagOperatorResult(errorCode); } }); } + @Deprecated + private void getPushTag(BehaviorSubject lifecycle) { + getPushTagObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getPushTagObserver()); + } + + @Deprecated + private void getPushTag() { + getPushTagObservable() + .subscribe(getPushTagObserver()); + } + + @Deprecated + private Observer> getPushTagObserver() { + return new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getPushTagObserver", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse pushTagBaseResponse) { + Log.e("getPushTagObserver", "onNext: " + pushTagBaseResponse); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getPushTagObserver", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("getPushTagObserver", "onComplete: "); + } + }; + } + public void updateDeviceInfo(BehaviorSubject lifecycle, onCompleteCallback callback) { getUpdateDeviceInfoObservable() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) @@ -2931,6 +2968,9 @@ public class NetInterfaceManager { } public void getAppLimit() { + removeCache(UrlAddress.SET_WHITE_PACKAGE_LIST); + removeCache(UrlAddress.GET_ADMIN_APP); + removeCache(UrlAddress.HTTP_TAG_COMMOAPP); Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getRankCommonAppObservable(), getBiFunction()) .subscribe(getAppLimitListObserver(null)); // getAppLimitObservable() @@ -3032,6 +3072,112 @@ public class NetInterfaceManager { .subscribe(getAllAppListObserver(null)); } + public void getAllInfoAndSetting(BehaviorSubject lifecycle) { + Observable.zip(getAllAppControl(), getAppAutoStartUpdateAndNetObservable(), new BiFunction>, BaseResponse>, List>() { + @Override + public List apply(BaseResponse> appListInfoResponse, BaseResponse> netAndLaunchDataResponse) throws Throwable { + Log.e("getAllInfoAndSetting", "apply: appListInfoResponse code = " + appListInfoResponse.code); + Log.e("getAllInfoAndSetting", "apply: netAndLaunchDataResponse code = " + netAndLaunchDataResponse.code); + + if (appListInfoResponse.isSuccess() && netAndLaunchDataResponse.isSuccess()) { + List appListInfos = appListInfoResponse.data; + Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); + mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); + + List netAndLaunchDataList = netAndLaunchDataResponse.data; + JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos); + return appListInfos; + } else if (appListInfoResponse.isSuccess()) { + List appListInfos = appListInfoResponse.data; + Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); + mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); + return appListInfos; + } else if (netAndLaunchDataResponse.isSuccess()) { + List netAndLaunchDataList = netAndLaunchDataResponse.data; + JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList); + } + return null; + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAllInfoAndSetting", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull List appListInfos) { + Log.e("getAllInfoAndSetting", "onNext: " + appListInfos.size()); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAllInfoAndSetting", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("getAllInfoAndSetting", "onComplete: "); + } + }); + } + + @Deprecated + public void getAllInfoAndSetting() { + Observable.zip(getAllAppControl(), getAppAutoStartUpdateAndNetObservable(), new BiFunction>, BaseResponse>, List>() { + @Override + public List apply(BaseResponse> appListInfoResponse, BaseResponse> netAndLaunchDataResponse) throws Throwable { + Log.e("getAllInfoAndSetting", "apply: appListInfoResponse code = " + appListInfoResponse.code); + Log.e("getAllInfoAndSetting", "apply: netAndLaunchDataResponse code = " + netAndLaunchDataResponse.code); + + if (appListInfoResponse.isSuccess() && netAndLaunchDataResponse.isSuccess()) { + List appListInfos = appListInfoResponse.data; + Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); + mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); + + List netAndLaunchDataList = netAndLaunchDataResponse.data; + JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos); + return appListInfos; + } else if (appListInfoResponse.isSuccess()) { + List appListInfos = appListInfoResponse.data; + Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); + mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); + return appListInfos; + } else if (netAndLaunchDataResponse.isSuccess()) { + List netAndLaunchDataList = netAndLaunchDataResponse.data; + JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList); + } + return null; + } + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAllInfoAndSetting", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull List appListInfos) { + Log.e("getAllInfoAndSetting", "onNext: " + appListInfos.size()); + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAllInfoAndSetting", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("getAllInfoAndSetting", "onComplete: "); + } + }); + } + public Observer>> getAllAppListObserver(onCompleteCallback callback) { return new Observer>>() { @Override @@ -3044,7 +3190,6 @@ public class NetInterfaceManager { Log.e("getAllAppList", "onNext: " + listBaseResponse); if (listBaseResponse.isSuccess()) { List appListInfos = listBaseResponse.data; - getAppAutoStartUpdateAndNet(appListInfos); Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); } else { @@ -3068,6 +3213,87 @@ public class NetInterfaceManager { }; } + @Deprecated + public void getAppAutoStartUpdateAndNet(List appListInfos) { + 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 BaseResponse> response) { + Log.e("getAutoUpdateAndNet", "onNext: " + response.toString()); + if (response.isSuccess()) { + JgyUtils.getInstance().setNetAndlaunch(response.data, appListInfos); + } else { + Log.e("getAutoUpdateAndNet", "onNext: " + response.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 getAppAutoStartUpdateAndNet(BehaviorSubject lifecycle, onCompleteCallback callback) { + getAppAutoStartUpdateAndNetObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getAppAutoStartUpdateAndNetObserver(callback)); + } + + public void getAppAutoStartUpdateAndNet() { + removeCache(UrlAddress.NET_AND_LAUNCH_API); + getAppAutoStartUpdateAndNetObservable() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getAppAutoStartUpdateAndNetObserver(null)); + } + + private Observer>> getAppAutoStartUpdateAndNetObserver(onCompleteCallback callback) { + return new Observer>>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAppAutoStart", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse> response) { + Log.e("getAppAutoStart", "onNext: " + response.toString()); + if (response.isSuccess()) { + JgyUtils.getInstance().setNetAndlaunch(response.data); + } else { + Log.e("getAppAutoStart", "onNext: " + response.toString()); + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAppAutoStart", "onError: " + e.getMessage()); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getAppAutoStart", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; + } + @Deprecated public void getSnTimeControl(BehaviorSubject lifecycle, onCompleteCallback callback) { getSnTimeObservable() @@ -3851,7 +4077,7 @@ public class NetInterfaceManager { @Override public void onNext(@NonNull BaseResponse blacklistBeanBaseResponse) { Log.e("getBlackList", "onNext: " + blacklistBeanBaseResponse); - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { } else { try { @@ -3865,15 +4091,15 @@ public class NetInterfaceManager { if (blacklistBeanBaseResponse.isSuccess()) { BlacklistBean blacklistBean = blacklistBeanBaseResponse.data; if (blacklistBean == null) { - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } else { List strings = blacklistBean.getBlacklist(); if (strings == null || strings.isEmpty()) { - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } else { - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { // TODO: 2024/10/31 需要多写一次保证数据库变化 Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, String.join(",", strings)); @@ -3881,7 +4107,7 @@ public class NetInterfaceManager { } } } else { - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); } @@ -3927,7 +4153,7 @@ public class NetInterfaceManager { @Override public void onNext(@NonNull BaseResponse blacklistBeanBaseResponse) { Log.e("getWhiteList", "onNext: " + blacklistBeanBaseResponse); - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { } else { try { @@ -3941,15 +4167,15 @@ public class NetInterfaceManager { if (blacklistBeanBaseResponse.isSuccess()) { WhitelistBean whitelistBean = blacklistBeanBaseResponse.data; if (whitelistBean == null) { - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } else { List strings = whitelistBean.getWhitelist(); if (strings == null || strings.isEmpty()) { - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } else { - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { // TODO: 2024/10/31 需要多写一次保证数据库变化 strings.add("ttstd.com"); Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, String.join(",", strings)); @@ -3959,7 +4185,7 @@ public class NetInterfaceManager { } } } else { - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); } 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 357d73b..6cd07ac 100644 --- a/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java +++ b/app/src/main/java/com/aoleyun/sn/network/UrlAddress.java @@ -13,6 +13,8 @@ public class UrlAddress { public static final String GET_DEVICES_LOCKED = "lock/index"; /*获取设备标签*/ public static final String GET_DEVICES_TAGS = "Sn/getSnTag"; + /*获取公共应用推送标签*/ + public static final String GET_PUSH_TAG = "sn/get-push-tag"; /*通过sn获取信息*/ public static final String GET_STUDENTS_INFO = "Sn/getStudent"; /*获取霸屏状态*/ @@ -149,7 +151,6 @@ public class UrlAddress { public static final String GET_DEFAULT_APP = "app/getDefaultApp"; - /** * log相关 */ diff --git a/app/src/main/java/com/aoleyun/sn/network/api/aoleyun/AppControlApi.java b/app/src/main/java/com/aoleyun/sn/network/api/aoleyun/AppControlApi.java index 9aea06c..afb0d3b 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/aoleyun/AppControlApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/aoleyun/AppControlApi.java @@ -4,7 +4,7 @@ import com.aoleyun.sn.bean.AppAttr; import com.aoleyun.sn.bean.AppID; import com.aoleyun.sn.bean.Appground; import com.aoleyun.sn.bean.BaseResponse; -import com.aoleyun.sn.bean.NetAndLaunchBean; +import com.aoleyun.sn.bean.NetAndLaunchData; import com.aoleyun.sn.bean.TopApp; import com.aoleyun.sn.network.UrlAddress; @@ -20,7 +20,7 @@ import retrofit2.http.Query; public interface AppControlApi { @FormUrlEncoded @POST(UrlAddress.NET_AND_LAUNCH_API) - Observable getNetAndLaunchApi( + Observable>> getNetAndLaunchApi( @Field("key") String key, @Field("sn") String sn ); diff --git a/app/src/main/java/com/aoleyun/sn/network/api/aoleyun/DevicesStatusApi.java b/app/src/main/java/com/aoleyun/sn/network/api/aoleyun/DevicesStatusApi.java index dc5b9a5..301ad68 100644 --- a/app/src/main/java/com/aoleyun/sn/network/api/aoleyun/DevicesStatusApi.java +++ b/app/src/main/java/com/aoleyun/sn/network/api/aoleyun/DevicesStatusApi.java @@ -4,6 +4,7 @@ import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.Batch; import com.aoleyun.sn.bean.DeveloperBean; import com.aoleyun.sn.bean.EBagCode; +import com.aoleyun.sn.bean.PushTag; import com.aoleyun.sn.bean.ScreenLockState; import com.aoleyun.sn.bean.StudentsInfo; import com.aoleyun.sn.network.UrlAddress; @@ -23,10 +24,16 @@ public interface DevicesStatusApi { ); @GET(UrlAddress.GET_DEVICES_TAGS) - Observable> getPushTags( + Observable> getSnTag( @Query("sn") String sn ); + @GET(UrlAddress.GET_PUSH_TAG) + Observable> getPushTag( + @Query("sn") String sn, + @Query("tag_type") int tag_type + ); + @FormUrlEncoded @POST(UrlAddress.GET_STUDENTS_INFO) Observable> getStudentsInfo( diff --git a/app/src/main/java/com/aoleyun/sn/push/PushManager.java b/app/src/main/java/com/aoleyun/sn/push/PushManager.java index 59302bf..5125646 100644 --- a/app/src/main/java/com/aoleyun/sn/push/PushManager.java +++ b/app/src/main/java/com/aoleyun/sn/push/PushManager.java @@ -41,6 +41,7 @@ import com.aoleyun.sn.gson.NullStringToEmptyAdapterFactory; import com.aoleyun.sn.manager.MapManager; import com.aoleyun.sn.network.NetInterfaceManager; import com.aoleyun.sn.network.RetryCallback; +import com.aoleyun.sn.network.UrlAddress; import com.aoleyun.sn.service.main.MainService; import com.aoleyun.sn.utils.ApkUtils; import com.aoleyun.sn.utils.BatteryUtils; @@ -267,6 +268,12 @@ public class PushManager { private static final String GROUP_APP_UNINSTALL = "81"; /*电子围栏*/ private static final String ELECTRONIC_FENCE = "82"; + /*发出声音*/ + private static final String PLAY_SOUND2 = "89"; + /*更新公共应用设置,不安装*/ + private static final String PUBLIC_APP_SETTING = "91"; + /*公共应用卸载*/ + private static final String PUBLIC_APP_UNINSTALL = "92"; public void setPushContent(String title, String extras) { @@ -310,21 +317,23 @@ public class PushManager { mMMKV.clearAll(); JgyUtils.getInstance().cleanAoleAppCache(); JgyUtils.getInstance().wakeUpAoleyunAPP(); - NetInterfaceManager.getInstance().setPushTags(); - + NetInterfaceManager.getInstance().getPushAndPubAppTag(); + NetInterfaceManager.clearAllCache(); sendRefreshBroadcast(mContext); break; case MSG_INSTALL: Toaster.debugShow("收到管控:应用安装"); + NetInterfaceManager.removeCache(UrlAddress.GET_FORCE_INSTALL_LIST); + NetInterfaceManager.removeCache(UrlAddress.GROUP_APP_INSTALL_LIST); doDownloadAndInstall(extras); new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { @Override public void run() { NetInterfaceManager.getInstance().getDesktopIcon(); NetInterfaceManager.getInstance().getDefaultDesktop(); - NetInterfaceManager.getInstance().getNetAndLaunchSetting(); + NetInterfaceManager.getInstance().getAppAutoStartUpdateAndNet(); } - }, 1234); + }, 5234); mContext.sendBroadcast(new Intent(AOLEYUN_REFRESH_DESKTOP)); break; case MSG_LOCK: @@ -522,6 +531,7 @@ public class PushManager { setDefalutApp(extras); break; case PLAY_SOUND: + case PLAY_SOUND2: Toaster.debugShow("收到管控:查找设备"); playSound(extras); break; @@ -551,7 +561,7 @@ public class PushManager { break; case UPDATE_CHILD_BATCH: Toaster.debugShow("收到管控:更换批次不恢复出厂设置"); - NetInterfaceManager.getInstance().setPushTags(); + NetInterfaceManager.getInstance().getPushAndPubAppTag(); Aria.download(this).removeAllTask(true); JgyUtils.getInstance().cleanAoleAppCache(); try { @@ -682,6 +692,12 @@ public class PushManager { } case ELECTRONIC_FENCE: + break; + case PUBLIC_APP_SETTING: + updatePublicAppSettings(extras); + break; + case PUBLIC_APP_UNINSTALL: + uninstallPublicApp(extras); break; default: } @@ -734,7 +750,7 @@ public class PushManager { public void run() { NetInterfaceManager.getInstance().getDesktopIcon(); NetInterfaceManager.getInstance().getDefaultDesktop(); - NetInterfaceManager.getInstance().getNetAndLaunchSetting(); + NetInterfaceManager.getInstance().getAppAutoStartUpdateAndNet(); } }, 1234); } @@ -1553,4 +1569,30 @@ public class PushManager { ApkUtils.openPackage(mContext, app_package); } + public void updatePublicAppSettings(String extras) { + Toaster.debugShow("收到管控:应用公共设置"); + if (TextUtils.isEmpty(extras)) { + Log.e(TAG, "updatePublicAppSettings: extras is null"); + return; + } + new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { + @Override + public void run() { + NetInterfaceManager.getInstance().getAppLimit(); + NetInterfaceManager.getInstance().getAppAutoStartUpdateAndNet(); + } + }, 2345); + + ApkInfoPush apkInfoPush = GsonUtils.toJavaObject(extras, ApkInfoPush.class); + } + + public void uninstallPublicApp(String extras) { + Toaster.debugShow("收到管控:应用公共删除"); + if (!TextUtils.isEmpty(extras)) { + JsonObject jsonObject = GsonUtils.getJsonObject(extras); + String pkg = jsonObject.get("package_name").getAsString(); + deleteApp(pkg); + } + } + } 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 ca2a5a2..2ef2eb7 100644 --- a/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java +++ b/app/src/main/java/com/aoleyun/sn/receiver/NewAppReceiver.java @@ -103,7 +103,7 @@ public class NewAppReceiver extends BroadcastReceiver { private static void sendAppInfo() { Observable.create((ObservableEmitter emitter) -> { newAppListener = emitter::onNext; - }).throttleLast(5, TimeUnit.MINUTES) + }).throttleLast(1, TimeUnit.MINUTES) //这句很关键,这是RxJava中的操作符,在规定时间内观察者不在接收被观察者发送的事件 .subscribe(new Observer() { @Override @@ -118,7 +118,7 @@ public class NewAppReceiver extends BroadcastReceiver { NetInterfaceManager.getInstance().getForceDownload(); NetInterfaceManager.getInstance().getAppLimit(); // NetInterfaceManager.getInstance().getDefaultDesktop(); - NetInterfaceManager.getInstance().getNetAndLaunchSetting(); + NetInterfaceManager.getInstance().getAppAutoStartUpdateAndNet(); NetInterfaceManager.getInstance().getDesktopIcon(); NetInterfaceManager.getInstance().sendInstalledAppInfo(new NetInterfaceManager.onCompleteCallback() { @Override 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 20a35f0..e3cb8e4 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 @@ -96,6 +96,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt public void onDisconnected() { Log.e("OnNetworkStatusChanged", "onDisconnected: "); Toaster.debugShow("网络断开连接"); + NetInterfaceManager.clearAllCache(); } @Override @@ -475,6 +476,11 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt .subscribe(networkObserver); JgyUtils.getInstance().checkAoleyunApp(); + + String allowAppList = Settings.System.getString(getContentResolver(), CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST); + if (TextUtils.isEmpty(allowAppList)) { + Settings.System.putString(getContentResolver(), CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", JgyUtils.DEFAULT_APP_SOURCE_WHITE_LIST)); + } } private void initLiveData() { @@ -515,6 +521,7 @@ public class MainService extends BaseService implements NetworkUtils.OnNetworkSt mServiceModel.getAllAppList(); mServiceModel.getBrowserBookmarks(); mServiceModel.getDesktopIcon(); + mServiceModel.getAllInfoAndSetting(); mServiceModel.getAppAutoStartUpdateAndNet(); mServiceModel.setAppinsideWeb(); mServiceModel.getAppIdControl(); diff --git a/app/src/main/java/com/aoleyun/sn/service/main/MainServiceModel.java b/app/src/main/java/com/aoleyun/sn/service/main/MainServiceModel.java index 890b2fb..b911ce1 100644 --- a/app/src/main/java/com/aoleyun/sn/service/main/MainServiceModel.java +++ b/app/src/main/java/com/aoleyun/sn/service/main/MainServiceModel.java @@ -3,7 +3,6 @@ package com.aoleyun.sn.service.main; import android.content.ContentResolver; import android.content.Context; import android.provider.Settings; -import android.text.TextUtils; import android.util.Log; import androidx.annotation.NonNull; @@ -32,7 +31,6 @@ import com.trello.rxlifecycle4.android.ActivityEvent; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashSet; import java.util.List; import java.util.Set; @@ -94,22 +92,22 @@ public class MainServiceModel extends ViewModel { public MutableLiveData mTagData = new MutableLiveData<>(); public void setPushTags() { - NetInterfaceManager.getInstance().setPushTags(getLifecycle(), new NetInterfaceManager.PushTagCallback() { + NetInterfaceManager.getInstance().getPushAndPubAppTag(getLifecycle(), new NetInterfaceManager.PushTagCallback() { @Override public void setPushTag(String tag) { mTagData.postValue(tag); } }); - String tagSets = mMMKV.decodeString(CommonConfig.DEVICES_TAG); - Log.e(TAG, "setPushTags: tagSets =" + tagSets); - Set groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>()); - Log.e(TAG, "setPushTags: groupTagSets = " + groupTagSets); - Set tags = new HashSet<>(); - tags.addAll(groupTagSets); - if (!TextUtils.isEmpty(tagSets)) { - tags.add(tagSets); - } - NetInterfaceManager.getInstance().clearAndAppendTags(tags); +// String tagSets = mMMKV.decodeString(CommonConfig.DEVICES_TAG); +// Log.e(TAG, "setPushTags: tagSets =" + tagSets); +// Set groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>()); +// Log.e(TAG, "setPushTags: groupTagSets = " + groupTagSets); +// Set tags = new HashSet<>(); +// tags.addAll(groupTagSets); +// if (!TextUtils.isEmpty(tagSets)) { +// tags.add(tagSets); +// } +// NetInterfaceManager.getInstance().clearAndAppendTags(tags); } private void setpushTag(Set tagSets) { @@ -394,6 +392,10 @@ public class MainServiceModel extends ViewModel { }); } + public void getAllInfoAndSetting() { + NetInterfaceManager.getInstance().getAllInfoAndSetting(getLifecycle()); + } + public void getAppAutoStartUpdateAndNet() { NetInterfaceManager.getInstance() .getAppAutoStartUpdateAndNet(getLifecycle(), new NetInterfaceManager.onCompleteCallback() { diff --git a/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java b/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java index 1304efd..fef3110 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java @@ -1,5 +1,7 @@ package com.aoleyun.sn.utils; +import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; + import android.annotation.SuppressLint; import android.app.ActivityManager; import android.app.ActivityManagerNative; @@ -52,7 +54,6 @@ import com.aoleyun.sn.bean.Appground; import com.aoleyun.sn.bean.BaseResponse; import com.aoleyun.sn.bean.ForceDownloadData; import com.aoleyun.sn.bean.LessonJson; -import com.aoleyun.sn.bean.NetAndLaunchBean; import com.aoleyun.sn.bean.NetAndLaunchData; import com.aoleyun.sn.bean.TTAppground; import com.aoleyun.sn.bean.TimeControlApp; @@ -64,7 +65,6 @@ import com.aoleyun.sn.disklrucache.CacheHelper; import com.aoleyun.sn.gson.GsonUtils; import com.aoleyun.sn.manager.AllwinnerCubeMdmManager; import com.aoleyun.sn.network.NetInterfaceManager; -import com.aoleyun.sn.network.UrlAddress; import com.aoleyun.sn.receiver.BootReceiver; import com.aoleyun.sn.service.GuardService; import com.aoleyun.sn.service.StepService; @@ -126,8 +126,6 @@ import io.reactivex.rxjava3.core.ObservableOnSubscribe; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; -import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; - public class JgyUtils { private static final String TAG = "JgyUtils"; @@ -581,62 +579,50 @@ public class JgyUtils { /** * 应用自启升级和网络权限管理 * - * @param netAndLaunchBean + * @param dataList */ - public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean, List appListInfos) { - Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + netAndLaunchBean.getData().toString()); - Log.e(TAG, "setNetAndlaunch: "); - HashSet autoLaunchApp = new HashSet<>();//开机自启app - HashSet allowNetApp = new HashSet<>();//允许联网 - HashSet disallowNetApp = new HashSet<>();//禁止联网 - HashSet allowUpgrade = new HashSet<>();//允许升级 - HashSet disallowUpgrade = new HashSet<>();//禁止升级 - HashSet allowSlide = new HashSet<>();//允许滑动 - HashSet disallowSlide = new HashSet<>();//禁止滑动 + public void setNetAndlaunch(List dataList, List appListInfos) { + Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + dataList.toString()); - List data = netAndLaunchBean.getData(); - for (NetAndLaunchData netAndLaunchData : data) { - String app_package = netAndLaunchData.getApp_package(); - int is_auto = netAndLaunchData.getIs_auto(); - int is_network = netAndLaunchData.getIs_network(); - int is_upgrade = netAndLaunchData.getIs_upgrade(); - int is_slide = netAndLaunchData.getIs_slide(); - if (is_auto == 1) { - autoLaunchApp.add(app_package); - } - if (is_network == 1) { - allowNetApp.add(app_package); - } else { - disallowNetApp.add(app_package); - } - if (is_upgrade == 1) { - allowUpgrade.add(app_package); - } else { - disallowUpgrade.add(app_package); - } - if (is_slide == 1) { - allowSlide.add(app_package); - } else { - disallowSlide.add(app_package); - } - } + //开机自启app + HashSet autoLaunchApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_auto() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //允许联网 + HashSet allowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //禁止联网 + HashSet disallowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //允许升级 + HashSet allowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //禁止升级 + HashSet disallowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //允许滑动 + HashSet allowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //禁止滑动 + HashSet disallowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //禁止通知栏显示通知 + List disallowNotification = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_notification() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toList()); + //默认给所有权限 + HashSet allowPermissions = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_dynamic_perm() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //允许应用安装其他应用 + HashSet allowInstallApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getAllow_install_app() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); if (disallowSlide.size() != 0) { String slide_not = String.join(",", disallowSlide); boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not); - Log.e("fht", "aole_disable_slide=" + writeSucceed + ":" + slide_not); + Log.e("setNetAndlaunch", "aole_disable_slide=" + writeSucceed + ":" + slide_not); } else { String slide_ok = String.join(",", allowSlide); boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); - Log.e("fht", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok); + Log.e("setNetAndlaunch", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok); } String[] upgrade_ok = new String[allowUpgrade.size()]; allowUpgrade.toArray(upgrade_ok); checkPackageAndVersion(disallowUpgrade, appListInfos); + String[] upgrade_not = new String[disallowUpgrade.size()]; disallowUpgrade.toArray(upgrade_not); Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok); + String aole_app_power_on = String.join(",", autoLaunchApp); Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); if (TextUtils.isEmpty(aole_app_power_on)) { @@ -653,6 +639,94 @@ public class JgyUtils { // Log.e(TAG, "setNetAndlaunch: 测试写入: " + w); // } setAppNetwork(disallowNetApp, allowNetApp); + setAppSourceInstallWhiteList(allowInstallApp); + } + + public void setNetAndlaunch(List dataList) { + Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + dataList.toString()); + //开机自启app + HashSet autoLaunchApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_auto() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //允许联网 + HashSet allowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //禁止联网 + HashSet disallowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //允许升级 + HashSet allowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //禁止升级 + HashSet disallowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //允许滑动 + HashSet allowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //禁止滑动 + HashSet disallowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //禁止通知栏显示通知 + HashSet disallowNotification = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_notification() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //默认给所有权限 + HashSet allowPermissions = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_dynamic_perm() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + //允许应用安装其他应用 + HashSet allowInstallApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getAllow_install_app() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new)); + + if (disallowSlide.size() != 0) { + String slide_not = String.join(",", disallowSlide); + boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not); + Log.e("setNetAndlaunch", "aole_disable_slide=" + writeSucceed + ":" + slide_not); + } else { + String slide_ok = String.join(",", allowSlide); + boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); + Log.e("setNetAndlaunch", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok); + } + + String[] upgrade_ok = new String[allowUpgrade.size()]; + allowUpgrade.toArray(upgrade_ok); + String[] upgrade_not = new String[disallowUpgrade.size()]; + disallowUpgrade.toArray(upgrade_not); + Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok); + + Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok); + String aole_app_power_on = String.join(",", autoLaunchApp); + Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); + if (TextUtils.isEmpty(aole_app_power_on)) { + //当 qch_app_power_on 的值为空时,会造成系统所有应用断网 + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid"); + Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + "Invalid"); + } else { + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, aole_app_power_on); + Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); + } +// if (BuildConfig.DEBUG) { + // TODO: 2021/7/2 测试写入为空是否断网 +// boolean w = Settings.System.putString(crv, "aole_app_power_on", ""); +// Log.e(TAG, "setNetAndlaunch: 测试写入: " + w); +// } + setAppNetwork(disallowNetApp, allowNetApp); + setDisallowNotificationPackage(mContext, disallowNotification); + mMMKV.encode("aole_app_privilege", allowPermissions); + setAllowPermissionsPackage(); + + setAppSourceInstallWhiteList(allowInstallApp); + } + + public static final List DEFAULT_APP_SOURCE_WHITE_LIST = new ArrayList() {{ + this.add("com.aoleyun.sn"); + this.add("com.aoleyun.appstore"); + this.add("com.aoleyun.browser"); + this.add("com.aoleyun.info"); + this.add("com.aoleyun.os"); + this.add("com.aoleyun.audos"); + + this.add("com.books.wisdom"); + this.add("com.japanese_books.wisdom"); + }}; + + public void setAppSourceInstallWhiteList(HashSet allowInstallApp) { + if (allowInstallApp == null || allowInstallApp.isEmpty()) { + Log.e(TAG, "setAppSourceInstallWhiteList: allowInstallApp size = 0"); + Settings.System.putString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", DEFAULT_APP_SOURCE_WHITE_LIST)); + } else { + allowInstallApp.addAll(DEFAULT_APP_SOURCE_WHITE_LIST); + List allowList = new ArrayList<>(allowInstallApp); + Settings.System.putString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST, String.join(",", allowList)); + } + Log.e(TAG, "setAppSourceInstallWhiteList: getString = " + Settings.System.getString(crv, CommonConfig.SEEWO_APP_SOURCE_INSTALL_WHITELIST)); } public void onBootOpenApp() { @@ -716,93 +790,6 @@ public class JgyUtils { } } - public void setNetAndlaunch(NetAndLaunchBean netAndLaunchBean) { - Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + netAndLaunchBean.getData().toString()); - Log.e(TAG, "setNetAndlaunch: "); - HashSet autoLaunchApp = new HashSet<>();//开机自启app - HashSet allowNetApp = new HashSet<>();//允许联网 - HashSet disallowNetApp = new HashSet<>();//禁止联网 - HashSet allowUpgrade = new HashSet<>();//允许升级 - HashSet disallowUpgrade = new HashSet<>();//禁止升级 - HashSet allowSlide = new HashSet<>();//允许滑动 - HashSet disallowSlide = new HashSet<>();//禁止滑动 - HashSet disallowNotification = new HashSet<>();//禁止通知栏显示通知 - HashSet allowPermissions = new HashSet<>();//默认给所有权限 - - - List data = netAndLaunchBean.getData(); - for (NetAndLaunchData netAndLaunchData : data) { - String app_package = netAndLaunchData.getApp_package(); - int is_auto = netAndLaunchData.getIs_auto(); - int is_network = netAndLaunchData.getIs_network(); - int is_upgrade = netAndLaunchData.getIs_upgrade(); - int is_slide = netAndLaunchData.getIs_slide(); - int is_notification = netAndLaunchData.getIs_notification(); - int is_dynamic_perm = netAndLaunchData.getIs_dynamic_perm(); - - if (is_auto == 1) { - autoLaunchApp.add(app_package); - } - if (is_network == 1) { - allowNetApp.add(app_package); - } else { - disallowNetApp.add(app_package); - } - if (is_upgrade == 1) { - allowUpgrade.add(app_package); - } else { - disallowUpgrade.add(app_package); - } - if (is_slide == 1) { - allowSlide.add(app_package); - } else { - disallowSlide.add(app_package); - } - - if (is_notification == 0) { - disallowNotification.add(app_package); - } - if (is_dynamic_perm == 1) { - allowPermissions.add(app_package); - } - } - - if (disallowSlide.size() != 0) { - String slide_not = String.join(",", disallowSlide); - boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, slide_not); - Log.e("fht", "aole_disable_slide=" + writeSucceed + ":" + slide_not); - } else { - String slide_ok = String.join(",", allowSlide); - boolean writeSucceed = Settings.System.putString(crv, CommonConfig.AOLE_ACTION_DISABLE_SLIDE, "Invalid"); - Log.e("fht", "aole_disable_slide ok=" + writeSucceed + ":" + slide_ok); - } - - String[] upgrade_ok = new String[allowUpgrade.size()]; - allowUpgrade.toArray(upgrade_ok); - String[] upgrade_not = new String[disallowUpgrade.size()]; - disallowUpgrade.toArray(upgrade_not); - Utils.writeDisableUpdateList(mContext, upgrade_not, upgrade_ok); - String aole_app_power_on = String.join(",", autoLaunchApp); - Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); - if (TextUtils.isEmpty(aole_app_power_on)) { - //当 qch_app_power_on 的值为空时,会造成系统所有应用断网 - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, "Invalid"); - Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + "Invalid"); - } else { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_POWER_ON, aole_app_power_on); - Log.e(TAG, "setNetAndlaunch: aole_app_power_on: " + aole_app_power_on); - } -// if (BuildConfig.DEBUG) { - // TODO: 2021/7/2 测试写入为空是否断网 -// boolean w = Settings.System.putString(crv, "aole_app_power_on", ""); -// Log.e(TAG, "setNetAndlaunch: 测试写入: " + w); -// } - setAppNetwork(disallowNetApp, allowNetApp); - setDisallowNotificationPackage(mContext, disallowNotification); - mMMKV.encode("aole_app_privilege", allowPermissions); - setAllowPermissionsPackage(); - } - private void setDisallowNotificationPackage(Context context, HashSet pkgSet) { Log.e(TAG, "setDisallowNotificationPackage: " + pkgSet); if (pkgSet.size() == 0) { @@ -862,8 +849,8 @@ public class JgyUtils { Log.e(TAG, "setAppNetwork: " + "设置应用联网管控 blackList =" + blackList); Log.e(TAG, "setAppNetwork: " + "设置应用联网管控 whiteList =" + whiteList); - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { - + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { + Log.e(TAG, "setAppNetwork: Ebox201 skip delete"); } else { try { Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); @@ -904,7 +891,8 @@ public class JgyUtils { pkgs.addAll(DEFAULT_ALLOW_NETWORK_APP_SET); List filterList = pkgs.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList()); Log.e(TAG, "setAppNetwork: filterList = " + filterList); - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { if (filterList.size() == 0) { Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); } else { @@ -923,11 +911,11 @@ public class JgyUtils { */ public void updateNetworkWhiteList() { Log.e(TAG, "updateNetworkWhiteList: "); - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { } else { + Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); try { - Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system aole_network_allow"); Log.e(TAG, "updateNetworkWhiteList: " + result); } catch (Exception e) { @@ -935,11 +923,11 @@ public class JgyUtils { } } - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { } else { + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); try { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_BLACK_LIST, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_black_list"); Log.e(TAG, "updateNetworkWhiteList: " + result); } catch (Exception e) { @@ -947,13 +935,13 @@ public class JgyUtils { } } - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { } else { + Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); try { - Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_APP_WEB_WHITE_LIST, null); CmdUtil.Result result = CmdUtil.execute(" settings delete system app_web_white_list"); - Log.e(TAG, "getWhiteList: " + result); + Log.e(TAG, "updateNetworkWhiteList: " + result); } catch (Exception e) { e.printStackTrace(); } @@ -973,7 +961,7 @@ public class JgyUtils { List filterList = whiteList.stream().filter(s -> ApkUtils.isAvailable(mContext, s)).collect(Collectors.toList()); Log.e(TAG, "updateNetworkWhiteList: filterList = " + filterList); - if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL)) { + if ("Ebox201W".equals(Build.MODEL) || "Ebox201".equals(Build.MODEL) || "G128A".equals(Build.MODEL)) { if (filterList.size() == 0) { Settings.System.putString(crv, CommonConfig.AOLE_ACTION_NETWORK_ALLOW, null); } else { @@ -1014,7 +1002,7 @@ public class JgyUtils { } public void writeDeselectIDtoSystem(List appIDList) { - if (!"Ebox201".equals(Build.MODEL) && !"Ebox201W".equals(Build.MODEL)) { + if (!"Ebox201".equals(Build.MODEL) && !"Ebox201W".equals(Build.MODEL) && !"G128A".equals(Build.MODEL)) { Log.e(TAG, "writeDeselectIDtoSystem: not match Ebox201 or Ebox201W"); return; } @@ -1547,6 +1535,7 @@ public class JgyUtils { Settings.System.putString(crv, CommonConfig.AOLE_ACTION_APP_FORBID, aole_app_forbid); } + @Deprecated public void checkForceDownload() { // String jsonString = cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST); // //为 "" 是已经请求成功的 @@ -2986,25 +2975,6 @@ public class JgyUtils { } } - @Deprecated - public List getHidePackage() { - String jsonString = cacheHelper.getAsString(UrlAddress.GET_HIDE_DESKTOPICON); - //为 "" 是已经请求成功的 - if (jsonString == null) { - return new ArrayList<>(); - } else { - Gson gson = new Gson(); - Type type = new TypeToken>() { - }.getType(); - List list = gson.fromJson(jsonString, type); - if (list == null) { - return new ArrayList<>(); - } else { - return list; - } - } - } - public List getDisablePackage() { List list = new ArrayList<>(); if (Settings.System.getInt(crv, "qch_app_camera", 0) == 1) { diff --git a/build.gradle b/build.gradle index e481813..142946a 100644 --- a/build.gradle +++ b/build.gradle @@ -6,6 +6,7 @@ buildscript { // mavenCentral() maven { url 'https://jitpack.io' } maven { url 'https://developer.huawei.com/repo/' } + maven { url 'https://developer.hihonor.com/repo' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/public' } @@ -31,6 +32,7 @@ allprojects { // mavenCentral() maven { url 'https://jitpack.io' } maven { url 'https://developer.huawei.com/repo/' } + maven { url 'https://developer.hihonor.com/repo' } maven { url 'https://maven.aliyun.com/repository/central' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/public' }