Put Komga tracker in separate group

This commit is contained in:
arkon
2021-07-18 12:55:26 -04:00
parent a252a8acee
commit 8bfc5f0450
10 changed files with 56 additions and 37 deletions
@@ -4,8 +4,10 @@ import android.app.Activity
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import androidx.preference.PreferenceGroup
import androidx.preference.PreferenceScreen
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.track.EnhancedTrackService
import eu.kanade.tachiyomi.data.track.NoLoginTrackService
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.track.TrackService
@@ -13,11 +15,13 @@ import eu.kanade.tachiyomi.data.track.anilist.AnilistApi
import eu.kanade.tachiyomi.data.track.bangumi.BangumiApi
import eu.kanade.tachiyomi.data.track.myanimelist.MyAnimeListApi
import eu.kanade.tachiyomi.data.track.shikimori.ShikimoriApi
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.ui.setting.track.TrackLoginDialog
import eu.kanade.tachiyomi.ui.setting.track.TrackLogoutDialog
import eu.kanade.tachiyomi.util.preference.add
import eu.kanade.tachiyomi.util.preference.defaultValue
import eu.kanade.tachiyomi.util.preference.iconRes
import eu.kanade.tachiyomi.util.preference.infoPreference
import eu.kanade.tachiyomi.util.preference.initThenAdd
import eu.kanade.tachiyomi.util.preference.onClick
import eu.kanade.tachiyomi.util.preference.preferenceCategory
import eu.kanade.tachiyomi.util.preference.switchPreference
@@ -33,6 +37,7 @@ class SettingsTrackingController :
TrackLogoutDialog.Listener {
private val trackManager: TrackManager by injectLazy()
private val sourceManager: SourceManager by injectLazy()
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
titleRes = R.string.pref_category_tracking
@@ -42,11 +47,7 @@ class SettingsTrackingController :
titleRes = R.string.pref_auto_update_manga_sync
defaultValue = true
}
switchPreference {
key = Keys.autoAddTrack
titleRes = R.string.pref_auto_add_track
defaultValue = true
}
preferenceCategory {
titleRes = R.string.services
@@ -67,26 +68,37 @@ class SettingsTrackingController :
trackPreference(trackManager.bangumi) {
activity?.openInBrowser(BangumiApi.authUrl(), trackManager.bangumi.getLogoColor())
}
infoPreference(R.string.tracking_info)
}
preferenceCategory {
titleRes = R.string.enhanced_services
switchPreference {
key = Keys.autoAddTrack
titleRes = R.string.pref_auto_add_track
defaultValue = true
}
trackPreference(trackManager.komga) {
trackManager.komga.loginNoop()
updatePreference(trackManager.komga.id)
}
}
preferenceCategory {
infoPreference(R.string.tracking_info)
infoPreference(R.string.enhanced_tracking_info)
}
}
private inline fun PreferenceScreen.trackPreference(
private inline fun PreferenceGroup.trackPreference(
service: TrackService,
crossinline login: () -> Unit
): LoginPreference {
return initThenAdd(
return add(
LoginPreference(context).apply {
key = Keys.trackUsername(service.id)
titleRes = service.nameRes()
},
{
iconRes = service.getLogo()
onClick {
if (service.isLogged) {
if (service is NoLoginTrackService) {