From e7a8eb565610291fe15663a415052214f155689f Mon Sep 17 00:00:00 2001 From: Matthew Date: Sat, 10 Aug 2024 14:29:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=BF=83=E8=B7=B3=E5=91=A8?= =?UTF-8?q?=E6=9C=9F=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xypower/mpmaster/AppMaster.java | 26 +++++++++++++++++++ .../com/xypower/mpmaster/MpMasterService.java | 8 ++++++ 2 files changed, 34 insertions(+) diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java index 391f242b..3e9b8377 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/AppMaster.java @@ -556,6 +556,10 @@ public class AppMaster { int port = jsonObject.optInt("value_int", 0); mService.logger.warning("Recv Set CMA Cmd: " + (TextUtils.isEmpty(ip) ? "" : ip) + " port=" + Integer.toString(port)); updateCma(ip, port); + } else if (TextUtils.equals(cmd, CMD_SET_APP_HB)) { + int hb = jsonObject.optInt("value_int", 0); + mService.logger.warning("Recv Set HB Duration Cmd: " " duration=" + Integer.toString(hb)); + updateHeartbeatDuration(hb); } else if (TextUtils.equals(cmd, CMD_SET_MNTN)) { String ip = jsonObject.optString("value_str", null); int port = jsonObject.optInt("value_int", 0); @@ -923,6 +927,28 @@ public class AppMaster { return true; } + private boolean updateHeartbeatDuration(int duration) { + if (duration <= 0) { + return false; + } + + final Context context = mService.getApplicationContext(); + MicroPhotoContext.AppConfig appConfig = MicroPhotoContext.getMpAppConfig(context); + + if (duration == appConfig.heartbeat) { + mService.logger.info("New HB Duration is not changed"); + return true; + } + + appConfig.heartbeat = duration; + + MicroPhotoContext.saveMpAppConfig(context, appConfig); + + MicroPhotoContext.restartMpApp(mService.getApplicationContext()); + + return true; + } + private void upgradeApp(long cid, String action, String url) { mService.logger.warning("Recv Upgrade Cmd: url=" + url); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index 694dbdc7..f7d0c82c 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -26,6 +26,7 @@ import android.widget.RemoteViews; import android.widget.Toast; import androidx.core.app.NotificationCompat; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.dev.devapi.api.SysApi; import com.xypower.common.FileDownloader; @@ -1029,6 +1030,13 @@ public class MpMasterService extends Service { sendBroadcast(intent); } + public void reloadMpAppConfigs() { + Intent intent = new Intent(); + intent.setAction(ACTION_UPDATE_CONFIGS); + intent.setPackage(MicroPhotoContext.PACKAGE_NAME_MPAPP); + sendBroadcast(intent); + } + public native static int getInt(int cmd); public native static int setInt(int cmd, int val); public native static int[] getStats(long ts);