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();