version:6.4.4

fix:修复从应用分类下载的app会被卸载
update:
This commit is contained in:
2023-09-11 18:26:26 +08:00
parent 129f47f9f0
commit 183cde2afb
5 changed files with 160 additions and 23 deletions

View File

@@ -29,8 +29,8 @@ android {
defaultConfig {
applicationId "com.aoleyun.sn"
versionCode 83
versionName "6.4.3"
versionCode 84
versionName "6.4.4"
//There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature.
minSdkVersion 24

View File

@@ -1,28 +1,40 @@
package com.aoleyun.sn.bean;
import androidx.annotation.NonNull;
import com.google.gson.Gson;
import com.google.gson.JsonParser;
import java.io.Serializable;
public class AppDateInfo implements Serializable {
private static final long serialVersionUID = 8711338410072780246L;
private static final long serialVersionUID = -8954939883956606971L;
String id;
String app_id;
String app_name;
String app_package;
String app_version_name;
long app_version_code;
String app_desc;
String app_downloads;
String app_size;
String app_img;
String app_url;
String app_createtime;
String app_score;
String xitong_id;
String zixitong_id;
String app_tag;
String app_md5;
public String id;
public String app_name;
public String app_package;
public String app_version_name;
public String app_desc;
public String app_downloads;
public String app_size;
public String app_img;
public String app_url;
public String app_createtime;
public String app_score;
public String xitong_id;
public String zixitong_id;
public String app_tag;
public String getApp_id() {
return app_id;
}
public void setApp_id(String app_id) {
this.app_id = app_id;
}
public String getType() {
return app_tag;
@@ -144,6 +156,23 @@ public class AppDateInfo implements Serializable {
this.app_createtime = app_time;
}
public String getApp_md5() {
return app_md5;
}
public void setApp_md5(String app_md5) {
this.app_md5 = app_md5;
}
public long getApp_version_code() {
return app_version_code;
}
public void setApp_version_code(long app_version_code) {
this.app_version_code = app_version_code;
}
@NonNull
@Override
public String toString() {
return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();

View File

@@ -20,6 +20,7 @@ import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory;
import com.aoleyun.sn.BuildConfig;
import com.aoleyun.sn.base.BaseApplication;
import com.aoleyun.sn.bean.AppAttr;
import com.aoleyun.sn.bean.AppDateInfo;
import com.aoleyun.sn.bean.AppID;
import com.aoleyun.sn.bean.AppLimit;
import com.aoleyun.sn.bean.AppListInfo;
@@ -57,6 +58,7 @@ import com.aoleyun.sn.network.api.GetWhoisApi;
import com.aoleyun.sn.network.api.get.CheckTestUpdateApi;
import com.aoleyun.sn.network.api.get.DefaultAppApi;
import com.aoleyun.sn.network.api.get.DesktopsDiyUpdateApi;
import com.aoleyun.sn.network.api.get.GetAdminAppApi;
import com.aoleyun.sn.network.api.get.GetDesktopApi;
import com.aoleyun.sn.network.api.get.GetDeveloperApi;
import com.aoleyun.sn.network.api.get.GetPushTagsApi;
@@ -142,6 +144,7 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
@@ -608,6 +611,13 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<List<AppDateInfo>>> getAdminAppObservable() {
return mRetrofit.create(GetAdminAppApi.class)
.getAdminApp(Utils.getSerial(mContext))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/*
*
* API
@@ -2894,19 +2904,97 @@ public class NetInterfaceManager {
}
public void getAppLimit(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
getAppLimitObservable()
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getBiFunction())
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(getAppLimitObserver(callback));
.subscribe(getAppLimitListObserver(callback));
// getAppLimitObservable()
// .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
// .subscribe(getAppLimitObserver(callback));
}
public void getAppLimit(onCompleteCallback callback) {
getAppLimitObservable()
.subscribe(getAppLimitObserver(callback));
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getBiFunction())
.subscribe(getAppLimitListObserver(callback));
// getAppLimitObservable()
// .subscribe(getAppLimitObserver(callback));
}
public void getAppLimit() {
getAppLimitObservable()
.subscribe(getAppLimitObserver(null));
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getBiFunction())
.subscribe(getAppLimitListObserver(null));
// getAppLimitObservable()
// .subscribe(getAppLimitObserver(null));
}
private void getAppLimitList() {
Observable.zip(getAppLimitObservable(), getAdminAppObservable(), getBiFunction())
.subscribe(getAppLimitListObserver(null));
}
private BiFunction<BaseResponse<AppLimit>, BaseResponse<List<AppDateInfo>>, List<String>> getBiFunction() {
return new BiFunction<BaseResponse<AppLimit>, BaseResponse<List<AppDateInfo>>, List<String>>() {
@Override
public List<String> apply(BaseResponse<AppLimit> appLimitBaseResponse, BaseResponse<List<AppDateInfo>> listBaseResponse) throws Throwable {
List<String> appNames = new ArrayList<>();
if (appLimitBaseResponse.code == 200) {
AppLimit appLimit = appLimitBaseResponse.data;
String result = appLimit.getResult();
List<String> pkgs = new ArrayList<>(Arrays.asList(result.split(",")));
appNames.addAll(pkgs);
}
if (listBaseResponse.code == 200) {
List<AppDateInfo> appDateInfos = listBaseResponse.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;
}
};
}
private Observer<List<String>> getAppLimitListObserver(onCompleteCallback callback) {
return new Observer<List<String>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAppLimitList", "onSubscribe: ");
}
@Override
public void onNext(@NonNull List<String> strings) {
Log.e("getAppLimitList", "onNext: " + strings);
if (strings.size() == 0) {
Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, "");
JGYUtils.getInstance().writeAppPackageList();
cacheHelper.put(UrlAddress.SET_WHITE_PACKAGE_LIST, "");
} else {
String pkgString = String.join(",", strings);
cacheHelper.put(UrlAddress.SET_WHITE_PACKAGE_LIST, GsonUtils.toJSONString(strings));
//开机图标 只记录后台传的包名
Log.e(TAG, "onNext: only_jgy_shortcut_list: " + Settings.System.putString(mContext.getContentResolver(), JGYActions.ACTION_JGY_SHORTCUTLIST, pkgString));
JGYUtils.getInstance().writeAppPackageList(mContext, pkgString);
JGYUtils.getInstance().deleteOtherApp();
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAppLimitList", "onError: " + e.getMessage());
onComplete();
}
@Override
public void onComplete() {
Log.e("getAppLimitList", "onComplete: ");
if (callback != null)
callback.onComplete();
}
};
}
private Observer<BaseResponse<AppLimit>> getAppLimitObserver(onCompleteCallback callback) {

View File

@@ -44,6 +44,8 @@ public class UrlAddress {
public static final String GET_APPID = "application/index";
/*app内部网页管控*/
public static final String SET_APPINSIDEWEB = "Appground";
/*应用管控的应用*/
public static final String GET_ADMIN_APP = "And/app/getAdminApp";
/*app下载完成发送下载次数*/
@Deprecated

View File

@@ -0,0 +1,18 @@
package com.aoleyun.sn.network.api.get;
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.GET;
import retrofit2.http.Query;
public interface GetAdminAppApi {
@GET(UrlAddress.GET_ADMIN_APP)
Observable<BaseResponse<List<AppDateInfo>>> getAdminApp(
@Query("sn") String sn
);
}