Releases: sendbird/sendbird-uikit-react-native
v3.11.0
3.11.0 (2025-09-16)
Features
- add react-native-nitro-sound for React Native 0.81 support (7dcf0cc)
Notes
For React Native 0.81 and above, you should use the react-native-nitro-sound
package instead of react-native-audio-recorder-player
.
import * as AudioRecorderPlayer from 'react-native-nitro-sound';
export const platformServices: SendbirdUIKitContainerProps['platformServices'] = {
player: createNativePlayerService({
audioRecorderModule: AudioRecorderPlayer,
}),
recorder: createNativeRecorderService({
audioRecorderModule: AudioRecorderPlayer,
}),
};
v3.10.3
3.10.3 (2025-09-10)
Bug Fixes
- revert: improve keyboard avoidance behavior for Android API 35+
Temporary Workaround for Android Keyboard Issue (Android SDK 35+)
A related issue has been reported on the React Native GitHub repository and is expected to be addressed in a future release.
In the meantime, we are planning to revert the keyboard handling logic in Sendbird RN UIKit to its original implementation.
This issue is specifically related to the edge-to-edge layout behavior introduced in Android SDK 35+, which causes unexpected layout shifts when the keyboard appears.
Until the React Native team resolves the issue, customers using Android SDK 35+ are advised to apply the workaround described below.
⸻
📌 Action Required: Add the Following Code to MainActivity.kt
Please update your MainActivity.kt as shown below:
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.core.graphics.Insets
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding
class MainActivity : ReactActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(null)
val rootView: View = findViewById(android.R.id.content)
ViewCompat.setOnApplyWindowInsetsListener(rootView) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
val ime = insets.getInsets(WindowInsetsCompat.Type.ime())
v.updatePadding(
left = systemBars.left,
right = systemBars.right,
bottom = ime.bottom
)
WindowInsetsCompat.CONSUMED
}
}