增加漫画单独配置

更新界面
This commit is contained in:
HapeLee committed 2025-08-02 12:44:25 +08:00
1 parent 22f34161ab
commit 3c5df88027
44 files changed
+798 -1059

No files matched your search

@@ -203,7 +203,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_shelf"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:backgroundTint="?attr/colorSurfaceContainer"
app:cornerRadius="16dp"
android:layout_width="wrap_content"
@@ -220,7 +220,7 @@
<!-- 查看目录按钮 -->
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_toc_view"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:backgroundTint="?attr/colorSurfaceContainer"
app:cornerRadius="16dp"
android:layout_width="wrap_content"
@@ -237,7 +237,7 @@
<!-- 更换分组按钮 -->
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_change_group"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:backgroundTint="?attr/colorSurfaceContainer"
app:cornerRadius="16dp"
android:layout_width="wrap_content"
@@ -254,7 +254,7 @@
<!-- 更换来源按钮(保持原样) -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_change_source"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:backgroundTint="?attr/colorSurfaceContainer"
app:cornerRadius="16dp"
android:layout_width="wrap_content"
@@ -371,7 +371,6 @@
app:iconGravity="textStart"
app:icon="@drawable/ic_bottom_books"
app:backgroundTint="?attr/colorSecondary"
app:iconTint="?attr/colorOnPrimary"
app:layout_behavior="com.google.android.material.behavior.HideBottomViewOnScrollBehavior" />
app:iconTint="?attr/colorOnPrimary" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -55,7 +55,7 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_bar" />
<io.legato.kazusa.ui.widget.image.CircleImageView
<ImageView
android:id="@+id/iv_cover"
android:layout_width="260dp"
android:layout_height="260dp"
+10 -12
View File
@@ -191,14 +191,13 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_shelf"
style="@style/Widget.Material3.Button.TextButton"
style="@style/Widget.Material3Expressive.Button.TextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="6dp"
android:padding="8dp"
android:text="@string/remove_from_bookshelf"
android:textSize="13sp"
android:textSize="12sp"
app:icon="@drawable/ic_clear_all"
app:iconGravity="top"
app:iconPadding="4dp"
@@ -207,14 +206,14 @@
<!-- 查看目录按钮 -->
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_toc_view"
style="@style/Widget.Material3.Button.TextButton"
style="@style/Widget.Material3Expressive.Button.TextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="8dp"
android:layout_marginHorizontal="4dp"
android:padding="8dp"
android:text="@string/view_toc"
android:textSize="13sp"
android:textSize="12sp"
app:icon="@drawable/ic_toc"
app:iconGravity="top"
app:iconPadding="4dp"
@@ -223,14 +222,14 @@
<!-- 更换分组按钮 -->
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_change_group"
style="@style/Widget.Material3.Button.TextButton"
style="@style/Widget.Material3Expressive.Button.TextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="4dp"
android:layout_weight="1"
android:layout_marginStart="8dp"
android:padding="8dp"
android:text="@string/change_group"
android:textSize="13sp"
android:textSize="12sp"
app:icon="@drawable/ic_groups"
app:iconGravity="top"
app:iconPadding="4dp"
@@ -239,15 +238,14 @@
<!-- 更换来源按钮(保持原样) -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_change_source"
style="@style/Widget.Material3.Button.TextButton"
style="@style/Widget.Material3Expressive.Button.TextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="8dp"
android:text="@string/book_source"
android:padding="8dp"
app:icon="@drawable/ic_change_source"
android:textSize="13sp"
android:textSize="12sp"
app:iconGravity="top"
app:iconPadding="4dp"
app:iconSize="20dp"
@@ -107,7 +107,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:padding="8dp"
android:text="@string/select_local_image" />
@@ -116,7 +116,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_marginStart="8dp"
android:padding="8dp"
android:text="@string/change_cover_source" />
@@ -126,7 +126,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_marginStart="8dp"
android:padding="8dp"
android:text="@string/refresh_cover" />
+4 -7
View File
@@ -50,20 +50,17 @@
android:gravity="center"
android:orientation="vertical">
<com.google.android.material.progressindicator.CircularProgressIndicator
<com.google.android.material.loadingindicator.LoadingIndicator
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:waveAmplitude="2dp"
app:waveSpeed="2dp"
app:wavelength="2dp"
android:indeterminate="true"
app:indicatorSize="40dp" />
app:indicatorSize="64dp" />
<TextView
android:id="@+id/tv_loading_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginTop="16dp"
android:textStyle="bold"
android:text="@string/loading" />
</LinearLayout>
+29 -38
View File
@@ -5,60 +5,51 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp"
android:paddingBottom="16dp"
android:orientation="vertical">
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<LinearLayout
android:id="@+id/ll_tts_SpeechRate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:orientation="vertical">
android:gravity="center_horizontal"
android:orientation="horizontal">
<View
android:layout_width="36dp"
android:layout_height="4dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_bottom_sheet_handle"
android:layout_marginBottom="16dp" />
<LinearLayout
android:id="@+id/ll_tts_SpeechRate"
android:layout_width="match_parent"
<TextView
android:id="@+id/tv_read_speed_title"
style="@style/ChapterNameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal">
android:text="@string/auto_page_speed" />
<TextView
android:id="@+id/tv_read_speed_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/ChapterNameText"
android:text="@string/auto_page_speed" />
<TextView
android:id="@+id/tv_read_speed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textSize="16sp"/>
</LinearLayout>
<com.google.android.material.slider.Slider
android:id="@+id/seek_auto_read"
android:layout_width="match_parent"
<TextView
android:id="@+id/tv_read_speed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:valueFrom="1.0"
android:valueTo="60.0"
android:stepSize="1.0"
tools:ignore="UnusedAttribute" />
android:layout_marginStart="8dp"
android:textSize="16sp" />
</LinearLayout>
<com.google.android.material.slider.Slider
android:id="@+id/seek_auto_read"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stepSize="1.0"
android:valueFrom="1.0"
android:valueTo="60.0"
tools:ignore="UnusedAttribute" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:baselineAligned="false"
android:orientation="horizontal">
@@ -4,24 +4,39 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:paddingHorizontal="16dp"
android:paddingBottom="16dp"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/tool_bar"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
app:displayHomeAsUp="false"
app:fitStatusBar="false"
app:title="@string/group_edit"
app:titleTextAppearance="@style/ToolbarTitle" />
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="8dp">
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<TextView
android:id="@+id/bottom_sheet_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/group_edit"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal"
android:padding="16dp">
android:paddingVertical="16dp">
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
@@ -60,19 +75,15 @@
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp">
<io.legato.kazusa.ui.widget.text.AccentTextView
android:id="@+id/tv_sort"
<com.google.android.material.chip.Chip
android:id="@+id/chip_sort_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sort" />
android:clickable="true"
android:text="排序方式"
app:chipIcon="@drawable/ic_arrow_drop_down"
app:chipIconVisible="true" />
<androidx.appcompat.widget.AppCompatSpinner
android:id="@+id/sp_sort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:entries="@array/book_sort"
tools:ignore="RtlHardcoded" />
</LinearLayout>
<com.google.android.material.materialswitch.MaterialSwitch
@@ -90,14 +101,13 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingHorizontal="16dp">
android:gravity="center_vertical">
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.IconButton.Outlined"
style="@style/Widget.Material3Expressive.Button.IconButton.Outlined"
android:layout_marginEnd="4dp"
app:icon="@drawable/ic_clear_all"
tools:ignore="RtlHardcoded" />
@@ -107,7 +117,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:icon="@drawable/ic_restore"
style="@style/Widget.Material3.Button.IconButton.Outlined"/>
style="@style/Widget.Material3Expressive.Button.IconButton.Outlined" />
<Space
android:layout_width="0dp"
@@ -118,7 +128,7 @@
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel" />
@@ -126,7 +136,7 @@
android:id="@+id/btn_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.UnelevatedButton"
style="@style/Widget.Material3Expressive.Button"
android:text="@string/ok"
tools:ignore="RtlHardcoded" />
+3 -3
View File
@@ -75,7 +75,7 @@
<!-- 删除按钮靠左 -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_delete"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
@@ -88,7 +88,7 @@
<!-- 取消按钮 -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_cancel"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
@@ -101,7 +101,7 @@
<!-- 确认按钮靠右 -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_ok"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="12dp"
@@ -1,225 +1,231 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:gravity="center"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp"
android:orientation="vertical">
android:paddingBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:paddingVertical="8dp"
android:paddingHorizontal="16dp">
<View
android:layout_width="36dp"
android:layout_height="4dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_bottom_sheet_handle"
android:layout_marginBottom="16dp" />
<TextView
android:id="@+id/bottom_sheet_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bookshelf_layout"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_show_unread"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_unread"
tools:ignore="TouchTargetSizeCheck" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_show_last_update_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_last_update_time"
tools:ignore="TouchTargetSizeCheck" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_show_wait_up_books"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_wait_up_count"
tools:ignore="TouchTargetSizeCheck" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_show_bookshelf_fast_scroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_bookshelf_fast_scroller"
tools:ignore="TouchTargetSizeCheck" />
android:layout_gravity="center_horizontal" />
<TextView
android:layout_width="match_parent"
android:id="@+id/bottom_sheet_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:text="@string/group_style"
android:textSize="14sp"
android:text="@string/bookshelf_layout"
android:textSize="18sp"
android:textStyle="bold" />
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkableBehavior="single"
android:paddingBottom="8dp"
app:singleSelection="true"
app:selectionRequired="true">
</com.google.android.material.chip.ChipGroup>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="排列视图"
android:textSize="14sp"
android:textStyle="bold" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:singleSelection="true"
app:selectionRequired="true">
<com.google.android.material.chip.Chip
android:id="@+id/chip_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="列表" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="网格" />
</com.google.android.material.chip.ChipGroup>
</LinearLayout>
<TextView
android:id="@+id/slider_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="每行列数"
android:textSize="14sp"
android:textStyle="bold"
android:paddingTop="8dp" />
<com.google.android.material.slider.Slider
android:id="@+id/slider_grid_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:valueFrom="1"
android:valueTo="9"
android:stepSize="1"
android:value="3" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/sort"
android:textSize="14sp"
android:textStyle="bold" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<com.google.android.material.chip.ChipGroup
android:id="@+id/chipGroupOrder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:singleSelection="true">
<com.google.android.material.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chip_asc"
android:text="升序"
android:checkable="true" />
<com.google.android.material.chip.Chip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/chip_desc"
android:text="降序"
android:checkable="true" />
</com.google.android.material.chip.ChipGroup>
</LinearLayout>
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_sort"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:singleSelection="true"
app:selectionRequired="true"
android:orientation="horizontal" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnCancel"
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:text="取消"
android:layout_marginEnd="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnOk"
style="@style/Widget.Material3Expressive.Button"
android:text="确定"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_show_unread"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_unread"
tools:ignore="TouchTargetSizeCheck" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_show_last_update_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_last_update_time"
tools:ignore="TouchTargetSizeCheck" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_show_wait_up_books"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_wait_up_count"
tools:ignore="TouchTargetSizeCheck" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_show_bookshelf_fast_scroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/show_bookshelf_fast_scroller"
tools:ignore="TouchTargetSizeCheck" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:text="@string/group_style"
android:textSize="14sp"
android:textStyle="bold" />
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkableBehavior="single"
android:paddingBottom="8dp"
app:selectionRequired="true"
app:singleSelection="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/sortview"
android:textSize="14sp"
android:textStyle="bold" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:selectionRequired="true"
app:singleSelection="true">
<com.google.android.material.chip.Chip
android:id="@+id/chip_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="@string/list" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="@string/grid" />
</com.google.android.material.chip.ChipGroup>
</LinearLayout>
<TextView
android:id="@+id/slider_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:text="@string/number_rows_columns"
android:textSize="14sp"
android:textStyle="bold" />
<com.google.android.material.slider.Slider
android:id="@+id/slider_grid_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="8dp"
android:stepSize="1"
android:value="3"
android:valueFrom="1"
android:valueTo="9" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/sort"
android:textSize="14sp"
android:textStyle="bold" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<com.google.android.material.chip.ChipGroup
android:id="@+id/chipGroupOrder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:singleSelection="true">
<com.google.android.material.chip.Chip
android:id="@+id/chip_asc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="@string/ascending_order" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="@string/descending_order" />
</com.google.android.material.chip.ChipGroup>
</LinearLayout>
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_sort"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:chipSpacingVertical="0dp"
app:selectionRequired="true"
app:singleSelection="true" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingVertical="16dp">
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnCancel"
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="@string/cancel" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnOk"
style="@style/Widget.Material3Expressive.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/confirm" />
</LinearLayout>
</LinearLayout>
@@ -6,22 +6,20 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp">
android:paddingBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:paddingVertical="8dp"
android:paddingBottom="8dp"
android:paddingHorizontal="16dp">
<View
android:layout_width="36dp"
android:layout_height="4dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_bottom_sheet_handle"
android:layout_marginBottom="16dp" />
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<TextView
android:id="@+id/bottom_sheet_title"
@@ -98,7 +96,7 @@
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel"
tools:ignore="RtlHardcoded" />
@@ -107,7 +105,7 @@
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button"
android:text="@string/ok"
tools:ignore="RtlHardcoded" />
@@ -92,7 +92,7 @@
android:id="@+id/tv_footer_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:text="@string/btn_default_s"
tools:ignore="RtlHardcoded" />
@@ -105,7 +105,7 @@
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel"
tools:ignore="RtlHardcoded" />
@@ -114,7 +114,7 @@
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:text="@string/ok"
tools:ignore="RtlHardcoded" />
+7 -12
View File
@@ -4,9 +4,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp">
android:paddingBottom="16dp">
<!-- 顶部标题容器 -->
<LinearLayout
android:id="@+id/header_layout"
android:layout_width="0dp"
@@ -14,17 +13,15 @@
android:orientation="vertical"
android:gravity="center"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp"
android:paddingBottom="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<View
android:layout_width="36dp"
android:layout_height="4dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="16dp"
android:background="@drawable/bg_bottom_sheet_handle" />
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<TextView
android:id="@+id/bottom_sheet_title"
@@ -35,7 +32,6 @@
android:textStyle="bold" />
</LinearLayout>
<!-- TabLayout -->
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
@@ -45,7 +41,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/header_layout" />
<!-- LoadingIndicator 居中显示 -->
<com.google.android.material.loadingindicator.LoadingIndicator
android:id="@+id/rotate_loading"
style="@style/Widget.Material3.LoadingIndicator.Contained"
@@ -57,7 +52,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tab_layout" />
<!-- ScrollView 显示字典内容 -->
<androidx.core.widget.NestedScrollView
android:id="@+id/scroll_container"
android:layout_width="match_parent"
@@ -72,6 +66,7 @@
android:id="@+id/tv_dict"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.core.widget.NestedScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -88,7 +88,7 @@
android:id="@+id/tv_footer_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:text="@string/test"
tools:ignore="RtlHardcoded" />
@@ -101,7 +101,7 @@
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel"
tools:ignore="RtlHardcoded" />
@@ -110,7 +110,7 @@
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:text="@string/ok"
tools:ignore="RtlHardcoded" />
@@ -41,7 +41,7 @@
android:id="@+id/tv_ok"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_margin="8dp"
android:text="@string/ok"
android:gravity="center" />
@@ -167,7 +167,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_color_filter"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
app:icon="@drawable/ic_filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -175,7 +175,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_click_set"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/click_regional_config"
@@ -5,8 +5,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingVertical="8dp">
android:paddingBottom="16dp">
<LinearLayout
android:layout_width="match_parent"
@@ -14,14 +13,12 @@
android:gravity="center"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp">
android:paddingBottom="8dp">
<View
android:layout_width="36dp"
android:layout_height="4dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="16dp"
android:background="@drawable/bg_bottom_sheet_handle" />
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<TextView
android:id="@+id/bottom_sheet_title"
@@ -73,6 +70,7 @@
android:id="@+id/chip_autoPage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkable="true"
android:text="@string/enable_auto_page_scroll" />
<View
@@ -138,6 +136,12 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hide_manga_title" />
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/checkboxVolumeKeyPage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/volume_key_page" />
</LinearLayout>
@@ -31,7 +31,7 @@
android:id="@+id/btn_negative"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_marginEnd="8dp"
android:text="@string/cancel" />
@@ -39,7 +39,7 @@
android:id="@+id/btn_positive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:text="@string/ok" />
</com.google.android.flexbox.FlexboxLayout>
+87 -73
View File
@@ -6,19 +6,36 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
android:paddingHorizontal="16dp"
android:paddingBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:padding="6dp">
android:orientation="vertical"
android:paddingHorizontal="16dp">
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="8dp">
<TextView
android:id="@+id/tv_name_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="@string/style_name"
android:textSize="16sp"
android:textStyle="bold"/>
@@ -27,29 +44,74 @@
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="8dp"
android:textSize="16sp"
android:paddingVertical="8dp"
android:textSize="22sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_name_title"
tools:text="文字" />
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_edit"
android:layout_width="40dp"
android:layout_height="40dp"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
android:layout_marginEnd="8dp"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:contentDescription="@string/edit"
app:iconGravity="textStart"
app:icon="@drawable/ic_edit" />
app:icon="@drawable/ic_edit"
app:layout_constraintBottom_toBottomOf="@id/tv_name"
app:layout_constraintEnd_toStartOf="@id/iv_delete"
app:layout_constraintTop_toTopOf="@id/tv_name" />
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_delete"
style="@style/Widget.Material3Expressive.Button.IconButton.Outlined"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/delete"
app:icon="@drawable/ic_clear_all"
app:layout_constraintBottom_toBottomOf="@id/iv_edit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_edit"
tools:ignore="UnusedAttribute" />
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_restore"
android:layout_width="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
android:layout_height="40dp"
android:text="@string/restore" />
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="@string/restore"
app:icon="@drawable/ic_restore"
app:layout_constraintEnd_toStartOf="@id/iv_import"
app:layout_constraintTop_toBottomOf="@id/iv_edit" />
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_import"
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:contentDescription="@string/import_str"
android:text="@string/import_str"
app:icon="@drawable/ic_import"
app:layout_constraintBottom_toBottomOf="@id/tv_restore"
app:layout_constraintEnd_toStartOf="@id/iv_export"
app:layout_constraintTop_toTopOf="@id/tv_restore" />
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_export"
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/import_str"
android:text="@string/export_str"
app:icon="@drawable/ic_export"
app:layout_constraintBottom_toBottomOf="@id/iv_import"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_import" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/sw_dark_status_icon"
@@ -71,80 +133,31 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:padding="3dp"
android:paddingBottom="8dp"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_text_color"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
android:layout_gravity="center"
android:gravity="center"
android:singleLine="true"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_marginEnd="16dp"
android:layout_weight="1"
app:icon="@drawable/ic_palette"
android:text="@string/text_color"
android:textSize="14sp"
tools:ignore="HardcodedText" />
app:cornerRadius="12dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_bg_color"
android:layout_width="0dp"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
android:layout_weight="1"
android:layout_gravity="center"
android:layout_marginStart="16dp"
android:gravity="center"
android:singleLine="true"
android:layout_width="wrap_content"
android:textSize="14sp"
app:icon="@drawable/ic_fill_colors"
android:text="@string/bg_color"
android:textSize="14sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_import"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.IconButton.Outlined"
android:layout_weight="1"
android:contentDescription="@string/import_str"
app:icon="@drawable/ic_import"
android:text="@string/import_str"
tools:ignore="UnusedAttribute" />
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_export"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.IconButton.Outlined"
android:layout_weight="1"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:contentDescription="@string/import_str"
app:icon="@drawable/ic_export"
android:text="@string/export_str"
tools:ignore="UnusedAttribute" />
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_delete"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.IconButton.Outlined"
android:layout_weight="1"
android:contentDescription="@string/delete"
app:icon="@drawable/ic_clear_all"
android:text="@string/delete"
tools:ignore="UnusedAttribute" />
app:cornerRadius="12dp" />
</LinearLayout>
@@ -175,6 +188,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:paddingVertical="8dp"
android:layout_height="100dp"
android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
@@ -5,6 +5,7 @@
xmlns:tool="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/root_view"
android:layout_width="match_parent"
@@ -16,38 +17,43 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:paddingVertical="16dp"
android:paddingBottom="16dp"
android:paddingHorizontal="16dp">
<View
android:layout_width="36dp"
android:layout_height="4dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_bottom_sheet_handle"
android:layout_marginBottom="16dp" />
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center">
android:orientation="horizontal">
<TextView
android:id="@+id/bottom_sheet_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="界面设置"
android:textSize="18sp"
android:textStyle="bold" />
<com.google.android.material.button.MaterialButton
android:id="@+id/tv_day_night"
android:layout_width="36dp"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
android:layout_height="36dp"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
android:layout_width="wrap_content"
android:layout_marginStart="8dp"
app:icon="@drawable/ic_brightness"
app:iconGravity="textStart" />
</LinearLayout>
app:iconGravity="textStart"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/bottom_sheet_title"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
@@ -311,6 +317,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
android:gravity="center_vertical"
android:orientation="horizontal">
@@ -46,7 +46,7 @@
android:id="@+id/tv_footer_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:padding="12dp"
android:visibility="gone"
tools:ignore="RtlHardcoded" />
@@ -64,7 +64,7 @@
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.OutlinedButton"
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
android:padding="12dp"
android:layout_marginEnd="8dp"
android:text="@string/cancel"
@@ -75,7 +75,7 @@
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.UnelevatedButton"
style="@style/Widget.Material3Expressive.Button"
android:padding="12dp"
android:text="@string/ok"
android:visibility="gone"
+3 -3
View File
@@ -73,7 +73,7 @@
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceBodyMedium"
android:padding="8dp"
android:text="123"/>
android:text="@string/text" />
</com.google.android.material.card.MaterialCardView>
<View
@@ -94,7 +94,7 @@
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceBodyMedium"
android:padding="8dp"
android:text="123"/>
android:text="@string/text" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
@@ -138,7 +138,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="123"
android:text="@string/text"
android:textAppearance="?attr/textAppearanceBodyMedium" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
@@ -66,7 +66,7 @@
android:id="@+id/tv_group"
android:layout_width="48dp"
android:layout_height="40dp"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:textSize="12sp"
android:layout_marginEnd="8dp"
android:padding="0dp"
+15 -7
View File
@@ -3,22 +3,30 @@
android:layout_width="66dp"
android:layout_height="88dp"
xmlns:tool="http://schemas.android.com/tools"
android:padding="2dp"
android:layout_marginEnd="6dp"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_bg"
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scaleType="fitCenter"
android:contentDescription="@string/bg_image"
tool:src="@drawable/ic_image" />
android:layout_weight="1">
<ImageView
android:id="@+id/iv_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/bg_image"
android:foreground="?android:attr/selectableItemBackground"
android:scaleType="fitCenter"
tool:src="@drawable/ic_image" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text"
android:singleLine="true"
android:gravity="center" />
@@ -20,7 +20,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginEnd="8dp"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
app:icon="@drawable/ic_edit" />
<io.legato.kazusa.lib.theme.view.ThemeSwitch
+10 -10
View File
@@ -86,10 +86,11 @@
app:layout_constraintTop_toBottomOf="@id/barrier"
tools:ignore="RtlHardcoded" />
<io.legato.kazusa.ui.widget.image.CircleImageView
<com.google.android.material.card.MaterialCardView
android:id="@+id/iv_explore"
android:layout_width="8dp"
android:layout_height="8dp"
app:strokeWidth="0dp"
android:scaleType="centerCrop"
android:scrollbars="none"
android:src="@color/md_green_600"
@@ -104,25 +105,24 @@
android:scrollbars="none"
android:singleLine="true"
android:visibility="gone"
android:layout_marginStart="4dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/iv_progressBar"
app:layout_constraintStart_toEndOf="@id/iv_progressBar"
app:layout_constraintTop_toBottomOf="@id/cb_book_source"
tools:text="@string/debug_hint"
tools:visibility="visible" />
<ProgressBar
<com.google.android.material.loadingindicator.LoadingIndicator
android:id="@+id/iv_progressBar"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_gravity="start|center_vertical"
android:animationResolution="1000"
android:indeterminate="true"
android:indeterminateBehavior="repeat"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginStart="4dp"
app:indicatorSize="24dp"
android:scrollbars="none"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/iv_debug_text"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_debug_text"
tools:visibility="visible" />
@@ -10,7 +10,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:foreground="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
app:strokeWidth="0dp"
@@ -129,7 +129,7 @@
android:maxLines="1"
android:scrollbars="none"
android:singleLine="true"
android:text="123"
android:text="@string/text"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="@+id/tv_author"
app:layout_constraintEnd_toEndOf="parent"
+1 -1
View File
@@ -53,7 +53,7 @@
android:id="@+id/tv_export"
android:layout_width="48dp"
android:layout_height="40dp"
style="@style/Widget.Material3.Button.TonalButton"
style="@style/Widget.Material3Expressive.Button.TonalButton"
android:textSize="12sp"
android:padding="0dp"
android:text="@string/export"
+36 -9
View File
@@ -1,11 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<io.legato.kazusa.ui.widget.image.CircleImageView xmlns:android="http://schemas.android.com/apk/res/android"
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/iv_style"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginLeft="6dp"
android:layout_marginRight="6dp"
android:scaleType="centerCrop"
app:civ_border_width="1dp"
app:text="@string/text" />
android:id="@+id/rv_style"
android:layout_width="64dp"
android:layout_height="72dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
app:cardBackgroundColor="@android:color/transparent"
app:strokeWidth="0dp">
<LinearLayout
android:id="@+id/ll_style"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_style"
android:layout_width="64dp"
android:layout_height="64dp"
android:foreground="?android:attr/selectableItemBackground">
<ImageView
android:id="@+id/iv_style"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:id="@+id/tv_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/text" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
+46 -23
View File
@@ -3,21 +3,56 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:padding="16dp"
android:background="?attr/selectableItemBackground"
android:orientation="horizontal"
android:scrollbars="none">
<!-- 封面图片 -->
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
android:layout_width="80dp"
android:layout_height="110dp"
android:contentDescription="@string/img_cover"
android:scaleType="centerCrop"
android:src="@drawable/image_cover_default"
android:transitionName="img_cover"
tools:ignore="UnusedAttribute" />
<com.google.android.material.card.MaterialCardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="8dp"
app:strokeWidth="0dp">
<io.legato.kazusa.ui.widget.image.CoverImageView
android:id="@+id/iv_cover"
android:layout_width="80dp"
android:layout_height="110dp"
android:contentDescription="@string/img_cover"
android:scaleType="centerCrop"
android:src="@drawable/image_cover_default"
android:transitionName="img_cover"
tools:ignore="UnusedAttribute" />
<!-- 书架内标记 -->
<com.google.android.material.card.MaterialCardView
android:id="@+id/iv_in_bookshelf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_margin="4dp"
android:scaleType="centerCrop"
android:visibility="visible"
app:cardBackgroundColor="?attr/colorPrimary"
app:cardCornerRadius="4dp"
app:strokeWidth="0dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="4dp"
android:paddingVertical="2dp"
android:text="书架中"
android:textColor="?attr/colorSurface"
android:textSize="10sp"
tools:ignore="SmallSp" />
</com.google.android.material.card.MaterialCardView>
</com.google.android.material.card.MaterialCardView>
<!-- 右侧内容区域 -->
<LinearLayout
@@ -33,24 +68,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- 书架内标记 -->
<io.legato.kazusa.ui.widget.image.CircleImageView
android:id="@+id/iv_in_bookshelf"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_marginEnd="4dp"
android:scaleType="centerCrop"
android:src="@color/md_green_600"
android:visibility="invisible"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"/>
<!-- 书名 -->
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/iv_in_bookshelf"
android:layout_toStartOf="@id/bv_originCount"
android:singleLine="true"
android:text="@string/app_name"
@@ -61,8 +83,9 @@
android:id="@+id/bv_originCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
<!-- 作者 -->
+23 -8
View File
@@ -89,7 +89,7 @@
android:id="@+id/tv_pre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
app:icon="@drawable/ic_previous"
tools:ignore="TouchTargetSizeCheck" />
@@ -112,7 +112,7 @@
android:id="@+id/tv_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
style="@style/Widget.Material3Expressive.Button.IconButton.Tonal"
app:icon="@drawable/ic_next"
tools:ignore="TouchTargetSizeCheck" />
</LinearLayout>
@@ -127,12 +127,19 @@
android:paddingHorizontal="16dp"
android:paddingVertical="8dp">
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:importantForAccessibility="no" />
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_catalog"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@android:color/transparent"
style="@style/Widget.Material3Expressive.Button.IconButton"
android:background="?android:attr/selectableItemBackgroundBorderless"
app:iconTint="?attr/colorPrimary"
android:contentDescription="@string/chapter_list"
android:maxHeight="24dp"
android:tooltipText="@string/chapter_list"
@@ -148,10 +155,11 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_autoPage"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@android:color/transparent"
style="@style/Widget.Material3Expressive.Button.IconButton"
android:background="?android:attr/selectableItemBackgroundBorderless"
app:iconTint="?attr/colorPrimary"
android:contentDescription="@string/auto_next_page"
android:tooltipText="@string/auto_next_page"
app:icon="@drawable/ic_auto_page"
@@ -166,10 +174,11 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/iv_setting"
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@android:color/transparent"
style="@style/Widget.Material3Expressive.Button.IconButton"
android:background="?android:attr/selectableItemBackgroundBorderless"
app:iconTint="?attr/colorPrimary"
android:contentDescription="@string/setting"
android:maxHeight="24dp"
android:tooltipText="@string/setting"
@@ -177,6 +186,12 @@
app:iconGravity="textStart"
tools:ignore="NestedWeights" />
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:importantForAccessibility="no" />
</LinearLayout>
</LinearLayout>
+5 -1
View File
@@ -802,7 +802,7 @@
<string name="auto_clear_expired">自动清除过期搜索数据</string>
<string name="auto_clear_expired_summary">超过一天的搜索数据</string>
<string name="re_segment">重新分段</string>
<string name="style_name">样式名称:</string>
<string name="style_name">样式名称</string>
<string name="empty_msg_import_book">点击右上角文件夹图标,选择文件夹</string>
<string name="scan_folder">智能扫描</string>
<string name="import_file_name">导入文件名</string>
@@ -1230,5 +1230,9 @@
<string name="manga_epaper_value">阈值</string>
<string name="disable_horizontal_animation">禁用水平滚动动画</string>
<string name="enable_manga_gray">开启图片灰色</string>
<string name="sortview">排列视图</string>
<string name="list">列表</string>
<string name="grid">网格</string>
<string name="descending_order">降序</string>
</resources>
+6
View File
@@ -1231,5 +1231,11 @@
<string name="manga_epaper_value">阈值</string>
<string name="disable_horizontal_animation">禁用水平滚动动画</string>
<string name="enable_manga_gray">开启图片灰色</string>
<string name="sortview">排列视图</string>
<string name="list">列表</string>
<string name="grid">网格</string>
<string name="number_rows_columns">每行列数</string>
<string name="ascending_order">升序</string>
<string name="descending_order">降序</string>
</resources>
+56 -60
View File
@@ -2,72 +2,12 @@
//**************************************************************Theme******************************************************************************//
<!-- 透明主题 -->
<style name="AppTheme.Transparent" parent="Base.AppTheme">
<item name="colorPrimary">@color/transparent_theme_primary</item>
<item name="colorOnPrimary">@color/transparent_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/transparent_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/transparent_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/transparent_theme_secondary</item>
<item name="colorOnSecondary">@color/transparent_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/transparent_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/transparent_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/transparent_theme_tertiary</item>
<item name="colorOnTertiary">@color/transparent_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/transparent_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/transparent_theme_onTertiaryContainer</item>
<item name="colorError">@color/transparent_theme_error</item>
<item name="colorOnError">@color/transparent_theme_onError</item>
<item name="colorErrorContainer">@color/transparent_theme_errorContainer</item>
<item name="colorOnErrorContainer">@color/transparent_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/transparent_theme_background</item>
<item name="android:textColor">@color/transparent_theme_onSurface</item>
<item name="colorOnBackground">@color/transparent_theme_onBackground</item>
<item name="colorSurface">@color/transparent_theme_surface</item>
<item name="colorOnSurface">@color/transparent_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/transparent_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/transparent_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/transparent_theme_outline</item>
<item name="colorOutlineVariant">@color/transparent_theme_outlineVariant</item>
<item name="colorSurfaceInverse">@color/transparent_theme_inverseSurface</item>
<item name="colorOnSurfaceInverse">@color/transparent_theme_inverseOnSurface</item>
<item name="colorPrimaryInverse">@color/transparent_theme_inversePrimary</item>
<item name="colorPrimaryFixed">@color/transparent_theme_primaryFixed</item>
<item name="colorOnPrimaryFixed">@color/transparent_theme_onPrimaryFixed</item>
<item name="colorPrimaryFixedDim">@color/transparent_theme_primaryFixedDim</item>
<item name="colorOnPrimaryFixedVariant">@color/transparent_theme_onPrimaryFixedVariant
</item>
<item name="colorSecondaryFixed">@color/transparent_theme_secondaryFixed</item>
<item name="colorOnSecondaryFixed">@color/transparent_theme_onSecondaryFixed</item>
<item name="colorSecondaryFixedDim">@color/transparent_theme_secondaryFixedDim</item>
<item name="colorOnSecondaryFixedVariant">@color/transparent_theme_onSecondaryFixedVariant
</item>
<item name="colorTertiaryFixed">@color/transparent_theme_tertiaryFixed</item>
<item name="colorOnTertiaryFixed">@color/transparent_theme_onTertiaryFixed</item>
<item name="colorTertiaryFixedDim">@color/transparent_theme_tertiaryFixedDim</item>
<item name="colorOnTertiaryFixedVariant">@color/transparent_theme_onTertiaryFixedVariant
</item>
<item name="colorSurfaceDim">@color/transparent_theme_surfaceDim</item>
<item name="colorSurfaceBright">@color/transparent_theme_surfaceBright</item>
<item name="colorSurfaceContainerLowest">@color/transparent_theme_surfaceContainerLowest
</item>
<item name="colorSurfaceContainerLow">@color/transparent_theme_surfaceContainerLow</item>
<item name="colorSurfaceContainer">@color/transparent_theme_surfaceContainer</item>
<item name="colorSurfaceContainerHigh">@color/transparent_theme_surfaceContainerHigh</item>
<item name="colorSurfaceContainerHighest">@color/transparent_theme_surfaceContainerHighest
</item>
</style>
<style name="Base.AppTheme" parent="Theme.Material3Expressive.DynamicColors.DayNight.NoActionBar">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowLightStatusBar">true</item>
<item name="tabStyle">@style/Widget.App.TabLayout</item>
<item name="popupMenuBackground">@drawable/popup_background</item>
<item name="alertDialogTheme">@style/AppTheme.AlertDialog</item>
<item name="chipStyle">@style/Widget.Material3.Chip.Filter</item>
</style>
<style name="Theme.Base.Dycolors" parent="Theme.Material3Expressive.DynamicColors.DayNight.NoActionBar">
@@ -374,4 +314,60 @@
<item name="colorSurfaceContainerHighest">@color/phoebe_theme_surfaceContainerHighest</item>
</style>
<!-- 透明主题 -->
<style name="AppTheme.Transparent" parent="Base.AppTheme">
<item name="colorPrimary">@color/transparent_theme_primary</item>
<item name="colorOnPrimary">@color/transparent_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/transparent_theme_primaryContainer</item>
<item name="colorOnPrimaryContainer">@color/transparent_theme_onPrimaryContainer</item>
<item name="colorSecondary">@color/transparent_theme_secondary</item>
<item name="colorOnSecondary">@color/transparent_theme_onSecondary</item>
<item name="colorSecondaryContainer">@color/transparent_theme_secondaryContainer</item>
<item name="colorOnSecondaryContainer">@color/transparent_theme_onSecondaryContainer</item>
<item name="colorTertiary">@color/transparent_theme_tertiary</item>
<item name="colorOnTertiary">@color/transparent_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/transparent_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/transparent_theme_onTertiaryContainer</item>
<item name="colorError">@color/transparent_theme_error</item>
<item name="colorOnError">@color/transparent_theme_onError</item>
<item name="colorErrorContainer">@color/transparent_theme_errorContainer</item>
<item name="colorOnErrorContainer">@color/transparent_theme_onErrorContainer</item>
<item name="android:colorBackground">@color/transparent_theme_background</item>
<item name="android:textColor">@color/transparent_theme_onSurface</item>
<item name="colorOnBackground">@color/transparent_theme_onBackground</item>
<item name="colorSurface">@color/transparent_theme_surface</item>
<item name="colorOnSurface">@color/transparent_theme_onSurface</item>
<item name="colorSurfaceVariant">@color/transparent_theme_surfaceVariant</item>
<item name="colorOnSurfaceVariant">@color/transparent_theme_onSurfaceVariant</item>
<item name="colorOutline">@color/transparent_theme_outline</item>
<item name="colorOutlineVariant">@color/transparent_theme_outlineVariant</item>
<item name="colorSurfaceInverse">@color/transparent_theme_inverseSurface</item>
<item name="colorOnSurfaceInverse">@color/transparent_theme_inverseOnSurface</item>
<item name="colorPrimaryInverse">@color/transparent_theme_inversePrimary</item>
<item name="colorPrimaryFixed">@color/transparent_theme_primaryFixed</item>
<item name="colorOnPrimaryFixed">@color/transparent_theme_onPrimaryFixed</item>
<item name="colorPrimaryFixedDim">@color/transparent_theme_primaryFixedDim</item>
<item name="colorOnPrimaryFixedVariant">@color/transparent_theme_onPrimaryFixedVariant
</item>
<item name="colorSecondaryFixed">@color/transparent_theme_secondaryFixed</item>
<item name="colorOnSecondaryFixed">@color/transparent_theme_onSecondaryFixed</item>
<item name="colorSecondaryFixedDim">@color/transparent_theme_secondaryFixedDim</item>
<item name="colorOnSecondaryFixedVariant">@color/transparent_theme_onSecondaryFixedVariant
</item>
<item name="colorTertiaryFixed">@color/transparent_theme_tertiaryFixed</item>
<item name="colorOnTertiaryFixed">@color/transparent_theme_onTertiaryFixed</item>
<item name="colorTertiaryFixedDim">@color/transparent_theme_tertiaryFixedDim</item>
<item name="colorOnTertiaryFixedVariant">@color/transparent_theme_onTertiaryFixedVariant
</item>
<item name="colorSurfaceDim">@color/transparent_theme_surfaceDim</item>
<item name="colorSurfaceBright">@color/transparent_theme_surfaceBright</item>
<item name="colorSurfaceContainerLowest">@color/transparent_theme_surfaceContainerLowest
</item>
<item name="colorSurfaceContainerLow">@color/transparent_theme_surfaceContainerLow</item>
<item name="colorSurfaceContainer">@color/transparent_theme_surfaceContainer</item>
<item name="colorSurfaceContainerHigh">@color/transparent_theme_surfaceContainerHigh</item>
<item name="colorSurfaceContainerHighest">@color/transparent_theme_surfaceContainerHighest
</item>
</style>
</resources>