更新界面
This commit is contained in:
@@ -2,11 +2,13 @@ package io.legato.kazusa.base
|
|||||||
|
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.content.DialogInterface.OnDismissListener
|
import android.content.DialogInterface.OnDismissListener
|
||||||
|
import android.content.res.Configuration
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.annotation.LayoutRes
|
import androidx.annotation.LayoutRes
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||||
import io.legato.kazusa.constant.AppLog
|
import io.legato.kazusa.constant.AppLog
|
||||||
import io.legato.kazusa.help.coroutine.Coroutine
|
import io.legato.kazusa.help.coroutine.Coroutine
|
||||||
@@ -24,11 +26,14 @@ abstract class BaseBottomSheetDialogFragment(
|
|||||||
this.onDismissListener = onDismissListener
|
this.onDismissListener = onDismissListener
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onStart() {
|
||||||
super.onCreate(savedInstanceState)
|
super.onStart()
|
||||||
// if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N) {
|
if (resources.configuration.orientation == Configuration.ORIENTATION_LANDSCAPE) {
|
||||||
// setStyle(STYLE_NO_TITLE, 0)
|
val screenHeight = resources.displayMetrics.heightPixels
|
||||||
// }
|
(dialog as? BottomSheetDialog)?.behavior?.apply {
|
||||||
|
peekHeight = (screenHeight * 0.7f).toInt()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ import io.legato.kazusa.lib.dialogs.alert
|
|||||||
import io.legato.kazusa.service.BaseReadAloudService
|
import io.legato.kazusa.service.BaseReadAloudService
|
||||||
import io.legato.kazusa.ui.about.CrashLogsDialog
|
import io.legato.kazusa.ui.about.CrashLogsDialog
|
||||||
import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
|
import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
|
||||||
import io.legato.kazusa.ui.main.bookshelf.style1.BookshelfFragment1
|
import io.legato.kazusa.ui.main.bookshelf.books.BookshelfFragment1
|
||||||
import io.legato.kazusa.ui.main.bookshelf.style2.BookshelfFragment2
|
import io.legato.kazusa.ui.main.bookshelf.books.BookshelfFragment2
|
||||||
import io.legato.kazusa.ui.main.explore.ExploreFragment
|
import io.legato.kazusa.ui.main.explore.ExploreFragment
|
||||||
import io.legato.kazusa.ui.main.my.MyFragment
|
import io.legato.kazusa.ui.main.my.MyFragment
|
||||||
import io.legato.kazusa.ui.main.rss.RssFragment
|
import io.legato.kazusa.ui.main.rss.RssFragment
|
||||||
@@ -55,7 +55,7 @@ import kotlin.coroutines.resume
|
|||||||
import kotlin.coroutines.suspendCoroutine
|
import kotlin.coroutines.suspendCoroutine
|
||||||
import androidx.core.view.get
|
import androidx.core.view.get
|
||||||
import com.google.android.material.navigation.NavigationBarView
|
import com.google.android.material.navigation.NavigationBarView
|
||||||
import io.legato.kazusa.ui.main.bookshelf.style1.BookshelfFragment3
|
import io.legato.kazusa.ui.main.bookshelf.books.BookshelfFragment3
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主界面
|
* 主界面
|
||||||
@@ -92,7 +92,6 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
|
|||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
// 绑定返回键逻辑
|
|
||||||
onBackPressedDispatcher.addCallback(this) {
|
onBackPressedDispatcher.addCallback(this) {
|
||||||
if (pagePosition != 0) {
|
if (pagePosition != 0) {
|
||||||
binding.viewPagerMain.currentItem = 0
|
binding.viewPagerMain.currentItem = 0
|
||||||
|
|||||||
+35
-22
@@ -1,7 +1,6 @@
|
|||||||
package io.legato.kazusa.ui.main.bookshelf.style1.books
|
package io.legato.kazusa.ui.main.bookshelf.books
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.res.Configuration
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewConfiguration
|
import android.view.ViewConfiguration
|
||||||
@@ -28,6 +27,9 @@ import io.legato.kazusa.help.config.AppConfig
|
|||||||
//import io.legado.app.lib.theme.primaryColor
|
//import io.legado.app.lib.theme.primaryColor
|
||||||
import io.legato.kazusa.ui.book.info.BookInfoActivity
|
import io.legato.kazusa.ui.book.info.BookInfoActivity
|
||||||
import io.legato.kazusa.ui.main.MainViewModel
|
import io.legato.kazusa.ui.main.MainViewModel
|
||||||
|
import io.legato.kazusa.ui.main.bookshelf.books.styleDefalut.BaseBooksAdapter
|
||||||
|
import io.legato.kazusa.ui.main.bookshelf.books.styleDefalut.BooksAdapterGrid
|
||||||
|
import io.legato.kazusa.ui.main.bookshelf.books.styleDefalut.BooksAdapterList
|
||||||
import io.legato.kazusa.utils.bookshelfLayout
|
import io.legato.kazusa.utils.bookshelfLayout
|
||||||
import io.legato.kazusa.utils.cnCompare
|
import io.legato.kazusa.utils.cnCompare
|
||||||
import io.legato.kazusa.utils.flowWithLifecycleAndDatabaseChangeFirst
|
import io.legato.kazusa.utils.flowWithLifecycleAndDatabaseChangeFirst
|
||||||
@@ -147,12 +149,12 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun upBookSort(sort: Int) {
|
fun upBookSort() {
|
||||||
binding.root.post {
|
// binding.root.post {
|
||||||
arguments?.putInt("bookSort", sort)
|
// arguments?.putInt("bookSort", sort)
|
||||||
bookSort = sort
|
// bookSort = sort
|
||||||
upRecyclerData()
|
upRecyclerData()
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setEnableRefresh(enable: Boolean) {
|
fun setEnableRefresh(enable: Boolean) {
|
||||||
@@ -168,24 +170,36 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
|
|||||||
booksFlowJob = viewLifecycleOwner.lifecycleScope.launch {
|
booksFlowJob = viewLifecycleOwner.lifecycleScope.launch {
|
||||||
appDb.bookDao.flowByGroup(groupId).map { list ->
|
appDb.bookDao.flowByGroup(groupId).map { list ->
|
||||||
//排序
|
//排序
|
||||||
|
|
||||||
|
val isDescending = AppConfig.bookshelfSortOrder == 1
|
||||||
|
|
||||||
when (bookSort) {
|
when (bookSort) {
|
||||||
1 -> list.sortedByDescending { it.latestChapterTime }
|
1 -> if (isDescending) list.sortedByDescending { it.latestChapterTime }
|
||||||
2 -> list.sortedWith { o1, o2 ->
|
else list.sortedBy { it.latestChapterTime }
|
||||||
o1.name.cnCompare(o2.name)
|
|
||||||
}
|
|
||||||
|
|
||||||
3 -> list.sortedBy { it.order }
|
2 -> if (isDescending)
|
||||||
|
list.sortedWith { o1, o2 -> o2.name.cnCompare(o1.name) }
|
||||||
|
else
|
||||||
|
list.sortedWith { o1, o2 -> o1.name.cnCompare(o2.name) }
|
||||||
|
|
||||||
// 综合排序 issue #3192
|
3 -> if (isDescending) list.sortedByDescending { it.order }
|
||||||
4 -> list.sortedByDescending {
|
else list.sortedBy { it.order }
|
||||||
max(it.latestChapterTime, it.durChapterTime)
|
|
||||||
}
|
|
||||||
// 按作者排序
|
|
||||||
5 -> list.sortedWith { o1, o2 ->
|
|
||||||
o1.author.cnCompare(o2.author)
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> list.sortedByDescending { it.durChapterTime }
|
4 -> if (isDescending) list.sortedByDescending {
|
||||||
|
max(
|
||||||
|
it.latestChapterTime,
|
||||||
|
it.durChapterTime
|
||||||
|
)
|
||||||
|
}
|
||||||
|
else list.sortedBy { max(it.latestChapterTime, it.durChapterTime) }
|
||||||
|
|
||||||
|
5 -> if (isDescending)
|
||||||
|
list.sortedWith { o1, o2 -> o2.author.cnCompare(o1.author) }
|
||||||
|
else
|
||||||
|
list.sortedWith { o1, o2 -> o1.author.cnCompare(o2.author) }
|
||||||
|
|
||||||
|
else -> if (isDescending) list.sortedByDescending { it.durChapterTime }
|
||||||
|
else list.sortedBy { it.durChapterTime }
|
||||||
}
|
}
|
||||||
}.flowWithLifecycleAndDatabaseChangeFirst(
|
}.flowWithLifecycleAndDatabaseChangeFirst(
|
||||||
viewLifecycleOwner.lifecycle,
|
viewLifecycleOwner.lifecycle,
|
||||||
@@ -197,7 +211,6 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
|
|||||||
binding.tvEmptyMsg.isGone = list.isNotEmpty()
|
binding.tvEmptyMsg.isGone = list.isNotEmpty()
|
||||||
binding.refreshLayout.isEnabled = enableRefresh && list.isNotEmpty()
|
binding.refreshLayout.isEnabled = enableRefresh && list.isNotEmpty()
|
||||||
booksAdapter.setItems(list)
|
booksAdapter.setItems(list)
|
||||||
delay(100)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+2
-6
@@ -1,6 +1,6 @@
|
|||||||
@file:Suppress("DEPRECATION")
|
@file:Suppress("DEPRECATION")
|
||||||
|
|
||||||
package io.legato.kazusa.ui.main.bookshelf.style1
|
package io.legato.kazusa.ui.main.bookshelf.books
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -19,7 +19,6 @@ import io.legato.kazusa.help.config.AppConfig
|
|||||||
import io.legato.kazusa.ui.book.group.GroupEditDialog
|
import io.legato.kazusa.ui.book.group.GroupEditDialog
|
||||||
import io.legato.kazusa.ui.book.search.SearchActivity
|
import io.legato.kazusa.ui.book.search.SearchActivity
|
||||||
import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
|
import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
|
||||||
import io.legato.kazusa.ui.main.bookshelf.style1.books.BooksFragment
|
|
||||||
import io.legato.kazusa.utils.showDialogFragment
|
import io.legato.kazusa.utils.showDialogFragment
|
||||||
import io.legato.kazusa.utils.toastOnUi
|
import io.legato.kazusa.utils.toastOnUi
|
||||||
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
|
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
|
||||||
@@ -116,11 +115,8 @@ class BookshelfFragment1() : BaseBookshelfFragment(R.layout.fragment_bookshelf1)
|
|||||||
if (it is BooksFragment) {
|
if (it is BooksFragment) {
|
||||||
val position = it.position
|
val position = it.position
|
||||||
val group = bookGroups.getOrNull(position) ?: return@forEach
|
val group = bookGroups.getOrNull(position) ?: return@forEach
|
||||||
val newSort = group.getRealBookSort()
|
|
||||||
it.setEnableRefresh(group.enableRefresh)
|
it.setEnableRefresh(group.enableRefresh)
|
||||||
if (it.bookSort != newSort) {
|
it.upBookSort()
|
||||||
it.upBookSort(newSort)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+29
-21
@@ -1,4 +1,4 @@
|
|||||||
package io.legato.kazusa.ui.main.bookshelf.style2
|
package io.legato.kazusa.ui.main.bookshelf.books
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -24,6 +24,9 @@ import io.legato.kazusa.ui.book.group.GroupEditDialog
|
|||||||
import io.legato.kazusa.ui.book.info.BookInfoActivity
|
import io.legato.kazusa.ui.book.info.BookInfoActivity
|
||||||
import io.legato.kazusa.ui.book.search.SearchActivity
|
import io.legato.kazusa.ui.book.search.SearchActivity
|
||||||
import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
|
import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
|
||||||
|
import io.legato.kazusa.ui.main.bookshelf.books.styleFold.BaseBooksAdapter
|
||||||
|
import io.legato.kazusa.ui.main.bookshelf.books.styleFold.BooksAdapterGrid
|
||||||
|
import io.legato.kazusa.ui.main.bookshelf.books.styleFold.BooksAdapterList
|
||||||
import io.legato.kazusa.utils.bookshelfLayout
|
import io.legato.kazusa.utils.bookshelfLayout
|
||||||
import io.legato.kazusa.utils.cnCompare
|
import io.legato.kazusa.utils.cnCompare
|
||||||
import io.legato.kazusa.utils.flowWithLifecycleAndDatabaseChangeFirst
|
import io.legato.kazusa.utils.flowWithLifecycleAndDatabaseChangeFirst
|
||||||
@@ -39,7 +42,6 @@ import kotlinx.coroutines.flow.conflate
|
|||||||
import kotlinx.coroutines.flow.flowOn
|
import kotlinx.coroutines.flow.flowOn
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.util.Locale
|
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -69,7 +71,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
|
|
||||||
private var bookGroups: List<BookGroup> = emptyList()
|
private var bookGroups: List<BookGroup> = emptyList()
|
||||||
private var booksFlowJob: Job? = null
|
private var booksFlowJob: Job? = null
|
||||||
override var groupId = BookGroup.IdRoot
|
override var groupId = BookGroup.Companion.IdRoot
|
||||||
private var allBooks: List<Book> = emptyList()
|
private var allBooks: List<Book> = emptyList()
|
||||||
override var books: List<Book> = emptyList()
|
override var books: List<Book> = emptyList()
|
||||||
private var enableRefresh = true
|
private var enableRefresh = true
|
||||||
@@ -134,7 +136,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
allBooksFlowJob?.cancel()
|
allBooksFlowJob?.cancel()
|
||||||
allBooksFlowJob = viewLifecycleOwner.lifecycleScope.launch {
|
allBooksFlowJob = viewLifecycleOwner.lifecycleScope.launch {
|
||||||
appDb.bookDao.flowAll().map { list ->
|
appDb.bookDao.flowAll().map { list ->
|
||||||
when (AppConfig.getBookSortByGroupId(BookGroup.IdRoot)) {
|
when (AppConfig.getBookSortByGroupId(BookGroup.Companion.IdRoot)) {
|
||||||
1 -> list.sortedByDescending { it.latestChapterTime }
|
1 -> list.sortedByDescending { it.latestChapterTime }
|
||||||
2 -> list.sortedWith { o1, o2 -> o1.name.cnCompare(o2.name) }
|
2 -> list.sortedWith { o1, o2 -> o1.name.cnCompare(o2.name) }
|
||||||
3 -> list.sortedBy { it.order }
|
3 -> list.sortedBy { it.order }
|
||||||
@@ -144,7 +146,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
}.flowWithLifecycleAndDatabaseChangeFirst(
|
}.flowWithLifecycleAndDatabaseChangeFirst(
|
||||||
viewLifecycleOwner.lifecycle,
|
viewLifecycleOwner.lifecycle,
|
||||||
Lifecycle.State.RESUMED,
|
Lifecycle.State.RESUMED,
|
||||||
AppDatabase.BOOK_TABLE_NAME
|
AppDatabase.Companion.BOOK_TABLE_NAME
|
||||||
).catch {
|
).catch {
|
||||||
AppLog.put("所有书籍更新出错", it)
|
AppLog.put("所有书籍更新出错", it)
|
||||||
}.conflate().flowOn(Dispatchers.Default).collect { list ->
|
}.conflate().flowOn(Dispatchers.Default).collect { list ->
|
||||||
@@ -156,7 +158,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun initBooksData() {
|
private fun initBooksData() {
|
||||||
if (groupId == BookGroup.IdRoot) {
|
if (groupId == BookGroup.Companion.IdRoot) {
|
||||||
if (isAdded) {
|
if (isAdded) {
|
||||||
binding.titleBar.title = getString(R.string.bookshelf)
|
binding.titleBar.title = getString(R.string.bookshelf)
|
||||||
binding.refreshLayout.isEnabled = true
|
binding.refreshLayout.isEnabled = true
|
||||||
@@ -173,9 +175,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
}
|
}
|
||||||
booksFlowJob?.cancel()
|
booksFlowJob?.cancel()
|
||||||
booksFlowJob = viewLifecycleOwner.lifecycleScope.launch {
|
booksFlowJob = viewLifecycleOwner.lifecycleScope.launch {
|
||||||
|
|
||||||
appDb.bookDao.flowByGroup(groupId).map { list ->
|
appDb.bookDao.flowByGroup(groupId).map { list ->
|
||||||
|
|
||||||
//排序
|
//排序
|
||||||
val isDescending = AppConfig.bookshelfSortOrder == 1
|
val isDescending = AppConfig.bookshelfSortOrder == 1
|
||||||
|
|
||||||
@@ -183,15 +183,27 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
1 -> if (isDescending) list.sortedByDescending { it.latestChapterTime }
|
1 -> if (isDescending) list.sortedByDescending { it.latestChapterTime }
|
||||||
else list.sortedBy { it.latestChapterTime }
|
else list.sortedBy { it.latestChapterTime }
|
||||||
|
|
||||||
2 -> if (isDescending) list.sortedWith(compareByDescending { it.name.cnCompareKey() })
|
2 -> if (isDescending)
|
||||||
else list.sortedWith(compareBy { it.name.cnCompareKey() })
|
list.sortedWith { o1, o2 -> o2.name.cnCompare(o1.name) }
|
||||||
|
else
|
||||||
|
list.sortedWith { o1, o2 -> o1.name.cnCompare(o2.name) }
|
||||||
|
|
||||||
3 -> if (isDescending) list.sortedByDescending { it.order }
|
3 -> if (isDescending) list.sortedByDescending { it.order }
|
||||||
else list.sortedBy { it.order }
|
else list.sortedBy { it.order }
|
||||||
|
|
||||||
4 -> if (isDescending) list.sortedByDescending { max(it.latestChapterTime, it.durChapterTime) }
|
4 -> if (isDescending) list.sortedByDescending {
|
||||||
|
max(
|
||||||
|
it.latestChapterTime,
|
||||||
|
it.durChapterTime
|
||||||
|
)
|
||||||
|
}
|
||||||
else list.sortedBy { max(it.latestChapterTime, it.durChapterTime) }
|
else list.sortedBy { max(it.latestChapterTime, it.durChapterTime) }
|
||||||
|
|
||||||
|
5 -> if (isDescending)
|
||||||
|
list.sortedWith { o1, o2 -> o2.author.cnCompare(o1.author) }
|
||||||
|
else
|
||||||
|
list.sortedWith { o1, o2 -> o1.author.cnCompare(o2.author) }
|
||||||
|
|
||||||
else -> if (isDescending) list.sortedByDescending { it.durChapterTime }
|
else -> if (isDescending) list.sortedByDescending { it.durChapterTime }
|
||||||
else list.sortedBy { it.durChapterTime }
|
else list.sortedBy { it.durChapterTime }
|
||||||
}
|
}
|
||||||
@@ -199,7 +211,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
}.flowWithLifecycleAndDatabaseChangeFirst(
|
}.flowWithLifecycleAndDatabaseChangeFirst(
|
||||||
viewLifecycleOwner.lifecycle,
|
viewLifecycleOwner.lifecycle,
|
||||||
Lifecycle.State.RESUMED,
|
Lifecycle.State.RESUMED,
|
||||||
AppDatabase.BOOK_TABLE_NAME
|
AppDatabase.Companion.BOOK_TABLE_NAME
|
||||||
).catch {
|
).catch {
|
||||||
AppLog.put("书架更新出错", it)
|
AppLog.put("书架更新出错", it)
|
||||||
}.conflate().flowOn(Dispatchers.Default).collect { list ->
|
}.conflate().flowOn(Dispatchers.Default).collect { list ->
|
||||||
@@ -211,13 +223,9 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun String.cnCompareKey(): String {
|
|
||||||
return this.trim().lowercase(Locale.getDefault())
|
|
||||||
}
|
|
||||||
|
|
||||||
fun back(): Boolean {
|
fun back(): Boolean {
|
||||||
if (groupId != BookGroup.IdRoot) {
|
if (groupId != BookGroup.Companion.IdRoot) {
|
||||||
groupId = BookGroup.IdRoot
|
groupId = BookGroup.Companion.IdRoot
|
||||||
initBooksData()
|
initBooksData()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@@ -225,7 +233,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onQueryTextSubmit(query: String?): Boolean {
|
override fun onQueryTextSubmit(query: String?): Boolean {
|
||||||
SearchActivity.start(requireContext(), query)
|
SearchActivity.Companion.start(requireContext(), query)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,7 +276,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getItemCount(): Int {
|
fun getItemCount(): Int {
|
||||||
return if (groupId == BookGroup.IdRoot) {
|
return if (groupId == BookGroup.Companion.IdRoot) {
|
||||||
bookGroups.size + books.size
|
bookGroups.size + books.size
|
||||||
} else {
|
} else {
|
||||||
books.size
|
books.size
|
||||||
@@ -276,7 +284,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getItems(): List<Any> {
|
override fun getItems(): List<Any> {
|
||||||
return if (groupId == BookGroup.IdRoot) {
|
return if (groupId == BookGroup.Companion.IdRoot) {
|
||||||
bookGroups + books
|
bookGroups + books
|
||||||
} else {
|
} else {
|
||||||
books
|
books
|
||||||
+2
-6
@@ -1,6 +1,6 @@
|
|||||||
@file:Suppress("DEPRECATION")
|
@file:Suppress("DEPRECATION")
|
||||||
|
|
||||||
package io.legato.kazusa.ui.main.bookshelf.style1
|
package io.legato.kazusa.ui.main.bookshelf.books
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -18,7 +18,6 @@ import io.legato.kazusa.databinding.FragmentBookshelf3Binding
|
|||||||
import io.legato.kazusa.help.config.AppConfig
|
import io.legato.kazusa.help.config.AppConfig
|
||||||
import io.legato.kazusa.ui.book.search.SearchActivity
|
import io.legato.kazusa.ui.book.search.SearchActivity
|
||||||
import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
|
import io.legato.kazusa.ui.main.bookshelf.BaseBookshelfFragment
|
||||||
import io.legato.kazusa.ui.main.bookshelf.style1.books.BooksFragment
|
|
||||||
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
|
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
|
||||||
import kotlin.collections.set
|
import kotlin.collections.set
|
||||||
|
|
||||||
@@ -109,11 +108,8 @@ class BookshelfFragment3() : BaseBookshelfFragment(R.layout.fragment_bookshelf3)
|
|||||||
if (it is BooksFragment) {
|
if (it is BooksFragment) {
|
||||||
val position = it.position
|
val position = it.position
|
||||||
val group = bookGroups.getOrNull(position) ?: return@forEach
|
val group = bookGroups.getOrNull(position) ?: return@forEach
|
||||||
val newSort = group.getRealBookSort()
|
|
||||||
it.setEnableRefresh(group.enableRefresh)
|
it.setEnableRefresh(group.enableRefresh)
|
||||||
if (it.bookSort != newSort) {
|
it.upBookSort()
|
||||||
it.upBookSort(newSort)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package io.legato.kazusa.ui.main.bookshelf.style1.books
|
package io.legato.kazusa.ui.main.bookshelf.books.styleDefalut
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package io.legato.kazusa.ui.main.bookshelf.style1.books
|
package io.legato.kazusa.ui.main.bookshelf.books.styleDefalut
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package io.legato.kazusa.ui.main.bookshelf.style1.books
|
package io.legato.kazusa.ui.main.bookshelf.books.styleDefalut
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package io.legato.kazusa.ui.main.bookshelf.style2
|
package io.legato.kazusa.ui.main.bookshelf.books.styleFold
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package io.legato.kazusa.ui.main.bookshelf.style2
|
package io.legato.kazusa.ui.main.bookshelf.books.styleFold
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package io.legato.kazusa.ui.main.bookshelf.style2
|
package io.legato.kazusa.ui.main.bookshelf.books.styleFold
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -144,7 +144,6 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:layout_marginVertical="8dp"
|
android:layout_marginVertical="8dp"
|
||||||
android:layout_marginHorizontal="16dp"
|
|
||||||
android:importantForAccessibility="no"
|
android:importantForAccessibility="no"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
@@ -198,7 +197,7 @@
|
|||||||
android:gravity="end"
|
android:gravity="end"
|
||||||
android:importantForAccessibility="no"
|
android:importantForAccessibility="no"
|
||||||
android:paddingVertical="8dp"
|
android:paddingVertical="8dp"
|
||||||
android:paddingHorizontal="16dp"
|
android:paddingEnd="16dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
|
|||||||
@@ -1,222 +1,225 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:fillViewport="true"
|
android:fillViewport="true">
|
||||||
android:paddingHorizontal="16dp"
|
|
||||||
android:paddingVertical="8dp"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:fillViewport="true"
|
||||||
android:gravity="center"
|
android:paddingHorizontal="16dp"
|
||||||
android:paddingVertical="8dp"
|
android:paddingVertical="8dp"
|
||||||
android:paddingHorizontal="16dp">
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
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" />
|
||||||
|
|
||||||
<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
|
<TextView
|
||||||
android:id="@+id/bottom_sheet_title"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/bookshelf_layout"
|
android:paddingTop="8dp"
|
||||||
android:textSize="18sp"
|
android:text="@string/group_style"
|
||||||
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" />
|
|
||||||
|
|
||||||
|
|
||||||
<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: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:textSize="14sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_weight="1"/>
|
|
||||||
|
|
||||||
<com.google.android.material.chip.ChipGroup
|
<com.google.android.material.chip.ChipGroup
|
||||||
android:id="@+id/chip_group_layout"
|
android:id="@+id/chip_group_style"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:checkableBehavior="single"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
app:singleSelection="true"
|
app:singleSelection="true"
|
||||||
app:selectionRequired="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>
|
</com.google.android.material.chip.ChipGroup>
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
<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_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:orientation="horizontal"
|
||||||
android:text="@string/sort"
|
android:paddingTop="8dp">
|
||||||
android:textSize="14sp"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<View
|
<TextView
|
||||||
android:layout_width="0dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"/>
|
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
|
<com.google.android.material.chip.ChipGroup
|
||||||
android:id="@+id/chipGroupOrder"
|
android:id="@+id/chip_group_sort"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:singleSelection="true">
|
app:singleSelection="true"
|
||||||
|
app:selectionRequired="true"
|
||||||
|
android:orientation="horizontal" />
|
||||||
|
|
||||||
<com.google.android.material.chip.Chip
|
<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.Material3.Button.OutlinedButton"
|
||||||
|
android:text="取消"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content" />
|
||||||
android:id="@+id/chip_asc"
|
|
||||||
android:text="升序"
|
<com.google.android.material.button.MaterialButton
|
||||||
android:checkable="true" />
|
android:id="@+id/btnOk"
|
||||||
|
style="@style/Widget.Material3.Button"
|
||||||
|
android:text="确定"
|
||||||
|
|
||||||
<com.google.android.material.chip.Chip
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content" />
|
||||||
android:id="@+id/chip_desc"
|
|
||||||
android:text="降序"
|
</LinearLayout>
|
||||||
android:checkable="true" />
|
|
||||||
</com.google.android.material.chip.ChipGroup>
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
<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:layout_marginTop="4dp"
|
|
||||||
android:layout_marginBottom="4dp"
|
|
||||||
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.Material3.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.Material3.Button"
|
|
||||||
android:text="确定"
|
|
||||||
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tool="http://schemas.android.com/tools"
|
xmlns:tool="http://schemas.android.com/tools"
|
||||||
@@ -309,4 +309,4 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|||||||
Reference in New Issue
Block a user