[app] Fix clear logs

This commit is contained in:
tehcneko 2021-02-17 20:20:33 +08:00
parent 10de0b0ac6
commit 7d08851aae
7 changed files with 57 additions and 66 deletions

View File

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

View File

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

View File

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

View File

@ -74,7 +74,6 @@
<string name="logs_save_failed">Failed to save:</string>
<string name="menuClearLog">Clear log now</string>
<string name="logs_cleared">Log successfully cleared.</string>
<string name="logs_clear_failed">Could not clear the log:</string>
<string name="log_is_empty">Log is empty.</string>
<!-- About tab -->
@ -172,4 +171,5 @@
<string name="module_release_load_more">Show older versions</string>
<string name="module_release_no_more">No more release</string>
<string name="theme_color">Theme color</string>
<string name="logs_clear_failed_2">Could not clear the log</string>
</resources>

View File

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

View File

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

View File

@ -38,4 +38,6 @@ interface ILSPManagerService {
String getXposedVersionName() = 19;
int getXposedApiVersion() = 20;
boolean clearLogs(boolean verbose) = 21;
}