From 41551451b0cb588c8af11a7194bfdc6d5a875530 Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Sat, 6 May 2023 16:15:17 +0300 Subject: [PATCH] Part 1 --- app/src/main/AndroidManifest.xml | 4 + .../common/domain/model/ScrobblerService.kt | 2 +- .../scrobbling/kitsu/data/KitsuRepository.kt | 37 +++-- .../scrobbling/kitsu/ui/KitsuAuthActivity.kt | 32 +++++ .../settings/ServicesSettingsFragment.kt | 4 + app/src/main/res/drawable/ic_kitsu.xml | 10 ++ .../main/res/layout/activity_kitsu_auth.xml | 130 ++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/pref_services.xml | 15 +- 9 files changed, 218 insertions(+), 17 deletions(-) create mode 100644 app/src/main/java/org/koitharu/kotatsu/scrobbling/kitsu/ui/KitsuAuthActivity.kt create mode 100644 app/src/main/res/drawable/ic_kitsu.xml create mode 100644 app/src/main/res/layout/activity_kitsu_auth.xml 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 @@ + + + + + + + + + + + + + + + + + + + + + +