version:3.2.3

fix:
update:更新获取管控标签
This commit is contained in:
2024-05-30 10:45:55 +08:00
parent ac0ec1feee
commit d4f699a7c7
11 changed files with 243 additions and 22 deletions

View File

@@ -74,8 +74,8 @@ android {
official {
flavorDimensions "default"
versionCode 60
versionName "3.2.0"
versionCode 63
versionName "3.2.3"
}
}

View File

@@ -144,13 +144,13 @@ public class BaseApplication extends Application {
XGPushManager.upsertAccounts(getApplicationContext(), accountInfoList, new XGIOperateCallback() {
@Override
public void onSuccess(Object data, int flag) {
Log.e("TPush", "onSuccess, data:" + data + ", flag:" + flag);
Log.e("TPush", "upsertAccounts onSuccess, data:" + data + ", flag:" + flag);
NetInterfaceManager.getInstance().setPushTags();
}
@Override
public void onFail(Object data, int errCode, String msg) {
Log.e("TPush", "onFail, data:" + data + ", code:" + errCode + ", msg:" + msg);
Log.e("TPush", "upsertAccounts onFail, data:" + data + ", code:" + errCode + ", msg:" + msg);
}
});
}

View File

@@ -0,0 +1,26 @@
package com.fuying.sn.bean;
import java.io.Serializable;
public class SnTag implements Serializable {
private static final long serialVersionUID = 6500345740999734355L;
String sn;
String tagName;
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getTagName() {
return tagName;
}
public void setTagName(String tagName) {
this.tagName = tagName;
}
}

View File

@@ -1044,7 +1044,7 @@ public class RunningAppManager {
ToastUtil.show("整机可用时间已用完");
return true;
} else {
ToastUtil.show("整机可用时间有剩余");
Log.e(TAG, "inControlTime: machineControl " + "整机可用时间有剩余");
return false;
}
}
@@ -1055,7 +1055,7 @@ public class RunningAppManager {
ToastUtil.show("整机可用时间已用完");
return true;
} else {
ToastUtil.show("整机可用时间有剩余");
Log.e(TAG, "inControlTime: machineControl " + "整机可用时间有剩余");
return false;
}
}

View File

@@ -34,6 +34,7 @@ import com.fuying.sn.bean.ScreenPassword;
import com.fuying.sn.bean.SnBindState;
import com.fuying.sn.bean.SnInfo;
import com.fuying.sn.bean.SnRunLog;
import com.fuying.sn.bean.SnTag;
import com.fuying.sn.bean.SystemSettingsSet;
import com.fuying.sn.bean.UserAvatarInfo;
import com.fuying.sn.bean.browser.BrowserApiData;
@@ -80,6 +81,7 @@ import com.fuying.sn.network.api.ScreenLock;
import com.fuying.sn.network.api.ScreenState;
import com.fuying.sn.network.api.Setting;
import com.fuying.sn.network.api.SnBindApi;
import com.fuying.sn.network.api.SnTagApi;
import com.fuying.sn.network.api.TimeControl;
import com.fuying.sn.network.api.UpdateAdminSn;
import com.fuying.sn.network.api.UpdateLockScreen;
@@ -117,7 +119,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
@@ -482,6 +483,15 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
public Observable<BaseResponse<SnTag>> getSnTag() {
return mRetrofit.create(SnTagApi.class)
.getTag(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
/*
*
* execution
@@ -702,21 +712,64 @@ public class NetInterfaceManager {
clearAndAppendTags(set);
}
private void clearAndAppendTags(Set tagSets) {
XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagSets, new XGIOperateCallback() {
public void setPushTags(String tag) {
Set<String> set = new HashSet<>();
set.add(tag);
JGYUtils.getInstance().getAppPlatform(platform -> {
if (platform == JGYUtils.MTKPlatform) {
set.add(JGYUtils.MTKTag);
} else if (platform == JGYUtils.ZhanruiPlatform) {
set.add(JGYUtils.ZhanruiTag);
} else if (platform == JGYUtils.M40sePlatform) {
set.add(JGYUtils.M40SETag);
} else if (platform == JGYUtils.T30ProPlatform) {
set.add(JGYUtils.T30PROTag);
} else if (platform == JGYUtils.MTK8515Platform) {
set.add(JGYUtils.MTK8515Tag);
} else if (platform == JGYUtils.G13Platform) {
set.add(JGYUtils.G13Tag);
} else if (platform == JGYUtils.G6Platform) {
set.add(JGYUtils.G6Tag);
} else if (platform == JGYUtils.iPlay50SEPlatform) {
set.add(JGYUtils.iPlay50SETag);
}
});
XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), set, new XGIOperateCallback() {
@Override
public void onSuccess(Object o, int i) {
Log.e("setPushTags", "onSuccess: " + o);
Log.e("clearAndAppendTags", "onSuccess: " + o + " tag " + set);
}
@Override
public void onFail(Object o, int i, String s) {
Log.e("setPushTags", "onFail: " + o);
Log.e("clearAndAppendTags", "onFail: " + o);
}
});
}
List<String> showPackages = new ArrayList<String>() {{
private void clearAndAppendTags(Set<String> tagSets) {
getTag(new TagCallback() {
@Override
public void setTag(String tag) {
if (!TextUtils.isEmpty(tag)) {
tagSets.add(tag);
}
XGPushManager.clearAndAppendTags(mContext, "clearAndAppendTags :" + System.currentTimeMillis(), tagSets, new XGIOperateCallback() {
@Override
public void onSuccess(Object o, int i) {
Log.e("clearAndAppendTags", "onSuccess: " + o + " tag " + tagSets);
}
@Override
public void onFail(Object o, int i, String s) {
Log.e("clearAndAppendTags", "onFail: " + o);
}
});
}
});
}
private List<String> showPackages = new ArrayList<String>() {{
this.add("com.uiui.browser");
this.add("com.uiui.aios");
this.add("com.uiui.os");
@@ -1959,7 +2012,7 @@ public class NetInterfaceManager {
if (temp.size() == 0 && ApkUtils.isAvailable(mContext, "com.alibaba.android.rimet")) {
Log.e("getForceInstall", "onNext: uninstall dingtalk");
ApkUtils.uninstallApp(mContext, "com.alibaba.android.rimet");
}else {
} else {
Log.e("getForceInstall", "onNext: dingtalk force");
}
}
@@ -2630,7 +2683,7 @@ public class NetInterfaceManager {
Log.e(TAG, "installOverallApp: " + packageList);
for (OverallAppBean overallAppBean : overallAppBeanList) {
String packages = overallAppBean.getApp_package();
if (JGYUtils.fuyingApp.contains(packages)) {
if (!JGYUtils.mGlobalUpdatePkgs.contains(packages)) {
continue;
}
String url = overallAppBean.getApp_url();
@@ -2653,13 +2706,13 @@ public class NetInterfaceManager {
appVersionCode = info.versionCode;
}
if (appVersionCode < app_version_code) {
Log.e(TAG, "installOverallApp: " + "need to upgrade");
Log.e(TAG, "installOverallApp: " + packages + " need to upgrade");
FileUtils.ariaDownload(mContext, url, GsonUtils.getJsonObject(overallAppBean.toString()));
} else {
Log.e(TAG, "installOverallApp: " + "it's up to date , no need upgrade");
Log.e(TAG, "installOverallApp: " + packages + " it's up to date , no need upgrade");
}
} else {
Log.e(TAG, "installOverallApp: " + "not installed , upgrade");
Log.e(TAG, "installOverallApp: " + packages + " not installed , upgrade");
FileUtils.ariaDownload(mContext, url, GsonUtils.getJsonObject(overallAppBean.toString()));
}
}
@@ -2838,6 +2891,8 @@ public class NetInterfaceManager {
Observable.zip(getQueryAllAppControl(), getAdminAppObservable(), new BiFunction<BaseResponse<List<AppInfo>>, BaseResponse<List<AppInfo>>, HashSet<AppInfo>>() {
@Override
public HashSet<AppInfo> apply(BaseResponse<List<AppInfo>> listBaseResponse1, BaseResponse<List<AppInfo>> listBaseResponse2) throws Throwable {
Log.e("getAppWhiteList", "listBaseResponse1: " + listBaseResponse1);
Log.e("getAppWhiteList", "listBaseResponse2: " + listBaseResponse2);
HashSet<AppInfo> appInfos = new HashSet<>();
if (listBaseResponse1.code == 200) {
List<AppInfo> appInfos1 = listBaseResponse1.data;
@@ -3100,4 +3155,42 @@ public class NetInterfaceManager {
}
});
}
public interface TagCallback {
void setTag(String tag);
}
public void getTag(TagCallback callback) {
getSnTag()
// .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
.subscribe(new Observer<BaseResponse<SnTag>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getTag", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<SnTag> baseResponse) {
Log.e("getTag", "onNext: " + baseResponse);
if (baseResponse.code == 200) {
SnTag snTag = baseResponse.data;
callback.setTag(snTag.getTagName());
} else {
callback.setTag("");
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getTag", "onError: " + e.getMessage());
callback.setTag("");
onComplete();
}
@Override
public void onComplete() {
Log.e("getTag", "onComplete: ");
}
});
}
}

View File

@@ -32,6 +32,8 @@ public class UrlAddress {
/*获取批次*/
public static final String GET_BATCH = "sn/getBatch";
/*获取标签*/
public static final String GET_TAG = "sn/get-tag";
/*设备信息接口*/
public static final String SNINFO = "sn/getSnInfo";

View File

@@ -0,0 +1,17 @@
package com.fuying.sn.network.api;
import com.fuying.sn.bean.BaseResponse;
import com.fuying.sn.bean.SnTag;
import com.fuying.sn.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;
public interface SnTagApi {
@GET(UrlAddress.GET_TAG)
Observable<BaseResponse<SnTag>> getTag(
@Query("sn") String sn
// @QueryMap Map<String, String> params
);
}

View File

@@ -48,17 +48,18 @@ public class RemoteService extends Service {
//token在设备卸载重装的时候有可能会变
Log.e("TPush", "注册成功设备token为" + data);
List<XGPushManager.AccountInfo> accountInfoList = new ArrayList<>();
Log.e("TPush", "onSuccess: " + Utils.getSerial());
accountInfoList.add(new XGPushManager.AccountInfo(XGPushManager.AccountType.CUSTOM.getValue(), Utils.getSerial()));
XGPushManager.upsertAccounts(RemoteService.this, accountInfoList, new XGIOperateCallback() {
@Override
public void onSuccess(Object data, int flag) {
Log.e("TPush", "onSuccess, data:" + data + ", flag:" + flag);
Log.e("TPush", "upsertAccounts onSuccess, data:" + data + ", flag:" + flag);
NetInterfaceManager.getInstance().setPushTags();
}
@Override
public void onFail(Object data, int errCode, String msg) {
Log.e("TPush", "onFail, data:" + data + ", code:" + errCode + ", msg:" + msg);
Log.e("TPush", "upsertAccounts onFail, data:" + data + ", code:" + errCode + ", msg:" + msg);
}
});
}

View File

@@ -122,6 +122,9 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
// NetInterfaceManager.getInstance().updateAdminInfo();
if (JGYUtils.getInstance().isScreenOn()) {
Log.e(TAG, "getSnInfo1");
NetInterfaceManager.getInstance().getAppWhiteList(() -> {
Log.e("onConnected", "onNext: getAppWhiteList");
});
mPresenter.getSnInfo();
mPresenter.getAppAndWhite();
SPUtils.put(MainService.this, CommonConfig.JGY_FIRST_BOOT, 1);
@@ -323,17 +326,18 @@ public class MainService extends Service implements MainSContact.MainView, Netwo
//token在设备卸载重装的时候有可能会变
Log.e("TPush", "注册成功设备token为" + data);
List<XGPushManager.AccountInfo> accountInfoList = new ArrayList<>();
Log.e("TPush", "onSuccess: " + Utils.getSerial());
accountInfoList.add(new XGPushManager.AccountInfo(XGPushManager.AccountType.CUSTOM.getValue(), Utils.getSerial()));
XGPushManager.upsertAccounts(MainService.this, accountInfoList, new XGIOperateCallback() {
@Override
public void onSuccess(Object data, int flag) {
Log.e("TPush", "onSuccess, data:" + data + ", flag:" + flag);
Log.e("TPush", "upsertAccounts onSuccess, data:" + data + ", flag:" + flag);
NetInterfaceManager.getInstance().setPushTags();
}
@Override
public void onFail(Object data, int errCode, String msg) {
Log.e("TPush", "onFail, data:" + data + ", code:" + errCode + ", msg:" + msg);
Log.e("TPush", "upsertAccounts onFail, data:" + data + ", code:" + errCode + ", msg:" + msg);
}
});
}

View File

@@ -65,6 +65,7 @@ import java.util.Arrays;
import java.util.Calendar;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -486,6 +487,13 @@ public class MessageReceiver extends XGPushBaseReceiver {
private static final String SN_RUN_LOG = "84";
/*一键断网*/
private static final String ACTION_DISABLE_NETWORK = "85";
/*添加标签*/
private static final String SN_ADD_TAG = "87";
/*删除标签*/
private static final String SN_DELETE_TAG = "88";
/*添加应用*/
private static final String ADD_APK = "89";
private void processCustomMessage(Context context, XGPushTextMessage message) {
if (context == null || message == null) {
@@ -809,10 +817,56 @@ public class MessageReceiver extends XGPushBaseReceiver {
ToastUtil.debugShow("收到推送消息: 一键断网");
oneKeyNetwork(context, extras);
break;
case SN_ADD_TAG:
addTag(extras);
break;
case SN_DELETE_TAG:
deleteTag(extras);
break;
case ADD_APK:
addApkToWhiteList(extras);
break;
default:
}
}
private void addApkToWhiteList(String extras) {
Random random = new Random();
//避免同时请求
int number = random.nextInt(10000);
Log.e(TAG, "addApkToWhiteList: Random " + number);
Handler.getMain().postDelayed(new Runnable() {
@Override
public void run() {
NetInterfaceManager.getInstance().getAppWhiteList(new NetInterfaceManager.WhiteListCallback() {
@Override
public void onComplet() {
Log.e("getAppWhiteList", "onComplet: ");
}
});
}
}, number);
}
private void deleteTag(String extras) {
NetInterfaceManager.getInstance().setPushTags();
}
private void addTag(String extras) {
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
try {
String tag_name = jsonObject.get("tag_name").getAsString();
Log.e(TAG, "addTag: " + tag_name);
if (!TextUtils.isEmpty(tag_name)) {
NetInterfaceManager.getInstance().setPushTags(tag_name);
}
} catch (Exception e) {
Log.e(TAG, "addTag: " + e.getMessage());
}
}
private void setAdminApp(Context context, String extras) {
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
int setting_admin_app = jsonObject.get("setting_admin_app").getAsInt();
@@ -822,7 +876,6 @@ public class MessageReceiver extends XGPushBaseReceiver {
private void setZenMode(Context context, String extras) {
JsonObject jsonObject = GsonUtils.getJsonObject(extras);
int setting_disturbance = jsonObject.get("setting_disturbance").getAsInt();
}
private void setRotationLock(Context context, String extras) {
@@ -1002,6 +1055,7 @@ public class MessageReceiver extends XGPushBaseReceiver {
}
JsonObject extra = GsonUtils.getJsonObject(jsonString);
String packages = extra.get("package").getAsString();
JGYUtils.getInstance().addPkgToForbid(packages);
ToastUtil.debugShow("收到应用安装消息:包名" + packages);
String url = extra.get("url").getAsString();
if (TextUtils.isEmpty(url)) {

View File

@@ -180,6 +180,11 @@ public class JGYUtils {
this.add(word);
}};
public static Set<String> mGlobalUpdatePkgs = new HashSet<String>() {{
this.add("com.fuying.sn");
this.add("com.fuying.appstore");
}};
public static final String FUXIAOYING_KEY = "fuxiaoying_update_key";
@@ -1439,4 +1444,23 @@ public class JGYUtils {
}
/**
* @param pkg 添加包名到白名单
*/
public void addPkgToForbid(String pkg) {
Log.e(TAG, "addPkgToForbid: " + pkg);
if (TextUtils.isEmpty(pkg)) {
return;
}
String aole_app_forbid = Settings.System.getString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID);
if (TextUtils.isEmpty(aole_app_forbid)) {
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID, pkg);
} else {
Set<String> pkgSet = new HashSet<>(Arrays.asList(aole_app_forbid.split(",")));
pkgSet.add(pkg);
Settings.System.putString(mContext.getContentResolver(), CommonConfig.AOLE_ACTION_APP_FORBID, String.join(",", pkgSet));
}
}
}