From 9629b1fdde373dc733eccfe6d0c8cf72b226ef04 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Wed, 19 Aug 2026 11:21:20 +0200 Subject: [PATCH] Wizard: Make ENTER etc trigger the connect action --- .../authentication/LoginActivity.kt | 21 +++++++++++++++++++ .../src/main/res/layout/account_setup.xml | 1 + 2 files changed, 22 insertions(+) diff --git a/opencloudApp/src/main/java/eu/opencloud/android/presentation/authentication/LoginActivity.kt b/opencloudApp/src/main/java/eu/opencloud/android/presentation/authentication/LoginActivity.kt index d713bbd11..758376971 100644 --- a/opencloudApp/src/main/java/eu/opencloud/android/presentation/authentication/LoginActivity.kt +++ b/opencloudApp/src/main/java/eu/opencloud/android/presentation/authentication/LoginActivity.kt @@ -39,9 +39,11 @@ import android.content.Intent import android.net.Uri import android.os.Bundle import android.security.KeyChain +import android.view.KeyEvent import android.view.View import android.view.View.INVISIBLE import android.view.WindowManager.LayoutParams.FLAG_SECURE +import android.view.inputmethod.EditorInfo import android.widget.PopupMenu import androidx.appcompat.app.AppCompatActivity import androidx.browser.customtabs.CustomTabsIntent @@ -274,6 +276,8 @@ class LoginActivity : AppCompatActivity(), SslUntrustedCertDialog.OnSslUntrusted binding.embeddedCheckServerButton.setOnClickListener { checkOcServer() } + setupHostUrlEnterAction() + binding.connectionOptionsButton.setOnClickListener { showConnectionMenu(it) } binding.loginButton.setOnClickListener { @@ -534,6 +538,23 @@ class LoginActivity : AppCompatActivity(), SslUntrustedCertDialog.OnSslUntrusted binding.webfingerStatusText.isVisible = true } + // ENTER (hardware key) and the soft-keyboard action (Go / Done checkmark) run the ">" check. + private fun setupHostUrlEnterAction() { + binding.hostUrlInput.setOnEditorActionListener { _, actionId, event -> + val imeActionTriggered = actionId == EditorInfo.IME_ACTION_GO || + actionId == EditorInfo.IME_ACTION_DONE || + actionId == EditorInfo.IME_ACTION_SEND + val hardwareEnterPressed = + event?.keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_DOWN + if (imeActionTriggered || hardwareEnterPressed) { + checkOcServer() + true + } else { + false + } + } + } + private fun checkOcServer() { val uri = binding.hostUrlInput.text.toString().trim() if (uri.isNotEmpty()) { diff --git a/opencloudApp/src/main/res/layout/account_setup.xml b/opencloudApp/src/main/res/layout/account_setup.xml index 571fed3d2..ad03d828e 100644 --- a/opencloudApp/src/main/res/layout/account_setup.xml +++ b/opencloudApp/src/main/res/layout/account_setup.xml @@ -161,6 +161,7 @@ android:layout_gravity="bottom" android:drawablePadding="5dp" android:hint="@string/auth_host_url" + android:imeOptions="actionGo" android:inputType="textUri" android:paddingEnd="55dp" android:theme="@style/Theme.openCloud.Authenticator.EditText">