diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/ServicesSettingsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/ServicesSettingsFragment.kt index 24e5c97bb..2a4561ff3 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/ServicesSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/ServicesSettingsFragment.kt @@ -19,6 +19,7 @@ import org.koitharu.kotatsu.scrobbling.common.domain.model.ScrobblerService import org.koitharu.kotatsu.scrobbling.common.ui.config.ScrobblerConfigActivity import org.koitharu.kotatsu.scrobbling.mal.data.MALRepository import org.koitharu.kotatsu.scrobbling.shikimori.data.ShikimoriRepository +import org.koitharu.kotatsu.sync.domain.SyncController import org.koitharu.kotatsu.sync.ui.SyncSettingsIntent import org.koitharu.kotatsu.utils.ext.getDisplayMessage import org.koitharu.kotatsu.utils.ext.printStackTraceDebug @@ -37,6 +38,9 @@ class ServicesSettingsFragment : BasePreferenceFragment(R.string.services) { @Inject lateinit var malRepository: MALRepository + @Inject + lateinit var syncController: SyncController + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.pref_services) } @@ -143,7 +147,11 @@ class ServicesSettingsFragment : BasePreferenceFragment(R.string.services) { AccountManager.get(requireContext()).getAccountsByType(type).firstOrNull() } findPreference(AppSettings.KEY_SYNC)?.run { - summary = account?.name ?: getString(R.string.sync_title) + summary = when { + account == null -> getString(R.string.sync_title) + syncController.isEnabled(account) -> account.name + else -> getString(R.string.disabled) + } } } } diff --git a/app/src/main/java/org/koitharu/kotatsu/sync/domain/SyncController.kt b/app/src/main/java/org/koitharu/kotatsu/sync/domain/SyncController.kt index dc85a124a..32cd68134 100644 --- a/app/src/main/java/org/koitharu/kotatsu/sync/domain/SyncController.kt +++ b/app/src/main/java/org/koitharu/kotatsu/sync/domain/SyncController.kt @@ -49,6 +49,16 @@ class SyncController @Inject constructor( ) } + fun isEnabled(account: Account): Boolean { + return ContentResolver.getMasterSyncAutomatically() && (ContentResolver.getSyncAutomatically( + account, + authorityFavourites, + ) || ContentResolver.getSyncAutomatically( + account, + authorityHistory, + )) + } + fun getLastSync(account: Account, authority: String): Long { val key = "last_sync_" + authority.substringAfterLast('.') val rawValue = am.getUserData(account, key) ?: return 0L diff --git a/app/src/main/java/org/koitharu/kotatsu/sync/ui/SyncAccountAuthenticator.kt b/app/src/main/java/org/koitharu/kotatsu/sync/ui/SyncAccountAuthenticator.kt index d1e4eb05c..c824587ff 100644 --- a/app/src/main/java/org/koitharu/kotatsu/sync/ui/SyncAccountAuthenticator.kt +++ b/app/src/main/java/org/koitharu/kotatsu/sync/ui/SyncAccountAuthenticator.kt @@ -75,4 +75,4 @@ class SyncAccountAuthenticator(private val context: Context) : AbstractAccountAu account: Account?, features: Array?, ): Bundle? = null -} \ No newline at end of file +}