更新界面与图标
@@ -32,6 +32,18 @@
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Base.AppTheme"
|
||||
tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute">
|
||||
<!-- 图标0 -->
|
||||
<activity-alias
|
||||
android:name=".Launcher0"
|
||||
android:enabled="false"
|
||||
android:exported="true"
|
||||
android:icon="@mipmap/launcher0"
|
||||
android:targetActivity=".ui.main.MainActivity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity-alias>
|
||||
<!-- 图标1 -->
|
||||
<activity-alias
|
||||
android:name=".Launcher1"
|
||||
|
||||
|
After Width: | Height: | Size: 27 KiB |
@@ -2,9 +2,7 @@ package io.legato.kazusa.help
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import io.legato.kazusa.R
|
||||
import io.legato.kazusa.ui.welcome.*
|
||||
import io.legato.kazusa.utils.toastOnUi
|
||||
import splitties.init.appCtx
|
||||
|
||||
@@ -15,6 +13,7 @@ import splitties.init.appCtx
|
||||
object LauncherIconHelp {
|
||||
private val packageManager: PackageManager = appCtx.packageManager
|
||||
private val componentNames = arrayListOf(
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher0"),
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher1"),
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher2"),
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher3"),
|
||||
@@ -31,10 +30,6 @@ object LauncherIconHelp {
|
||||
|
||||
fun changeIcon(icon: String?) {
|
||||
if (icon.isNullOrEmpty()) return
|
||||
if (Build.VERSION.SDK_INT < 26) {
|
||||
appCtx.toastOnUi(R.string.change_icon_error)
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
// 首先禁用主Activity的启动器intent
|
||||
|
||||
@@ -18,6 +18,7 @@ import io.legato.kazusa.lib.dialogs.alert
|
||||
import io.legato.kazusa.utils.getCompatColor
|
||||
import io.legato.kazusa.utils.gone
|
||||
import io.legato.kazusa.utils.invisible
|
||||
import io.legato.kazusa.utils.themeColor
|
||||
import io.legato.kazusa.utils.visible
|
||||
import splitties.init.appCtx
|
||||
import splitties.views.onLongClick
|
||||
@@ -62,8 +63,10 @@ class ChangeBookSourceAdapter(
|
||||
tvRespondTime.text = context.getString(R.string.respondTime, item.respondTime)
|
||||
if (callBack.oldBookUrl == item.bookUrl) {
|
||||
ivChecked.visible()
|
||||
root.setBackgroundColor(context.themeColor(com.google.android.material.R.attr.colorSurfaceContainerHighest))
|
||||
} else {
|
||||
ivChecked.invisible()
|
||||
root.setBackgroundColor(context.themeColor(com.google.android.material.R.attr.colorSurfaceContainerLow))
|
||||
}
|
||||
} else {
|
||||
for (i in payloads.indices) {
|
||||
@@ -74,8 +77,10 @@ class ChangeBookSourceAdapter(
|
||||
"latest" -> tvLast.text = item.getDisplayLastChapterTitle()
|
||||
"upCurSource" -> if (callBack.oldBookUrl == item.bookUrl) {
|
||||
ivChecked.visible()
|
||||
root.setBackgroundColor(context.themeColor(com.google.android.material.R.attr.colorSurfaceContainer))
|
||||
} else {
|
||||
ivChecked.invisible()
|
||||
root.setBackgroundColor(context.themeColor(com.google.android.material.R.attr.colorSurfaceContainerLow))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package io.legato.kazusa.ui.book.changesource
|
||||
|
||||
//import io.legado.app.lib.theme.getPrimaryTextColor
|
||||
//import io.legado.app.lib.theme.primaryColor
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
@@ -41,6 +42,7 @@ import io.legato.kazusa.utils.observeEvent
|
||||
import io.legato.kazusa.utils.startActivity
|
||||
import io.legato.kazusa.utils.transaction
|
||||
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
|
||||
import io.legato.kazusa.utils.visible
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.conflate
|
||||
@@ -205,9 +207,11 @@ class ChangeBookSourceDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_b
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
private fun initLiveData() {
|
||||
viewModel.searchStateData.observe(viewLifecycleOwner) {
|
||||
binding.refreshProgressBar.isVisible = it
|
||||
|
||||
if (it) {
|
||||
startStopMenuItem?.let { item ->
|
||||
item.setIcon(R.drawable.ic_stop_black_24dp)
|
||||
@@ -226,7 +230,7 @@ class ChangeBookSourceDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_b
|
||||
viewModel.searchDataFlow.conflate().collect {
|
||||
adapter.setItems(it)
|
||||
|
||||
binding.loadingIndicator.isVisible = it.isEmpty()
|
||||
binding.tvEmptyMsg.isVisible = it.isEmpty()
|
||||
binding.recyclerView.isVisible = it.isNotEmpty()
|
||||
|
||||
delay(1000)
|
||||
@@ -239,15 +243,16 @@ class ChangeBookSourceDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_b
|
||||
viewModel.changeSourceProgress
|
||||
.drop(1)
|
||||
.collect { (count, name) ->
|
||||
binding.tvDur.text =
|
||||
getString(
|
||||
R.string.change_source_progress,
|
||||
adapter.itemCount,
|
||||
count,
|
||||
viewModel.totalSourceCount,
|
||||
name
|
||||
)
|
||||
delay(500)
|
||||
val total = viewModel.totalSourceCount
|
||||
val progress = if (total > 0) (count * 100 / total) else 0
|
||||
|
||||
binding.refreshProgressBar.isIndeterminate = false
|
||||
binding.refreshProgressBar.progress = progress
|
||||
binding.llInfo.visible()
|
||||
|
||||
binding.tvProgress.text = "$count / $total"
|
||||
binding.tvResult.text =
|
||||
getString(R.string.change_source_progress, adapter.itemCount)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -549,6 +549,8 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
|
||||
|
||||
override fun showFooterConfig() {
|
||||
showDialogFragment(MangaFooterSettingDialog().apply {
|
||||
initialScrollMode = viewModel.getEffectiveScrollMode()
|
||||
initialWebtoonSidePadding = viewModel.getEffectiveWebtoonSidePadding()
|
||||
callback = this@ReadMangaActivity
|
||||
})
|
||||
}
|
||||
@@ -565,8 +567,6 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
|
||||
|
||||
override fun showScrollModeDialog() {
|
||||
showDialogFragment(MangaScrollModeDialog().apply {
|
||||
initialScrollMode = viewModel.getEffectiveScrollMode()
|
||||
initialWebtoonSidePadding = viewModel.getEffectiveWebtoonSidePadding()
|
||||
initialAutoPageEnabled = enableScroll
|
||||
callback = this@ReadMangaActivity
|
||||
})
|
||||
@@ -574,7 +574,7 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
|
||||
|
||||
//漫画模式
|
||||
override fun onScrollModeChanged(mode: Int) {
|
||||
//AppConfig.mangaScrollMode = mode
|
||||
onAutoPageToggle(false)
|
||||
viewModel.updateReadConfig {
|
||||
mangaScrollMode = mode
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ class MangaColorFilterDialog : BaseBottomSheetDialogFragment(R.layout.dialog_man
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
|
||||
// setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
}
|
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import com.google.android.material.chip.Chip
|
||||
import io.legato.kazusa.R
|
||||
import io.legato.kazusa.base.BaseBottomSheetDialogFragment
|
||||
import io.legato.kazusa.constant.EventBus
|
||||
@@ -21,6 +22,9 @@ class MangaFooterSettingDialog :
|
||||
val config = GSON.fromJsonObject<MangaFooterConfig>(AppConfig.mangaFooterConfig).getOrNull()
|
||||
?: MangaFooterConfig()
|
||||
|
||||
var initialWebtoonSidePadding: Int = 0
|
||||
var initialScrollMode: Int = MangaScrollMode.PAGE_RIGHT_TO_LEFT
|
||||
|
||||
var callback: Callback? = null
|
||||
|
||||
private val binding by viewBinding(DialogMangaFooterSettingBinding::bind)
|
||||
@@ -32,6 +36,56 @@ class MangaFooterSettingDialog :
|
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
binding.chipGroupScrollMode.removeAllViews()
|
||||
|
||||
MangaScrollMode.ALL.forEach { mode ->
|
||||
binding.chipGroupScrollMode.addView(Chip(requireContext()).apply {
|
||||
text = MangaScrollMode.labelOf(mode)
|
||||
isCheckable = true
|
||||
isChecked = (mode == initialScrollMode)
|
||||
|
||||
setOnClickListener {
|
||||
callback?.onScrollModeChanged(mode)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
binding.scvPadding.apply {
|
||||
valueFormat = { "$it %" }
|
||||
progress = initialWebtoonSidePadding
|
||||
onChanged = { newValue ->
|
||||
callback?.upSidePadding(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
binding.checkboxDisableClickScroll.apply {
|
||||
isChecked = AppConfig.disableClickScroll
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
callback?.onClickScrollDisabledChanged(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
binding.checkboxDisableMangaScale.apply {
|
||||
isChecked = AppConfig.disableMangaScale
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
callback?.onMangaScaleDisabledChanged(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
binding.checkboxHideMangaTitle.apply {
|
||||
isChecked = AppConfig.hideMangaTitle
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
callback?.onHideMangaTitleChanged(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
binding.checkboxVolumeKeyPage.apply {
|
||||
isChecked = AppConfig.MangaVolumeKeyPage
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
callback?.onVolumeKeyPageChanged(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
binding.cbChapterLabel.run {
|
||||
isChecked = !config.hideChapterLabel
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
@@ -187,6 +241,12 @@ class MangaFooterSettingDialog :
|
||||
fun onAutoPageSpeedChanged(speed: Int)
|
||||
fun showColorFilterConfig()
|
||||
fun showClickConfig()
|
||||
fun onScrollModeChanged(mode: Int)
|
||||
fun upSidePadding(padding: Int)
|
||||
fun onClickScrollDisabledChanged(disabled: Boolean)
|
||||
fun onMangaScaleDisabledChanged(disabled: Boolean)
|
||||
fun onHideMangaTitleChanged(hide: Boolean)
|
||||
fun onVolumeKeyPageChanged(enable: Boolean)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package io.legato.kazusa.ui.book.manga.config
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import com.google.android.material.chip.Chip
|
||||
import io.legato.kazusa.R
|
||||
import io.legato.kazusa.base.BaseBottomSheetDialogFragment
|
||||
import io.legato.kazusa.databinding.DialogMangaScrollModeBinding
|
||||
@@ -14,8 +13,6 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
|
||||
private val binding by viewBinding(DialogMangaScrollModeBinding::bind)
|
||||
|
||||
var initialAutoPageEnabled: Boolean = false
|
||||
var initialWebtoonSidePadding: Int = 0
|
||||
var initialScrollMode: Int = MangaScrollMode.PAGE_RIGHT_TO_LEFT
|
||||
|
||||
var callback: Callback? = null
|
||||
|
||||
@@ -24,20 +21,6 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
binding.chipGroupScrollMode.removeAllViews()
|
||||
|
||||
MangaScrollMode.ALL.forEach { mode ->
|
||||
binding.chipGroupScrollMode.addView(Chip(requireContext()).apply {
|
||||
text = MangaScrollMode.labelOf(mode)
|
||||
isCheckable = true
|
||||
isChecked = (mode == initialScrollMode)
|
||||
|
||||
setOnClickListener {
|
||||
callback?.onScrollModeChanged(mode)
|
||||
binding.chipAutoPage.isChecked = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
binding.chipAutoPage.run {
|
||||
isChecked = initialAutoPageEnabled
|
||||
@@ -47,42 +30,6 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
|
||||
}
|
||||
}
|
||||
|
||||
binding.checkboxDisableClickScroll.apply {
|
||||
isChecked = AppConfig.disableClickScroll
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
callback?.onClickScrollDisabledChanged(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
binding.checkboxDisableMangaScale.apply {
|
||||
isChecked = AppConfig.disableMangaScale
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
callback?.onMangaScaleDisabledChanged(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
binding.checkboxHideMangaTitle.apply {
|
||||
isChecked = AppConfig.hideMangaTitle
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
callback?.onHideMangaTitleChanged(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
binding.checkboxVolumeKeyPage.apply {
|
||||
isChecked = AppConfig.MangaVolumeKeyPage
|
||||
setOnCheckedChangeListener { _, isChecked ->
|
||||
callback?.onVolumeKeyPageChanged(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
binding.scvPadding.apply {
|
||||
valueFormat = { "$it %" }
|
||||
progress = initialWebtoonSidePadding
|
||||
onChanged = { newValue ->
|
||||
callback?.upSidePadding(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
initAutoPageSpeed(initialAutoPageEnabled)
|
||||
}
|
||||
|
||||
@@ -101,12 +48,6 @@ class MangaScrollModeDialog : BaseBottomSheetDialogFragment(R.layout.dialog_mang
|
||||
interface Callback {
|
||||
fun onAutoPageToggle(enable: Boolean)
|
||||
fun onAutoPageSpeedChanged(speed: Int)
|
||||
fun onScrollModeChanged(mode: Int)
|
||||
fun onClickScrollDisabledChanged(disabled: Boolean)
|
||||
fun onMangaScaleDisabledChanged(disabled: Boolean)
|
||||
fun upSidePadding(padding: Int)
|
||||
fun onHideMangaTitleChanged(hide: Boolean)
|
||||
fun onVolumeKeyPageChanged(enable: Boolean)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic">
|
||||
<translate
|
||||
android:duration="240"
|
||||
android:toYDelta="0%"
|
||||
android:fromYDelta="8%" />
|
||||
<alpha
|
||||
android:fromAlpha="0.0"
|
||||
android:toAlpha="1.0"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="2dp" />
|
||||
<solid android:color="?attr/colorOnSurfaceVariant" />
|
||||
</shape>
|
||||
@@ -0,0 +1,38 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="370"
|
||||
android:viewportHeight="370">
|
||||
<group
|
||||
android:scaleX="0.5011111"
|
||||
android:scaleY="0.5011111"
|
||||
android:translateX="92.29444"
|
||||
android:translateY="92.29444">
|
||||
<path
|
||||
android:fillColor="#EAEAEA"
|
||||
android:pathData="M185,185m-155,0a155,155 0,1 1,310 0a155,155 0,1 1,-310 0" />
|
||||
<path
|
||||
android:fillColor="#656688"
|
||||
android:pathData="M282.03,102.39C255.76,125.1 231.53,164.6 228.16,170.19C227.9,170.63 227.82,171.11 227.95,171.6C233,190.65 270.65,236.1 288.9,256.43C289.48,257.08 290.39,257.25 291.18,256.9L310.69,248.17C311.4,247.85 311.86,247.13 311.87,246.35C312.84,165.86 297.04,120.01 290.34,104.26C288.9,100.89 284.8,99.99 282.03,102.39Z" />
|
||||
<path
|
||||
android:fillColor="#656688"
|
||||
android:pathData="M76.9,225.49C70.96,199.23 62.48,141.34 71.93,110.92C72.84,107.99 75.98,106.56 78.89,107.54C92.9,112.25 133.46,126.86 172.04,150.18C172.04,150.18 202.32,146.09 234.97,157.66C235.65,157.9 236.39,157.79 236.98,157.37C244.43,152.05 296.56,121.77 328.3,290.06C328.41,290.62 328.33,291.15 327.98,291.59C319.96,301.61 215.17,426.64 64.88,314.76C64.35,314.36 64.02,313.69 64.06,313.02C67.07,261.9 76.9,225.49 76.9,225.49Z" />
|
||||
<path
|
||||
android:fillColor="#554C64"
|
||||
android:pathData="M281.66,102.07C254.7,125.39 231.56,164.87 228.37,170.41C228.13,170.84 228.05,171.32 228.18,171.79C232.93,190.12 265.7,230.56 284.23,251.64C285.37,252.94 287.49,252.24 287.67,250.51C293.77,189.2 291.81,129.68 290.62,106.11C290.39,101.44 285.19,99.02 281.66,102.07Z" />
|
||||
<path
|
||||
android:fillColor="#554C64"
|
||||
android:pathData="M70.02,114.52C63.38,146.6 71.36,200.97 76.9,225.49C89.13,190.98 113.72,172.15 126.41,164.37L126.41,164.37C129.34,162.58 130.8,161.68 131.31,160.71C131.79,159.79 131.9,158.94 131.66,157.93C131.41,156.86 130.31,155.72 128.1,153.43C107.55,132.13 92.03,118.26 82.89,110.55C80.21,108.29 78.86,107.16 76.95,107.01C75.5,106.89 73.46,107.6 72.39,108.58C70.98,109.89 70.66,111.43 70.02,114.52Z" />
|
||||
<path
|
||||
android:fillColor="#EAEAEA"
|
||||
android:pathData="M115,277.33V237.67C115,224.78 135,224.78 135,237.67V277.33C135,290.22 115,290.22 115,277.33Z" />
|
||||
<path
|
||||
android:fillColor="#EAEAEA"
|
||||
android:pathData="M176,277.33V237.67C176,224.78 196,224.78 196,237.67V277.33C196,290.22 176,290.22 176,277.33Z" />
|
||||
<path
|
||||
android:fillColor="#00000000"
|
||||
android:pathData="M185,185m-170,0a170,170 0,1 1,340 0a170,170 0,1 1,-340 0"
|
||||
android:strokeWidth="30"
|
||||
android:strokeColor="#D2487D" />
|
||||
</group>
|
||||
</vector>
|
||||
@@ -45,20 +45,15 @@
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
<ImageView
|
||||
android:id="@+id/cd_about"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_width="160dp"
|
||||
android:layout_height="120dp"
|
||||
android:scaleType="centerCrop"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:src="@drawable/ic_launcher_foreground"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@mipmap/ic_launcher" />
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_name"
|
||||
@@ -69,18 +64,19 @@
|
||||
android:layout_marginEnd="16dp"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toEndOf="@id/cd_about"
|
||||
app:layout_constraintTop_toTopOf="@id/cd_about" />
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/cd_about" />
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/cd_ver"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:layout_marginTop="8dp"
|
||||
app:cardBackgroundColor="?attr/colorTertiaryContainer"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_name"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_name"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_name"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_name"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<TextView
|
||||
@@ -92,29 +88,31 @@
|
||||
android:text="@string/text"
|
||||
android:textColor="?attr/colorTertiary"
|
||||
android:textSize="10sp"
|
||||
android:textStyle="bold" />
|
||||
android:textStyle="bold"
|
||||
tools:ignore="SmallSp" />
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/tv_detail"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="@string/about_description"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/cd_about"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_name" />
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/cd_ver" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_btn"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
android:layout_marginVertical="8dp"
|
||||
android:layout_marginTop="16dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/cd_about">
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_detail">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="8dp"
|
||||
@@ -157,6 +155,7 @@
|
||||
android:id="@+id/ll_contributors"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
||||
@@ -20,16 +20,88 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:indeterminate="true"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tool_bar" />
|
||||
|
||||
<com.google.android.material.loadingindicator.LoadingIndicator
|
||||
android:id="@+id/loading_indicator"
|
||||
style="@style/Widget.Material3.LoadingIndicator.Contained"
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_info"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginVertical="4dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:scaleType="centerCrop"
|
||||
app:cardBackgroundColor="?attr/colorTertiaryContainer"
|
||||
app:cardCornerRadius="4dp"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_progress"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="4dp"
|
||||
android:paddingVertical="2dp"
|
||||
android:text="@string/text"
|
||||
android:textColor="?attr/colorTertiary"
|
||||
android:textSize="11sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:scaleType="centerCrop"
|
||||
app:cardBackgroundColor="?attr/colorPrimary"
|
||||
app:cardCornerRadius="4dp"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_result"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="4dp"
|
||||
android:paddingVertical="2dp"
|
||||
android:text="@string/text"
|
||||
android:textColor="?attr/colorOnPrimary"
|
||||
android:textSize="11sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/tv_empty_msg"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="16dp"
|
||||
android:gravity="center"
|
||||
android:layout_gravity="center"
|
||||
android:layout_margin="32dp"
|
||||
android:visibility="visible" />
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="(๑`^´๑)"
|
||||
android:textSize="24sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:text="还没有源!" />
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
@@ -52,6 +124,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:text="@string/text"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center_vertical"
|
||||
android:singleLine="true"
|
||||
|
||||
@@ -11,15 +11,13 @@
|
||||
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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bottom_sheet_title"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingVertical="8dp">
|
||||
android:paddingBottom="8dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -17,14 +17,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"
|
||||
@@ -57,6 +55,7 @@
|
||||
android:id="@+id/chip_autoBrightness"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:checkable="true"
|
||||
android:text="跟随系统" />
|
||||
</LinearLayout>
|
||||
|
||||
@@ -71,6 +70,7 @@
|
||||
android:id="@+id/cp_epaper"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:checkable="true"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="@string/manga_epaper" />
|
||||
|
||||
@@ -78,9 +78,9 @@
|
||||
android:id="@+id/cp_enableGray"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:checkable="true"
|
||||
android:text="灰度" />
|
||||
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingVertical="8dp">
|
||||
android:paddingBottom="8dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/root_view"
|
||||
@@ -18,14 +17,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"
|
||||
@@ -37,9 +34,52 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingVertical="8dp"
|
||||
android:text="阅读模式"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/chipGroupScrollMode"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:singleLine="false"
|
||||
app:chipSpacingVertical="0dp"
|
||||
app:selectionRequired="true"
|
||||
app:singleSelection="true" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_webtoon"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingTop="8dp"
|
||||
android:text="条漫"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<io.legato.kazusa.ui.widget.DetailSeekBar
|
||||
android:id="@+id/scv_Padding"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:max="30"
|
||||
app:title="侧边留白" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
@@ -95,6 +135,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginVertical="8dp"
|
||||
app:cardBackgroundColor="?attr/colorSurfaceVariant"
|
||||
android:layout_marginHorizontal="16dp"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
@@ -107,7 +148,8 @@
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp">
|
||||
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/cb_chapter_name"
|
||||
@@ -134,7 +176,8 @@
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp">
|
||||
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/cb_chapter_label"
|
||||
@@ -165,7 +208,43 @@
|
||||
android:text="2.1%" />
|
||||
</com.google.android.material.chip.ChipGroup>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingHorizontal="12dp">
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/checkboxDisableClickScroll"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/disable_manga_click_scroll" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/checkboxDisableMangaScale"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/disable_manga_scale" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/checkboxHideMangaTitle"
|
||||
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>
|
||||
|
||||
<com.google.android.material.button.MaterialButtonGroup
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btn_color_filter"
|
||||
style="@style/Widget.Material3Expressive.Button.TonalButton"
|
||||
app:icon="@drawable/ic_filter"
|
||||
@@ -173,14 +252,15 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/manga_color_filter" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btn_click_set"
|
||||
style="@style/Widget.Material3Expressive.Button.TonalButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/click_regional_config"
|
||||
app:icon="@drawable/ic_filter" />
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btn_click_set"
|
||||
style="@style/Widget.Material3Expressive.Button.TonalButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/click_regional_config"
|
||||
app:icon="@drawable/ic_filter" />
|
||||
|
||||
</com.google.android.material.button.MaterialButtonGroup>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
android:id="@+id/bottom_sheet_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="漫画设置"
|
||||
android:text="自动阅读"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
@@ -36,30 +36,6 @@
|
||||
android:orientation="vertical"
|
||||
android:paddingHorizontal="16dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingVertical="8dp"
|
||||
android:text="阅读模式"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/chipGroupScrollMode"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:singleLine="false"
|
||||
app:chipSpacingVertical="0dp"
|
||||
app:selectionRequired="true"
|
||||
app:singleSelection="true" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingVertical="8dp"
|
||||
android:text="自动阅读"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -90,59 +66,4 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_webtoon"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingTop="8dp"
|
||||
android:text="条漫"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<io.legato.kazusa.ui.widget.DetailSeekBar
|
||||
android:id="@+id/scv_Padding"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:max="30"
|
||||
app:title="侧边留白" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingHorizontal="12dp">
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/checkboxDisableClickScroll"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/disable_manga_click_scroll" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/checkboxDisableMangaScale"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/disable_manga_scale" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/checkboxHideMangaTitle"
|
||||
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>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -63,7 +63,8 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<LinearLayout
|
||||
|
||||
<com.google.android.material.button.MaterialButtonGroup
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
@@ -133,9 +134,9 @@
|
||||
android:textSize="10sp"
|
||||
tool:ignore="SmallSp" />
|
||||
|
||||
</LinearLayout>
|
||||
</com.google.android.material.button.MaterialButtonGroup>
|
||||
|
||||
<LinearLayout
|
||||
<com.google.android.material.button.MaterialButtonGroup
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
@@ -176,7 +177,7 @@
|
||||
style="@style/Widget.Material3Expressive.Button.OutlinedButton"
|
||||
android:text="@string/more_setting" />
|
||||
|
||||
</LinearLayout>
|
||||
</com.google.android.material.button.MaterialButtonGroup>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -15,15 +15,13 @@
|
||||
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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bottom_sheet_title"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
@@ -10,15 +9,13 @@
|
||||
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"
|
||||
|
||||
@@ -16,15 +16,13 @@
|
||||
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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/bottom_sheet_title"
|
||||
|
||||
@@ -11,14 +11,12 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center"
|
||||
android:paddingVertical="16dp">
|
||||
android:paddingBottom="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
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -4,110 +4,119 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
tools:ignore="RtlHardcoded,RtlSymmetry"
|
||||
android:paddingHorizontal="16dp">
|
||||
android:background="@android:color/transparent"
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingVertical="8dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_good"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:padding="5dp"
|
||||
android:src="@drawable/ic_praise"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:padding="4dp"
|
||||
android:contentDescription="@string/like_source"
|
||||
app:layout_constraintBottom_toTopOf="@+id/iv_bad"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:src="@drawable/ic_praise"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:tint="@color/md_red_A200" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_bad"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:padding="5dp"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:padding="4dp"
|
||||
android:rotationX="180"
|
||||
android:src="@drawable/ic_praise"
|
||||
android:contentDescription="@string/not_like_source"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_good"
|
||||
android:src="@drawable/ic_praise"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_good"
|
||||
app:tint="@color/md_blue_A200" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_origin"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="30dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:singleLine="true"
|
||||
tools:text="bookSourceName"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@+id/tv_author"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_author"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:maxWidth="160dp"
|
||||
android:singleLine="true"
|
||||
tools:text="author"
|
||||
app:layout_constraintRight_toLeftOf="@+id/iv_checked"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!-- 最新章节 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_last"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="30dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:singleLine="true"
|
||||
tools:text="latest chapter name"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@+id/iv_checked"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_origin" />
|
||||
android:layout_marginStart="16dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?attr/colorSecondary"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintEnd_toStartOf="@id/tv_author"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_good"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="latest chapter name" />
|
||||
|
||||
<!-- 作者 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_author"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:maxWidth="160dp"
|
||||
app:layout_constraintBaseline_toBaselineOf="@id/tv_last"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_checked"
|
||||
tools:text="author" />
|
||||
|
||||
<!-- 来源 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_origin"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBottom_toTopOf="@id/iv_bad"
|
||||
app:layout_constraintEnd_toStartOf="@id/tv_author"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_bad"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_bad"
|
||||
tools:text="bookSourceName" />
|
||||
|
||||
<!-- 字数 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_current_chapter_word_count"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="30dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:singleLine="false"
|
||||
tools:text="word count"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@+id/iv_checked"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_last" />
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintEnd_toStartOf="@id/tv_respond_time"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_good"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_origin"
|
||||
tools:text="word count" />
|
||||
|
||||
<!-- 响应时间 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_respond_time"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="30dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:singleLine="false"
|
||||
tools:text="respond time"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintBaseline_toBaselineOf="@id/tv_current_chapter_word_count"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_checked"
|
||||
app:layout_constraintStart_toEndOf="@id/tv_current_chapter_word_count"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toLeftOf="@+id/iv_checked"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_current_chapter_word_count" />
|
||||
tools:text="respond time" />
|
||||
|
||||
<!-- 选中状态 -->
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_checked"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:padding="8dp"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:paddingVertical="8dp"
|
||||
android:src="@drawable/ic_check"
|
||||
android:visibility="invisible"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:visibility="visible" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher1_b" />
|
||||
<foreground android:drawable="@drawable/ic_launcher1" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher4" />
|
||||
<background android:drawable="@color/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@drawable/ic_launcher1_b" />
|
||||
<foreground android:drawable="@drawable/ic_launcher1" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher4" />
|
||||
</adaptive-icon>
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 10 KiB |
@@ -63,6 +63,7 @@
|
||||
|
||||
<string-array name="icon_names">
|
||||
<item>íconePrincipal</item>
|
||||
<item>ícone0</item>
|
||||
<item>ícone1</item>
|
||||
<item>ícone2</item>
|
||||
<item>ícone3</item>
|
||||
|
||||
@@ -1142,7 +1142,7 @@
|
||||
<string name="export_book_notification_content">正在导出(%1$s),还有%2$d本待导出</string>
|
||||
<string name="export_md">导出(MD)</string>
|
||||
<string name="change_source_delay">换源间隔</string>
|
||||
<string name="change_source_progress">结果 %1$d, 当前进度 %2$d / %3$d: %4$s</string>
|
||||
<string name="change_source_progress">结果 %1$d</string>
|
||||
<string name="open_book_info_by_click_title">点击书名打开详情</string>
|
||||
<string name="export_wait">等待导出</string>
|
||||
<string name="default_home_page">默认主页</string>
|
||||
|
||||
@@ -1145,7 +1145,7 @@
|
||||
<string name="export_book_notification_content">正在导出(%1$s),还有%2$d本待导出</string>
|
||||
<string name="export_md">导出(MD)</string>
|
||||
<string name="change_source_delay">换源间隔</string>
|
||||
<string name="change_source_progress">結果 %1$d、現在の進行状況 %2$d / %3$d: %4$s</string>
|
||||
<string name="change_source_progress">結果 %1$d</string>
|
||||
<string name="open_book_info_by_click_title">点击书名打开详情</string>
|
||||
<string name="export_wait">等待导出</string>
|
||||
<string name="default_home_page">默认主页</string>
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
|
||||
<string-array name="icon_names">
|
||||
<item>íconePrincipal</item>
|
||||
<item>icone0</item>
|
||||
<item>ícone1</item>
|
||||
<item>ícone2</item>
|
||||
<item>ícone3</item>
|
||||
|
||||
@@ -1145,7 +1145,7 @@
|
||||
<string name="export_book_notification_content">正在导出(%1$s),还有%2$d本待导出</string>
|
||||
<string name="export_md">导出(MD)</string>
|
||||
<string name="change_source_delay">换源间隔</string>
|
||||
<string name="change_source_progress">" Resultado %1$d, progresso atual %2$d / %3$d: %4$s"</string>
|
||||
<string name="change_source_progress">Resultado %1$d</string>
|
||||
<string name="open_book_info_by_click_title">点击书名打开详情</string>
|
||||
<string name="export_wait">等待导出</string>
|
||||
<string name="default_home_page">默认主页</string>
|
||||
|
||||
@@ -1141,7 +1141,7 @@ Còn </string>
|
||||
<string name="export_book_notification_content">正在导出(%1$s),还有%2$d本待导出</string>
|
||||
<string name="export_md">导出(MD)</string>
|
||||
<string name="change_source_delay">换源间隔</string>
|
||||
<string name="change_source_progress">Kết quả %1$d, tiến trình hiện tại %2$d / %3$d: %4$s</string>
|
||||
<string name="change_source_progress">Kết quả %1$d</string>
|
||||
<string name="open_book_info_by_click_title">点击书名打开详情</string>
|
||||
<string name="export_wait">等待导出</string>
|
||||
<string name="sync_book_progress_success">" Đồng bộ hóa tiến trình thành công"</string>
|
||||
|
||||
@@ -1137,7 +1137,7 @@
|
||||
<string name="export_book_notification_content">正在导出(%1$s),还有%2$d本待导出</string>
|
||||
<string name="export_md">导出(MD)</string>
|
||||
<string name="change_source_delay">换源间隔</string>
|
||||
<string name="change_source_progress">" 結果 %1$d, 當前進度 %2$d / %3$d: %4$s"</string>
|
||||
<string name="change_source_progress">結果 %1$d</string>
|
||||
<string name="open_book_info_by_click_title">点击书名打开详情</string>
|
||||
<string name="export_wait">等待导出</string>
|
||||
<string name="sync_book_progress_success">進度同步成功</string>
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
|
||||
<string-array name="icon_names">
|
||||
<item>iconMain</item>
|
||||
<item>icon0</item>
|
||||
<item>icon1</item>
|
||||
<item>icon2</item>
|
||||
<item>icon3</item>
|
||||
|
||||
@@ -1139,7 +1139,7 @@
|
||||
<string name="export_book_notification_content">正在导出(%1$s),还有%2$d本待导出</string>
|
||||
<string name="export_md">导出(MD)</string>
|
||||
<string name="change_source_delay">换源间隔</string>
|
||||
<string name="change_source_progress">" 結果 %1$d, 當前進度 %2$d / %3$d: %4$s"</string>
|
||||
<string name="change_source_progress">結果 %1$d</string>
|
||||
<string name="open_book_info_by_click_title">点击书名打开详情</string>
|
||||
<string name="export_wait">等待导出</string>
|
||||
<string name="sync_book_progress_success">進度同步成功</string>
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
|
||||
<string-array name="icon_names">
|
||||
<item>iconMain</item>
|
||||
<item>icon0</item>
|
||||
<item>icon1</item>
|
||||
<item>icon2</item>
|
||||
<item>icon3</item>
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
<string name="offline_cache_s">缓存选择的章节到本地</string>
|
||||
<string name="change_origin">换源</string>
|
||||
<string name="about_description">
|
||||
\u3000\u3000这是一款使用 Kotlin 全新开发的开源的阅读软件,欢迎您的加入。
|
||||
全新设计的阅读 3.0
|
||||
</string>
|
||||
<string name="app_share_description">
|
||||
阅读 3.0 下载地址:\nhttps://github.com/gedoor/legado/releases
|
||||
@@ -1144,7 +1144,7 @@
|
||||
<string name="export_book_notification_content">正在导出 (%1$s) ,还有 %2$d 本待导出</string>
|
||||
<string name="export_md">导出(MD)</string>
|
||||
<string name="change_source_delay">换源间隔</string>
|
||||
<string name="change_source_progress">结果 %1$d, 当前进度 %2$d / %3$d: %4$s</string>
|
||||
<string name="change_source_progress">结果 %1$d</string>
|
||||
<string name="open_book_info_by_click_title">点击书名打开详情</string>
|
||||
<string name="export_wait">等待导出</string>
|
||||
<string name="sync_book_progress_success">进度同步成功</string>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
<string-array name="icons">
|
||||
<item>ic_launcher</item>
|
||||
<item>launcher0</item>
|
||||
<item>launcher1</item>
|
||||
<item>launcher2</item>
|
||||
<item>launcher3</item>
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
|
||||
<string-array name="icon_names" tools:ignore="Typos">
|
||||
<item>iconMain</item>
|
||||
<item>icon0</item>
|
||||
<item>icon1</item>
|
||||
<item>icon2</item>
|
||||
<item>icon3</item>
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#3C3B4D</color>
|
||||
</resources>
|
||||
@@ -1147,7 +1147,7 @@
|
||||
<string name="export_book_notification_content">Exporting (%1$s), with %2$d to be exported.</string>
|
||||
<string name="export_md">Export(MD)</string>
|
||||
<string name="change_source_delay">Change source delay</string>
|
||||
<string name="change_source_progress">Result %1$d, Progress %2$d / %3$d: %4$s</string>
|
||||
<string name="change_source_progress">Result %1$d</string>
|
||||
<string name="open_book_info_by_click_title">Click on the book title to open details</string>
|
||||
<string name="export_wait">Waiting for export</string>
|
||||
<string name="show_bookshelf_fast_scroller">Show quick scroll bar</string>
|
||||
|
||||