|
@@ -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) {
|