feat: 增加公共应用写入白名单
This commit is contained in:
@@ -29,8 +29,8 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.aoleyun.sn"
|
||||
versionCode 211
|
||||
versionName "1.6.04015"
|
||||
versionCode 212
|
||||
versionName "1.6.0421"
|
||||
|
||||
//There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature.
|
||||
minSdkVersion 24
|
||||
|
||||
@@ -117,6 +117,7 @@ import com.aoleyun.sn.network.api.post.MACAddressApi;
|
||||
import com.aoleyun.sn.network.api.post.NetAndLaunchApi;
|
||||
import com.aoleyun.sn.network.api.post.NetworkConnectApi;
|
||||
import com.aoleyun.sn.network.api.post.NewAppinsideWebApi;
|
||||
import com.aoleyun.sn.network.api.post.RankCommonAppApi;
|
||||
import com.aoleyun.sn.network.api.post.SendDownloadInfoApi;
|
||||
import com.aoleyun.sn.network.api.post.SendDownloadTimesApi;
|
||||
import com.aoleyun.sn.network.api.post.SendRestoreTimesApi;
|
||||
@@ -182,6 +183,7 @@ import io.reactivex.rxjava3.core.Observable;
|
||||
import io.reactivex.rxjava3.core.Observer;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.functions.BiFunction;
|
||||
import io.reactivex.rxjava3.functions.Function3;
|
||||
import io.reactivex.rxjava3.functions.Function6;
|
||||
import io.reactivex.rxjava3.functions.Function7;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
@@ -801,6 +803,13 @@ public class NetInterfaceManager {
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
public Observable<BaseResponse<List<AppDateInfo>>> getRankCommonAppObservable() {
|
||||
return mRetrofit.create(RankCommonAppApi.class)
|
||||
.getRankApp(HTTP_KEY, Utils.getSerial(mContext), "1")
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
* API
|
||||
@@ -3455,7 +3464,7 @@ public class NetInterfaceManager {
|
||||
}
|
||||
|
||||
public void getAppLimit(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
|
||||
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getBiFunction())
|
||||
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getRankCommonAppObservable(), getBiFunction())
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(getAppLimitListObserver(callback));
|
||||
// getAppLimitObservable()
|
||||
@@ -3464,29 +3473,29 @@ public class NetInterfaceManager {
|
||||
}
|
||||
|
||||
public void getAppLimit(onCompleteCallback callback) {
|
||||
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getBiFunction())
|
||||
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getRankCommonAppObservable(), getBiFunction())
|
||||
.subscribe(getAppLimitListObserver(callback));
|
||||
// getAppLimitObservable()
|
||||
// .subscribe(getAppLimitObserver(callback));
|
||||
}
|
||||
|
||||
public void getAppLimit() {
|
||||
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getBiFunction())
|
||||
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getRankCommonAppObservable(), getBiFunction())
|
||||
.subscribe(getAppLimitListObserver(null));
|
||||
// getAppLimitObservable()
|
||||
// .subscribe(getAppLimitObserver(null));
|
||||
}
|
||||
|
||||
private void getAppLimitList() {
|
||||
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getBiFunction())
|
||||
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getRankCommonAppObservable(), getBiFunction())
|
||||
.subscribe(getAppLimitListObserver(null));
|
||||
}
|
||||
|
||||
|
||||
private BiFunction<BaseResponse<AppLimit>, BaseResponse<List<AppDateInfo>>, List<String>> getBiFunction() {
|
||||
return new BiFunction<BaseResponse<AppLimit>, BaseResponse<List<AppDateInfo>>, List<String>>() {
|
||||
private Function3<BaseResponse<AppLimit>, BaseResponse<List<AppDateInfo>>, BaseResponse<List<AppDateInfo>>, List<String>> getBiFunction() {
|
||||
return new Function3<BaseResponse<AppLimit>, BaseResponse<List<AppDateInfo>>, BaseResponse<List<AppDateInfo>>, List<String>>() {
|
||||
@Override
|
||||
public List<String> apply(BaseResponse<AppLimit> appLimitBaseResponse, BaseResponse<List<AppDateInfo>> listBaseResponse) throws Throwable {
|
||||
public List<String> apply(BaseResponse<AppLimit> appLimitBaseResponse, BaseResponse<List<AppDateInfo>> listBaseResponse, BaseResponse<List<AppDateInfo>> appDateInfoResponse) throws Throwable {
|
||||
List<String> appNames = new ArrayList<>();
|
||||
if (appLimitBaseResponse.code == 200) {
|
||||
AppLimit appLimit = appLimitBaseResponse.data;
|
||||
@@ -3504,6 +3513,16 @@ public class NetInterfaceManager {
|
||||
}).collect(Collectors.toSet());
|
||||
appNames.addAll(pkgs);
|
||||
}
|
||||
if (appDateInfoResponse.code == 200) {
|
||||
List<AppDateInfo> appDateInfos = appDateInfoResponse.data;
|
||||
Set<String> pkgs = appDateInfos.stream().map(new Function<AppDateInfo, String>() {
|
||||
@Override
|
||||
public String apply(AppDateInfo appDateInfo) {
|
||||
return appDateInfo.getApp_baoming();
|
||||
}
|
||||
}).collect(Collectors.toSet());
|
||||
appNames.addAll(pkgs);
|
||||
}
|
||||
return appNames;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -39,6 +39,8 @@ public class UrlAddress {
|
||||
public static final String SET_WHITE_PACKAGE_LIST = "firmware/index";
|
||||
/*获取全部应用*/
|
||||
public static final String GET_ALL_APP = "recommend/index";
|
||||
/*公共应用*/
|
||||
public static final String HTTP_TAG_COMMOAPP = "Rank/commonApp";
|
||||
/*强制安装应用*/
|
||||
public static final String GET_FORCE_INSTALL_LIST = "forceinstall/index";
|
||||
/*分组应用强制安装*/
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.aoleyun.sn.network.api.post;
|
||||
|
||||
import com.aoleyun.sn.bean.AppDateInfo;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.network.UrlAddress;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
public interface RankCommonAppApi {
|
||||
@FormUrlEncoded
|
||||
@POST(UrlAddress.HTTP_TAG_COMMOAPP)
|
||||
Observable<BaseResponse<List<AppDateInfo>>> getRankApp(
|
||||
@Field("key") String key,
|
||||
@Field("sn") String sn,
|
||||
@Field("page") String page
|
||||
);
|
||||
}
|
||||
@@ -74,7 +74,6 @@ public class NewAppReceiver extends BroadcastReceiver {
|
||||
JgyUtils.getInstance().setAllowPermissionsPackage();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
if (!PackageNames.APPSTORE.equals(packageName) || !PackageNames.DEVICE_INFO.equals(packageName)) {
|
||||
ApkUtils.addShortcut(context);
|
||||
ApkUtils.RemoveTask(context, packageName);
|
||||
}
|
||||
JgyUtils.getInstance().wakeUpAoleyunAPP();
|
||||
|
||||
@@ -1531,7 +1531,6 @@ public class JgyUtils {
|
||||
setAppRestriction(0);
|
||||
return;
|
||||
}
|
||||
ApkUtils.addShortcut(mContext);
|
||||
HashSet<String> pkgSet = new HashSet<>(defaultPackages);
|
||||
if (BuildConfig.DEBUG) {
|
||||
pkgSet.add("com.reqable.android");
|
||||
|
||||
Reference in New Issue
Block a user