diff --git a/app/src/main/java/io/github/lsposed/manager/ConfigManager.java b/app/src/main/java/io/github/lsposed/manager/ConfigManager.java
index bcbcc0ca..9cb542dd 100644
--- a/app/src/main/java/io/github/lsposed/manager/ConfigManager.java
+++ b/app/src/main/java/io/github/lsposed/manager/ConfigManager.java
@@ -22,6 +22,7 @@ package io.github.lsposed.manager;
import android.content.pm.PackageInfo;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
+import android.util.Log;
import java.util.ArrayList;
import java.util.List;
@@ -34,8 +35,7 @@ public class ConfigManager {
try {
return LSPosedManagerServiceClient.getXposedApiVersion();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return -1;
}
}
@@ -44,8 +44,7 @@ public class ConfigManager {
try {
return LSPosedManagerServiceClient.getXposedVersionName();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return null;
}
}
@@ -54,8 +53,7 @@ public class ConfigManager {
try {
return LSPosedManagerServiceClient.getXposedVersionCode();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return -1;
}
}
@@ -65,8 +63,7 @@ public class ConfigManager {
try {
list.addAll(LSPosedManagerServiceClient.getInstalledPackagesFromAllUsers(flags));
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
}
return list;
}
@@ -75,8 +72,7 @@ public class ConfigManager {
try {
return LSPosedManagerServiceClient.enabledModules();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return new String[0];
}
}
@@ -85,8 +81,7 @@ public class ConfigManager {
try {
return enable ? LSPosedManagerServiceClient.enableModule(packageName) : LSPosedManagerServiceClient.disableModule(packageName);
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return false;
}
}
@@ -99,8 +94,7 @@ public class ConfigManager {
}
return LSPosedManagerServiceClient.setModuleScope(packageName, uids);
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return false;
}
}
@@ -112,8 +106,7 @@ public class ConfigManager {
list.add(uid);
}
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
}
return list;
}
@@ -122,8 +115,7 @@ public class ConfigManager {
try {
return LSPosedManagerServiceClient.isResourceHook();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return false;
}
}
@@ -133,8 +125,7 @@ public class ConfigManager {
LSPosedManagerServiceClient.setResourceHook(enabled);
return true;
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return false;
}
}
@@ -143,8 +134,7 @@ public class ConfigManager {
try {
return LSPosedManagerServiceClient.isVerboseLog();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return false;
}
}
@@ -154,8 +144,7 @@ public class ConfigManager {
LSPosedManagerServiceClient.setVerboseLog(enabled);
return true;
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return false;
}
}
@@ -164,8 +153,7 @@ public class ConfigManager {
try {
return LSPosedManagerServiceClient.getVariant();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return 1;
}
}
@@ -187,8 +175,7 @@ public class ConfigManager {
LSPosedManagerServiceClient.setVariant(variant);
return true;
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return false;
}
}
@@ -197,29 +184,26 @@ public class ConfigManager {
try {
return LSPosedManagerServiceClient.isPermissive();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return true;
}
}
- public static ParcelFileDescriptor getVerboseLog() {
+ public static ParcelFileDescriptor getLogs(boolean verbose) {
try {
- return LSPosedManagerServiceClient.getVerboseLog();
+ return verbose ? LSPosedManagerServiceClient.getVerboseLog() : LSPosedManagerServiceClient.getModulesLog();
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
+ Log.e(App.TAG, Log.getStackTraceString(e));
return null;
}
}
- public static ParcelFileDescriptor getModulesLog() {
+ public static boolean clearLogs(boolean verbose) {
try {
- return LSPosedManagerServiceClient.getModulesLog();
+ return LSPosedManagerServiceClient.clearLogs(verbose);
} catch (RemoteException | NullPointerException e) {
- // TODO:
- e.printStackTrace();
- return null;
+ Log.e(App.TAG, Log.getStackTraceString(e));
+ return false;
}
}
}
diff --git a/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedManagerServiceClient.java b/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedManagerServiceClient.java
index 5bf58da9..3053af67 100644
--- a/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedManagerServiceClient.java
+++ b/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedManagerServiceClient.java
@@ -119,4 +119,9 @@ public class LSPosedManagerServiceClient {
ensureService();
return service.getModulesLog();
}
+
+ public static boolean clearLogs(boolean verbose) throws RemoteException, NullPointerException {
+ ensureService();
+ return service.clearLogs(verbose);
+ }
}
diff --git a/app/src/main/java/io/github/lsposed/manager/ui/activity/LogsActivity.java b/app/src/main/java/io/github/lsposed/manager/ui/activity/LogsActivity.java
index 6d63e210..d20337c1 100644
--- a/app/src/main/java/io/github/lsposed/manager/ui/activity/LogsActivity.java
+++ b/app/src/main/java/io/github/lsposed/manager/ui/activity/LogsActivity.java
@@ -28,7 +28,6 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.ParcelFileDescriptor;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
@@ -76,7 +75,7 @@ import rikka.recyclerview.RecyclerViewKt;
@SuppressLint("NotifyDataSetChanged")
public class LogsActivity extends BaseActivity {
- private int logType = 0;
+ private boolean verbose = false;
private LogsAdapter adapter;
private final Handler handler = new Handler(Looper.getMainLooper());
private ActivityLogsBinding binding;
@@ -96,7 +95,7 @@ public class LogsActivity extends BaseActivity {
if (os == null) {
return;
}
- ParcelFileDescriptor parcelFileDescriptor = getLogFile();
+ ParcelFileDescriptor parcelFileDescriptor = ConfigManager.getLogs(verbose);
if (parcelFileDescriptor == null) {
return;
}
@@ -111,16 +110,6 @@ public class LogsActivity extends BaseActivity {
}
});
- private ParcelFileDescriptor getLogFile() {
- switch (logType) {
- case 0:
- default:
- return ConfigManager.getModulesLog();
- case 1:
- return ConfigManager.getVerboseLog();
- }
- }
-
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -160,7 +149,7 @@ public class LogsActivity extends BaseActivity {
binding.slidingTabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
- logType = tab.getPosition();
+ verbose = tab.getPosition() == 1;
reloadErrorLog();
}
@@ -192,7 +181,6 @@ public class LogsActivity extends BaseActivity {
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.menu_scroll_top) {
- Log.e("Test", adapter.getItemCount() + "");
if (layoutManager.findFirstVisibleItemPosition() > 1000) {
binding.recyclerView.scrollToPosition(0);
} else {
@@ -226,30 +214,24 @@ public class LogsActivity extends BaseActivity {
}
private void reloadErrorLog() {
- ParcelFileDescriptor parcelFileDescriptor = getLogFile();
+ ParcelFileDescriptor parcelFileDescriptor = ConfigManager.getLogs(verbose);
if (parcelFileDescriptor != null) {
new LogsReader().execute(parcelFileDescriptor.getFileDescriptor());
}
}
private void clear() {
- try {
- ParcelFileDescriptor parcelFileDescriptor = getLogFile();
- if (parcelFileDescriptor == null) {
- return;
- }
- OutputStream os = new FileOutputStream(parcelFileDescriptor.getFileDescriptor());
- os.close();
+ if (ConfigManager.clearLogs(verbose)) {
adapter.setEmpty();
Snackbar.make(binding.snackbar, R.string.logs_cleared, Snackbar.LENGTH_SHORT).show();
reloadErrorLog();
- } catch (IOException e) {
- Snackbar.make(binding.snackbar, getResources().getString(R.string.logs_clear_failed) + "n" + e.getMessage(), Snackbar.LENGTH_LONG).show();
+ } else {
+ Snackbar.make(binding.snackbar, R.string.logs_clear_failed_2, Snackbar.LENGTH_SHORT).show();
}
}
private void send() {
- ParcelFileDescriptor parcelFileDescriptor = getLogFile();
+ ParcelFileDescriptor parcelFileDescriptor = ConfigManager.getLogs(verbose);
if (parcelFileDescriptor == null) {
return;
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4d2c1620..4f7a4f81 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -74,7 +74,6 @@
Failed to save:
Clear log now
Log successfully cleared.
- Could not clear the log:
Log is empty.
@@ -172,4 +171,5 @@
Show older versions
No more release
Theme color
+ Could not clear the log
diff --git a/core/src/main/java/io/github/lsposed/lspd/service/ConfigManager.java b/core/src/main/java/io/github/lsposed/lspd/service/ConfigManager.java
index 224054b0..b36b09c3 100644
--- a/core/src/main/java/io/github/lsposed/lspd/service/ConfigManager.java
+++ b/core/src/main/java/io/github/lsposed/lspd/service/ConfigManager.java
@@ -15,7 +15,9 @@ import androidx.annotation.Nullable;
import java.io.File;
import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
@@ -383,6 +385,17 @@ public class ConfigManager {
}
}
+ public boolean clearLogs(boolean verbose) {
+ try {
+ OutputStream os = new FileOutputStream(verbose ? verboseLogPath : modulesLogPath);
+ os.close();
+ return true;
+ } catch (IOException e) {
+ Log.e(TAG, Log.getStackTraceString(e));
+ return false;
+ }
+ }
+
public boolean isManager(String package_name) {
return package_name.equals(manager);
}
diff --git a/core/src/main/java/io/github/lsposed/lspd/service/LSPManagerService.java b/core/src/main/java/io/github/lsposed/lspd/service/LSPManagerService.java
index 7258599a..6f8e5aaf 100644
--- a/core/src/main/java/io/github/lsposed/lspd/service/LSPManagerService.java
+++ b/core/src/main/java/io/github/lsposed/lspd/service/LSPManagerService.java
@@ -113,4 +113,9 @@ public class LSPManagerService extends ILSPManagerService.Stub {
public ParcelFileDescriptor getModulesLog() {
return ConfigManager.getInstance().getModulesLog();
}
+
+ @Override
+ public boolean clearLogs(boolean verbose) {
+ return ConfigManager.getInstance().clearLogs(verbose);
+ }
}
diff --git a/manager-service/src/main/aidl/io/github/lsposed/lspd/ILSPManagerService.aidl b/manager-service/src/main/aidl/io/github/lsposed/lspd/ILSPManagerService.aidl
index 618c0ab7..b3ad3f4f 100644
--- a/manager-service/src/main/aidl/io/github/lsposed/lspd/ILSPManagerService.aidl
+++ b/manager-service/src/main/aidl/io/github/lsposed/lspd/ILSPManagerService.aidl
@@ -38,4 +38,6 @@ interface ILSPManagerService {
String getXposedVersionName() = 19;
int getXposedApiVersion() = 20;
+
+ boolean clearLogs(boolean verbose) = 21;
}