From d4f699a7c7542b2034aef90ee7cc0b2ae6b63cbf Mon Sep 17 00:00:00 2001 From: Fanhuitong <981964879@qq.com> Date: Thu, 30 May 2024 10:45:55 +0800 Subject: [PATCH] =?UTF-8?q?version:3.2.3=20fix:=20update:=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=8E=B7=E5=8F=96=E7=AE=A1=E6=8E=A7=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../com/fuying/sn/base/BaseApplication.java | 4 +- .../main/java/com/fuying/sn/bean/SnTag.java | 26 ++++ .../fuying/sn/desktop/RunningAppManager.java | 4 +- .../sn/network/NetInterfaceManager.java | 115 ++++++++++++++++-- .../com/fuying/sn/network/UrlAddress.java | 2 + .../com/fuying/sn/network/api/SnTagApi.java | 17 +++ .../com/fuying/sn/service/RemoteService.java | 5 +- .../fuying/sn/service/main/MainService.java | 8 +- .../com/fuying/sn/tpush/MessageReceiver.java | 56 ++++++++- .../java/com/fuying/sn/utils/JGYUtils.java | 24 ++++ 11 files changed, 243 insertions(+), 22 deletions(-) create mode 100644 app/src/main/java/com/fuying/sn/bean/SnTag.java create mode 100644 app/src/main/java/com/fuying/sn/network/api/SnTagApi.java diff --git a/app/build.gradle b/app/build.gradle index ce7f8c7..f7b0575 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -74,8 +74,8 @@ android { official { flavorDimensions "default" - versionCode 60 - versionName "3.2.0" + versionCode 63 + versionName "3.2.3" } } diff --git a/app/src/main/java/com/fuying/sn/base/BaseApplication.java b/app/src/main/java/com/fuying/sn/base/BaseApplication.java index 045c3dd..7d0f6f0 100644 --- a/app/src/main/java/com/fuying/sn/base/BaseApplication.java +++ b/app/src/main/java/com/fuying/sn/base/BaseApplication.java @@ -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); } }); } diff --git a/app/src/main/java/com/fuying/sn/bean/SnTag.java b/app/src/main/java/com/fuying/sn/bean/SnTag.java new file mode 100644 index 0000000..3f838eb --- /dev/null +++ b/app/src/main/java/com/fuying/sn/bean/SnTag.java @@ -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; + } +} diff --git a/app/src/main/java/com/fuying/sn/desktop/RunningAppManager.java b/app/src/main/java/com/fuying/sn/desktop/RunningAppManager.java index 1c1e238..5fa8eee 100644 --- a/app/src/main/java/com/fuying/sn/desktop/RunningAppManager.java +++ b/app/src/main/java/com/fuying/sn/desktop/RunningAppManager.java @@ -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; } } diff --git a/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java b/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java index bf1616d..257ee72 100644 --- a/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java @@ -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> 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 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 showPackages = new ArrayList() {{ + private void clearAndAppendTags(Set 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 showPackages = new ArrayList() {{ 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>, HashSet>() { @Override public HashSet apply(BaseResponse> listBaseResponse1, BaseResponse> listBaseResponse2) throws Throwable { + Log.e("getAppWhiteList", "listBaseResponse1: " + listBaseResponse1); + Log.e("getAppWhiteList", "listBaseResponse2: " + listBaseResponse2); HashSet appInfos = new HashSet<>(); if (listBaseResponse1.code == 200) { List 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>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getTag", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse 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: "); + } + }); + } } diff --git a/app/src/main/java/com/fuying/sn/network/UrlAddress.java b/app/src/main/java/com/fuying/sn/network/UrlAddress.java index a68c8a8..53b6d6a 100644 --- a/app/src/main/java/com/fuying/sn/network/UrlAddress.java +++ b/app/src/main/java/com/fuying/sn/network/UrlAddress.java @@ -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"; diff --git a/app/src/main/java/com/fuying/sn/network/api/SnTagApi.java b/app/src/main/java/com/fuying/sn/network/api/SnTagApi.java new file mode 100644 index 0000000..1b825ee --- /dev/null +++ b/app/src/main/java/com/fuying/sn/network/api/SnTagApi.java @@ -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> getTag( + @Query("sn") String sn +// @QueryMap Map params + ); +} diff --git a/app/src/main/java/com/fuying/sn/service/RemoteService.java b/app/src/main/java/com/fuying/sn/service/RemoteService.java index e155f95..81a1266 100644 --- a/app/src/main/java/com/fuying/sn/service/RemoteService.java +++ b/app/src/main/java/com/fuying/sn/service/RemoteService.java @@ -48,17 +48,18 @@ public class RemoteService extends Service { //token在设备卸载重装的时候有可能会变 Log.e("TPush", "注册成功,设备token为:" + data); List 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); } }); } diff --git a/app/src/main/java/com/fuying/sn/service/main/MainService.java b/app/src/main/java/com/fuying/sn/service/main/MainService.java index 9afbd08..0c21087 100644 --- a/app/src/main/java/com/fuying/sn/service/main/MainService.java +++ b/app/src/main/java/com/fuying/sn/service/main/MainService.java @@ -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 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); } }); } diff --git a/app/src/main/java/com/fuying/sn/tpush/MessageReceiver.java b/app/src/main/java/com/fuying/sn/tpush/MessageReceiver.java index 9d54942..b2c360b 100644 --- a/app/src/main/java/com/fuying/sn/tpush/MessageReceiver.java +++ b/app/src/main/java/com/fuying/sn/tpush/MessageReceiver.java @@ -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)) { diff --git a/app/src/main/java/com/fuying/sn/utils/JGYUtils.java b/app/src/main/java/com/fuying/sn/utils/JGYUtils.java index 76b9546..8a4064a 100644 --- a/app/src/main/java/com/fuying/sn/utils/JGYUtils.java +++ b/app/src/main/java/com/fuying/sn/utils/JGYUtils.java @@ -180,6 +180,11 @@ public class JGYUtils { this.add(word); }}; + public static Set mGlobalUpdatePkgs = new HashSet() {{ + 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 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)); + } + } + + }