Add no title grid option

This commit is contained in:
Jobobby04 2020-08-13 16:23:38 -04:00
parent 5fee3ac05a
commit a5c10dbf28
9 changed files with 41 additions and 9 deletions

View File

@ -28,6 +28,9 @@ object PreferenceValues {
enum class DisplayMode {
COMPACT_GRID,
COMFORTABLE_GRID,
// SY -->
NO_TITLE_GRID,
// SY <--
LIST,
}

View File

@ -431,6 +431,9 @@ open class BrowseSourceController(bundle: Bundle) :
val displayItem = when (preferences.sourceDisplayMode().get()) {
DisplayMode.COMPACT_GRID -> R.id.action_compact_grid
DisplayMode.COMFORTABLE_GRID -> R.id.action_comfortable_grid
// SY -->
DisplayMode.NO_TITLE_GRID -> R.id.action_no_title_grid
// SY <--
DisplayMode.LIST -> R.id.action_list
}
menu.findItem(displayItem).isChecked = true
@ -464,6 +467,9 @@ open class BrowseSourceController(bundle: Bundle) :
R.id.action_search -> expandActionViewFromInteraction = true
R.id.action_compact_grid -> setDisplayMode(DisplayMode.COMPACT_GRID)
R.id.action_comfortable_grid -> setDisplayMode(DisplayMode.COMFORTABLE_GRID)
// SY -->
R.id.action_no_title_grid -> setDisplayMode(DisplayMode.NO_TITLE_GRID)
// SY <--
R.id.action_list -> setDisplayMode(DisplayMode.LIST)
R.id.action_open_in_web_view -> openInWebView()
// SY -->

View File

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.ui.browse.source.browse
import android.view.View
import androidx.core.view.isVisible
import com.bumptech.glide.load.engine.DiskCacheStrategy
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.data.database.models.Manga
@ -20,7 +21,7 @@ import kotlinx.android.synthetic.main.source_comfortable_grid_item.title
* @param adapter the adapter handling this holder.
* @constructor creates a new catalogue holder.
*/
class SourceComfortableGridHolder(private val view: View, private val adapter: FlexibleAdapter<*>) :
class SourceComfortableGridHolder(private val view: View, private val adapter: FlexibleAdapter<*> /* SY --> */, private val hasTitle: Boolean /* SY <-- */) :
SourceGridHolder(view, adapter) {
/**
@ -32,6 +33,9 @@ class SourceComfortableGridHolder(private val view: View, private val adapter: F
override fun onSetValues(manga: Manga) {
// Set manga title
title.text = manga.title
// SY -->
title.isVisible = hasTitle
// SY <--
// Set alpha of thumbnail.
thumbnail.alpha = if (manga.favorite) 0.3f else 1.0f

View File

@ -24,7 +24,7 @@ class SourceItem(val manga: Manga, private val displayMode: Preference<DisplayMo
override fun getLayoutRes(): Int {
return /* SY --> */ if (metadata == null) /* SY <-- */ when (displayMode.get()) {
DisplayMode.COMPACT_GRID -> R.layout.source_compact_grid_item
DisplayMode.COMFORTABLE_GRID -> R.layout.source_comfortable_grid_item
DisplayMode.COMFORTABLE_GRID, /* SY --> */ DisplayMode.NO_TITLE_GRID /* SY <-- */ -> R.layout.source_comfortable_grid_item
DisplayMode.LIST -> R.layout.source_list_item
} /* SY --> */ else R.layout.source_enhanced_ehentai_list_item /* SY <-- */
}
@ -47,7 +47,7 @@ class SourceItem(val manga: Manga, private val displayMode: Preference<DisplayMo
}
SourceGridHolder(view, adapter)
}
DisplayMode.COMFORTABLE_GRID -> {
DisplayMode.COMFORTABLE_GRID /* SY --> */, DisplayMode.NO_TITLE_GRID /* SY <-- */ -> {
val parent = adapter.recyclerView as AutofitRecyclerView
val coverHeight = parent.itemWidth / 3 * 4
view.apply {
@ -55,7 +55,7 @@ class SourceItem(val manga: Manga, private val displayMode: Preference<DisplayMo
MATCH_PARENT, coverHeight
)
}
SourceComfortableGridHolder(view, adapter)
SourceComfortableGridHolder(view, adapter, displayMode.get() != DisplayMode.NO_TITLE_GRID)
}
DisplayMode.LIST -> {
SourceListHolder(view, adapter)

View File

@ -32,7 +32,10 @@ import reactivecircus.flowbinding.android.view.clicks
*/
class LibraryComfortableGridHolder(
private val view: View,
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,
// SY -->
private val hasTitle: Boolean
// SY <--
) : LibraryCompactGridHolder(view, adapter) {
// SY -->
@ -57,6 +60,9 @@ class LibraryComfortableGridHolder(
// SY <--
// Update the title of the manga.
title.text = item.manga.title
// SY -->
title.isVisible = hasTitle
// SY <--
// For rounded corners
badges.clipToOutline = true

View File

@ -51,7 +51,7 @@ class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Prefe
override fun getLayoutRes(): Int {
return when (libraryDisplayMode.get()) {
DisplayMode.COMPACT_GRID -> R.layout.source_compact_grid_item
DisplayMode.COMFORTABLE_GRID -> R.layout.source_comfortable_grid_item
DisplayMode.COMFORTABLE_GRID /* SY --> */, DisplayMode.NO_TITLE_GRID /* SY <-- */ -> R.layout.source_comfortable_grid_item
DisplayMode.LIST -> R.layout.source_list_item
}
}
@ -69,7 +69,7 @@ class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Prefe
}
LibraryCompactGridHolder(view, adapter)
}
DisplayMode.COMFORTABLE_GRID -> {
DisplayMode.COMFORTABLE_GRID /* SY --> */, DisplayMode.NO_TITLE_GRID /* SY <-- */ -> {
val parent = adapter.recyclerView as AutofitRecyclerView
val coverHeight = parent.itemWidth / 3 * 4
view.apply {
@ -77,7 +77,7 @@ class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Prefe
MATCH_PARENT, coverHeight
)
}
LibraryComfortableGridHolder(view, adapter)
LibraryComfortableGridHolder(view, adapter, libraryDisplayMode.get() != DisplayMode.NO_TITLE_GRID)
}
DisplayMode.LIST -> {
LibraryListHolder(view, adapter)

View File

@ -263,16 +263,22 @@ class LibrarySettingsSheet(
private val compactGrid = Item.Radio(R.string.action_display_grid, this)
private val comfortableGrid = Item.Radio(R.string.action_display_comfortable_grid, this)
// SY -->
private val noTitleGrid = Item.Radio(R.string.action_display_no_title_grid, this)
// SY <--
private val list = Item.Radio(R.string.action_display_list, this)
override val header = Item.Header(R.string.action_display_mode)
override val items = listOf(compactGrid, comfortableGrid, list)
override val items = listOf(compactGrid, comfortableGrid, /* SY --> */ noTitleGrid /* SY <-- */, list)
override val footer = null
override fun initModels() {
val mode = preferences.libraryDisplayMode().get()
compactGrid.checked = mode == DisplayMode.COMPACT_GRID
comfortableGrid.checked = mode == DisplayMode.COMFORTABLE_GRID
// SY -->
noTitleGrid.checked = mode == DisplayMode.NO_TITLE_GRID
// SY <--
list.checked = mode == DisplayMode.LIST
}
@ -287,6 +293,9 @@ class LibrarySettingsSheet(
when (item) {
compactGrid -> DisplayMode.COMPACT_GRID
comfortableGrid -> DisplayMode.COMFORTABLE_GRID
// SY -->
noTitleGrid -> DisplayMode.NO_TITLE_GRID
// SY <--
list -> DisplayMode.LIST
else -> throw NotImplementedError("Unknown display mode")
}

View File

@ -23,6 +23,9 @@
<item
android:id="@+id/action_comfortable_grid"
android:title="@string/action_display_comfortable_grid" />
<item
android:id="@+id/action_no_title_grid"
android:title="@string/action_display_no_title_grid" />
<item
android:id="@+id/action_list"
android:title="@string/action_display_list" />

View File

@ -10,6 +10,7 @@
<string name="action_copy_now">Copy now</string>
<string name="clean_titles">Clean titles</string>
<string name="action_start_reading_button">Start reading button</string>
<string name="action_display_no_title_grid">No title grid</string>
<!-- Library fragment -->
<string name="buttons_header">Buttons</string>