mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-23 20:31:51 +01:00
Near final fixes to filter bottom sheet
Fixed title sometimes still showing when expanded Popup menu show sorting option
This commit is contained in:
parent
ebfdfe4d9b
commit
4ba197c713
@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.data.database.models
|
||||
|
||||
import android.content.Context
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.ui.library.LibrarySort
|
||||
import java.io.Serializable
|
||||
|
||||
interface Category : Serializable {
|
||||
@ -25,16 +26,31 @@ interface Category : Serializable {
|
||||
return ((mangaSort?.minus('a') ?: 0) % 2) != 1
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val ALPHA_ASC = 'a'
|
||||
const val ALPHA_DSC = 'b'
|
||||
const val UPDATED_ASC = 'c'
|
||||
const val UPDATED_DSC = 'd'
|
||||
const val UNREAD_ASC = 'e'
|
||||
const val UNREAD_DSC = 'f'
|
||||
const val LAST_READ_ASC = 'g'
|
||||
const val LAST_READ_DSC = 'h'
|
||||
fun sortingMode(): Int? = when (mangaSort) {
|
||||
ALPHA_ASC, ALPHA_DSC -> LibrarySort.ALPHA
|
||||
UPDATED_ASC, UPDATED_DSC -> LibrarySort.LAST_UPDATED
|
||||
UNREAD_ASC, UNREAD_DSC -> LibrarySort.UNREAD
|
||||
LAST_READ_ASC, LAST_READ_DSC -> LibrarySort.LAST_READ
|
||||
else -> null
|
||||
}
|
||||
|
||||
fun catSortingMode(): Int? = when (mangaSort) {
|
||||
ALPHA_ASC, ALPHA_DSC -> 0
|
||||
UPDATED_ASC, UPDATED_DSC -> 1
|
||||
UNREAD_ASC, UNREAD_DSC -> 2
|
||||
LAST_READ_ASC, LAST_READ_DSC -> 3
|
||||
else -> null
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val ALPHA_ASC = 'a'
|
||||
private const val ALPHA_DSC = 'b'
|
||||
private const val UPDATED_ASC = 'c'
|
||||
private const val UPDATED_DSC = 'd'
|
||||
private const val UNREAD_ASC = 'e'
|
||||
private const val UNREAD_DSC = 'f'
|
||||
private const val LAST_READ_ASC = 'g'
|
||||
private const val LAST_READ_DSC = 'h'
|
||||
|
||||
fun create(name: String): Category = CategoryImpl().apply {
|
||||
this.name = name
|
||||
|
@ -4,14 +4,6 @@ import android.os.Bundle
|
||||
import eu.kanade.tachiyomi.data.cache.CoverCache
|
||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||
import eu.kanade.tachiyomi.data.database.models.Category
|
||||
import eu.kanade.tachiyomi.data.database.models.Category.Companion.ALPHA_ASC
|
||||
import eu.kanade.tachiyomi.data.database.models.Category.Companion.ALPHA_DSC
|
||||
import eu.kanade.tachiyomi.data.database.models.Category.Companion.LAST_READ_ASC
|
||||
import eu.kanade.tachiyomi.data.database.models.Category.Companion.LAST_READ_DSC
|
||||
import eu.kanade.tachiyomi.data.database.models.Category.Companion.UNREAD_ASC
|
||||
import eu.kanade.tachiyomi.data.database.models.Category.Companion.UNREAD_DSC
|
||||
import eu.kanade.tachiyomi.data.database.models.Category.Companion.UPDATED_ASC
|
||||
import eu.kanade.tachiyomi.data.database.models.Category.Companion.UPDATED_DSC
|
||||
import eu.kanade.tachiyomi.data.database.models.LibraryManga
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.data.database.models.MangaCategory
|
||||
@ -246,16 +238,16 @@ class LibraryPresenter(
|
||||
val sortFn: (LibraryItem, LibraryItem) -> Int = { i1, i2 ->
|
||||
val compare = when {
|
||||
category.mangaSort != null -> {
|
||||
var sort = when (category.mangaSort) {
|
||||
ALPHA_ASC, ALPHA_DSC -> sortAlphabetical(i1, i2)
|
||||
UPDATED_ASC, UPDATED_DSC -> i2.manga.last_update.compareTo(i1.manga.last_update)
|
||||
UNREAD_ASC, UNREAD_DSC -> when {
|
||||
var sort = when (category.sortingMode()) {
|
||||
LibrarySort.ALPHA -> sortAlphabetical(i1, i2)
|
||||
LibrarySort.LAST_UPDATED -> i2.manga.last_update.compareTo(i1.manga.last_update)
|
||||
LibrarySort.UNREAD -> when {
|
||||
i1.manga.unread == i2.manga.unread -> 0
|
||||
i1.manga.unread == 0 -> if (category.isAscending()) 1 else -1
|
||||
i2.manga.unread == 0 -> if (category.isAscending()) -1 else 1
|
||||
else -> i1.manga.unread.compareTo(i2.manga.unread)
|
||||
}
|
||||
LAST_READ_ASC, LAST_READ_DSC -> {
|
||||
LibrarySort.LAST_READ -> {
|
||||
val manga1LastRead = lastReadManga[i1.manga.id!!] ?: lastReadManga.size
|
||||
val manga2LastRead = lastReadManga[i2.manga.id!!] ?: lastReadManga.size
|
||||
manga1LastRead.compareTo(manga2LastRead)
|
||||
@ -336,20 +328,16 @@ class LibraryPresenter(
|
||||
val category = catListing.find { it.id == i1.manga.category }
|
||||
when {
|
||||
category?.mangaSort != null -> {
|
||||
var sort = when (category.mangaSort) {
|
||||
ALPHA_ASC, ALPHA_DSC -> sortAlphabetical(i1, i2)
|
||||
UPDATED_ASC, UPDATED_DSC ->
|
||||
i2.manga.last_update.compareTo(i1.manga.last_update)
|
||||
UNREAD_ASC, UNREAD_DSC ->
|
||||
when {
|
||||
i1.manga.unread == i2.manga.unread -> 0
|
||||
i1.manga.unread == 0 ->
|
||||
if (category.isAscending()) 1 else -1
|
||||
i2.manga.unread == 0 ->
|
||||
if (category.isAscending()) -1 else 1
|
||||
else -> i1.manga.unread.compareTo(i2.manga.unread)
|
||||
}
|
||||
LAST_READ_ASC, LAST_READ_DSC -> {
|
||||
var sort = when (category.sortingMode()) {
|
||||
LibrarySort.ALPHA -> sortAlphabetical(i1, i2)
|
||||
LibrarySort.LAST_UPDATED -> i2.manga.last_update.compareTo(i1.manga.last_update)
|
||||
LibrarySort.UNREAD -> when {
|
||||
i1.manga.unread == i2.manga.unread -> 0
|
||||
i1.manga.unread == 0 -> if (category.isAscending()) 1 else -1
|
||||
i2.manga.unread == 0 -> if (category.isAscending()) -1 else 1
|
||||
else -> i1.manga.unread.compareTo(i2.manga.unread)
|
||||
}
|
||||
LibrarySort.LAST_READ -> {
|
||||
val manga1LastRead = lastReadManga[i1.manga.id!!] ?: lastReadManga.size
|
||||
val manga2LastRead = lastReadManga[i2.manga.id!!] ?: lastReadManga.size
|
||||
manga1LastRead.compareTo(manga2LastRead)
|
||||
|
@ -4,13 +4,13 @@ import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.util.AttributeSet
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.ImageView
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.RadioButton
|
||||
import android.widget.RadioGroup
|
||||
import androidx.appcompat.view.menu.MenuBuilder
|
||||
import androidx.appcompat.widget.PopupMenu
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.f2prateek.rx.preferences.Preference
|
||||
@ -86,14 +86,13 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
var pager:View? = null
|
||||
|
||||
fun onCreate(pagerView:View) {
|
||||
if (context.resources.configuration?.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||
|| isTablet()) {
|
||||
if (isLandscape() || isTablet()) {
|
||||
sideLayout.orientation = HORIZONTAL
|
||||
sortingLayout.updateLayoutParams<MarginLayoutParams> {
|
||||
bottomMargin = 0
|
||||
topMargin = 0
|
||||
}
|
||||
sortScrollView.updatePadding(
|
||||
sortScrollView?.updatePadding(
|
||||
bottom = 10.dpToPx,
|
||||
top = 0
|
||||
)
|
||||
@ -117,14 +116,16 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
val coordLayout:View = (pagerView.parent as ViewGroup).findViewById(R.id.snackbar_layout)
|
||||
sheetBehavior?.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
|
||||
override fun onSlide(bottomSheet: View, progress: Float) {
|
||||
updateRootPadding(progress)
|
||||
topbar.alpha = 1 - progress
|
||||
shadow2.alpha = (1 - progress) * 0.25f
|
||||
updateRootPadding(progress)
|
||||
}
|
||||
|
||||
override fun onStateChanged(p0: View, state: Int) {
|
||||
if (state == BottomSheetBehavior.STATE_COLLAPSED) reSortViews()
|
||||
else setMainSortText()
|
||||
if (state == BottomSheetBehavior.STATE_EXPANDED)
|
||||
topbar.alpha = 0f
|
||||
topbar.isClickable = state == BottomSheetBehavior.STATE_COLLAPSED
|
||||
topbar.isFocusable = state == BottomSheetBehavior.STATE_COLLAPSED
|
||||
}
|
||||
@ -167,6 +168,10 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
displayGroup.bindToPreference(preferences.libraryAsList())
|
||||
}
|
||||
|
||||
private fun isLandscape(): Boolean {
|
||||
return context.resources.configuration?.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||
}
|
||||
|
||||
private fun isTablet(): Boolean {
|
||||
return (context.resources.configuration.screenLayout and Configuration
|
||||
.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE
|
||||
@ -345,17 +350,41 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
|
||||
// Set a listener so we are notified if a menu item is clicked
|
||||
popup.setOnMenuItemClickListener { menuItem ->
|
||||
onMainSortClicked(menuItem)
|
||||
onMainSortClicked(menuItem.itemId)
|
||||
true
|
||||
}
|
||||
popup.menu.findItem(R.id.action_reverse).isVisible =
|
||||
preferences.librarySortingMode().getOrDefault() != LibrarySort.DRAG_AND_DROP
|
||||
|
||||
if (popup.menu is MenuBuilder) {
|
||||
val m = popup.menu as MenuBuilder
|
||||
m.setOptionalIconsVisible(true)
|
||||
}
|
||||
|
||||
val sortingMode = preferences.librarySortingMode().getOrDefault()
|
||||
val currentItem = popup.menu.findItem(
|
||||
when (sortingMode) {
|
||||
LibrarySort.DRAG_AND_DROP -> R.id.action_drag_and_drop
|
||||
LibrarySort.TOTAL -> R.id.action_total_chaps
|
||||
LibrarySort.LAST_READ -> R.id.action_last_read
|
||||
LibrarySort.UNREAD -> R.id.action_unread
|
||||
LibrarySort.LAST_UPDATED -> R.id.action_update
|
||||
else -> R.id.action_alpha
|
||||
}
|
||||
)
|
||||
currentItem.icon = tintVector(
|
||||
when {
|
||||
sortingMode == LibrarySort.DRAG_AND_DROP -> R.drawable.ic_check_white_24dp
|
||||
!preferences.librarySortingAscending().getOrDefault() ->
|
||||
R.drawable.ic_arrow_down_white_24dp
|
||||
else -> R.drawable.ic_arrow_up_white_24dp
|
||||
}, android.R.attr.colorAccent
|
||||
)
|
||||
|
||||
// Finally show the PopupMenu
|
||||
popup.show()
|
||||
}
|
||||
|
||||
private fun showCatSortOptions() {
|
||||
val category = lastCategory ?: return
|
||||
// Create a PopupMenu, giving it the clicked view for an anchor
|
||||
val popup = PopupMenu(context, catSortTextView)
|
||||
|
||||
@ -364,23 +393,45 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
|
||||
// Set a listener so we are notified if a menu item is clicked
|
||||
popup.setOnMenuItemClickListener { menuItem ->
|
||||
onCatSortClicked(menuItem)
|
||||
onCatSortClicked(menuItem.itemId)
|
||||
true
|
||||
}
|
||||
popup.menu.findItem(R.id.action_reverse).isVisible = lastCategory?.mangaSort != null
|
||||
|
||||
val sortingMode = category.sortingMode()
|
||||
val currentItem = if (sortingMode == null) null
|
||||
else popup.menu.findItem(
|
||||
when (sortingMode) {
|
||||
LibrarySort.DRAG_AND_DROP -> R.id.action_drag_and_drop
|
||||
LibrarySort.TOTAL -> R.id.action_total_chaps
|
||||
LibrarySort.LAST_READ -> R.id.action_last_read
|
||||
LibrarySort.UNREAD -> R.id.action_unread
|
||||
LibrarySort.LAST_UPDATED -> R.id.action_update
|
||||
else -> R.id.action_alpha
|
||||
}
|
||||
)
|
||||
|
||||
if (sortingMode != null && popup.menu is MenuBuilder) {
|
||||
val m = popup.menu as MenuBuilder
|
||||
m.setOptionalIconsVisible(true)
|
||||
}
|
||||
|
||||
currentItem?.icon = tintVector(
|
||||
if (category.isAscending()) R.drawable.ic_arrow_up_white_24dp
|
||||
else R.drawable.ic_arrow_down_white_24dp,
|
||||
android.R.attr.colorAccent
|
||||
)
|
||||
|
||||
// Finally show the PopupMenu
|
||||
popup.show()
|
||||
}
|
||||
|
||||
private fun onMainSortClicked(menu: MenuItem) {
|
||||
if (menu.itemId == R.id.action_reverse) {
|
||||
private fun onMainSortClicked(menuId: Int) {
|
||||
if (menuId == R.id.action_reverse) {
|
||||
preferences.librarySortingAscending().set(
|
||||
!preferences.librarySortingAscending().getOrDefault())
|
||||
}
|
||||
else {
|
||||
preferences.librarySortingMode().set(
|
||||
when (menu.itemId) {
|
||||
val sort = when (menuId) {
|
||||
R.id.action_update -> LibrarySort.LAST_UPDATED
|
||||
R.id.action_unread -> LibrarySort.UNREAD
|
||||
R.id.action_total_chaps -> LibrarySort.TOTAL
|
||||
@ -388,27 +439,36 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
R.id.action_drag_and_drop -> LibrarySort.DRAG_AND_DROP
|
||||
else -> LibrarySort.ALPHA
|
||||
}
|
||||
)
|
||||
if (sort == preferences.librarySortingMode().getOrDefault()) {
|
||||
if (sort != LibrarySort.DRAG_AND_DROP)
|
||||
onMainSortClicked(R.id.action_reverse)
|
||||
return
|
||||
}
|
||||
preferences.librarySortingMode().set(sort)
|
||||
preferences.librarySortingAscending().set(true)
|
||||
}
|
||||
setMainSortText()
|
||||
onGroupClicked(ACTION_SORT)
|
||||
}
|
||||
|
||||
private fun onCatSortClicked(menu: MenuItem) {
|
||||
private fun onCatSortClicked(menuId: Int) {
|
||||
val category = lastCategory ?: return
|
||||
val modType = if (menu.itemId == R.id.action_reverse) {
|
||||
val modType = if (menuId == R.id.action_reverse) {
|
||||
val t = (category.mangaSort?.minus('a') ?: 0) + 1
|
||||
if (t % 2 != 0) t + 1
|
||||
else t - 1
|
||||
}
|
||||
else {
|
||||
val order = when (menu.itemId) {
|
||||
val order = when (menuId) {
|
||||
R.id.action_last_read -> 3
|
||||
R.id.action_unread -> 2
|
||||
R.id.action_update -> 1
|
||||
else -> 0
|
||||
}
|
||||
if (order == category.catSortingMode()) {
|
||||
onCatSortClicked(R.id.action_reverse)
|
||||
return
|
||||
}
|
||||
(2 * order + 1)
|
||||
}
|
||||
launchUI {
|
||||
@ -430,25 +490,21 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
}
|
||||
|
||||
private fun setMainSortText() {
|
||||
//if (sheetBehavior?.state == BottomSheetBehavior.STATE_COLLAPSED) return
|
||||
launchUI {
|
||||
val sortId = withContext(Dispatchers.IO) { sorting(true) }
|
||||
val drawable = withContext(Dispatchers.IO) {
|
||||
tintVector(
|
||||
when {
|
||||
sortId == LibrarySort.DRAG_AND_DROP -> R.drawable.ic_sort_white_24dp
|
||||
preferences.librarySortingAscending().getOrDefault() -> R.drawable
|
||||
.ic_arrow_up_white_24dp
|
||||
else -> R.drawable.ic_arrow_down_white_24dp
|
||||
}
|
||||
val drawableL = withContext(Dispatchers.IO) {
|
||||
tintVector(
|
||||
when {
|
||||
sortId == LibrarySort.DRAG_AND_DROP -> R.drawable.ic_sort_white_24dp
|
||||
preferences.librarySortingAscending().getOrDefault() -> R.drawable.ic_arrow_up_white_24dp
|
||||
else -> R.drawable.ic_arrow_down_white_24dp
|
||||
}, android.R.attr.colorAccent
|
||||
)
|
||||
}
|
||||
mainSortTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(
|
||||
null, null, drawable, null
|
||||
)
|
||||
mainSortTextView.text = withContext(Dispatchers.IO) {
|
||||
if (sortId == LibrarySort.DRAG_AND_DROP)
|
||||
context.getString(
|
||||
context.getString(
|
||||
if (sortId == LibrarySort.DRAG_AND_DROP) R.string.sort_library_by_
|
||||
else R.string.sort_by_, context.getString(
|
||||
when (sortId) {
|
||||
LibrarySort.LAST_UPDATED -> R.string.action_sort_last_updated
|
||||
LibrarySort.DRAG_AND_DROP -> R.string.action_sort_drag_and_drop
|
||||
@ -458,9 +514,32 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
else -> R.string.title
|
||||
}
|
||||
)
|
||||
else {
|
||||
context.getString(
|
||||
R.string.sort_by_, context.getString(
|
||||
)
|
||||
}
|
||||
mainSortTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(
|
||||
drawableL, null, null, null
|
||||
)
|
||||
setCatSortText()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setCatSortText() {
|
||||
launchUI {
|
||||
if (preferences.librarySortingMode().getOrDefault() == LibrarySort.DRAG_AND_DROP &&
|
||||
!preferences.hideCategories().getOrDefault() && lastCategory != null) {
|
||||
val sortId = withContext(Dispatchers.IO) { sorting() }
|
||||
val drawableL = withContext(Dispatchers.IO) {
|
||||
tintVector(
|
||||
when {
|
||||
sortId == LibrarySort.DRAG_AND_DROP -> R.drawable.ic_label_outline_white_24dp
|
||||
lastCategory?.isAscending() == true -> R.drawable.ic_arrow_up_white_24dp
|
||||
else -> R.drawable.ic_arrow_down_white_24dp
|
||||
}, android.R.attr.colorAccent
|
||||
)
|
||||
}
|
||||
catSortTextView.text = withContext(Dispatchers.IO) {
|
||||
context.getString(
|
||||
R.string.sort_category_by_, context.getString(
|
||||
when (sortId) {
|
||||
LibrarySort.LAST_UPDATED -> R.string.action_sort_last_updated
|
||||
LibrarySort.DRAG_AND_DROP -> R.string.action_sort_drag_and_drop
|
||||
@ -472,42 +551,9 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
setCatSortText()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setCatSortText() {
|
||||
launchUI {
|
||||
if (preferences.librarySortingMode().getOrDefault() == LibrarySort.DRAG_AND_DROP &&
|
||||
!preferences.hideCategories().getOrDefault() && lastCategory != null) {
|
||||
val sortId = withContext(Dispatchers.IO) { sorting() }
|
||||
val drawable = withContext(Dispatchers.IO) {
|
||||
tintVector(
|
||||
R.drawable.ic_label_outline_white_24dp
|
||||
/*when {
|
||||
sortId == LibrarySort.DRAG_AND_DROP -> R.drawable.ic_sort_white_24dp
|
||||
lastCategory?.isAscending() == true -> R.drawable
|
||||
.ic_arrow_up_white_24dp
|
||||
else -> R.drawable.ic_arrow_down_white_24dp
|
||||
}*/
|
||||
)
|
||||
}
|
||||
catSortTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(
|
||||
null, null, drawable, null
|
||||
drawableL, null, null, null
|
||||
)
|
||||
catSortTextView.text = withContext(Dispatchers.IO) {
|
||||
context.getString(
|
||||
when (sortId) {
|
||||
LibrarySort.LAST_UPDATED -> R.string.action_sort_last_updated
|
||||
LibrarySort.DRAG_AND_DROP -> R.string.action_sort_drag_and_drop
|
||||
LibrarySort.TOTAL -> R.string.action_sort_total
|
||||
LibrarySort.UNREAD -> R.string.action_filter_unread
|
||||
LibrarySort.LAST_READ -> R.string.action_sort_last_read
|
||||
else -> R.string.title
|
||||
}
|
||||
)
|
||||
}
|
||||
if (catSortTextView.visibility != View.VISIBLE) catSortTextView.visible()
|
||||
} else if (catSortTextView.visibility == View.VISIBLE) catSortTextView.gone()
|
||||
}
|
||||
@ -527,9 +573,9 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri
|
||||
|
||||
private fun Boolean.toInt() = if (this) 1 else 0
|
||||
|
||||
private fun tintVector(resId: Int): Drawable? {
|
||||
private fun tintVector(resId: Int, attrId: Int? = null): Drawable? {
|
||||
return ContextCompat.getDrawable(context, resId)?.mutate()?.apply {
|
||||
setTint(context.getResourceColor(R.attr.actionBarTintColor))
|
||||
setTint(context.getResourceColor(attrId ?: android.R.attr.textColorPrimary))
|
||||
}
|
||||
}
|
||||
|
||||
|
10
app/src/main/res/drawable/ic_blank_24dp.xml
Normal file
10
app/src/main/res/drawable/ic_blank_24dp.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<size
|
||||
android:width="24dp"
|
||||
android:height="24dp" />
|
||||
|
||||
<solid android:color="@android:color/transparent" />
|
||||
|
||||
</shape>
|
5
app/src/main/res/drawable/ic_check_white_24dp.xml
Normal file
5
app/src/main/res/drawable/ic_check_white_24dp.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#FF000000" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
|
||||
</vector>
|
215
app/src/main/res/layout-land/filter_bottom_sheet.xml
Normal file
215
app/src/main/res/layout-land/filter_bottom_sheet.xml
Normal file
@ -0,0 +1,215 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/bottom_sheet"
|
||||
style="@style/BottomSheetDialogTheme"
|
||||
android:layout_width="match_parent"
|
||||
app:behavior_peekHeight="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_bottom_sheet_dialog_fragment"
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<HorizontalScrollView
|
||||
android:id="@+id/filterScrollView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:clipToPadding="false"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:scrollbars="none">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/filterLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pendingClearButton"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@drawable/round_clear_border"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/action_clear"
|
||||
android:focusable="true"
|
||||
android:padding="3dp"
|
||||
android:src="@drawable/ic_close_white_24dp"
|
||||
android:tint="@color/gray_button" />
|
||||
|
||||
</LinearLayout>
|
||||
</HorizontalScrollView>
|
||||
|
||||
<HorizontalScrollView
|
||||
android:id="@+id/sortScrollView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:clipToPadding="false"
|
||||
android:paddingStart="23dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:scrollbars="none">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/sideLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:baselineAligned="true"
|
||||
android:gravity="center|start"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/sortingLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:baselineAligned="false"
|
||||
android:gravity="center|start"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/mainSortTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:clickable="true"
|
||||
android:drawablePadding="6dp"
|
||||
android:background="@drawable/square_ripple"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:padding="5dp"
|
||||
android:text="srgdg"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="normal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/catSortTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/square_ripple"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:padding="5dp"
|
||||
android:clickable="true"
|
||||
android:drawablePadding="6dp"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:text="srgdg"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="normal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/displayLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="7dp"
|
||||
android:layout_marginEnd="14dp"
|
||||
android:baselineAligned="false"
|
||||
android:gravity="center|start"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="14dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:text="@string/display_as"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="normal" />
|
||||
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/displayGroup"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="0dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:text="@string/action_display_grid" />
|
||||
|
||||
<RadioButton
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="24dp"
|
||||
android:text="@string/action_display_list" />
|
||||
</RadioGroup>
|
||||
</LinearLayout>
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/downloadCheckbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/action_display_download_badge"/>
|
||||
</LinearLayout>
|
||||
</HorizontalScrollView>
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/topbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_bottom_sheet_primary"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="24dp"
|
||||
android:src="@drawable/ic_sort_white_24dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/sortText"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/sortText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/sortText"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:textAlignment="textStart"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="?attr/actionBarTintColor"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/imageView2"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet>
|
215
app/src/main/res/layout-sw600dp/filter_bottom_sheet.xml
Normal file
215
app/src/main/res/layout-sw600dp/filter_bottom_sheet.xml
Normal file
@ -0,0 +1,215 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/bottom_sheet"
|
||||
style="@style/BottomSheetDialogTheme"
|
||||
android:layout_width="match_parent"
|
||||
app:behavior_peekHeight="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_bottom_sheet_dialog_fragment"
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<HorizontalScrollView
|
||||
android:id="@+id/filterScrollView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:clipToPadding="false"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:scrollbars="none">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/filterLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pendingClearButton"
|
||||
android:layout_width="32dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@drawable/round_clear_border"
|
||||
android:clickable="true"
|
||||
android:contentDescription="@string/action_clear"
|
||||
android:focusable="true"
|
||||
android:padding="3dp"
|
||||
android:src="@drawable/ic_close_white_24dp"
|
||||
android:tint="@color/gray_button" />
|
||||
|
||||
</LinearLayout>
|
||||
</HorizontalScrollView>
|
||||
|
||||
<HorizontalScrollView
|
||||
android:id="@+id/sortScrollView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:clipToPadding="false"
|
||||
android:paddingStart="23dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:scrollbars="none">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/sideLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:baselineAligned="true"
|
||||
android:gravity="center|start"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/sortingLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:baselineAligned="false"
|
||||
android:gravity="center|start"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/mainSortTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:clickable="true"
|
||||
android:drawablePadding="6dp"
|
||||
android:background="@drawable/square_ripple"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:padding="5dp"
|
||||
android:text="srgdg"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="normal" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/catSortTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/square_ripple"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:padding="5dp"
|
||||
android:clickable="true"
|
||||
android:drawablePadding="6dp"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:text="srgdg"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="normal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/displayLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="7dp"
|
||||
android:layout_marginEnd="14dp"
|
||||
android:baselineAligned="false"
|
||||
android:gravity="center|start"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="14dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:text="@string/display_as"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="normal" />
|
||||
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/displayGroup"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<RadioButton
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="0dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:text="@string/action_display_grid" />
|
||||
|
||||
<RadioButton
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="24dp"
|
||||
android:text="@string/action_display_list" />
|
||||
</RadioGroup>
|
||||
</LinearLayout>
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/downloadCheckbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/action_display_download_badge"/>
|
||||
</LinearLayout>
|
||||
</HorizontalScrollView>
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/topbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_bottom_sheet_primary"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="24dp"
|
||||
android:src="@drawable/ic_sort_white_24dp"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/sortText"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/sortText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/sortText"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:textAlignment="textStart"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
|
||||
android:textColor="?attr/actionBarTintColor"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/imageView2"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</eu.kanade.tachiyomi.ui.library.filter.FilterBottomSheet>
|
@ -7,8 +7,6 @@
|
||||
app:behavior_peekHeight="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_bottom_sheet_dialog_fragment"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
||||
|
||||
@ -60,20 +58,13 @@
|
||||
</LinearLayout>
|
||||
</HorizontalScrollView>
|
||||
|
||||
<HorizontalScrollView
|
||||
android:id="@+id/sortScrollView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:clipToPadding="false"
|
||||
android:paddingStart="23dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:scrollbars="none">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/sideLayout"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:paddingStart="23dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:baselineAligned="true"
|
||||
android:gravity="center|start"
|
||||
android:orientation="vertical">
|
||||
@ -90,14 +81,15 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/mainSortTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:clickable="true"
|
||||
android:drawablePadding="6dp"
|
||||
android:background="@drawable/square_ripple"
|
||||
android:layout_weight="1"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:gravity="start|center"
|
||||
android:padding="5dp"
|
||||
android:text="srgdg"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
@ -107,15 +99,17 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/catSortTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/square_ripple"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_weight="1"
|
||||
android:padding="5dp"
|
||||
android:clickable="true"
|
||||
android:drawablePadding="16dp"
|
||||
android:drawablePadding="6dp"
|
||||
android:textAlignment="textStart"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:gravity="start|center"
|
||||
android:text="srgdg"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
@ -174,7 +168,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/action_display_download_badge"/>
|
||||
</LinearLayout>
|
||||
</HorizontalScrollView>
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
@ -2,26 +2,22 @@
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:context=".MainActivity">
|
||||
<group android:id="@+id/reorder_group"
|
||||
android:checkableBehavior="single">
|
||||
<item
|
||||
android:id="@+id/action_alpha"
|
||||
android:title="@string/title"/>
|
||||
android:title="@string/title"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/action_last_read"
|
||||
android:title="@string/action_sort_last_read"/>
|
||||
android:title="@string/action_sort_last_read"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/action_update"
|
||||
android:title="@string/action_sort_last_updated"/>
|
||||
android:title="@string/action_sort_last_updated"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
<item
|
||||
android:id="@+id/action_unread"
|
||||
android:title="@string/action_filter_unread"/>
|
||||
|
||||
</group>
|
||||
|
||||
<item
|
||||
android:id="@+id/action_reverse"
|
||||
android:title="@string/action_reverse_order"/>
|
||||
android:title="@string/action_filter_unread"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
</menu>
|
@ -1,35 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context=".MainActivity">
|
||||
<group android:id="@+id/reorder_group"
|
||||
android:checkableBehavior="single">
|
||||
<item
|
||||
android:id="@+id/action_alpha"
|
||||
android:title="@string/title"/>
|
||||
android:title="@string/title"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/action_last_read"
|
||||
android:title="@string/action_sort_last_read"/>
|
||||
android:title="@string/action_sort_last_read"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/action_update"
|
||||
android:title="@string/action_sort_last_updated"/>
|
||||
android:title="@string/action_sort_last_updated"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
<item
|
||||
android:id="@+id/action_unread"
|
||||
android:title="@string/action_filter_unread"/>
|
||||
android:title="@string/action_filter_unread"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/action_total_chaps"
|
||||
android:title="@string/action_sort_total"/>
|
||||
android:title="@string/action_sort_total"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/action_drag_and_drop"
|
||||
android:title="@string/action_sort_drag_and_drop"/>
|
||||
android:title="@string/action_sort_drag_and_drop"
|
||||
android:icon="@drawable/ic_blank_24dp"/>
|
||||
|
||||
</group>
|
||||
|
||||
<item
|
||||
android:id="@+id/action_reverse"
|
||||
android:title="@string/action_reverse_order"/>
|
||||
</menu>
|
@ -51,6 +51,8 @@
|
||||
|
||||
<string name="sorting_by_">Sorting by %1$s</string>
|
||||
<string name="sort_by_">Sort by: %1$s</string>
|
||||
<string name="sort_library_by_">Sort library by: %1$s</string>
|
||||
<string name="sort_category_by_">Sort category by: %1$s</string>
|
||||
<string name="action_filter_empty">Remove filter</string>
|
||||
<string name="action_sort_alpha">Alphabetically</string>
|
||||
<string name="action_sort_enabled">Enabled</string>
|
||||
|
Loading…
Reference in New Issue
Block a user