diff --git a/app/src/main/cpp/MicroPhoto.cpp b/app/src/main/cpp/MicroPhoto.cpp index 56d070c8..58b3cae0 100644 --- a/app/src/main/cpp/MicroPhoto.cpp +++ b/app/src/main/cpp/MicroPhoto.cpp @@ -967,19 +967,21 @@ Java_com_xypower_mpapp_MicroPhotoService_recordingFinished( extern "C" JNIEXPORT jboolean JNICALL Java_com_xypower_mpapp_MicroPhotoService_reloadConfigs( JNIEnv* env, - jobject pThis, jlong handler) { + jobject pThis, jlong handler, jint channelToClean) { CTerminal* pTerminal = reinterpret_cast(handler); if (pTerminal == NULL) { return JNI_FALSE; } - + if (channelToClean != -1) + { + pTerminal->CleanCaptureSchedules((uint32_t)((int)channelToClean)); + } bool res = pTerminal->LoadAppConfigs(true); return res ? JNI_TRUE : JNI_FALSE; } - extern "C" JNIEXPORT jboolean JNICALL Java_com_xypower_mpapp_MicroPhotoService_sendExternalPhoto( JNIEnv* env, jclass cls, jlong handler, jstring path, jlong photoInfo) { diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 80c1e2d8..f94c49b4 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -661,13 +661,18 @@ public class MicroPhotoService extends Service { int cmd = intent.getIntExtra("cmd", 0); mService.sendCameraCtrl(mService.mNativeHandle, channel, preset, cmd); } else if (TextUtils.equals(ACTION_UPDATE_CONFIGS, action)) { - int restart = intent.getIntExtra("restart", 0); + final int restart = intent.getIntExtra("restart", 0); + final int channelToClean = intent.getIntExtra("channelToClean", -1); Log.i(TAG, "UPD CFG Fired ACTION=" + action + " restart=" + restart); - if (restart != 0) { - restartSelfImpl(context, "Cfg Updated"); - } else if (mService.mNativeHandle != 0) { - mService.reloadConfigs(mService.mNativeHandle); - } + new Thread(new Runnable() { + @Override + public void run() { + mService.reloadConfigs(mService.mNativeHandle, channelToClean); + if (restart != 0) { + restartSelfImpl(context, "Cfg Updated"); + } + } + }).start(); } else if (TextUtils.equals(ACTION_VIDEO_FINISHED, action)) { final boolean photoOrVideo = intent.getBooleanExtra("photoOrVideo", false); final boolean result = intent.getBooleanExtra("result", false); @@ -2001,7 +2006,7 @@ cellSignalStrengthGsm.getDbm(); protected native boolean sendBasicInfo(long handler); protected native boolean sendWorkStatus(long handler); protected native boolean sendFault(long handler, String faultCode, String faultInfo); - protected native boolean reloadConfigs(long handler); + protected native boolean reloadConfigs(long handler, int channelToClean); protected native void updatePosition(long handler, double lon, double lat, double radius, long ts); protected native boolean updateEhernet(long handler, long nativeNetworkHandle, boolean available); protected native boolean updateActiveNetwork(long handler, long nativeNetworkHandle, boolean available);