Keep the in-progress edit when attaching media
Picking an attachment reset the composer to Normal, which dropped an in-progress edit: the attachment went out as a new message and the leftover edit text then created another one instead of editing the original. Route every attach path through a single resetComposerModeAfterAttaching() helper that clears Reply/Normal but keeps an edit pending, so the typed text still edits the original on the next send. This also covers the multi-item gallery picker added in #6519, which reset the mode unconditionally. Reply is still cleared (the attachment becomes the reply). Fixes #7083.
This commit is contained in:
+7
-2
@@ -19,6 +19,7 @@ import io.element.android.libraries.mediapickers.api.PickerProvider
|
||||
class FakePickerProvider : PickerProvider {
|
||||
private var mimeType = MimeTypes.Any
|
||||
private var result: Uri? = null
|
||||
private var multipleResults: List<Uri>? = null
|
||||
|
||||
@Composable
|
||||
override fun registerGalleryPicker(onResult: (uri: Uri?, mimeType: String?) -> Unit): PickerLauncher<PickVisualMediaRequest, Uri?> {
|
||||
@@ -32,7 +33,7 @@ class FakePickerProvider : PickerProvider {
|
||||
|
||||
@Composable
|
||||
override fun registerGalleryMultiPicker(onResult: (uris: List<Uri>) -> Unit): PickerLauncher<PickVisualMediaRequest, List<Uri>> {
|
||||
return NoOpPickerLauncher { onResult(result?.let { listOf(it) } ?: emptyList()) }
|
||||
return NoOpPickerLauncher { onResult(multipleResults ?: result?.let { listOf(it) } ?: emptyList()) }
|
||||
}
|
||||
|
||||
@Composable
|
||||
@@ -42,7 +43,7 @@ class FakePickerProvider : PickerProvider {
|
||||
|
||||
@Composable
|
||||
override fun registerFileMultiPicker(mimeType: String, onResult: (uris: List<Uri>) -> Unit): PickerLauncher<Array<String>, List<Uri>> {
|
||||
return NoOpPickerLauncher { onResult(result?.let { listOf(it) } ?: emptyList()) }
|
||||
return NoOpPickerLauncher { onResult(multipleResults ?: result?.let { listOf(it) } ?: emptyList()) }
|
||||
}
|
||||
|
||||
@Composable
|
||||
@@ -59,6 +60,10 @@ class FakePickerProvider : PickerProvider {
|
||||
this.result = value
|
||||
}
|
||||
|
||||
fun givenMultipleResults(uris: List<Uri>) {
|
||||
this.multipleResults = uris
|
||||
}
|
||||
|
||||
fun givenMimeType(mimeType: String) {
|
||||
this.mimeType = mimeType
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user