[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 @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = FragmentLogsBinding.inflate(inflater, container, false); binding = FragmentLogsBinding.inflate(inflater, container, false);
binding.getRoot().bringChildToFront(binding.appBar);
setupToolbar(binding.toolbar, R.string.Logs, R.menu.menu_logs); 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() { binding.slidingTabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override @Override
@ -273,11 +267,9 @@ public class LogsFragment extends BaseFragment {
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
logs.add(line); logs.add(line);
} }
} catch (IOException e) { } catch (Exception e) {
logs.add(requireActivity().getResources().getString(R.string.logs_cannot_read)); logs.add(requireActivity().getResources().getString(R.string.logs_cannot_read));
if (e.getMessage() != null) { logs.addAll(Arrays.asList(Log.getStackTraceString(e).split("\n")));
logs.addAll(Arrays.asList(e.getMessage().split("\n")));
}
} }
return logs; return logs;

View File

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