feat: 增加公共应用标签,增加指定包名安装应用
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -58,6 +58,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
|
||||
checkTestUpdate();
|
||||
getDefaultDesktop();
|
||||
getDefaultApp();
|
||||
getAllInfoAndSetting();
|
||||
}
|
||||
|
||||
public MutableLiveData<Boolean> mLockedData = new MutableLiveData<>();
|
||||
@@ -240,6 +241,9 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
|
||||
});
|
||||
}
|
||||
|
||||
public void getAllInfoAndSetting() {
|
||||
NetInterfaceManager.getInstance().getAllInfoAndSetting(getLifecycle());
|
||||
}
|
||||
|
||||
public MutableLiveData<Bitmap> mQrCodeData = new MutableLiveData<>();
|
||||
|
||||
@@ -344,7 +348,7 @@ public class MainViewModel extends BaseViewModel<ActivityMainBinding, ActivityEv
|
||||
}
|
||||
|
||||
public void getPushTags() {
|
||||
NetInterfaceManager.getInstance().setPushTags(getLifecycle(), new NetInterfaceManager.PushTagCallback() {
|
||||
NetInterfaceManager.getInstance().getPushAndPubAppTag(getLifecycle(), new NetInterfaceManager.PushTagCallback() {
|
||||
@Override
|
||||
public void setPushTag(String tag) {
|
||||
|
||||
|
||||
@@ -320,7 +320,7 @@ public class BaseApplication extends MultiDexApplication {
|
||||
aliyunPushInit();
|
||||
break;
|
||||
default:
|
||||
NetInterfaceManager.getInstance().setPushTags();
|
||||
NetInterfaceManager.getInstance().getPushAndPubAppTag();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@ public class ForceDownloadData implements Serializable {
|
||||
String app_id;
|
||||
String app_md5;
|
||||
long app_version_code;
|
||||
int allow_install_app;
|
||||
|
||||
|
||||
public String getApp_package() {
|
||||
return app_package;
|
||||
@@ -63,6 +65,14 @@ public class ForceDownloadData implements Serializable {
|
||||
this.app_md5 = app_md5;
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
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;
|
||||
|
||||
public class NetAndLaunchBean implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -5029848848935111774L;
|
||||
|
||||
private int code;
|
||||
private String msg;
|
||||
private List<NetAndLaunchData> 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<NetAndLaunchData> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(List<NetAndLaunchData> data) {
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String toString() {
|
||||
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
26
app/src/main/java/com/aoleyun/sn/bean/PushTag.java
Normal file
26
app/src/main/java/com/aoleyun/sn/bean/PushTag.java
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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管控*/
|
||||
|
||||
@@ -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<NetAndLaunchBean> getAppAutoStartUpdateAndNetObservable() {
|
||||
public Observable<BaseResponse<List<NetAndLaunchData>>> 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<BaseResponse<List<AppAttr>>> 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<BaseResponse<TopApp>> getTopAppControl() {
|
||||
@@ -554,31 +565,31 @@ public class NetInterfaceManager {
|
||||
public Observable<BaseResponse<List<ForceDownloadData>>> 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<BaseResponse<AppLimit>> 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<BaseResponse<List<AppDateInfo>>> getAdminAppObservable() {
|
||||
return withCache(schedule(getAppInstallStrategyApi().getAdminApp(Utils.getSerial(mContext))),
|
||||
UrlAddress.GET_ADMIN_APP,
|
||||
720 * CACHE_EXPIRE_ONE_MINUTE);
|
||||
DEFAULT_CACHE_EXPIRE);
|
||||
}
|
||||
|
||||
public Observable<BaseResponse<List<AppDateInfo>>> 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<BaseResponse<List<AppListInfo>>> 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<BaseResponse<CustomROMApp>> getCustomRomAppControl() {
|
||||
@@ -622,12 +633,18 @@ public class NetInterfaceManager {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public Observable<BaseResponse<Batch>> getPushTagsObservable() {
|
||||
return withCache(schedule(getDevicesStatusApi().getPushTags(Utils.getSerial(mContext))),
|
||||
public Observable<BaseResponse<Batch>> getSnTagObservable() {
|
||||
return withCache(schedule(getDevicesStatusApi().getSnTag(Utils.getSerial(mContext))),
|
||||
UrlAddress.GET_DEVICES_TAGS,
|
||||
10 * CACHE_EXPIRE_ONE_MINUTE);
|
||||
}
|
||||
|
||||
public Observable<BaseResponse<PushTag>> getPushTagObservable() {
|
||||
return withCache(schedule(getDevicesStatusApi().getPushTag(Utils.getSerial(mContext), 1)),
|
||||
UrlAddress.GET_PUSH_TAG,
|
||||
10 * CACHE_EXPIRE_ONE_MINUTE);
|
||||
}
|
||||
|
||||
public Observable<BaseResponse<ScreenLockState>> 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<BaseResponse<List<ForceDownloadData>>,
|
||||
@@ -1614,85 +1633,6 @@ public class NetInterfaceManager {
|
||||
};
|
||||
}
|
||||
|
||||
public void getAppAutoStartUpdateAndNet(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
|
||||
getAppAutoStartUpdateAndNetObservable()
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(getAppAutoStartUpdateAndNetObserver(callback));
|
||||
}
|
||||
|
||||
public void getAppAutoStartUpdateAndNet(List<AppListInfo> appListInfos) {
|
||||
getAppAutoStartUpdateAndNetObservable()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<NetAndLaunchBean>() {
|
||||
@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<NetAndLaunchBean> getAppAutoStartUpdateAndNetObserver(onCompleteCallback callback) {
|
||||
return new Observer<NetAndLaunchBean>() {
|
||||
@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<ActivityEvent> lifecycle, onCompleteCallback callback) {
|
||||
getAppIDControlObservable()
|
||||
.observeOn(Schedulers.io())
|
||||
@@ -2250,6 +2190,110 @@ public class NetInterfaceManager {
|
||||
});
|
||||
}
|
||||
|
||||
public void getPushAndPubAppTag(BehaviorSubject<ActivityEvent> 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<Batch>, BaseResponse<PushTag>, Set<String>> getTagBiFunction(PushTagCallback callback) {
|
||||
return new BiFunction<BaseResponse<Batch>, BaseResponse<PushTag>, Set<String>>() {
|
||||
@Override
|
||||
public Set<String> apply(BaseResponse<Batch> batchBaseResponse, BaseResponse<PushTag> pushTagBaseResponse) throws Throwable {
|
||||
Log.e("getTagBiFunction", "apply: batchBaseResponse = " + batchBaseResponse);
|
||||
Log.e("getTagBiFunction", "apply: pushTagBaseResponse = " + pushTagBaseResponse);
|
||||
Set<String> 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<String> 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<Set<String>> getTagObserver(PushTagCallback callback) {
|
||||
return new Observer<Set<String>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getTagObserver", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull Set<String> strings) {
|
||||
Log.e("getTagObserver", "onNext: " + strings);
|
||||
clearAndAppendTags(strings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("getTagObserver", "onError: " + e.getMessage());
|
||||
Set<String> tags = new HashSet<>();
|
||||
String batch = mMMKV.decodeString(CommonConfig.DEVICES_TAG, "");
|
||||
Log.e("getTagObserver", "onError: batch = " + batch);
|
||||
if (!TextUtils.isEmpty(batch)) {
|
||||
tags.add(batch);
|
||||
}
|
||||
Set<String> 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<ActivityEvent> lifecycle, PushTagCallback callback) {
|
||||
getPushTagsObservable()
|
||||
@Deprecated
|
||||
public void getSnTag(BehaviorSubject<ActivityEvent> 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<BaseResponse<Batch>> getPushTagsObserver(PushTagCallback callback) {
|
||||
return new Observer<BaseResponse<Batch>>() {
|
||||
@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<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
|
||||
Log.e("setPushTags", "onError: groupTagSets = " + groupTagSets);
|
||||
Set<String> tags = new HashSet<>();
|
||||
@@ -2339,74 +2386,64 @@ public class NetInterfaceManager {
|
||||
}
|
||||
|
||||
public void clearAndAppendTags(Set<String> 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<ActivityEvent> lifecycle) {
|
||||
getPushTagObservable()
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(getPushTagObserver());
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private void getPushTag() {
|
||||
getPushTagObservable()
|
||||
.subscribe(getPushTagObserver());
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private Observer<BaseResponse<PushTag>> getPushTagObserver() {
|
||||
return new Observer<BaseResponse<PushTag>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getPushTagObserver", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse<PushTag> 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<ActivityEvent> 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<ActivityEvent> lifecycle) {
|
||||
Observable.zip(getAllAppControl(), getAppAutoStartUpdateAndNetObservable(), new BiFunction<BaseResponse<List<AppListInfo>>, BaseResponse<List<NetAndLaunchData>>, List<AppListInfo>>() {
|
||||
@Override
|
||||
public List<AppListInfo> apply(BaseResponse<List<AppListInfo>> appListInfoResponse, BaseResponse<List<NetAndLaunchData>> 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<AppListInfo> appListInfos = appListInfoResponse.data;
|
||||
Set<String> pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet());
|
||||
mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList);
|
||||
|
||||
List<NetAndLaunchData> netAndLaunchDataList = netAndLaunchDataResponse.data;
|
||||
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos);
|
||||
return appListInfos;
|
||||
} else if (appListInfoResponse.isSuccess()) {
|
||||
List<AppListInfo> appListInfos = appListInfoResponse.data;
|
||||
Set<String> 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<NetAndLaunchData> netAndLaunchDataList = netAndLaunchDataResponse.data;
|
||||
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<List<AppListInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getAllInfoAndSetting", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull List<AppListInfo> 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<AppListInfo>>, BaseResponse<List<NetAndLaunchData>>, List<AppListInfo>>() {
|
||||
@Override
|
||||
public List<AppListInfo> apply(BaseResponse<List<AppListInfo>> appListInfoResponse, BaseResponse<List<NetAndLaunchData>> 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<AppListInfo> appListInfos = appListInfoResponse.data;
|
||||
Set<String> pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet());
|
||||
mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList);
|
||||
|
||||
List<NetAndLaunchData> netAndLaunchDataList = netAndLaunchDataResponse.data;
|
||||
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos);
|
||||
return appListInfos;
|
||||
} else if (appListInfoResponse.isSuccess()) {
|
||||
List<AppListInfo> appListInfos = appListInfoResponse.data;
|
||||
Set<String> 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<NetAndLaunchData> netAndLaunchDataList = netAndLaunchDataResponse.data;
|
||||
JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<List<AppListInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getAllInfoAndSetting", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull List<AppListInfo> 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<BaseResponse<List<AppListInfo>>> getAllAppListObserver(onCompleteCallback callback) {
|
||||
return new Observer<BaseResponse<List<AppListInfo>>>() {
|
||||
@Override
|
||||
@@ -3044,7 +3190,6 @@ public class NetInterfaceManager {
|
||||
Log.e("getAllAppList", "onNext: " + listBaseResponse);
|
||||
if (listBaseResponse.isSuccess()) {
|
||||
List<AppListInfo> appListInfos = listBaseResponse.data;
|
||||
getAppAutoStartUpdateAndNet(appListInfos);
|
||||
Set<String> 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<AppListInfo> appListInfos) {
|
||||
getAppAutoStartUpdateAndNetObservable()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<BaseResponse<List<NetAndLaunchData>>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getAutoUpdateAndNet", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse<List<NetAndLaunchData>> 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<ActivityEvent> 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<BaseResponse<List<NetAndLaunchData>>> getAppAutoStartUpdateAndNetObserver(onCompleteCallback callback) {
|
||||
return new Observer<BaseResponse<List<NetAndLaunchData>>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getAppAutoStart", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse<List<NetAndLaunchData>> 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<ActivityEvent> lifecycle, onCompleteCallback callback) {
|
||||
getSnTimeObservable()
|
||||
@@ -3851,7 +4077,7 @@ public class NetInterfaceManager {
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse<BlacklistBean> 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<String> 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<WhitelistBean> 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<String> 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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相关
|
||||
*/
|
||||
|
||||
@@ -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<NetAndLaunchBean> getNetAndLaunchApi(
|
||||
Observable<BaseResponse<List<NetAndLaunchData>>> getNetAndLaunchApi(
|
||||
@Field("key") String key,
|
||||
@Field("sn") String sn
|
||||
);
|
||||
|
||||
@@ -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<BaseResponse<Batch>> getPushTags(
|
||||
Observable<BaseResponse<Batch>> getSnTag(
|
||||
@Query("sn") String sn
|
||||
);
|
||||
|
||||
@GET(UrlAddress.GET_PUSH_TAG)
|
||||
Observable<BaseResponse<PushTag>> getPushTag(
|
||||
@Query("sn") String sn,
|
||||
@Query("tag_type") int tag_type
|
||||
);
|
||||
|
||||
@FormUrlEncoded
|
||||
@POST(UrlAddress.GET_STUDENTS_INFO)
|
||||
Observable<BaseResponse<StudentsInfo>> getStudentsInfo(
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ public class NewAppReceiver extends BroadcastReceiver {
|
||||
private static void sendAppInfo() {
|
||||
Observable.create((ObservableEmitter<String> emitter) -> {
|
||||
newAppListener = emitter::onNext;
|
||||
}).throttleLast(5, TimeUnit.MINUTES)
|
||||
}).throttleLast(1, TimeUnit.MINUTES)
|
||||
//这句很关键,这是RxJava中的操作符,在规定时间内观察者不在接收被观察者发送的事件
|
||||
.subscribe(new Observer<String>() {
|
||||
@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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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<String> 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<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
|
||||
Log.e(TAG, "setPushTags: groupTagSets = " + groupTagSets);
|
||||
Set<String> 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<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
|
||||
// Log.e(TAG, "setPushTags: groupTagSets = " + groupTagSets);
|
||||
// Set<String> tags = new HashSet<>();
|
||||
// tags.addAll(groupTagSets);
|
||||
// if (!TextUtils.isEmpty(tagSets)) {
|
||||
// tags.add(tagSets);
|
||||
// }
|
||||
// NetInterfaceManager.getInstance().clearAndAppendTags(tags);
|
||||
}
|
||||
|
||||
private void setpushTag(Set<String> 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() {
|
||||
|
||||
@@ -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<AppListInfo> appListInfos) {
|
||||
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + netAndLaunchBean.getData().toString());
|
||||
Log.e(TAG, "setNetAndlaunch: ");
|
||||
HashSet<String> autoLaunchApp = new HashSet<>();//开机自启app
|
||||
HashSet<String> allowNetApp = new HashSet<>();//允许联网
|
||||
HashSet<String> disallowNetApp = new HashSet<>();//禁止联网
|
||||
HashSet<String> allowUpgrade = new HashSet<>();//允许升级
|
||||
HashSet<String> disallowUpgrade = new HashSet<>();//禁止升级
|
||||
HashSet<String> allowSlide = new HashSet<>();//允许滑动
|
||||
HashSet<String> disallowSlide = new HashSet<>();//禁止滑动
|
||||
public void setNetAndlaunch(List<NetAndLaunchData> dataList, List<AppListInfo> appListInfos) {
|
||||
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + dataList.toString());
|
||||
|
||||
List<NetAndLaunchData> 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<String> autoLaunchApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_auto() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//允许联网
|
||||
HashSet<String> allowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//禁止联网
|
||||
HashSet<String> disallowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//允许升级
|
||||
HashSet<String> allowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//禁止升级
|
||||
HashSet<String> disallowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//允许滑动
|
||||
HashSet<String> allowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//禁止滑动
|
||||
HashSet<String> disallowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//禁止通知栏显示通知
|
||||
List<String> disallowNotification = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_notification() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toList());
|
||||
//默认给所有权限
|
||||
HashSet<String> allowPermissions = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_dynamic_perm() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//允许应用安装其他应用
|
||||
HashSet<String> 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<NetAndLaunchData> dataList) {
|
||||
Log.e(TAG, "setNetAndlaunch: " + "应用联网管控: " + dataList.toString());
|
||||
//开机自启app
|
||||
HashSet<String> autoLaunchApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_auto() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//允许联网
|
||||
HashSet<String> allowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//禁止联网
|
||||
HashSet<String> disallowNetApp = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_network() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//允许升级
|
||||
HashSet<String> allowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//禁止升级
|
||||
HashSet<String> disallowUpgrade = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_upgrade() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//允许滑动
|
||||
HashSet<String> allowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//禁止滑动
|
||||
HashSet<String> disallowSlide = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_slide() == 0).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//禁止通知栏显示通知
|
||||
HashSet<String> disallowNotification = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_notification() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//默认给所有权限
|
||||
HashSet<String> allowPermissions = dataList.stream().filter(netAndLaunchData -> netAndLaunchData.getIs_dynamic_perm() == 1).map(NetAndLaunchData::getApp_package).collect(Collectors.toCollection(HashSet::new));
|
||||
//允许应用安装其他应用
|
||||
HashSet<String> 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<String> DEFAULT_APP_SOURCE_WHITE_LIST = new ArrayList<String>() {{
|
||||
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<String> 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<String> 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<String> autoLaunchApp = new HashSet<>();//开机自启app
|
||||
HashSet<String> allowNetApp = new HashSet<>();//允许联网
|
||||
HashSet<String> disallowNetApp = new HashSet<>();//禁止联网
|
||||
HashSet<String> allowUpgrade = new HashSet<>();//允许升级
|
||||
HashSet<String> disallowUpgrade = new HashSet<>();//禁止升级
|
||||
HashSet<String> allowSlide = new HashSet<>();//允许滑动
|
||||
HashSet<String> disallowSlide = new HashSet<>();//禁止滑动
|
||||
HashSet<String> disallowNotification = new HashSet<>();//禁止通知栏显示通知
|
||||
HashSet<String> allowPermissions = new HashSet<>();//默认给所有权限
|
||||
|
||||
|
||||
List<NetAndLaunchData> 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<String> 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<String> 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<String> 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<AppID> 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<String> getHidePackage() {
|
||||
String jsonString = cacheHelper.getAsString(UrlAddress.GET_HIDE_DESKTOPICON);
|
||||
//为 "" 是已经请求成功的
|
||||
if (jsonString == null) {
|
||||
return new ArrayList<>();
|
||||
} else {
|
||||
Gson gson = new Gson();
|
||||
Type type = new TypeToken<List<String>>() {
|
||||
}.getType();
|
||||
List<String> list = gson.fromJson(jsonString, type);
|
||||
if (list == null) {
|
||||
return new ArrayList<>();
|
||||
} else {
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<String> getDisablePackage() {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (Settings.System.getInt(crv, "qch_app_camera", 0) == 1) {
|
||||
|
||||
Reference in New Issue
Block a user