From 8c4f7faee15c9ce0685284f00aa50f8d30af48da Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 18 Apr 2024 19:03:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=84=E7=BA=A6=E5=90=8E?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E7=9B=B8=E5=85=B3=E7=9A=84=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xypower/mpapp/MainActivity.java | 41 +++++++++++++++++-- app/src/main/res/values/strings.xml | 3 ++ .../java/com/xypower/common/FileUtils.java | 17 ++++++++ .../com/xypower/common/MicroPhotoContext.java | 24 +++++++++++ 4 files changed, 82 insertions(+), 3 deletions(-) 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();