version:
bugfixes:对接分组标签和强制下载分组应用,增加地理围栏接口,地理围栏功能未实现
This commit is contained in:
174
app/src/main/java/com/aoleyun/sn/bean/ApkInfoPush.java
Normal file
174
app/src/main/java/com/aoleyun/sn/bean/ApkInfoPush.java
Normal file
@@ -0,0 +1,174 @@
|
||||
package com.aoleyun.sn.bean;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class ApkInfoPush implements Serializable {
|
||||
private static final long serialVersionUID = 1566912665439013710L;
|
||||
|
||||
int app_id;
|
||||
String app_name;
|
||||
@SerializedName(value = "package_name", alternate = {"app_package", "package"})
|
||||
String package_name;
|
||||
String app_version_name;
|
||||
long app_version_code;
|
||||
long app_size;
|
||||
String app_url;
|
||||
String app_img;
|
||||
String app_md5;
|
||||
|
||||
int app_attribution;
|
||||
int app_forceinstall;
|
||||
int is_auto;
|
||||
int is_network;
|
||||
int is_slide;
|
||||
int is_upgrade;
|
||||
int is_appstore;
|
||||
int is_notification;
|
||||
int is_dynamic_perm;
|
||||
|
||||
public int getApp_id() {
|
||||
return app_id;
|
||||
}
|
||||
|
||||
public void setApp_id(int app_id) {
|
||||
this.app_id = app_id;
|
||||
}
|
||||
|
||||
public String getApp_name() {
|
||||
return app_name;
|
||||
}
|
||||
|
||||
public void setApp_name(String app_name) {
|
||||
this.app_name = app_name;
|
||||
}
|
||||
|
||||
public String getPackage_name() {
|
||||
return package_name;
|
||||
}
|
||||
|
||||
public void setPackage_name(String package_name) {
|
||||
this.package_name = package_name;
|
||||
}
|
||||
|
||||
public String getApp_version_name() {
|
||||
return app_version_name;
|
||||
}
|
||||
|
||||
public void setApp_version_name(String app_version_name) {
|
||||
this.app_version_name = app_version_name;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public long getApp_size() {
|
||||
return app_size;
|
||||
}
|
||||
|
||||
public void setApp_size(long app_size) {
|
||||
this.app_size = app_size;
|
||||
}
|
||||
|
||||
public String getApp_url() {
|
||||
return app_url;
|
||||
}
|
||||
|
||||
public void setApp_url(String app_url) {
|
||||
this.app_url = app_url;
|
||||
}
|
||||
|
||||
public String getApp_img() {
|
||||
return app_img;
|
||||
}
|
||||
|
||||
public void setApp_img(String app_img) {
|
||||
this.app_img = app_img;
|
||||
}
|
||||
|
||||
public String getApp_md5() {
|
||||
return app_md5;
|
||||
}
|
||||
|
||||
public void setApp_md5(String app_md5) {
|
||||
this.app_md5 = app_md5;
|
||||
}
|
||||
|
||||
public int getApp_attribution() {
|
||||
return app_attribution;
|
||||
}
|
||||
|
||||
public void setApp_attribution(int app_attribution) {
|
||||
this.app_attribution = app_attribution;
|
||||
}
|
||||
|
||||
public int getApp_forceinstall() {
|
||||
return app_forceinstall;
|
||||
}
|
||||
|
||||
public void setApp_forceinstall(int app_forceinstall) {
|
||||
this.app_forceinstall = app_forceinstall;
|
||||
}
|
||||
|
||||
public int getIs_auto() {
|
||||
return is_auto;
|
||||
}
|
||||
|
||||
public void setIs_auto(int is_auto) {
|
||||
this.is_auto = is_auto;
|
||||
}
|
||||
|
||||
public int getIs_network() {
|
||||
return is_network;
|
||||
}
|
||||
|
||||
public void setIs_network(int is_network) {
|
||||
this.is_network = is_network;
|
||||
}
|
||||
|
||||
public int getIs_slide() {
|
||||
return is_slide;
|
||||
}
|
||||
|
||||
public void setIs_slide(int is_slide) {
|
||||
this.is_slide = is_slide;
|
||||
}
|
||||
|
||||
public int getIs_upgrade() {
|
||||
return is_upgrade;
|
||||
}
|
||||
|
||||
public void setIs_upgrade(int is_upgrade) {
|
||||
this.is_upgrade = is_upgrade;
|
||||
}
|
||||
|
||||
public int getIs_appstore() {
|
||||
return is_appstore;
|
||||
}
|
||||
|
||||
public void setIs_appstore(int is_appstore) {
|
||||
this.is_appstore = is_appstore;
|
||||
}
|
||||
|
||||
public int getIs_notification() {
|
||||
return is_notification;
|
||||
}
|
||||
|
||||
public void setIs_notification(int is_notification) {
|
||||
this.is_notification = is_notification;
|
||||
}
|
||||
|
||||
public int getIs_dynamic_perm() {
|
||||
return is_dynamic_perm;
|
||||
}
|
||||
|
||||
public void setIs_dynamic_perm(int is_dynamic_perm) {
|
||||
this.is_dynamic_perm = is_dynamic_perm;
|
||||
}
|
||||
}
|
||||
@@ -1,22 +1,15 @@
|
||||
package com.aoleyun.sn.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class Batch implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -1762804079800707443L;
|
||||
|
||||
int id;
|
||||
String batch;
|
||||
int admin_id;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
Set<String> group_en_name;
|
||||
|
||||
public String getBatch() {
|
||||
return batch;
|
||||
@@ -26,11 +19,11 @@ public class Batch implements Serializable {
|
||||
this.batch = batch;
|
||||
}
|
||||
|
||||
public int getAdmin_id() {
|
||||
return admin_id;
|
||||
public Set<String> getGroup_en_name() {
|
||||
return group_en_name;
|
||||
}
|
||||
|
||||
public void setAdmin_id(int admin_id) {
|
||||
this.admin_id = admin_id;
|
||||
public void setGroup_en_name(Set<String> group_en_name) {
|
||||
this.group_en_name = group_en_name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.aoleyun.sn.bean;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class ElectronicFenceInfo implements Serializable {
|
||||
private static final long serialVersionUID = 3539332214940698873L;
|
||||
|
||||
int id;
|
||||
String name;
|
||||
long longitude;
|
||||
long latitude;
|
||||
/*定位效验1是0否*/
|
||||
int is_verify_location;
|
||||
/*半径 米*/
|
||||
int distance;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public long getLongitude() {
|
||||
return longitude;
|
||||
}
|
||||
|
||||
public void setLongitude(long longitude) {
|
||||
this.longitude = longitude;
|
||||
}
|
||||
|
||||
public long getLatitude() {
|
||||
return latitude;
|
||||
}
|
||||
|
||||
public void setLatitude(long latitude) {
|
||||
this.latitude = latitude;
|
||||
}
|
||||
|
||||
public int getIs_verify_location() {
|
||||
return is_verify_location;
|
||||
}
|
||||
|
||||
public void setIs_verify_location(int is_verify_location) {
|
||||
this.is_verify_location = is_verify_location;
|
||||
}
|
||||
|
||||
public int getDistance() {
|
||||
return distance;
|
||||
}
|
||||
|
||||
public void setDistance(int distance) {
|
||||
this.distance = distance;
|
||||
}
|
||||
}
|
||||
@@ -61,6 +61,8 @@ public class CommonConfig {
|
||||
public final static String LAST_CHECK_ALL_UPDATE_TIME = "lastCheckAllUpdateTime";
|
||||
/*获取设备的标签*/
|
||||
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 GET_DEVICES_TAG_LASTTIME = "Aoleyun_devices_tag_last_time";
|
||||
/*专注模式刷新*/
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.content.Context;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
|
||||
import com.aoleyun.sn.bean.ElectronicFenceInfo;
|
||||
import com.aoleyun.sn.utils.SPUtils;
|
||||
import com.baidu.location.BDAbstractLocationListener;
|
||||
import com.baidu.location.BDLocation;
|
||||
@@ -377,7 +378,7 @@ public class MapManager {
|
||||
}
|
||||
};
|
||||
|
||||
public void createClientFence() {
|
||||
public void createClientFence(ElectronicFenceInfo fenceInfo) {
|
||||
// 轨迹服务ID
|
||||
long serviceId = 241868;
|
||||
// 设备标识
|
||||
|
||||
@@ -71,7 +71,7 @@ import com.aoleyun.sn.network.api.GetWhoisApi;
|
||||
import com.aoleyun.sn.network.api.aolelearn.ExclusiveAdminAppApi;
|
||||
import com.aoleyun.sn.network.api.get.AppSettingApi;
|
||||
import com.aoleyun.sn.network.api.get.BlackListApi;
|
||||
import com.aoleyun.sn.network.api.get.CheckTestUpdateApi;
|
||||
import com.aoleyun.sn.network.api.get.SnApi;
|
||||
import com.aoleyun.sn.network.api.get.CloudLessonApi;
|
||||
import com.aoleyun.sn.network.api.get.CloudLessonAppApi;
|
||||
import com.aoleyun.sn.network.api.get.DefaultAppApi;
|
||||
@@ -600,12 +600,20 @@ public class NetInterfaceManager {
|
||||
}
|
||||
|
||||
public Observable<BaseResponse<List<ForceDownloadData>>> getTestUpdateObservable() {
|
||||
return mRetrofit.create(CheckTestUpdateApi.class)
|
||||
return mRetrofit.create(SnApi.class)
|
||||
.getTestUpdate(Utils.getSerial(mContext))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
|
||||
public Observable<BaseResponse> geElectronicFenceObservable() {
|
||||
return mRetrofit.create(SnApi.class)
|
||||
.geElectronicFence(Utils.getSerial(mContext))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
public Observable<BaseResponse<SnTimeControl>> getSnTimeObservable() {
|
||||
return mRetrofit.create(SnTimeControlApi.class)
|
||||
.getSnTimeControl(Utils.getSerial(mContext))
|
||||
@@ -1199,51 +1207,93 @@ public class NetInterfaceManager {
|
||||
});
|
||||
}
|
||||
|
||||
public void getForceDownload(boolean refresh, BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
|
||||
ConnectMode connectMode = ConnectMode.DEFAULT;
|
||||
if (refresh) {
|
||||
connectMode = ConnectMode.DEFAULT;
|
||||
}
|
||||
if (ConnectManager.getInstance().isNeedConnect(UrlAddress.GET_FORCE_INSTALL_LIST, connectMode)) {
|
||||
getForceDownload(lifecycle, callback);
|
||||
} else {
|
||||
String jsonString = cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST);
|
||||
//为 "" 是已经请求成功的
|
||||
if (jsonString == null) {
|
||||
getForceDownload(lifecycle, callback);
|
||||
} else {
|
||||
Gson gson = new Gson();
|
||||
Type listType = new TypeToken<List<ForceDownloadData>>() {
|
||||
}.getType();
|
||||
List<ForceDownloadData> forceDownloadDataList = gson.fromJson(jsonString, listType);
|
||||
if (forceDownloadDataList != null) {
|
||||
JgyUtils.getInstance().forceDownload(forceDownloadDataList);
|
||||
List<String> forceApp = forceDownloadDataList.stream().map(ForceDownloadData::getApp_package).collect(Collectors.toList());
|
||||
boolean aole_force_app = Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP,
|
||||
String.join(",", forceApp));
|
||||
Log.e("getForceDownload", "aole_force_app:" + aole_force_app);
|
||||
}
|
||||
callback.onComplete();
|
||||
}
|
||||
}
|
||||
public void geElectronicFence(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
|
||||
geElectronicFenceObservable()
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(new Observer<BaseResponse>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("geElectronicFence", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseResponse baseResponse) {
|
||||
Log.e("geElectronicFence", "onNext: " + baseResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("geElectronicFence", "onError: " + e.getMessage());
|
||||
if (callback != null) callback.onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("geElectronicFence", "onComplete: ");
|
||||
if (callback != null) callback.onComplete();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void getForceDownload(BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
|
||||
getForceDownloadObservable()
|
||||
// getForceDownloadObservable()
|
||||
// .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
// .subscribe(getForceDownloadObserver(callback));
|
||||
|
||||
Observable.zip(getForceDownloadObservable(), getGroupForceDownloadObservable(), new BiFunction<BaseResponse<List<ForceDownloadData>>,
|
||||
BaseResponse<List<ForceDownloadData>>, List<ForceDownloadData>>() {
|
||||
@Override
|
||||
public List<ForceDownloadData> apply(BaseResponse<List<ForceDownloadData>> listBaseResponse, BaseResponse<List<ForceDownloadData>> listBaseResponse2) throws Throwable {
|
||||
List<ForceDownloadData> forceDownloadData = new ArrayList<>();
|
||||
if (listBaseResponse.code == 200) forceDownloadData.addAll(listBaseResponse.data);
|
||||
if (listBaseResponse2.code == 200) forceDownloadData.addAll(listBaseResponse2.data);
|
||||
return forceDownloadData;
|
||||
}
|
||||
})
|
||||
.compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
|
||||
.subscribe(getForceDownloadObserver(callback));
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(getForceDownloadListObserver(callback));
|
||||
|
||||
}
|
||||
|
||||
public void getForceDownload(onCompleteCallback callback) {
|
||||
getForceDownloadObservable()
|
||||
.subscribe(getForceDownloadObserver(callback));
|
||||
// getForceDownloadObservable()
|
||||
// .subscribe(getForceDownloadObserver(callback));
|
||||
Observable.zip(getForceDownloadObservable(), getGroupForceDownloadObservable(), new BiFunction<BaseResponse<List<ForceDownloadData>>,
|
||||
BaseResponse<List<ForceDownloadData>>, List<ForceDownloadData>>() {
|
||||
@Override
|
||||
public List<ForceDownloadData> apply(BaseResponse<List<ForceDownloadData>> listBaseResponse, BaseResponse<List<ForceDownloadData>> listBaseResponse2) throws Throwable {
|
||||
List<ForceDownloadData> forceDownloadData = new ArrayList<>();
|
||||
if (listBaseResponse.code == 200) forceDownloadData.addAll(listBaseResponse.data);
|
||||
if (listBaseResponse2.code == 200) forceDownloadData.addAll(listBaseResponse2.data);
|
||||
return forceDownloadData;
|
||||
}
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(getForceDownloadListObserver(callback));
|
||||
}
|
||||
|
||||
public void getForceDownload() {
|
||||
getForceDownloadObservable()
|
||||
.subscribe(getForceDownloadObserver(null));
|
||||
// getForceDownloadObservable()
|
||||
// .subscribe(getForceDownloadObserver(null));
|
||||
Observable.zip(getForceDownloadObservable(), getGroupForceDownloadObservable(), new BiFunction<BaseResponse<List<ForceDownloadData>>,
|
||||
BaseResponse<List<ForceDownloadData>>, List<ForceDownloadData>>() {
|
||||
@Override
|
||||
public List<ForceDownloadData> apply(BaseResponse<List<ForceDownloadData>> listBaseResponse, BaseResponse<List<ForceDownloadData>> listBaseResponse2) throws Throwable {
|
||||
List<ForceDownloadData> forceDownloadData = new ArrayList<>();
|
||||
if (listBaseResponse.code == 200) forceDownloadData.addAll(listBaseResponse.data);
|
||||
if (listBaseResponse2.code == 200) forceDownloadData.addAll(listBaseResponse2.data);
|
||||
return forceDownloadData;
|
||||
}
|
||||
})
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(getForceDownloadListObserver(null));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private Observer<BaseResponse<List<ForceDownloadData>>> getForceDownloadObserver(onCompleteCallback callback) {
|
||||
return new Observer<BaseResponse<List<ForceDownloadData>>>() {
|
||||
@Override
|
||||
@@ -1261,8 +1311,7 @@ public class NetInterfaceManager {
|
||||
Aria.download(this).resumeAllTask();
|
||||
JgyUtils.getInstance().forceDownload(forceDownloadData);
|
||||
List<String> forceApp = forceDownloadData.stream().map(ForceDownloadData::getApp_package).collect(Collectors.toList());
|
||||
boolean aole_force_app = Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP,
|
||||
String.join(",", forceApp));
|
||||
boolean aole_force_app = Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, String.join(",", forceApp));
|
||||
Log.e("getForceDownload", "aole_force_app:" + aole_force_app);
|
||||
} else if (forceDownloadBean.code == -200) {
|
||||
cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, "");
|
||||
@@ -1290,6 +1339,47 @@ public class NetInterfaceManager {
|
||||
};
|
||||
}
|
||||
|
||||
private Observer<List<ForceDownloadData>> getForceDownloadListObserver(onCompleteCallback callback) {
|
||||
return new Observer<List<ForceDownloadData>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
Log.e("getForceDownload", "onSubscribe: ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull List<ForceDownloadData> forceDownloadBean) {
|
||||
Log.e("getForceDownload", "onNext: " + forceDownloadBean);
|
||||
if (forceDownloadBean != null && !forceDownloadBean.isEmpty()) {
|
||||
Log.e("getForceDownload", "onNext: getAsString: " + cacheHelper.getAsString(UrlAddress.GET_FORCE_INSTALL_LIST));
|
||||
cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, GsonUtils.toJSONString(forceDownloadBean));
|
||||
Aria.download(this).resumeAllTask();
|
||||
JgyUtils.getInstance().forceDownload(forceDownloadBean);
|
||||
List<String> forceApp = forceDownloadBean.stream().map(ForceDownloadData::getApp_package).collect(Collectors.toList());
|
||||
boolean aole_force_app = Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, String.join(",", forceApp));
|
||||
Log.e("getForceDownload", "aole_force_app:" + aole_force_app);
|
||||
} else {
|
||||
cacheHelper.put(UrlAddress.GET_FORCE_INSTALL_LIST, "");
|
||||
boolean aole_force_app = Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, "invalid");
|
||||
Log.e("getForceDownload", "aole_force_app:" + aole_force_app);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
Log.e("getForceDownload", "onError: " + e.getMessage());
|
||||
onComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
Log.e("getForceDownload", "onComplete: ");
|
||||
if (callback != null) {
|
||||
callback.onComplete();
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void getDefaultDesktop(boolean refresh, BehaviorSubject<ActivityEvent> lifecycle, onCompleteCallback callback) {
|
||||
ConnectMode connectMode = ConnectMode.ONE_MINUTE;
|
||||
if (refresh) {
|
||||
@@ -2529,6 +2619,9 @@ public class NetInterfaceManager {
|
||||
if (response.code == OK) {
|
||||
cacheHelper.put(UrlAddress.GET_DEVICES_TAGS, GsonUtils.toJSONString(response.data));
|
||||
String batch = response.data.getBatch();
|
||||
Set<String> groupTag = response.data.getGroup_en_name();
|
||||
mMMKV.encode(CommonConfig.DEVICES_GROUP_TAG, groupTag);
|
||||
tags.addAll(groupTag);
|
||||
Log.e("setPushTags", "onNext: " + batch);
|
||||
String lastBatch = mMMKV.decodeString(CommonConfig.DEVICES_TAG, "");
|
||||
if (!lastBatch.equals(batch)) {
|
||||
@@ -2548,6 +2641,7 @@ public class NetInterfaceManager {
|
||||
}
|
||||
} else {
|
||||
mMMKV.encode(CommonConfig.DEVICES_TAG, "");
|
||||
mMMKV.remove(CommonConfig.DEVICES_GROUP_TAG);
|
||||
cacheHelper.put(UrlAddress.GET_DEVICES_TAGS, "");
|
||||
if (callback != null)
|
||||
callback.setPushTag("");
|
||||
@@ -2560,8 +2654,11 @@ 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", "tagSets: " + batch);
|
||||
Log.e("setPushTags", "onError: tagSets = " + batch);
|
||||
Set<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
|
||||
Log.e("setPushTags", "onError: groupTagSets = " + groupTagSets);
|
||||
Set<String> tags = new HashSet<>();
|
||||
tags.addAll(groupTagSets);
|
||||
if (!TextUtils.isEmpty(batch)) {
|
||||
tags.add(batch);
|
||||
}
|
||||
|
||||
@@ -32,6 +32,9 @@ public class UrlAddress {
|
||||
public static final String CHECK_UPDATE = "Silent/silent";
|
||||
/*获取测试app*/
|
||||
public static final String GET_SN_APP_TEST = "Sn/getSnAppTest";
|
||||
/*电子围栏*/
|
||||
public static final String GET_SN_EFENCE = "android/sn/efence";
|
||||
|
||||
/*应用白名单*/
|
||||
public static final String SET_WHITE_PACKAGE_LIST = "firmware/index";
|
||||
/*获取全部应用*/
|
||||
|
||||
@@ -10,9 +10,14 @@ import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
public interface CheckTestUpdateApi {
|
||||
public interface SnApi {
|
||||
@GET(UrlAddress.GET_SN_APP_TEST)
|
||||
Observable<BaseResponse<List<ForceDownloadData>>> getTestUpdate(
|
||||
@Query("sn") String sn
|
||||
);
|
||||
|
||||
@GET(UrlAddress.GET_SN_EFENCE)
|
||||
Observable<BaseResponse> geElectronicFence(
|
||||
@Query("sn") String sn
|
||||
);
|
||||
}
|
||||
@@ -9,7 +9,9 @@ import java.util.List;
|
||||
import io.reactivex.rxjava3.core.Observable;
|
||||
import retrofit2.http.Field;
|
||||
import retrofit2.http.FormUrlEncoded;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
public interface ForceDownloadApi {
|
||||
@FormUrlEncoded
|
||||
@@ -19,11 +21,10 @@ public interface ForceDownloadApi {
|
||||
@Field("sn") String sn
|
||||
);
|
||||
|
||||
@FormUrlEncoded
|
||||
@POST(UrlAddress.GROUP_APP_INSTALL_LIST)
|
||||
@GET(UrlAddress.GROUP_APP_INSTALL_LIST)
|
||||
Observable<BaseResponse<List<ForceDownloadData>>> getGroupForceDownloadApi(
|
||||
@Field("key") String key,
|
||||
@Field("sn") String sn
|
||||
@Query("key") String key,
|
||||
@Query("sn") String sn
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.view.WindowManager;
|
||||
|
||||
import com.aoleyun.sn.R;
|
||||
import com.aoleyun.sn.activity.main.MainActivity;
|
||||
import com.aoleyun.sn.bean.ApkInfoPush;
|
||||
import com.aoleyun.sn.bean.BaseResponse;
|
||||
import com.aoleyun.sn.bean.BatteryInfo;
|
||||
import com.aoleyun.sn.bean.DownloadInfo;
|
||||
@@ -266,12 +267,19 @@ public class PushManager {
|
||||
private static final String GROUP_APP_INSTALL = "80";
|
||||
/*分组应用卸载*/
|
||||
private static final String GROUP_APP_UNINSTALL = "81";
|
||||
/*电子围栏*/
|
||||
private static final String ELECTRONIC_FENCE = "82";
|
||||
|
||||
|
||||
public void setPushContent(String title, String extras) {
|
||||
switch (title) {
|
||||
case MSG_DELETE:
|
||||
Toaster.debugShow("收到管控:应用删除");
|
||||
deleteApp(extras);
|
||||
if (!TextUtils.isEmpty(extras)) {
|
||||
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
|
||||
String pkg = jsonObject.get("package_name").getAsString();
|
||||
deleteApp(pkg);
|
||||
}
|
||||
break;
|
||||
case MSG_SETTING:
|
||||
Toaster.debugShow("收到管控:系统设置");
|
||||
@@ -308,6 +316,7 @@ public class PushManager {
|
||||
|
||||
sendRefreshBroadcast(mContext);
|
||||
break;
|
||||
|
||||
case MSG_INSTALL:
|
||||
Toaster.debugShow("收到管控:应用安装");
|
||||
doDownloadAndInstall(extras);
|
||||
@@ -341,26 +350,9 @@ public class PushManager {
|
||||
NetInterfaceManager.getInstance().sendAppUsedTime(random, sendType);
|
||||
break;
|
||||
case GET_FORCEDOWNLOADURL:
|
||||
case GROUP_APP_INSTALL:
|
||||
Toaster.debugShow("收到管控:应用强制安装");
|
||||
File file = new File(JgyUtils.getInstance().getDownLoadPath());
|
||||
if (!file.exists()) {
|
||||
file.mkdirs();
|
||||
}
|
||||
if (TextUtils.isEmpty(extras)) {
|
||||
Log.e(TAG, "settingNetControl extras is null");
|
||||
return;
|
||||
}
|
||||
JsonObject extra = GsonUtils.getJsonObject(extras);
|
||||
String app_name = extra.get("app_name").getAsString();
|
||||
String app_package = extra.get("package").getAsString();
|
||||
String url = extra.get("url").getAsString();
|
||||
int versionCode = extra.get("version_code").getAsInt();
|
||||
String app_id = extra.get("app_id").getAsString();
|
||||
JsonObject packageObj = new JsonObject();
|
||||
packageObj.addProperty("app_name", app_name);
|
||||
packageObj.addProperty("app_package", app_package);
|
||||
packageObj.addProperty("app_id", app_id);
|
||||
Utils.ariaDownload(mContext, url, packageObj);
|
||||
downloadForceInstallApk(extras);
|
||||
break;
|
||||
case SET_HOMEPAG_TAG:
|
||||
Handler.getMain().postDelayed(new Runnable() {
|
||||
@@ -558,6 +550,7 @@ public class PushManager {
|
||||
NetInterfaceManager.getInstance().getAppLimit();
|
||||
break;
|
||||
case UPDATE_BATCH:
|
||||
case UPDATE_CHILD_BATCH:
|
||||
Toaster.debugShow("收到管控:更换批次不恢复出厂设置");
|
||||
NetInterfaceManager.getInstance().setPushTags();
|
||||
Aria.download(this).removeAllTask(true);
|
||||
@@ -681,16 +674,34 @@ public class PushManager {
|
||||
case SET_WALLPAPER:
|
||||
setWallpaper(extras);
|
||||
break;
|
||||
case UPDATE_CHILD_BATCH:
|
||||
break;
|
||||
case GROUP_APP_INSTALL:
|
||||
break;
|
||||
case GROUP_APP_UNINSTALL:
|
||||
Toaster.debugShow("收到管控:应用删除");
|
||||
if (!TextUtils.isEmpty(extras)) {
|
||||
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
|
||||
String pkg = jsonObject.get("app_package").getAsString();
|
||||
deleteApp(pkg);
|
||||
}
|
||||
case ELECTRONIC_FENCE:
|
||||
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
private void downloadForceInstallApk(String extras) {
|
||||
File file = new File(JgyUtils.getInstance().getDownLoadPath());
|
||||
if (!file.exists()) {
|
||||
file.mkdirs();
|
||||
}
|
||||
if (TextUtils.isEmpty(extras)) {
|
||||
Log.e(TAG, "settingNetControl extras is null");
|
||||
return;
|
||||
}
|
||||
ApkInfoPush apkInfoPush = GsonUtils.toJavaObject(extras, ApkInfoPush.class);
|
||||
JsonObject packageObj = GsonUtils.getJsonObject(GsonUtils.toJSONString(apkInfoPush));
|
||||
Utils.ariaDownload(mContext, apkInfoPush.getApp_url(), packageObj);
|
||||
}
|
||||
|
||||
private void setWallpaper(String extras) {
|
||||
NetInterfaceManager.getInstance().getWallpaper();
|
||||
}
|
||||
@@ -705,23 +716,20 @@ public class PushManager {
|
||||
NetInterfaceManager.getInstance().getCloudLessonSettings();
|
||||
}
|
||||
|
||||
private void deleteApp(String extras) {
|
||||
if (!TextUtils.isEmpty(extras)) {
|
||||
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
|
||||
String pkg = jsonObject.get("package_name").getAsString();
|
||||
if (TextUtils.isEmpty(pkg)) return;
|
||||
String forceApp = Settings.System.getString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP);
|
||||
if (!TextUtils.isEmpty(forceApp)) {
|
||||
List<String> forceAppList = new ArrayList<>(Arrays.asList(forceApp.split(",")));
|
||||
forceAppList.remove(pkg);
|
||||
if (forceAppList.size() != 0) {
|
||||
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, String.join(",", forceAppList));
|
||||
} else {
|
||||
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, "");
|
||||
}
|
||||
private void deleteApp(String pkg) {
|
||||
Log.e(TAG, "deleteApp: " + pkg);
|
||||
if (TextUtils.isEmpty(pkg)) return;
|
||||
String forceApp = Settings.System.getString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP);
|
||||
if (!TextUtils.isEmpty(forceApp)) {
|
||||
List<String> forceAppList = new ArrayList<>(Arrays.asList(forceApp.split(",")));
|
||||
forceAppList.remove(pkg);
|
||||
if (forceAppList.size() != 0) {
|
||||
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, String.join(",", forceAppList));
|
||||
} else {
|
||||
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_FORCE_APP, "");
|
||||
}
|
||||
ApkUtils.UninstallAPP(mContext, pkg);
|
||||
}
|
||||
ApkUtils.UninstallAPP(mContext, pkg);
|
||||
Handler.getMain().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -41,7 +41,8 @@ public class MainSContact {
|
||||
void getRomApp();
|
||||
/*获取屏幕锁状态*/
|
||||
void getScreenLockState();
|
||||
|
||||
/*电子围栏*/
|
||||
void geteFence();
|
||||
|
||||
/*分支5 根据批次获取*/
|
||||
/*获取设备后台设置*/
|
||||
@@ -129,6 +130,8 @@ public class MainSContact {
|
||||
void getRomAppFinish();
|
||||
/*设置屏幕锁状态结束*/
|
||||
void setScreenLockStateFinish(boolean locked, String tips);
|
||||
/*获取电子围栏结束*/
|
||||
void geteFenceFinish();
|
||||
|
||||
/*设置设备后台设置*/
|
||||
void setSystemSetting();
|
||||
|
||||
@@ -116,10 +116,13 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
}
|
||||
});
|
||||
String tagSets = mMMKV.decodeString(CommonConfig.DEVICES_TAG);
|
||||
Log.e("setPushTags", "onComplete: tagSets =" + tagSets);
|
||||
Log.e(TAG, "setPushTags: tagSets =" + tagSets);
|
||||
Set<String> groupTagSets = mMMKV.decodeStringSet(CommonConfig.DEVICES_GROUP_TAG, new HashSet<>());
|
||||
Log.e(TAG, "setPushTags: groupTagSets = " + groupTagSets);
|
||||
String tagstring = cacheHelper.getAsString(UrlAddress.GET_DEVICES_TAGS);
|
||||
Log.e("setPushTags", "onComplete: tags = " + tagstring);
|
||||
Log.e(TAG, "setPushTags: tagstring = " + tagstring);
|
||||
Set<String> tags = new HashSet<>();
|
||||
tags.addAll(groupTagSets);
|
||||
if (!TextUtils.isEmpty(tagSets)) {
|
||||
tags.add(tagSets);
|
||||
}
|
||||
@@ -324,6 +327,16 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void geteFence() {
|
||||
NetInterfaceManager.getInstance().geElectronicFence(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
mView.geteFenceFinish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSystemSettingBegin() {
|
||||
//重置设备
|
||||
@@ -335,7 +348,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
@Override
|
||||
public void getAppLimit() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getAppLimit( getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
|
||||
.getAppLimit(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
mView.getAppLimitFinish();
|
||||
@@ -346,7 +359,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
@Override
|
||||
public void getForceDownload() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.getForceDownload(true, getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
|
||||
.getForceDownload(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
mView.getForceDownloadFinish();
|
||||
@@ -492,7 +505,7 @@ public class MainSPresenter implements MainSContact.Presenter {
|
||||
@Override
|
||||
public void getSystemSetting() {
|
||||
NetInterfaceManager.getInstance()
|
||||
.setSystemSetting( getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
|
||||
.setSystemSetting(getLifecycle(), new NetInterfaceManager.onCompleteCallback() {
|
||||
@Override
|
||||
public void onComplete() {
|
||||
mView.getSystemSettingFinish();
|
||||
|
||||
@@ -1214,6 +1214,12 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
|
||||
SPUtils.put(this, "is_screen_lock", false);
|
||||
SPUtils.put(this, "screen_tips", "");
|
||||
}
|
||||
mPresenter.geteFence();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void geteFenceFinish() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1535,7 +1535,7 @@ public class JgyUtils {
|
||||
packageInfo = pm.getPackageInfo(app_package, 0);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
Log.e("fht", "forceDownload=" + e.getMessage());
|
||||
Log.e("forceDownload", "forceDownload=" + e.getMessage());
|
||||
}
|
||||
if (packageInfo != null) {
|
||||
long appVersionCode;
|
||||
@@ -1545,11 +1545,11 @@ public class JgyUtils {
|
||||
appVersionCode = packageInfo.versionCode;
|
||||
}
|
||||
if (app_version_code > appVersionCode) {
|
||||
Log.e("fht ", "download URL " + app_url);
|
||||
Log.e("forceDownload ", "download URL " + app_url);
|
||||
Utils.ariaDownload(mContext, app_url, jsonObject);
|
||||
}
|
||||
} else {
|
||||
Log.e("fht ", "download URL " + app_url);
|
||||
Log.e("forceDownload ", "download URL " + app_url);
|
||||
Utils.ariaDownload(mContext, app_url, jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user