From 1492f05c39ef4fcbe78e996542359259d3bc8be1 Mon Sep 17 00:00:00 2001 From: BlueMatthew Date: Thu, 22 Feb 2024 13:27:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E9=85=8D=E7=BD=AE=E5=90=8E?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/MicroPhoto.cpp | 14 ++++++++++++++ .../java/com/xypower/mpapp/ChannelActivity.java | 1 + .../java/com/xypower/mpapp/MainActivity.java | 1 + .../com/xypower/mpapp/MicroPhotoService.java | 17 +++++++++++++++++ 4 files changed, 33 insertions(+) diff --git a/app/src/main/cpp/MicroPhoto.cpp b/app/src/main/cpp/MicroPhoto.cpp index ea89174f..31b74541 100644 --- a/app/src/main/cpp/MicroPhoto.cpp +++ b/app/src/main/cpp/MicroPhoto.cpp @@ -638,6 +638,20 @@ Java_com_xypower_mpapp_MicroPhotoService_recordingFinished( } +extern "C" JNIEXPORT void JNICALL +Java_com_xypower_mpapp_MicroPhotoService_updateConfigs( + JNIEnv* env, + jobject pThis, jlong handler) { + + CTerminal* pTerminal = reinterpret_cast(handler); + if (pTerminal == NULL) + { + return; + } + + pTerminal->LoadAppConfigs(); +} + extern "C" JNIEXPORT void JNICALL Java_com_xypower_mpapp_MicroPhotoService_setOtgState( JNIEnv* env, diff --git a/app/src/main/java/com/xypower/mpapp/ChannelActivity.java b/app/src/main/java/com/xypower/mpapp/ChannelActivity.java index bc7ebe21..fe5c9206 100644 --- a/app/src/main/java/com/xypower/mpapp/ChannelActivity.java +++ b/app/src/main/java/com/xypower/mpapp/ChannelActivity.java @@ -66,6 +66,7 @@ public class ChannelActivity extends AppCompatActivity { public void onClick(View v) { int channel = binding.channels.getSelectedItemPosition() + 1; saveChannelParams(channel); + MicroPhotoService.updateConfigs(ChannelActivity.this.getApplicationContext()); } }); diff --git a/app/src/main/java/com/xypower/mpapp/MainActivity.java b/app/src/main/java/com/xypower/mpapp/MainActivity.java index c44d3b35..ca2b180b 100644 --- a/app/src/main/java/com/xypower/mpapp/MainActivity.java +++ b/app/src/main/java/com/xypower/mpapp/MainActivity.java @@ -245,6 +245,7 @@ public class MainActivity extends AppCompatActivity { public void onClick(View view) { retrieveAndSaveAppConfig(); + MicroPhotoService.updateConfigs(MainActivity.this.getApplicationContext()); } }); diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 4686d563..d7417ec7 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -98,8 +98,10 @@ public class MicroPhotoService extends Service { public static final String ACTION_MAIN = "com.xypower.mpapp.ACT_MAIN"; private static final String ACTION_HEARTBEAT = "com.xypower.mpapp.ACT_HB"; private static final String ACTION_TAKE_PHOTO = "com.xypower.mpapp.ACT_TP"; + private static final String ACTION_TAKE_PHOTO_MANUALLY = "com.xypower.mpapp.ACT_TP_M"; private static final String ACTION_HEARTBEAT_MANUALLY = "com.xypower.mpapp.ACT_HB_M"; + private static final String ACTION_UPDATE_CONFIGS = "com.xypower.mpapp.ACT_UPD_CFG"; public static final String ACTION_VIDEO_FINISHED = "com.xypower.mpapp.ACT_V_FINISHED"; private static final String EXTRA_PARAM_CHANNEL = "Channel"; private static final String EXTRA_PARAM_PRESET = "Preset"; @@ -191,6 +193,7 @@ public class MicroPhotoService extends Service { intentFilter.addAction(ACTION_MSG_BROADCAST); intentFilter.addAction(ACTION_VIDEO_FINISHED); intentFilter.addAction(ACTION_STOP); + intentFilter.addAction(ACTION_UPDATE_CONFIGS); LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver (mLocalMsgReceiver, intentFilter); } @@ -394,6 +397,11 @@ public class MicroPhotoService extends Service { if (what == MSG_WHAT_SENDING_HB) { mService.sendHeartbeat(mService.mNativeHandle, mService.getSignalLevel()); } + } else if (TextUtils.equals(ACTION_UPDATE_CONFIGS, action)) { + Log.i(TAG, "UPD CFG Fired ACTION=" + action); + if (mService.mNativeHandle != 0) { + mService.updateConfigs(mService.mNativeHandle); + } } else if (TextUtils.equals(ACTION_VIDEO_FINISHED, action)) { boolean result = intent.getBooleanExtra("result", false); String path = intent.getStringExtra("path"); @@ -539,6 +547,14 @@ public class MicroPhotoService extends Service { localBroadcastManager.sendBroadcast(intent); } + public static void updateConfigs(Context context) { + Intent intent = new Intent(); + intent.setAction(ACTION_UPDATE_CONFIGS); + // PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); + LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context); + localBroadcastManager.sendBroadcast(intent); + } + @Override public int onStartCommand(Intent intent, int flags, int startId) { @@ -1068,6 +1084,7 @@ cellSignalStrengthGsm.getDbm(); // protected native long[] getNextScheduleItem(long handler); protected native boolean notifyToTakePhoto(long handler, int channel, int preset, long scheduleTime, boolean photoOrVideo); protected native boolean sendHeartbeat(long handler, int signalLevel); + protected native boolean updateConfigs(long handler); protected native void updatePosition(long handler, double lon, double lat, long ts); protected native boolean uninit(long handler); protected native void recordingFinished(long handler, boolean result, String path, long videoId);