From e5c4829e7e005617529e26a65784389f168c9e8d Mon Sep 17 00:00:00 2001 From: tongtongstudio Date: Thu, 2 Jul 2026 17:12:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=AE=89=E8=A3=85=EF=BC=8C=E5=8D=87=E7=BA=A7=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E9=85=8D=E7=BD=AE=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0MainService=E8=8E=B7=E5=8F=96=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=97=B6=E9=97=B4=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 20 ++++-- app/src/main/AndroidManifest.xml | 4 +- .../fuying/sn/manager/time/TimeManager.java | 21 +++++- .../sn/network/NetInterfaceManager.java | 65 ++++++++++++++++++- .../sn/receiver/APKinstallReceiver.java | 2 + .../com/fuying/sn/service/ManagerService.java | 8 +-- .../sn/service/main/MainSPresenter.java | 13 ++++ .../fuying/sn/service/main/MainService.java | 2 + 8 files changed, 122 insertions(+), 13 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9c35a2f..4769ee9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,6 @@ -apply plugin: 'com.android.application' +plugins { + id 'com.android.application' +} static def appName() { return "FLYSN" @@ -12,7 +14,7 @@ android { namespace "com.fuying.sn" compileSdkVersion 29 - buildToolsVersion "29.0.3" + buildToolsVersion "36.0.0" defaultConfig { minSdkVersion 26 @@ -59,17 +61,25 @@ android { buildConfigField "String", "ROOT_URL", '"https://fxyapi.17hxg.com/android/"' buildConfigField "String", "SCREEN_URL", '"https://fxyapi.17hxg.com:3018/wm/is_online"' // buildConfigField "String", "WEBSOCKET_URL", '"wss://47.111.23.154:3018"' + manifestPlaceholders = [ + ALIYUN_PUSH_KEY: "335685739", + ALIYUN_PUSH_SECRET: "713e04b35a6249fc979e3d1f74ad59fd" + ] } official { flavorDimensions "default" - versionCode 89 - versionName "3.4.9" + versionCode 92 + versionName "3.5.1" applicationId "com.fuying.sn" buildConfigField "String", "ROOT_URL", '"https://as.fuyingy.com/android/"' buildConfigField "String", "SCREEN_URL", '"https://as.fuyingy.com:3018/wm/is_online"' // buildConfigField "String", "WEBSOCKET_URL", '"wss://47.111.23.154:3018"' + manifestPlaceholders = [ + ALIYUN_PUSH_KEY: "335596359", + ALIYUN_PUSH_SECRET: "9995cad535ee42e99d299b3f0e18fcc6" + ] } } @@ -532,7 +542,7 @@ dependencies { //Java WebSocket implementation "org.java-websocket:Java-WebSocket:1.5.3" //MMKV - implementation 'com.tencent:mmkv-static:1.2.13' + implementation 'com.tencent:mmkv-static:2.4.0' //bugly implementation 'com.tencent.bugly:crashreport:4.1.9.2' // //腾讯移动推送 TPNS diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a804d45..cd2e493 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -269,12 +269,12 @@ + android:value="${ALIYUN_PUSH_KEY}" /> + android:value="${ALIYUN_PUSH_SECRET}" /> \ No newline at end of file diff --git a/app/src/main/java/com/fuying/sn/manager/time/TimeManager.java b/app/src/main/java/com/fuying/sn/manager/time/TimeManager.java index a6367de..aeb9e65 100644 --- a/app/src/main/java/com/fuying/sn/manager/time/TimeManager.java +++ b/app/src/main/java/com/fuying/sn/manager/time/TimeManager.java @@ -292,7 +292,7 @@ public class TimeManager { AppTimeControlInfo appInfo = mAppTimeControlMap.get(pkg); if (appInfo == null) { Log.w(TAG, "appCanRun: Application [" + pkg + "] is not in the controlled list. Blocking by default."); - Toaster.show("应用已被禁用"); + Toaster.show("获取应用设置失败"); return false; } @@ -543,6 +543,7 @@ public class TimeManager { @Override public void onNext(@NonNull BaseResponse> response) { + Log.e(TAG, "getAppTimeControlInfo onNext: " + response); if (response.code == 200 && response.data != null) { List list = response.data; mAppTimeControlMap = list.stream().collect(Collectors.toMap(AppTimeControlInfo::getApp_package, Function.identity(), (v1, v2) -> v1)); @@ -604,4 +605,22 @@ public class TimeManager { public void setGetSnTimeControlInfoSuccessful(boolean successful) { this.mGetSnTimeControlInfoSuccessful = successful; } + + public Map getAppTimeControlMap() { + return mAppTimeControlMap; + } + + public void setAppTimeControlMap(Map appTimeControlMap) { + mAppTimeControlMap = appTimeControlMap; + } + + public Map getRemainingTimeMap() { + return mRemainingTimeMap; + } + + public void setRemainingTimeMap(Map remainingTimeMap) { + mRemainingTimeMap = remainingTimeMap; + } + + } 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 3722c56..31a9d0d 100644 --- a/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/fuying/sn/network/NetInterfaceManager.java @@ -135,7 +135,7 @@ public class NetInterfaceManager { private CacheHelper mCacheHelper; //超时时间 - private static final int timeOut = 5; + private static final int timeOut = 15; // 缓存文件最大限制大小20M private static final long cacheSize = 1024 * 1024 * 64; @@ -391,6 +391,7 @@ public class NetInterfaceManager { .observeOn(AndroidSchedulers.mainThread()); } + @Deprecated public Observable> getMachineTimeControlObservable() { return getSettingsApi() .getSnTimeControl(Utils.getSerial()) @@ -2487,17 +2488,20 @@ public class NetInterfaceManager { return mCacheHelper.getAsString(UrlAddress.GET_SN_TIME_CONTROL); } + @Deprecated public void getMachineTimeControl(BehaviorSubject lifecycle, CompleteCallback callback) { getMachineTimeControlObservable() .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(getMachineTimeControlObserver(callback)); } + @Deprecated public void getMachineTimeControl(CompleteCallback callback) { getMachineTimeControlObservable() .subscribe(getMachineTimeControlObserver(callback)); } + @Deprecated public void getMachineTimeControl() { getMachineTimeControlObservable() .subscribe(getMachineTimeControlObserver(null)); @@ -3350,18 +3354,77 @@ public class NetInterfaceManager { TimeManager.getInstance().setSnTimeControlInfo(null); } TimeManager.getInstance().setGetSnTimeControlInfoSuccessful(true); + } @Override public void onError(@NonNull Throwable e) { Log.e("getSnTimeControl", "onError: "); + onComplete(); } @Override public void onComplete() { Log.e("getSnTimeControlObserver", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } } }; } + public void getAppTimeControlInfo(BehaviorSubject lifecycle, CompleteCallback callback) { + getAppTimeControlInfoObservable() + .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) + .subscribe(getAppTimeControlInfoObserver(callback)); + } + + public void getAppTimeControlInfo(CompleteCallback callback) { + getAppTimeControlInfoObservable() + .subscribe(getAppTimeControlInfoObserver(callback)); + } + + public void getAppTimeControlInfo() { + getAppTimeControlInfoObservable() + .subscribe(getAppTimeControlInfoObserver(null)); + } + + private Observer>> getAppTimeControlInfoObserver(CompleteCallback callback) { + return new Observer>>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getAppTimeControlInfo", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse> response) { + Log.e("getAppTimeControlInfo", "onNext: " + response); + if (response.code == 200) { + List list = response.data; + Map appTimeControlMap = list.stream().collect(Collectors.toMap(AppTimeControlInfo::getApp_package, java.util.function.Function.identity(), (v1, v2) -> v1)); + Map remainingTimeMap = list.stream().collect(Collectors.toMap(AppTimeControlInfo::getApp_package, AppTimeControlInfo::getToday_time, (v1, v2) -> v1)); + TimeManager.getInstance().setAppTimeControlMap(appTimeControlMap); + TimeManager.getInstance().setRemainingTimeMap(remainingTimeMap); + }else if (response.code == 400) { + Log.e("getSnTimeControl", "onNext: Too frequent"); + } else { + + } + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getAppTimeControlInfo", "onError: "); + onComplete(); + } + + @Override + public void onComplete() { + Log.e("getAppTimeControlInfo", "onComplete: "); + if (callback != null) { + callback.onComplete(); + } + } + }; + } } diff --git a/app/src/main/java/com/fuying/sn/receiver/APKinstallReceiver.java b/app/src/main/java/com/fuying/sn/receiver/APKinstallReceiver.java index af1e6b0..0cc6525 100644 --- a/app/src/main/java/com/fuying/sn/receiver/APKinstallReceiver.java +++ b/app/src/main/java/com/fuying/sn/receiver/APKinstallReceiver.java @@ -9,6 +9,7 @@ import android.util.Log; import com.fuying.sn.config.CommonConfig; import com.fuying.sn.manager.ControlManager; +import com.fuying.sn.manager.time.TimeManager; import com.fuying.sn.network.NetInterfaceManager; import com.fuying.sn.utils.CacheUtils; import com.fuying.sn.utils.JgyUtils; @@ -107,6 +108,7 @@ public class APKinstallReceiver extends BroadcastReceiver { } NetInterfaceManager.getInstance().SendAppInstallInfo(); // NetInterfaceManager.getInstance().getAppAndWhite(); + TimeManager.getInstance().getTimeControl(); } @Override diff --git a/app/src/main/java/com/fuying/sn/service/ManagerService.java b/app/src/main/java/com/fuying/sn/service/ManagerService.java index 36c3180..e6455f6 100644 --- a/app/src/main/java/com/fuying/sn/service/ManagerService.java +++ b/app/src/main/java/com/fuying/sn/service/ManagerService.java @@ -208,10 +208,10 @@ public class ManagerService extends Service implements NetworkUtils.OnNetworkSta public static final String LOCK_STATE = "SCRENN_LOOCKED_STATE"; private void showFloatingWindow(String name) { - if (BuildConfig.DEBUG) { - Log.e(TAG, "showFloatingWindow: debug mode skip"); - return; - } +// if (BuildConfig.DEBUG) { +// Log.e(TAG, "showFloatingWindow: debug mode skip"); +// return; +// } if (Settings.canDrawOverlays(this)) { // 获取WindowManager服务 if (null == windowManager) { diff --git a/app/src/main/java/com/fuying/sn/service/main/MainSPresenter.java b/app/src/main/java/com/fuying/sn/service/main/MainSPresenter.java index e60c8ba..a17b8f2 100644 --- a/app/src/main/java/com/fuying/sn/service/main/MainSPresenter.java +++ b/app/src/main/java/com/fuying/sn/service/main/MainSPresenter.java @@ -326,6 +326,13 @@ public class MainSPresenter implements MainSContact.Presenter { mView.setAppTimeControl(); } }); + NetInterfaceManager.getInstance().getAppTimeControlInfo(getLifecycle(), new NetInterfaceManager.CompleteCallback() { + @Override + public void onComplete() { + mView.setAppTimeControl(); + } + }); + } @Override @@ -336,6 +343,12 @@ public class MainSPresenter implements MainSContact.Presenter { mView.setSnTimeControl(); } }); + NetInterfaceManager.getInstance().getSnTimeControl(getLifecycle(), new NetInterfaceManager.CompleteCallback() { + @Override + public void onComplete() { + mView.setSnTimeControl(); + } + }); } @Override 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 e08862a..6e95f10 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 @@ -28,6 +28,7 @@ import com.fuying.sn.config.CommonConfig; import com.fuying.sn.desktop.RunningAppManager; import com.fuying.sn.manager.AmapManager; import com.fuying.sn.manager.ControlManager; +import com.fuying.sn.manager.time.TimeManager; import com.fuying.sn.network.NetInterfaceManager; import com.fuying.sn.network.UrlAddress; import com.fuying.sn.rlog.LogDBManager; @@ -96,6 +97,7 @@ public class MainService extends BaseRxService implements MainSContact.MainView, NetInterfaceManager.getInstance().getAppWhiteList(() -> { Log.e("onConnected", "onNext: getAppWhiteList"); }); + TimeManager.getInstance().getTimeControl(); mPresenter.getSnInfo(); mPresenter.getAppAndWhite(); NetInterfaceManager.getInstance().updateAdminInfo();