Skip to content

Commit 60b56e1

Browse files
Fix: Keyboard hides instruction EditText in CreateTriggerActivity
The soft keyboard was covering the instruction EditText when it was focused, preventing the user from seeing what they were typing. This was fixed by: 1. Setting `android:windowSoftInputMode="adjustResize"` for `CreateTriggerActivity` in the manifest. 2. Ensuring the layout is wrapped in a `ScrollView`. 3. Adding an `OnFocusChangeListener` to the `EditText` that programmatically scrolls the `ScrollView` to make the input field visible when it gains focus. This provides a more robust solution than relying on `adjustResize` alone.
1 parent 1d497dd commit 60b56e1

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
</activity>
7474

7575
<activity android:name=".triggers.ui.TriggersActivity" android:exported="false" android:label="Triggers" android:theme="@style/Theme.Blurr" />
76-
<activity android:name=".triggers.ui.CreateTriggerActivity" android:exported="false" android:label="Create Trigger" android:theme="@style/Theme.Blurr" />
76+
<activity android:name=".triggers.ui.CreateTriggerActivity" android:exported="false" android:label="Create Trigger" android:theme="@style/Theme.Blurr" android:windowSoftInputMode="adjustResize" />
7777
<activity android:name=".triggers.ui.ChooseTriggerTypeActivity" android:exported="false" android:label="Choose Trigger Type" android:theme="@style/Theme.Blurr" />
7878

7979

app/src/main/java/com/blurr/voice/triggers/ui/CreateTriggerActivity.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import android.widget.Button
77
import android.widget.EditText
88
import android.widget.LinearLayout
99
import android.widget.RadioGroup
10+
import android.widget.ScrollView
1011
import android.widget.TimePicker
1112
import android.widget.Toast
1213
import androidx.appcompat.app.AppCompatActivity
@@ -31,6 +32,7 @@ class CreateTriggerActivity : AppCompatActivity() {
3132
private lateinit var appsRecyclerView: RecyclerView
3233
private lateinit var dayOfWeekChipGroup: com.google.android.material.chip.ChipGroup
3334
private lateinit var appAdapter: AppAdapter
35+
private lateinit var scrollView: ScrollView
3436

3537
private var selectedTriggerType = TriggerType.SCHEDULED_TIME
3638
private var selectedApp: AppInfo? = null
@@ -50,6 +52,16 @@ class CreateTriggerActivity : AppCompatActivity() {
5052
timePicker = findViewById(R.id.timePicker)
5153
appsRecyclerView = findViewById(R.id.appsRecyclerView)
5254
dayOfWeekChipGroup = findViewById(R.id.dayOfWeekChipGroup)
55+
scrollView = findViewById(R.id.scrollView)
56+
57+
instructionEditText.setOnFocusChangeListener { view, hasFocus ->
58+
if (hasFocus) {
59+
// Delay scrolling until the keyboard is likely to be visible
60+
view.postDelayed({
61+
scrollView.smoothScrollTo(0, view.bottom)
62+
}, 200)
63+
}
64+
}
5365

5466
// Set default checked state for all day chips
5567
for (i in 0 until dayOfWeekChipGroup.childCount) {

app/src/main/res/layout/activity_create_trigger.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
app:titleTextColor="@color/white" />
1717

1818
<ScrollView
19+
android:id="@+id/scrollView"
1920
android:layout_width="match_parent"
2021
android:layout_height="match_parent"
2122
android:layout_below="@id/toolbar"

0 commit comments

Comments
 (0)