diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f70692fb5..c2f926d41 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -161,6 +161,10 @@ + { diff --git a/app/src/main/java/org/koitharu/kotatsu/scrobbling/kitsu/ui/KitsuAuthActivity.kt b/app/src/main/java/org/koitharu/kotatsu/scrobbling/kitsu/ui/KitsuAuthActivity.kt new file mode 100644 index 000000000..55ae9d8ff --- /dev/null +++ b/app/src/main/java/org/koitharu/kotatsu/scrobbling/kitsu/ui/KitsuAuthActivity.kt @@ -0,0 +1,32 @@ +package org.koitharu.kotatsu.scrobbling.kitsu.ui + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import androidx.core.graphics.Insets +import org.koitharu.kotatsu.R +import org.koitharu.kotatsu.base.ui.BaseActivity +import org.koitharu.kotatsu.databinding.ActivityKitsuAuthBinding + +class KitsuAuthActivity : BaseActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(ActivityKitsuAuthBinding.inflate(layoutInflater)) + } + + override fun onWindowInsetsChanged(insets: Insets) { + val basePadding = resources.getDimensionPixelOffset(R.dimen.screen_padding) + binding.root.setPadding( + basePadding + insets.left, + basePadding + insets.top, + basePadding + insets.right, + basePadding + insets.bottom, + ) + } + + companion object { + fun newIntent(context: Context) = Intent(context, KitsuAuthActivity::class.java) + } + +} 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 9f63f32bb..6fb976e28 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/ServicesSettingsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/ServicesSettingsFragment.kt @@ -18,6 +18,7 @@ import org.koitharu.kotatsu.scrobbling.anilist.data.AniListRepository import org.koitharu.kotatsu.scrobbling.common.domain.model.ScrobblerService import org.koitharu.kotatsu.scrobbling.common.ui.config.ScrobblerConfigActivity import org.koitharu.kotatsu.scrobbling.kitsu.data.KitsuRepository +import org.koitharu.kotatsu.scrobbling.kitsu.ui.KitsuAuthActivity import org.koitharu.kotatsu.scrobbling.mal.data.MALRepository import org.koitharu.kotatsu.scrobbling.shikimori.data.ShikimoriRepository import org.koitharu.kotatsu.sync.domain.SyncController @@ -146,6 +147,9 @@ class ServicesSettingsFragment : BasePreferenceFragment(R.string.services) { private fun launchScrobblerAuth(repository: org.koitharu.kotatsu.scrobbling.common.data.ScrobblerRepository) { runCatching { + if (repository.oauthUrl.isBlank()) { + startActivity(KitsuAuthActivity.newIntent(requireContext())) + } val intent = Intent(Intent.ACTION_VIEW) intent.data = Uri.parse(repository.oauthUrl) startActivity(intent) diff --git a/app/src/main/res/drawable/ic_kitsu.xml b/app/src/main/res/drawable/ic_kitsu.xml new file mode 100644 index 000000000..b124346cb --- /dev/null +++ b/app/src/main/res/drawable/ic_kitsu.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_kitsu_auth.xml b/app/src/main/res/layout/activity_kitsu_auth.xml new file mode 100644 index 000000000..f6166696e --- /dev/null +++ b/app/src/main/res/layout/activity_kitsu_auth.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + +