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