Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<meta-data android:name="expo.modules.updates.ENABLED" android:value="false"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
<activity android:name=".MainActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="portrait">
<activity android:name=".MainActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustPan" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
Expand All @@ -31,4 +31,4 @@
</intent-filter>
</activity>
</application>
</manifest>
</manifest>
10 changes: 9 additions & 1 deletion app/connection/[id].tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import {
TextInput,
TouchableOpacity,
ScrollView,
KeyboardAvoidingView,
Platform,
StyleSheet,
useColorScheme,
ActivityIndicator,
Expand Down Expand Up @@ -181,8 +183,13 @@ export default function EditConnectionScreen() {
}

return (
<ScrollView
<KeyboardAvoidingView
style={[styles.container, isDark && styles.containerDark]}
enabled={Platform.OS === "ios"}
behavior="padding"
>
<ScrollView
style={{ flex: 1 }}
contentContainerStyle={styles.content}
keyboardShouldPersistTaps="handled"
>
Expand Down Expand Up @@ -316,6 +323,7 @@ export default function EditConnectionScreen() {
</TouchableOpacity>
</View>
</ScrollView>
</KeyboardAvoidingView>
)
}

Expand Down
18 changes: 16 additions & 2 deletions app/connection/add.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import {
TextInput,
TouchableOpacity,
ScrollView,
KeyboardAvoidingView,
Platform,
StyleSheet,
useColorScheme,
ActivityIndicator,
Expand Down Expand Up @@ -315,8 +317,13 @@ export default function AddConnectionScreen() {
// Quick connect mode - simplified
if (mode === "quick") {
return (
<ScrollView
<KeyboardAvoidingView
style={[styles.container, isDark && styles.containerDark]}
enabled={Platform.OS === "ios"}
behavior="padding"
>
<ScrollView
style={{ flex: 1 }}
contentContainerStyle={styles.content}
keyboardShouldPersistTaps="handled"
>
Expand Down Expand Up @@ -516,13 +523,19 @@ export default function AddConnectionScreen() {
<Ionicons name="chevron-forward" size={16} color={isDark ? "#888888" : "#666666"} />
</TouchableOpacity>
</ScrollView>
</KeyboardAvoidingView>
)
}

// Advanced mode - full options
return (
<ScrollView
<KeyboardAvoidingView
style={[styles.container, isDark && styles.containerDark]}
enabled={Platform.OS === "ios"}
behavior="padding"
>
<ScrollView
style={{ flex: 1 }}
contentContainerStyle={styles.content}
keyboardShouldPersistTaps="handled"
>
Expand Down Expand Up @@ -658,6 +671,7 @@ export default function AddConnectionScreen() {
)}
</TouchableOpacity>
</ScrollView>
</KeyboardAvoidingView>
)
}

Expand Down
15 changes: 2 additions & 13 deletions app/session/[id].tsx
Original file line number Diff line number Diff line change
Expand Up @@ -593,20 +593,9 @@ export default function SessionScreen() {

<KeyboardAvoidingView
style={[s.container, isDark && s.containerDark]}
// Both platforms use "padding" so the composer/toolbar is pushed up
// above the keyboard via JS-measured keyboard height.
//
// Android previously relied on the native android:windowSoftInputMode
// (adjustResize, see AndroidManifest.xml) with behavior={undefined}
// to let the OS resize the window (see #70/#53). Since adopting
// Expo's mandatory edge-to-edge display, Android no longer resizes
// the window when the keyboard opens — the system assumes insets are
// handled dynamically — so adjustResize became a no-op and the
// bottom toolbar + input were left completely hidden behind the
// keyboard (#147). "padding" restores avoidance without depending
// on native resize.
enabled={Platform.OS === "ios"}
behavior="padding"
keyboardVerticalOffset={Platform.OS === "ios" ? 90 : 0}
keyboardVerticalOffset={90}
>
{/* Session info pulldown */}
<SessionInfo
Expand Down