diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/LogsFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/LogsFragment.java
index c905f10e..6a1857e3 100644
--- a/app/src/main/java/org/lsposed/manager/ui/fragment/LogsFragment.java
+++ b/app/src/main/java/org/lsposed/manager/ui/fragment/LogsFragment.java
@@ -88,8 +88,11 @@ public class LogsFragment extends BaseFragment {
var contentResolver = context.getContentResolver();
try (var zipFd = contentResolver.openFileDescriptor(uri, "wt")) {
LSPManagerServiceHolder.getService().getLogs(zipFd);
+ showHint(context.getString(R.string.logs_saved), true);
} catch (Throwable e) {
- var text = context.getString(R.string.logs_save_failed2, e.getMessage());
+ var cause = e.getCause();
+ var message = cause == null ? e.getMessage() : cause.getMessage();
+ var text = context.getString(R.string.logs_save_failed2, message);
showHint(text, false);
Log.w(App.TAG, "save log", e);
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8f9e259b..b744847c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -82,6 +82,7 @@
Save
Verbose Logs
Modules Logs
+ Logs saved
Failed to save:\n%s
Clear log now
Log successfully cleared.
diff --git a/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java b/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java
index c55fd1d0..cb22b8a4 100644
--- a/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java
+++ b/daemon/src/main/java/org/lsposed/lspd/service/ConfigFileManager.java
@@ -236,7 +236,7 @@ public class ConfigFileManager {
return logDirPath.resolve("kmsg.log").toFile();
}
- static void getLogs(ParcelFileDescriptor zipFd) throws RemoteException {
+ static void getLogs(ParcelFileDescriptor zipFd) {
try (var os = new ZipOutputStream(new FileOutputStream(zipFd.getFileDescriptor()))) {
var comment = String.format(Locale.ROOT, "LSPosed %s %s (%d)",
BuildConfig.BUILD_TYPE, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE);
@@ -260,7 +260,7 @@ public class ConfigFileManager {
ConfigManager.getInstance().exportScopes(os);
} catch (Throwable e) {
Log.w(TAG, "get log", e);
- throw new RemoteException(Log.getStackTraceString(e));
+ throw new IllegalStateException(e);
}
}