diff --git a/app/src/main/java/com/xypower/mpapp/MainActivity.java b/app/src/main/java/com/xypower/mpapp/MainActivity.java
index 56f10311..bbbd46c1 100644
--- a/app/src/main/java/com/xypower/mpapp/MainActivity.java
+++ b/app/src/main/java/com/xypower/mpapp/MainActivity.java
@@ -248,10 +248,45 @@ public class MainActivity extends AppCompatActivity {
this.binding.btnSaveCfg.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(View view) {
+ public void onClick(final View view) {
+
+ MicroPhotoContext.AppConfig appCfg = MicroPhotoContext.getMpAppConfig(getApplicationContext());
+
+ String protocolStr = MainActivity.this.binding.protocol.getSelectedItem().toString();
+ int protocol = MicroPhotoContext.DEFAULT_PROTOCOL;
+ String[] parts = protocolStr.split("-");
+ if (parts != null) {
+ protocol = Integer.parseInt(parts[0]);
+ }
+
+ if (appCfg.protocol != protocol) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());
+ builder.setTitle(R.string.confirm_change_protocol);
+ builder.setMessage(R.string.confirm_change_protocol_text);
+ builder.setCancelable(true);
+ builder.setPositiveButton(R.string.btn_ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ dialogInterface.dismiss();
+
+ retrieveAndSaveAppConfig();
+ MicroPhotoContext.removeMpConfigFiles(getApplicationContext());
+ MicroPhotoService.updateConfigs(MainActivity.this.getApplicationContext());
+ }
+ });
+ builder.setNegativeButton(R.string.btn_cancel, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ dialogInterface.dismiss();
+ }
+ });
+ builder.show();
+ } else {
+ retrieveAndSaveAppConfig();
+ MicroPhotoService.updateConfigs(MainActivity.this.getApplicationContext());
+ }
- retrieveAndSaveAppConfig();
- MicroPhotoService.updateConfigs(MainActivity.this.getApplicationContext());
}
});
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a41a205d..eeaa527c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -13,6 +13,9 @@
重启设备
确认重启设备吗?
+ 修改规约
+ 修改规约后,图像参数、采样参数、拍照时间表、短视频参数将被清除,确认要修改吗?
+
通道设置
左上 OSD
diff --git a/common/src/main/java/com/xypower/common/FileUtils.java b/common/src/main/java/com/xypower/common/FileUtils.java
index 6664ce0a..62367094 100644
--- a/common/src/main/java/com/xypower/common/FileUtils.java
+++ b/common/src/main/java/com/xypower/common/FileUtils.java
@@ -39,4 +39,21 @@ public class FileUtils {
return true;
}
+ public static boolean DeleteFilesInPath(String path) {
+ File pathFile = new File(path);
+ if (!pathFile.exists() || !pathFile.isDirectory()) {
+ return false;
+ }
+
+ for (File f : pathFile.listFiles()) {
+ if (!f.isFile()) {
+ continue;
+ }
+
+ f.delete();
+ }
+
+ return true;
+ }
+
}
diff --git a/common/src/main/java/com/xypower/common/MicroPhotoContext.java b/common/src/main/java/com/xypower/common/MicroPhotoContext.java
index 33e465c8..79e28d82 100644
--- a/common/src/main/java/com/xypower/common/MicroPhotoContext.java
+++ b/common/src/main/java/com/xypower/common/MicroPhotoContext.java
@@ -140,6 +140,30 @@ public class MicroPhotoContext {
return path;
}
+ public static void removeMpConfigFiles(Context context) {
+ String appPath = buildMpAppDir(context);
+
+ File path = new File(appPath + "data/imgparams/");
+ if (path.exists() && path.isDirectory()) {
+ FileUtils.DeleteFilesInPath(path.getAbsolutePath());
+ }
+
+ path = new File(appPath + "data/schedules/");
+ if (path.exists() && path.isDirectory()) {
+ FileUtils.DeleteFilesInPath(path.getAbsolutePath());
+ }
+
+ path = new File(appPath + "data/videoparams/");
+ if (path.exists() && path.isDirectory()) {
+ FileUtils.DeleteFilesInPath(path.getAbsolutePath());
+ }
+
+ path = new File(appPath + "data/sampling");
+ if (path.exists() && path.isFile()) {
+ path.delete();
+ }
+ }
+
public static String buildMpAppDir(Context contxt) {
String path = Environment.getExternalStorageDirectory().getAbsolutePath();