From f835b3183adad16b572a717b0aa56a5c33a4379a Mon Sep 17 00:00:00 2001 From: jmir1 Date: Fri, 28 May 2021 00:10:42 +0200 Subject: [PATCH] rename filter and filterlist classes for anime, update libversion for anime extensions to 10 --- .../animesource/AnimeCatalogueSource.kt | 6 +-- .../tachiyomi/animesource/LocalAnimeSource.kt | 12 +++--- .../model/{Filter.kt => AnimeFilter.kt} | 20 +++++----- .../animesource/model/AnimeFilterList.kt | 6 +++ .../tachiyomi/animesource/model/FilterList.kt | 6 --- .../animesource/online/AnimeHttpSource.kt | 8 ++-- .../extension/api/AnimeExtensionGithubApi.kt | 2 +- .../extension/util/AnimeExtensionLoader.kt | 4 +- .../animesource/browse/AnimeSourcePager.kt | 4 +- .../browse/BrowseAnimeSourceController.kt | 6 +-- .../browse/BrowseAnimeSourcePresenter.kt | 40 +++++++++---------- .../browse/animesource/filter/CheckboxItem.kt | 4 +- .../ui/browse/animesource/filter/GroupItem.kt | 4 +- .../browse/animesource/filter/HeaderItem.kt | 4 +- .../browse/animesource/filter/SectionItems.kt | 10 ++--- .../browse/animesource/filter/SelectItem.kt | 4 +- .../animesource/filter/SeparatorItem.kt | 4 +- .../ui/browse/animesource/filter/SortGroup.kt | 4 +- .../ui/browse/animesource/filter/SortItem.kt | 10 ++--- .../ui/browse/animesource/filter/TextItem.kt | 4 +- .../browse/animesource/filter/TriStateItem.kt | 12 +++--- .../GlobalAnimeSearchPresenter.kt | 4 +- .../latest/LatestUpdatesPresenter.kt | 4 +- 23 files changed, 91 insertions(+), 91 deletions(-) rename app/src/main/java/eu/kanade/tachiyomi/animesource/model/{Filter.kt => AnimeFilter.kt} (62%) create mode 100644 app/src/main/java/eu/kanade/tachiyomi/animesource/model/AnimeFilterList.kt delete mode 100644 app/src/main/java/eu/kanade/tachiyomi/animesource/model/FilterList.kt diff --git a/app/src/main/java/eu/kanade/tachiyomi/animesource/AnimeCatalogueSource.kt b/app/src/main/java/eu/kanade/tachiyomi/animesource/AnimeCatalogueSource.kt index 091cdf68d7..67d99256a7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/animesource/AnimeCatalogueSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/animesource/AnimeCatalogueSource.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.animesource +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage -import eu.kanade.tachiyomi.animesource.model.FilterList import rx.Observable interface AnimeCatalogueSource : AnimeSource { @@ -30,7 +30,7 @@ interface AnimeCatalogueSource : AnimeSource { * @param query the search query. * @param filters the list of filters to apply. */ - fun fetchSearchAnime(page: Int, query: String, filters: FilterList): Observable + fun fetchSearchAnime(page: Int, query: String, filters: AnimeFilterList): Observable /** * Returns an observable containing a page with a list of latest anime updates. @@ -42,5 +42,5 @@ interface AnimeCatalogueSource : AnimeSource { /** * Returns the list of filters for the source. */ - fun getFilterList(): FilterList + fun getFilterList(): AnimeFilterList } diff --git a/app/src/main/java/eu/kanade/tachiyomi/animesource/LocalAnimeSource.kt b/app/src/main/java/eu/kanade/tachiyomi/animesource/LocalAnimeSource.kt index c58e09466f..71d6515d07 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/animesource/LocalAnimeSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/animesource/LocalAnimeSource.kt @@ -4,9 +4,9 @@ import android.content.Context import com.github.junrar.Archive import com.google.gson.JsonParser import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.animesource.model.AnimeFilter +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage -import eu.kanade.tachiyomi.animesource.model.Filter -import eu.kanade.tachiyomi.animesource.model.FilterList import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.util.episode.EpisodeRecognition @@ -66,7 +66,7 @@ class LocalAnimeSource(private val context: Context) : AnimeCatalogueSource { override fun fetchPopularAnime(page: Int) = fetchSearchAnime(page, "", POPULAR_FILTERS) - override fun fetchSearchAnime(page: Int, query: String, filters: FilterList): Observable { + override fun fetchSearchAnime(page: Int, query: String, filters: AnimeFilterList): Observable { val baseDirs = getBaseDirectories(context) val time = if (filters === LATEST_FILTERS) System.currentTimeMillis() - LATEST_THRESHOLD else 0L @@ -310,10 +310,10 @@ class LocalAnimeSource(private val context: Context) : AnimeCatalogueSource { override fun getFilterList() = POPULAR_FILTERS - private val POPULAR_FILTERS = FilterList(OrderBy(context)) - private val LATEST_FILTERS = FilterList(OrderBy(context).apply { state = Filter.Sort.Selection(1, false) }) + private val POPULAR_FILTERS = AnimeFilterList(OrderBy(context)) + private val LATEST_FILTERS = AnimeFilterList(OrderBy(context).apply { state = AnimeFilter.Sort.Selection(1, false) }) - private class OrderBy(context: Context) : Filter.Sort( + private class OrderBy(context: Context) : AnimeFilter.Sort( context.getString(R.string.local_filter_order_by), arrayOf(context.getString(R.string.title), context.getString(R.string.date)), Selection(0, true) diff --git a/app/src/main/java/eu/kanade/tachiyomi/animesource/model/Filter.kt b/app/src/main/java/eu/kanade/tachiyomi/animesource/model/AnimeFilter.kt similarity index 62% rename from app/src/main/java/eu/kanade/tachiyomi/animesource/model/Filter.kt rename to app/src/main/java/eu/kanade/tachiyomi/animesource/model/AnimeFilter.kt index 3fa8fdb671..e19c2b793d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/animesource/model/Filter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/animesource/model/AnimeFilter.kt @@ -1,12 +1,12 @@ package eu.kanade.tachiyomi.animesource.model -sealed class Filter(val name: String, var state: T) { - open class Header(name: String) : Filter(name, 0) - open class Separator(name: String = "") : Filter(name, 0) - abstract class Select(name: String, val values: Array, state: Int = 0) : Filter(name, state) - abstract class Text(name: String, state: String = "") : Filter(name, state) - abstract class CheckBox(name: String, state: Boolean = false) : Filter(name, state) - abstract class TriState(name: String, state: Int = STATE_IGNORE) : Filter(name, state) { +sealed class AnimeFilter(val name: String, var state: T) { + open class Header(name: String) : AnimeFilter(name, 0) + open class Separator(name: String = "") : AnimeFilter(name, 0) + abstract class Select(name: String, val values: Array, state: Int = 0) : AnimeFilter(name, state) + abstract class Text(name: String, state: String = "") : AnimeFilter(name, state) + abstract class CheckBox(name: String, state: Boolean = false) : AnimeFilter(name, state) + abstract class TriState(name: String, state: Int = STATE_IGNORE) : AnimeFilter(name, state) { fun isIgnored() = state == STATE_IGNORE fun isIncluded() = state == STATE_INCLUDE fun isExcluded() = state == STATE_EXCLUDE @@ -18,16 +18,16 @@ sealed class Filter(val name: String, var state: T) { } } - abstract class Group(name: String, state: List) : Filter>(name, state) + abstract class Group(name: String, state: List) : AnimeFilter>(name, state) abstract class Sort(name: String, val values: Array, state: Selection? = null) : - Filter(name, state) { + AnimeFilter(name, state) { data class Selection(val index: Int, val ascending: Boolean) } override fun equals(other: Any?): Boolean { if (this === other) return true - if (other !is Filter<*>) return false + if (other !is AnimeFilter<*>) return false return name == other.name && state == other.state } diff --git a/app/src/main/java/eu/kanade/tachiyomi/animesource/model/AnimeFilterList.kt b/app/src/main/java/eu/kanade/tachiyomi/animesource/model/AnimeFilterList.kt new file mode 100644 index 0000000000..7747104b1d --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/animesource/model/AnimeFilterList.kt @@ -0,0 +1,6 @@ +package eu.kanade.tachiyomi.animesource.model + +data class AnimeFilterList(val list: List>) : List> by list { + + constructor(vararg fs: AnimeFilter<*>) : this(if (fs.isNotEmpty()) fs.asList() else emptyList()) +} diff --git a/app/src/main/java/eu/kanade/tachiyomi/animesource/model/FilterList.kt b/app/src/main/java/eu/kanade/tachiyomi/animesource/model/FilterList.kt deleted file mode 100644 index 871d40d93e..0000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/animesource/model/FilterList.kt +++ /dev/null @@ -1,6 +0,0 @@ -package eu.kanade.tachiyomi.animesource.model - -data class FilterList(val list: List>) : List> by list { - - constructor(vararg fs: Filter<*>) : this(if (fs.isNotEmpty()) fs.asList() else emptyList()) -} diff --git a/app/src/main/java/eu/kanade/tachiyomi/animesource/online/AnimeHttpSource.kt b/app/src/main/java/eu/kanade/tachiyomi/animesource/online/AnimeHttpSource.kt index 2fabfde5da..24f697be53 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/animesource/online/AnimeHttpSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/animesource/online/AnimeHttpSource.kt @@ -2,8 +2,8 @@ package eu.kanade.tachiyomi.animesource.online import android.net.Uri import eu.kanade.tachiyomi.animesource.AnimeCatalogueSource +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage -import eu.kanade.tachiyomi.animesource.model.FilterList import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video @@ -117,7 +117,7 @@ abstract class AnimeHttpSource : AnimeCatalogueSource { * @param query the search query. * @param filters the list of filters to apply. */ - override fun fetchSearchAnime(page: Int, query: String, filters: FilterList): Observable { + override fun fetchSearchAnime(page: Int, query: String, filters: AnimeFilterList): Observable { return client.newCall(searchAnimeRequest(page, query, filters)) .asObservableSuccess() .map { response -> @@ -132,7 +132,7 @@ abstract class AnimeHttpSource : AnimeCatalogueSource { * @param query the search query. * @param filters the list of filters to apply. */ - protected abstract fun searchAnimeRequest(page: Int, query: String, filters: FilterList): Request + protected abstract fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request /** * Parses the response from the site and returns a [AnimesPage] object. @@ -374,7 +374,7 @@ abstract class AnimeHttpSource : AnimeCatalogueSource { /** * Returns the list of filters for the source. */ - override fun getFilterList() = FilterList() + override fun getFilterList() = AnimeFilterList() companion object { const val DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.63" diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/api/AnimeExtensionGithubApi.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/api/AnimeExtensionGithubApi.kt index f3acccd280..98c249060d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/api/AnimeExtensionGithubApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/api/AnimeExtensionGithubApi.kt @@ -59,7 +59,7 @@ internal class AnimeExtensionGithubApi { return json .filter { element -> val versionName = element.jsonObject["version"]!!.jsonPrimitive.content - val libVersion = versionName.substringBeforeLast('.').toDouble() + val libVersion = versionName.substringBeforeLast('.').toInt() libVersion >= AnimeExtensionLoader.LIB_VERSION_MIN && libVersion <= AnimeExtensionLoader.LIB_VERSION_MAX } .map { element -> diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/AnimeExtensionLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/AnimeExtensionLoader.kt index 5f05d5ec57..f4db388834 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/AnimeExtensionLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/AnimeExtensionLoader.kt @@ -33,8 +33,8 @@ internal object AnimeExtensionLoader { private const val METADATA_SOURCE_CLASS = "tachiyomi.animeextension.class" private const val METADATA_SOURCE_FACTORY = "tachiyomi.animeextension.factory" private const val METADATA_NSFW = "tachiyomi.animeextension.nsfw" - const val LIB_VERSION_MIN = 1.2 - const val LIB_VERSION_MAX = 1.3 + const val LIB_VERSION_MIN = 10 + const val LIB_VERSION_MAX = 10 private const val PACKAGE_FLAGS = PackageManager.GET_CONFIGURATIONS or PackageManager.GET_SIGNATURES diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/AnimeSourcePager.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/AnimeSourcePager.kt index 5aa0398f6c..d869b8ab86 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/AnimeSourcePager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/AnimeSourcePager.kt @@ -1,13 +1,13 @@ package eu.kanade.tachiyomi.ui.browse.animesource.browse import eu.kanade.tachiyomi.animesource.AnimeCatalogueSource +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage -import eu.kanade.tachiyomi.animesource.model.FilterList import rx.Observable import rx.android.schedulers.AndroidSchedulers import rx.schedulers.Schedulers -open class AnimeSourcePager(val source: AnimeCatalogueSource, val query: String, val filters: FilterList) : AnimePager() { +open class AnimeSourcePager(val source: AnimeCatalogueSource, val query: String, val filters: AnimeFilterList) : AnimePager() { override fun requestNext(): Observable { val page = currentPage diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/BrowseAnimeSourceController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/BrowseAnimeSourceController.kt index fad4f89f43..f791d29e62 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/BrowseAnimeSourceController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/BrowseAnimeSourceController.kt @@ -24,7 +24,7 @@ import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.animesource.AnimeCatalogueSource import eu.kanade.tachiyomi.animesource.LocalAnimeSource -import eu.kanade.tachiyomi.animesource.model.FilterList +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource import eu.kanade.tachiyomi.data.database.models.Anime import eu.kanade.tachiyomi.data.database.models.Category @@ -147,10 +147,10 @@ open class BrowseAnimeSourceController(bundle: Bundle) : val allDefault = presenter.sourceFilters == presenter.source.getFilterList() showProgressBar() adapter?.clear() - presenter.setSourceFilter(if (allDefault) FilterList() else presenter.sourceFilters) + presenter.setSourceFilter(if (allDefault) AnimeFilterList() else presenter.sourceFilters) }, onResetClicked = { - presenter.appliedFilters = FilterList() + presenter.appliedFilters = AnimeFilterList() val newFilters = presenter.source.getFilterList() presenter.sourceFilters = newFilters filterSheet?.setFilters(presenter.filterItems) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/BrowseAnimeSourcePresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/BrowseAnimeSourcePresenter.kt index 518ec20662..3327e63c54 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/BrowseAnimeSourcePresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/browse/BrowseAnimeSourcePresenter.kt @@ -4,8 +4,8 @@ import android.os.Bundle import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.animesource.AnimeCatalogueSource import eu.kanade.tachiyomi.animesource.AnimeSourceManager -import eu.kanade.tachiyomi.animesource.model.Filter -import eu.kanade.tachiyomi.animesource.model.FilterList +import eu.kanade.tachiyomi.animesource.model.AnimeFilter +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.toSAnime import eu.kanade.tachiyomi.data.cache.AnimeCoverCache @@ -73,7 +73,7 @@ open class BrowseAnimeSourcePresenter( /** * Modifiable list of filters. */ - var sourceFilters = FilterList() + var sourceFilters = AnimeFilterList() set(value) { field = value filterItems = value.toItems() @@ -84,7 +84,7 @@ open class BrowseAnimeSourcePresenter( /** * List of filters used by the [Pager]. If empty alongside [query], the popular query is used. */ - var appliedFilters = FilterList() + var appliedFilters = AnimeFilterList() /** * Pager containing a list of anime results. @@ -137,7 +137,7 @@ open class BrowseAnimeSourcePresenter( * @param query the query. * @param filters the current state of the filters (for search mode). */ - fun restartPager(query: String = this.query, filters: FilterList = this.appliedFilters) { + fun restartPager(query: String = this.query, filters: AnimeFilterList = this.appliedFilters) { this.query = query this.appliedFilters = filters @@ -301,31 +301,31 @@ open class BrowseAnimeSourcePresenter( * * @param filters a list of active filters. */ - fun setSourceFilter(filters: FilterList) { + fun setSourceFilter(filters: AnimeFilterList) { restartPager(filters = filters) } - open fun createPager(query: String, filters: FilterList): AnimePager { + open fun createPager(query: String, filters: AnimeFilterList): AnimePager { return AnimeSourcePager(source, query, filters) } - private fun FilterList.toItems(): List> { + private fun AnimeFilterList.toItems(): List> { return mapNotNull { filter -> when (filter) { - is Filter.Header -> HeaderItem(filter) - is Filter.Separator -> SeparatorItem(filter) - is Filter.CheckBox -> CheckboxItem(filter) - is Filter.TriState -> TriStateItem(filter) - is Filter.Text -> TextItem(filter) - is Filter.Select<*> -> SelectItem(filter) - is Filter.Group<*> -> { + is AnimeFilter.Header -> HeaderItem(filter) + is AnimeFilter.Separator -> SeparatorItem(filter) + is AnimeFilter.CheckBox -> CheckboxItem(filter) + is AnimeFilter.TriState -> TriStateItem(filter) + is AnimeFilter.Text -> TextItem(filter) + is AnimeFilter.Select<*> -> SelectItem(filter) + is AnimeFilter.Group<*> -> { val group = GroupItem(filter) val subItems = filter.state.mapNotNull { when (it) { - is Filter.CheckBox -> CheckboxSectionItem(it) - is Filter.TriState -> TriStateSectionItem(it) - is Filter.Text -> TextSectionItem(it) - is Filter.Select<*> -> SelectSectionItem(it) + is AnimeFilter.CheckBox -> CheckboxSectionItem(it) + is AnimeFilter.TriState -> TriStateSectionItem(it) + is AnimeFilter.Text -> TextSectionItem(it) + is AnimeFilter.Select<*> -> SelectSectionItem(it) else -> null } } @@ -333,7 +333,7 @@ open class BrowseAnimeSourcePresenter( group.subItems = subItems group } - is Filter.Sort -> { + is AnimeFilter.Sort -> { val group = SortGroup(filter) val subItems = filter.values.map { SortItem(it, group) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/CheckboxItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/CheckboxItem.kt index 27ef6d6ca6..3ce9b025ab 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/CheckboxItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/CheckboxItem.kt @@ -8,9 +8,9 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.viewholders.FlexibleViewHolder import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter -open class CheckboxItem(val filter: Filter.CheckBox) : AbstractFlexibleItem() { +open class CheckboxItem(val filter: AnimeFilter.CheckBox) : AbstractFlexibleItem() { override fun getLayoutRes(): Int { return R.layout.navigation_view_checkbox diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/GroupItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/GroupItem.kt index e7f0359272..123d6f8c95 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/GroupItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/GroupItem.kt @@ -10,10 +10,10 @@ import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.flexibleadapter.items.ISectionable import eu.davidea.viewholders.ExpandableViewHolder import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.util.view.setVectorCompat -class GroupItem(val filter: Filter.Group<*>) : AbstractExpandableHeaderItem>() { +class GroupItem(val filter: AnimeFilter.Group<*>) : AbstractExpandableHeaderItem>() { init { isExpanded = false diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/HeaderItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/HeaderItem.kt index 6122ebaab3..376ec793c8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/HeaderItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/HeaderItem.kt @@ -9,9 +9,9 @@ import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.AbstractHeaderItem import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.viewholders.FlexibleViewHolder -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter -class HeaderItem(val filter: Filter.Header) : AbstractHeaderItem() { +class HeaderItem(val filter: AnimeFilter.Header) : AbstractHeaderItem() { @SuppressLint("PrivateResource") override fun getLayoutRes(): Int { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SectionItems.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SectionItems.kt index 61f77f2be2..4d42bc9ddd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SectionItems.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SectionItems.kt @@ -1,9 +1,9 @@ package eu.kanade.tachiyomi.ui.browse.animesource.filter import eu.davidea.flexibleadapter.items.ISectionable -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter -class TriStateSectionItem(filter: Filter.TriState) : TriStateItem(filter), ISectionable { +class TriStateSectionItem(filter: AnimeFilter.TriState) : TriStateItem(filter), ISectionable { private var head: GroupItem? = null @@ -27,7 +27,7 @@ class TriStateSectionItem(filter: Filter.TriState) : TriStateItem(filter), ISect } } -class TextSectionItem(filter: Filter.Text) : TextItem(filter), ISectionable { +class TextSectionItem(filter: AnimeFilter.Text) : TextItem(filter), ISectionable { private var head: GroupItem? = null @@ -51,7 +51,7 @@ class TextSectionItem(filter: Filter.Text) : TextItem(filter), ISectionable { +class CheckboxSectionItem(filter: AnimeFilter.CheckBox) : CheckboxItem(filter), ISectionable { private var head: GroupItem? = null @@ -75,7 +75,7 @@ class CheckboxSectionItem(filter: Filter.CheckBox) : CheckboxItem(filter), ISect } } -class SelectSectionItem(filter: Filter.Select<*>) : SelectItem(filter), ISectionable { +class SelectSectionItem(filter: AnimeFilter.Select<*>) : SelectItem(filter), ISectionable { private var head: GroupItem? = null diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SelectItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SelectItem.kt index 2d96e68832..4a8f5256bc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SelectItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SelectItem.kt @@ -10,10 +10,10 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.viewholders.FlexibleViewHolder import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.widget.listener.IgnoreFirstSpinnerListener -open class SelectItem(val filter: Filter.Select<*>) : AbstractFlexibleItem() { +open class SelectItem(val filter: AnimeFilter.Select<*>) : AbstractFlexibleItem() { override fun getLayoutRes(): Int { return R.layout.navigation_view_spinner diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SeparatorItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SeparatorItem.kt index d2e0c82a4f..9259b098fc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SeparatorItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SeparatorItem.kt @@ -8,9 +8,9 @@ import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.AbstractHeaderItem import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.viewholders.FlexibleViewHolder -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter -class SeparatorItem(val filter: Filter.Separator) : AbstractHeaderItem() { +class SeparatorItem(val filter: AnimeFilter.Separator) : AbstractHeaderItem() { @SuppressLint("PrivateResource") override fun getLayoutRes(): Int { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SortGroup.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SortGroup.kt index 70fa89d778..c2f80abbe0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SortGroup.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SortGroup.kt @@ -7,10 +7,10 @@ import eu.davidea.flexibleadapter.items.AbstractExpandableHeaderItem import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.flexibleadapter.items.ISectionable import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.util.view.setVectorCompat -class SortGroup(val filter: Filter.Sort) : AbstractExpandableHeaderItem>() { +class SortGroup(val filter: AnimeFilter.Sort) : AbstractExpandableHeaderItem>() { init { isExpanded = false diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SortItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SortItem.kt index 3f1f5f74f5..6067d2d5cf 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SortItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/SortItem.kt @@ -9,7 +9,7 @@ import eu.davidea.flexibleadapter.items.AbstractSectionableItem import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.viewholders.FlexibleViewHolder import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.util.system.getResourceColor class SortItem(val name: String, val group: SortGroup) : AbstractSectionableItem(group) { @@ -34,10 +34,10 @@ class SortItem(val name: String, val group: SortGroup) : AbstractSectionableItem val i = filter.values.indexOf(name) fun getIcon() = when (filter.state) { - Filter.Sort.Selection(i, false) -> + AnimeFilter.Sort.Selection(i, false) -> AppCompatResources.getDrawable(view.context, R.drawable.ic_arrow_down_white_32dp) ?.apply { setTint(view.context.getResourceColor(R.attr.colorAccent)) } - Filter.Sort.Selection(i, true) -> + AnimeFilter.Sort.Selection(i, true) -> AppCompatResources.getDrawable(view.context, R.drawable.ic_arrow_up_white_32dp) ?.apply { setTint(view.context.getResourceColor(R.attr.colorAccent)) } else -> AppCompatResources.getDrawable(view.context, R.drawable.empty_drawable_32dp) @@ -47,9 +47,9 @@ class SortItem(val name: String, val group: SortGroup) : AbstractSectionableItem holder.itemView.setOnClickListener { val pre = filter.state?.index ?: i if (pre != i) { - filter.state = Filter.Sort.Selection(i, false) + filter.state = AnimeFilter.Sort.Selection(i, false) } else { - filter.state = Filter.Sort.Selection(i, filter.state?.ascending == false) + filter.state = AnimeFilter.Sort.Selection(i, filter.state?.ascending == false) } group.subItems.forEach { adapter.notifyItemChanged(adapter.getGlobalPositionOf(it)) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/TextItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/TextItem.kt index 5ea2e054c0..a936721256 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/TextItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/TextItem.kt @@ -10,9 +10,9 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.viewholders.FlexibleViewHolder import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter -open class TextItem(val filter: Filter.Text) : AbstractFlexibleItem() { +open class TextItem(val filter: AnimeFilter.Text) : AbstractFlexibleItem() { override fun getLayoutRes(): Int { return R.layout.navigation_view_text diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/TriStateItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/TriStateItem.kt index 02203e5134..0e39675988 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/TriStateItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/filter/TriStateItem.kt @@ -9,12 +9,12 @@ import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.AbstractFlexibleItem import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.viewholders.FlexibleViewHolder -import eu.kanade.tachiyomi.animesource.model.Filter +import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.R as TR -open class TriStateItem(val filter: Filter.TriState) : AbstractFlexibleItem() { +open class TriStateItem(val filter: AnimeFilter.TriState) : AbstractFlexibleItem() { override fun getLayoutRes(): Int { return TR.layout.navigation_view_checkedtext @@ -35,13 +35,13 @@ open class TriStateItem(val filter: Filter.TriState) : AbstractFlexibleItem TR.drawable.ic_check_box_outline_blank_24dp - Filter.TriState.STATE_INCLUDE -> TR.drawable.ic_check_box_24dp - Filter.TriState.STATE_EXCLUDE -> TR.drawable.ic_check_box_x_24dp + AnimeFilter.TriState.STATE_IGNORE -> TR.drawable.ic_check_box_outline_blank_24dp + AnimeFilter.TriState.STATE_INCLUDE -> TR.drawable.ic_check_box_24dp + AnimeFilter.TriState.STATE_EXCLUDE -> TR.drawable.ic_check_box_x_24dp else -> throw Exception("Unknown state") } )?.apply { - val color = if (filter.state == Filter.TriState.STATE_INCLUDE) { + val color = if (filter.state == AnimeFilter.TriState.STATE_INCLUDE) { view.context.getResourceColor(R.attr.colorAccent) } else { view.context.getResourceColor(R.attr.colorOnBackground, 0.38f) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/globalsearch/GlobalAnimeSearchPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/globalsearch/GlobalAnimeSearchPresenter.kt index 54ceb8a72c..dc70dd2eb0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/globalsearch/GlobalAnimeSearchPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/globalsearch/GlobalAnimeSearchPresenter.kt @@ -4,8 +4,8 @@ import android.os.Bundle import eu.kanade.tachiyomi.animesource.AnimeCatalogueSource import eu.kanade.tachiyomi.animesource.AnimeSource import eu.kanade.tachiyomi.animesource.AnimeSourceManager +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage -import eu.kanade.tachiyomi.animesource.model.FilterList import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.toSAnime import eu.kanade.tachiyomi.data.database.AnimeDatabaseHelper @@ -164,7 +164,7 @@ open class GlobalAnimeSearchPresenter( fetchSourcesSubscription = Observable.from(sources) .flatMap( { source -> - Observable.defer { source.fetchSearchAnime(1, query, FilterList()) } + Observable.defer { source.fetchSearchAnime(1, query, AnimeFilterList()) } .subscribeOn(Schedulers.io()) .onErrorReturn { AnimesPage(emptyList(), false) } // Ignore timeouts or other exceptions .map { it.animes } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/latest/LatestUpdatesPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/latest/LatestUpdatesPresenter.kt index 42dcb1e192..fa692823f7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/latest/LatestUpdatesPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/animesource/latest/LatestUpdatesPresenter.kt @@ -1,6 +1,6 @@ package eu.kanade.tachiyomi.ui.browse.animesource.latest -import eu.kanade.tachiyomi.animesource.model.FilterList +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.ui.browse.animesource.browse.AnimePager import eu.kanade.tachiyomi.ui.browse.animesource.browse.BrowseAnimeSourcePresenter @@ -9,7 +9,7 @@ import eu.kanade.tachiyomi.ui.browse.animesource.browse.BrowseAnimeSourcePresent */ class LatestUpdatesPresenter(sourceId: Long) : BrowseAnimeSourcePresenter(sourceId) { - override fun createPager(query: String, filters: FilterList): AnimePager { + override fun createPager(query: String, filters: AnimeFilterList): AnimePager { return LatestUpdatesPager(source) } }