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 a93235ac..e1518594 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 @@ -24,6 +24,7 @@ import static org.lsposed.manager.App.TAG; import static java.lang.Math.max; import android.annotation.SuppressLint; +import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; @@ -31,6 +32,7 @@ import android.os.Looper; import android.os.ParcelFileDescriptor; import android.util.Log; import android.view.LayoutInflater; +import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -80,6 +82,7 @@ public class LogsFragment extends BaseFragment { private final Handler handler = new Handler(Looper.getMainLooper()); private FragmentLogsBinding binding; private LinearLayoutManager layoutManager; + private final SharedPreferences preferences = App.getPreferences(); private final ActivityResultLauncher saveLogsLauncher = registerForActivityResult( new ActivityResultContracts.CreateDocument(), uri -> { @@ -163,10 +166,21 @@ public class LogsFragment extends BaseFragment { } else if (itemId == R.id.menu_clear) { clear(); return true; + } else if (itemId == R.id.item_word_wrap) { + item.setChecked(!item.isChecked()); + preferences.edit().putBoolean("enable_word_wrap", item.isChecked()).apply(); + reloadLogs(); + return true; } return super.onOptionsItemSelected(item); } + @Override + public void onPrepareOptionsMenu(@NonNull Menu menu) { + super.onPrepareOptionsMenu(menu); + menu.findItem(R.id.item_word_wrap).setChecked(preferences.getBoolean("enable_word_wrap", false)); + } + @Override public void onDestroyView() { super.onDestroyView(); @@ -299,7 +313,7 @@ public class LogsFragment extends BaseFragment { TextView view = holder.textView; view.setText(logs.get(position)); view.measure(0, 0); - int desiredWidth = view.getMeasuredWidth(); + int desiredWidth = (preferences.getBoolean("enable_word_wrap", false)) ? binding.getRoot().getWidth() : view.getMeasuredWidth(); ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); layoutParams.width = desiredWidth; if (binding.recyclerView.getWidth() < desiredWidth) { diff --git a/app/src/main/res/menu/menu_logs.xml b/app/src/main/res/menu/menu_logs.xml index 1ff5c501..7f0d4954 100644 --- a/app/src/main/res/menu/menu_logs.xml +++ b/app/src/main/res/menu/menu_logs.xml @@ -18,33 +18,37 @@ ~ Copyright (C) 2021 LSPosed Contributors --> - + + android:showAsAction="ifRoom" + android:title="@string/menuSaveToSd" /> + android:showAsAction="ifRoom" + android:title="@string/menuReload" /> + android:showAsAction="never" + android:title="@string/scroll_top" /> + android:showAsAction="never" + android:title="@string/scroll_bottom" /> + android:showAsAction="never" + android:title="@string/menuClearLog" /> + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a5648ebc..044f3bf0 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -75,6 +75,7 @@ 无法读取日志: \n 重新加载 日志清除失败 + 自动换行 Xposed 模块尚未激活 %s 已安装, 但尚未激活 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2f35b771..f8ab0187 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -78,6 +78,7 @@ Cannot read log: \n Reload Failed to clear the log + Word Wrap Xposed module is not activated yet diff --git a/app/src/main/res/xml-v29/prefs.xml b/app/src/main/res/xml-v29/prefs.xml index 8c7a43d2..41c296e8 100644 --- a/app/src/main/res/xml-v29/prefs.xml +++ b/app/src/main/res/xml-v29/prefs.xml @@ -19,7 +19,7 @@ - + - + - + - + - + - + - + - + - + - + - @@ -121,9 +121,9 @@ - + - - + diff --git a/app/src/main/res/xml/prefs.xml b/app/src/main/res/xml/prefs.xml index 0cceacc6..95202e9d 100644 --- a/app/src/main/res/xml/prefs.xml +++ b/app/src/main/res/xml/prefs.xml @@ -20,7 +20,7 @@ - + - + - + - + - + - + - + - + - + - + - @@ -122,5 +122,5 @@ - +