From 50115f3a908cc535d9cde2751557c7be114e7aa9 Mon Sep 17 00:00:00 2001 From: Matt Hamann Date: Mon, 27 Oct 2025 13:41:20 -0400 Subject: [PATCH] feat: allow disabling sign-in link behavior --- .../java/io/rownd/android/models/RowndConfig.kt | 3 ++- .../rownd/android/models/network/SignInLink.kt | 17 +++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/android/src/main/java/io/rownd/android/models/RowndConfig.kt b/android/src/main/java/io/rownd/android/models/RowndConfig.kt index 80b43c1..e9484a2 100644 --- a/android/src/main/java/io/rownd/android/models/RowndConfig.kt +++ b/android/src/main/java/io/rownd/android/models/RowndConfig.kt @@ -31,6 +31,8 @@ data class RowndConfig( var forceInstantUserConversion: Boolean = false, @Transient var enableDebugMode: Boolean = false, + @Transient + var enableSmartLinkPasteBehavior: Boolean = true, // Internals @Transient @@ -74,4 +76,3 @@ data class RowndConfig( return uriBuilder.build().toString() } } - diff --git a/android/src/main/java/io/rownd/android/models/network/SignInLink.kt b/android/src/main/java/io/rownd/android/models/network/SignInLink.kt index bad1f6d..e0a6c8e 100644 --- a/android/src/main/java/io/rownd/android/models/network/SignInLink.kt +++ b/android/src/main/java/io/rownd/android/models/network/SignInLink.kt @@ -65,6 +65,9 @@ class SignInLinkApi @Inject constructor() { @Inject lateinit var apiClient: KtorApiClient + @Inject + lateinit var config: io.rownd.android.models.RowndConfig + suspend fun createSignInLink() : SignInLink { return authenticatedApiClient.client.post("me/auth/magic").body() } @@ -129,13 +132,15 @@ class SignInLinkApi @Inject constructor() { if (action == ACTION_VIEW && isRowndSignInLink(ctx.intent?.data)) { dispatchSignInWithLink(ctx.intent?.data) - } else if (ctx.hasWindowFocus()) { - // Look on the clipboard - signInWithLinkFromClipboardIfPresent(ctx) - } else { - val rootView = ctx.findViewById(android.R.id.content) - rootView.doOnLayout { + } else if (config.enableSmartLinkPasteBehavior) { + if (ctx.hasWindowFocus()) { + // Look on the clipboard signInWithLinkFromClipboardIfPresent(ctx) + } else { + val rootView = ctx.findViewById(android.R.id.content) + rootView.doOnLayout { + signInWithLinkFromClipboardIfPresent(ctx) + } } } }