[app] Add compressing toolbar to logs

This commit is contained in:
NekoInverter 2021-10-14 18:53:12 +08:00 committed by LoveSy
parent 0ea767cbf4
commit deb53cfc09
2 changed files with 28 additions and 38 deletions

View File

@ -106,13 +106,7 @@ public class LogsFragment extends BaseFragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = FragmentLogsBinding.inflate(inflater, container, false);
binding.getRoot().bringChildToFront(binding.appBar);
setupToolbar(binding.toolbar, R.string.Logs, R.menu.menu_logs);
binding.appBar.setLiftable(true);
binding.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setLifted(!top));
int height = ResourceUtils.resolveDimensionPixelOffset(requireActivity().getTheme(), androidx.appcompat.R.attr.actionBarSize, 0)
+ getResources().getDimensionPixelOffset(R.dimen.tab_layout_height);
WindowInsetsHelperKt.setInitialPadding(binding.recyclerView, 0, height, 0, 0);
binding.slidingTabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
@ -273,11 +267,9 @@ public class LogsFragment extends BaseFragment {
while ((line = reader.readLine()) != null) {
logs.add(line);
}
} catch (IOException e) {
} catch (Exception e) {
logs.add(requireActivity().getResources().getString(R.string.logs_cannot_read));
if (e.getMessage() != null) {
logs.addAll(Arrays.asList(e.getMessage().split("\n")));
}
logs.addAll(Arrays.asList(Log.getStackTraceString(e).split("\n")));
}
return logs;

View File

@ -33,36 +33,33 @@
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<LinearLayout
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:elevation="0dp"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:layout_scrollEffect="compress" />
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
<com.google.android.material.tabs.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="@dimen/tab_layout_height"
android:background="@android:color/transparent"
app:layout_scrollFlags="scroll|enterAlways"
app:tabIndicatorAnimationMode="elastic">
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:elevation="0dp" />
android:text="@string/nav_item_logs_module" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="@dimen/tab_layout_height"
android:background="@android:color/transparent"
app:tabIndicatorAnimationMode="elastic">
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nav_item_logs_module" />
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nav_item_logs_lsp" />
</com.google.android.material.tabs.TabLayout>
</LinearLayout>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nav_item_logs_lsp" />
</com.google.android.material.tabs.TabLayout>
</com.google.android.material.appbar.AppBarLayout>
<HorizontalScrollView
@ -70,7 +67,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none">
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<org.lsposed.manager.ui.widget.EmptyStateRecyclerView
android:id="@+id/recyclerView"
@ -83,6 +81,6 @@
app:borderTopVisibility="whenTop"
app:borderTopDrawable="@null"
app:borderBottomVisibility="never"
app:fitsSystemWindowsInsets="top|bottom" />
app:fitsSystemWindowsInsets="bottom" />
</HorizontalScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>