Add settings in browse if the source is a configurable source
This commit is contained in:
parent
f4e1ff9bbf
commit
c01ddadb56
@ -30,12 +30,16 @@ import eu.kanade.tachiyomi.data.preference.PreferenceValues.DisplayMode
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.preference.asImmediateFlow
|
||||
import eu.kanade.tachiyomi.databinding.SourceControllerBinding
|
||||
import eu.kanade.tachiyomi.extension.ExtensionManager
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||
import eu.kanade.tachiyomi.source.LocalSource
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
||||
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
||||
import eu.kanade.tachiyomi.ui.browse.extension.ExtensionPreferencesController
|
||||
import eu.kanade.tachiyomi.ui.browse.source.SourceController
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.SourceFilterSheet.FilterNavigationView.Companion.MAX_SAVED_SEARCHES
|
||||
import eu.kanade.tachiyomi.ui.library.ChangeMangaCategoriesDialog
|
||||
@ -63,6 +67,8 @@ import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import reactivecircus.flowbinding.appcompat.QueryTextEvent
|
||||
import reactivecircus.flowbinding.appcompat.queryTextEvents
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
/**
|
||||
@ -416,6 +422,8 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
|
||||
val isLocalSource = presenter.source is LocalSource
|
||||
menu.findItem(R.id.action_local_source_help).isVisible = isLocalSource && mode == Mode.CATALOGUE
|
||||
|
||||
menu.findItem(R.id.action_settings).isVisible = presenter.source is ConfigurableSource
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
@ -425,6 +433,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
R.id.action_comfortable_grid -> setDisplayMode(DisplayMode.COMFORTABLE_GRID)
|
||||
R.id.action_list -> setDisplayMode(DisplayMode.LIST)
|
||||
R.id.action_open_in_web_view -> openInWebView()
|
||||
R.id.action_settings -> openSourceSettings()
|
||||
R.id.action_local_source_help -> openLocalSourceHelpGuide()
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
@ -442,6 +451,20 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
activity?.openInBrowser(LocalSource.HELP_URL)
|
||||
}
|
||||
|
||||
private fun openSourceSettings() {
|
||||
val extensions: List<Extension> = Injekt.get<ExtensionManager>().installedExtensions
|
||||
extensions.forEach { extension ->
|
||||
if (extension is Extension.Installed) {
|
||||
if (extension.sources.contains(presenter.source)) {
|
||||
router.pushController(
|
||||
ExtensionPreferencesController(extension.pkgName).withFadeTransaction()
|
||||
)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Restarts the request with a new query.
|
||||
*
|
||||
|
@ -36,6 +36,13 @@
|
||||
app:iconTint="?attr/colorOnPrimary"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_settings"
|
||||
android:icon="@drawable/ic_settings_24dp"
|
||||
android:title="@string/action_settings"
|
||||
app:iconTint="?attr/colorOnPrimary"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_local_source_help"
|
||||
android:icon="@drawable/ic_help_24dp"
|
||||
|
Loading…
x
Reference in New Issue
Block a user