From 50728932c82ec640cd48379bcb9e33bfb390e973 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 29 Mar 2021 18:21:57 -0400 Subject: [PATCH] Refactor Base Controller inflate method --- .../tachiyomi/ui/base/controller/BaseController.kt | 5 +++-- .../tachiyomi/ui/category/CategoryController.kt | 11 +---------- .../extension/details/ExtensionDetailsController.kt | 8 ++------ .../kanade/tachiyomi/ui/library/LibraryController.kt | 7 ++----- .../tachiyomi/ui/manga/MangaDetailsController.kt | 5 +---- .../tachiyomi/ui/migration/MigrationController.kt | 6 +----- .../migration/manga/design/PreMigrationController.kt | 5 +---- .../manga/process/MigrationListController.kt | 6 +----- .../ui/recent_updates/RecentChaptersController.kt | 5 +---- .../ui/recently_read/RecentlyReadController.kt | 5 +---- .../kanade/tachiyomi/ui/recents/RecentsController.kt | 5 +---- .../ui/setting/search/SettingsSearchController.kt | 12 +----------- .../kanade/tachiyomi/ui/source/BrowseController.kt | 12 +----------- .../ui/source/browse/BrowseSourceController.kt | 4 +--- .../source/global_search/GlobalSearchController.kt | 12 +----------- 15 files changed, 19 insertions(+), 89 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/BaseController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/BaseController.kt index 0187e5c14d..2c795318c7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/BaseController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/BaseController.kt @@ -50,10 +50,11 @@ abstract class BaseController(bundle: Bundle? = null) : get() = view override fun onCreateView(inflater: LayoutInflater, container: ViewGroup, savedViewState: Bundle?): View { - return inflateView(inflater, container) + binding = createBinding(inflater) + return binding.root } - abstract fun inflateView(inflater: LayoutInflater, container: ViewGroup): View + abstract fun createBinding(inflater: LayoutInflater): VB open fun onViewCreated(view: View) { } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryController.kt index 2de61b1466..41545ccda0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryController.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.ui.category import android.os.Bundle import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.afollestad.materialdialogs.MaterialDialog @@ -51,15 +50,7 @@ class CategoryController(bundle: Bundle? = null) : return resources?.getString(R.string.edit_categories) } - /** - * Returns the view of this controller. - * - * @param inflater The layout inflater to create the view from XML. - * @param container The parent view for this one. - */ - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - return inflater.inflate(R.layout.categories_controller, container, false) - } + override fun createBinding(inflater: LayoutInflater) = CategoriesControllerBinding.inflate(inflater) /** * Called after view inflation. Used to initialize the view. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/extension/details/ExtensionDetailsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/extension/details/ExtensionDetailsController.kt index 6d4cb63e00..4fc9c6b20c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/extension/details/ExtensionDetailsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/extension/details/ExtensionDetailsController.kt @@ -13,7 +13,6 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View -import android.view.ViewGroup import androidx.preference.DialogPreference import androidx.preference.EditTextPreference import androidx.preference.EditTextPreferenceDialogController @@ -77,11 +76,8 @@ class ExtensionDetailsController(bundle: Bundle? = null) : } ) - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - val themedInflater = inflater.cloneInContext(getPreferenceThemeContext()) - - return themedInflater.inflate(R.layout.extension_detail_controller, container, false) - } + override fun createBinding(inflater: LayoutInflater) = + ExtensionDetailControllerBinding.inflate(inflater.cloneInContext(getPreferenceThemeContext())) override fun createPresenter(): ExtensionDetailsPresenter { return ExtensionDetailsPresenter(args.getString(PKGNAME_KEY)!!) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt index 6f5bd68dca..6c5ac62c9c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt @@ -383,6 +383,8 @@ class LibraryController( } } + override fun createBinding(inflater: LayoutInflater) = LibraryListControllerBinding.inflate(inflater) + override fun onViewCreated(view: View) { super.onViewCreated(view) if (!::presenter.isInitialized) presenter = LibraryPresenter(this) @@ -726,11 +728,6 @@ class LibraryController( return adapter.headerItems.firstOrNull() as? LibraryHeaderItem } - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - binding = LibraryListControllerBinding.inflate(inflater) - return binding.root - } - private fun anchorView(): View { return if (binding.categoryHopperFrame.isVisible()) { binding.categoryHopperFrame diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt index 03fce67159..7ae0f78774 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt @@ -183,10 +183,7 @@ class MangaDetailsController : return null } - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - binding = MangaDetailsControllerBinding.inflate(inflater) - return binding.root - } + override fun createBinding(inflater: LayoutInflater) = MangaDetailsControllerBinding.inflate(inflater) //region UI Methods override fun onViewCreated(view: View) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MigrationController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MigrationController.kt index 74be8765f5..b118b0a726 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MigrationController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MigrationController.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.migration import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.R @@ -41,10 +40,7 @@ class MigrationController : return MigrationPresenter() } - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - return inflater.inflate(R.layout.migration_controller, container, false) - } - + override fun createBinding(inflater: LayoutInflater) = MigrationControllerBinding.inflate(inflater) fun searchController(manga: Manga): SearchController { val controller = SearchController(manga) controller.targetController = this diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/design/PreMigrationController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/design/PreMigrationController.kt index 91992e3ec1..cebd415261 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/design/PreMigrationController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/design/PreMigrationController.kt @@ -49,10 +49,7 @@ class PreMigrationController(bundle: Bundle? = null) : override fun getTitle() = view?.context?.getString(R.string.select_sources) - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - return inflater.inflate(R.layout.pre_migration_controller, container, false) - } - + override fun createBinding(inflater: LayoutInflater) = PreMigrationControllerBinding.inflate(inflater) override fun onViewCreated(view: View) { super.onViewCreated(view) liftAppbarWith(recycler) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt index 7d5e4dbecd..5dba94d579 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt @@ -8,7 +8,6 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View -import android.view.ViewGroup import android.widget.Toast import androidx.core.graphics.ColorUtils import androidx.recyclerview.widget.LinearLayoutManager @@ -88,10 +87,7 @@ class MigrationListController(bundle: Bundle? = null) : private var selectedPosition: Int? = null private var manaulMigrations = 0 - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - return inflater.inflate(R.layout.migration_list_controller, container, false) - } - + override fun createBinding(inflater: LayoutInflater) = MigrationListControllerBinding.inflate(inflater) override fun getTitle(): String? { return resources?.getString(R.string.migration) + " (${adapter?.items?.count { it.manga.migrationStatus != MigrationStatus.RUNNUNG diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersController.kt index 79f7900cf8..63e6a1972e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersController.kt @@ -4,7 +4,6 @@ import android.app.Activity import android.os.Bundle import android.view.LayoutInflater import android.view.View -import android.view.ViewGroup import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager @@ -60,9 +59,7 @@ class RecentChaptersController(bundle: Bundle? = null) : return resources?.getString(R.string.recent_updates) } - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - return inflater.inflate(R.layout.recent_chapters_controller, container, false) - } + override fun createBinding(inflater: LayoutInflater) = RecentChaptersControllerBinding.inflate(inflater) /** * Called when view is created diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recently_read/RecentlyReadController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recently_read/RecentlyReadController.kt index 9673358e5d..93362fdcce 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recently_read/RecentlyReadController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recently_read/RecentlyReadController.kt @@ -7,7 +7,6 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View -import android.view.ViewGroup import androidx.appcompat.widget.SearchView import androidx.recyclerview.widget.LinearLayoutManager import eu.davidea.flexibleadapter.FlexibleAdapter @@ -66,9 +65,7 @@ class RecentlyReadController(bundle: Bundle? = null) : return resources?.getString(R.string.history) } - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - return inflater.inflate(R.layout.recently_read_controller, container, false) - } + override fun createBinding(inflater: LayoutInflater) = RecentlyReadControllerBinding.inflate(inflater) /** * Called when view is created diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt index 662a0344ed..89bfec5482 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentsController.kt @@ -91,10 +91,7 @@ class RecentsController(bundle: Bundle? = null) : } else resources?.getString(R.string.recents) } - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - binding = RecentsControllerBinding.inflate(inflater) - return binding.root - } + override fun createBinding(inflater: LayoutInflater) = RecentsControllerBinding.inflate(inflater) /** * Called when view is created diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchController.kt index 2de3cdfb5e..4b69d9aa5e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/search/SettingsSearchController.kt @@ -6,7 +6,6 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View -import android.view.ViewGroup import androidx.appcompat.widget.SearchView import androidx.recyclerview.widget.LinearLayoutManager import eu.kanade.tachiyomi.R @@ -35,16 +34,7 @@ class SettingsSearchController : setHasOptionsMenu(true) } - /** - * Initiate the view with [R.layout.settings_search_controller]. - * - * @param inflater used to load the layout xml. - * @param container containing parent views. - * @return inflated view - */ - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - return inflater.inflate(R.layout.settings_search_controller, container, false) - } + override fun createBinding(inflater: LayoutInflater) = SettingsSearchControllerBinding.inflate(inflater) override fun getTitle(): String { return presenter.query diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt index b9837e9694..99d78c5d1c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/BrowseController.kt @@ -113,17 +113,7 @@ class BrowseController : return SourcePresenter() } - /** - * Initiate the view with [R.layout.browse_controller]. - * - * @param inflater used to load the layout xml. - * @param container containing parent views. - * @return inflated view. - */ - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - binding = BrowseControllerBinding.inflate(inflater) - return binding.root - } + override fun createBinding(inflater: LayoutInflater) = BrowseControllerBinding.inflate(inflater) override fun onViewCreated(view: View) { super.onViewCreated(view) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceController.kt index 48af8b1182..c2ec6c2fdb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceController.kt @@ -130,9 +130,7 @@ open class BrowseSourceController(bundle: Bundle) : return BrowseSourcePresenter(args.getLong(SOURCE_ID_KEY)) } - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View { - return inflater.inflate(R.layout.browse_source_controller, container, false) - } + override fun createBinding(inflater: LayoutInflater) = BrowseSourceControllerBinding.inflate(inflater) override fun onViewCreated(view: View) { super.onViewCreated(view) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/global_search/GlobalSearchController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/global_search/GlobalSearchController.kt index 2556b40aec..9575da106d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/global_search/GlobalSearchController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/global_search/GlobalSearchController.kt @@ -6,7 +6,6 @@ import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View -import android.view.ViewGroup import androidx.appcompat.widget.SearchView import com.jakewharton.rxbinding.support.v7.widget.queryTextChangeEvents import eu.kanade.tachiyomi.R @@ -46,16 +45,7 @@ open class GlobalSearchController( setHasOptionsMenu(true) } - /** - * Initiate the view with [R.layout.source_global_search_controller]. - * - * @param inflater used to load the layout xml. - * @param container containing parent views. - * @return inflated view - */ - override fun inflateView(inflater: LayoutInflater, container: ViewGroup): android.view.View { - return inflater.inflate(R.layout.source_global_search_controller, container, false) - } + override fun createBinding(inflater: LayoutInflater) = SourceGlobalSearchControllerBinding.inflate(inflater) /** * Set the title of controller.