|
@@ -138,14 +138,14 @@ fun ConversationCreationScreen(
|
|
context: Context,
|
|
context: Context,
|
|
pickImage: PickImage
|
|
pickImage: PickImage
|
|
) {
|
|
) {
|
|
- var selectedImageUri by remember { mutableStateOf<Uri?>(null) }
|
|
|
|
|
|
+ val selectedImageUri = conversationCreationViewModel.selectedImageUri.collectAsState().value
|
|
|
|
|
|
val imagePickerLauncher = rememberLauncherForActivityResult(
|
|
val imagePickerLauncher = rememberLauncherForActivityResult(
|
|
contract = ActivityResultContracts.StartActivityForResult()
|
|
contract = ActivityResultContracts.StartActivityForResult()
|
|
) { result ->
|
|
) { result ->
|
|
if (result.resultCode == Activity.RESULT_OK) {
|
|
if (result.resultCode == Activity.RESULT_OK) {
|
|
pickImage.onImagePickerResult(result.data) { uri ->
|
|
pickImage.onImagePickerResult(result.data) { uri ->
|
|
- selectedImageUri = uri
|
|
|
|
|
|
+ conversationCreationViewModel.updateSelectedImageUri(uri)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -205,17 +205,18 @@ fun ConversationCreationScreen(
|
|
DefaultUserAvatar(selectedImageUri)
|
|
DefaultUserAvatar(selectedImageUri)
|
|
UploadAvatar(
|
|
UploadAvatar(
|
|
pickImage = pickImage,
|
|
pickImage = pickImage,
|
|
- onImageSelected = { uri -> selectedImageUri = uri },
|
|
|
|
|
|
+ onImageSelected = { uri -> conversationCreationViewModel.updateSelectedImageUri(uri) },
|
|
imagePickerLauncher = imagePickerLauncher,
|
|
imagePickerLauncher = imagePickerLauncher,
|
|
remoteFilePickerLauncher = remoteFilePickerLauncher,
|
|
remoteFilePickerLauncher = remoteFilePickerLauncher,
|
|
cameraLauncher = cameraLauncher,
|
|
cameraLauncher = cameraLauncher,
|
|
- onDeleteImage = { selectedImageUri = null }
|
|
|
|
|
|
+ onDeleteImage = { conversationCreationViewModel.updateSelectedImageUri(null) },
|
|
|
|
+ selectedImageUri = selectedImageUri
|
|
)
|
|
)
|
|
|
|
|
|
ConversationNameAndDescription(conversationCreationViewModel)
|
|
ConversationNameAndDescription(conversationCreationViewModel)
|
|
AddParticipants(launcher, context, conversationCreationViewModel)
|
|
AddParticipants(launcher, context, conversationCreationViewModel)
|
|
RoomCreationOptions(conversationCreationViewModel)
|
|
RoomCreationOptions(conversationCreationViewModel)
|
|
- CreateConversation(conversationCreationViewModel, context, selectedImageUri)
|
|
|
|
|
|
+ CreateConversation(conversationCreationViewModel, context)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
)
|
|
)
|
|
@@ -258,7 +259,8 @@ fun UploadAvatar(
|
|
imagePickerLauncher: ManagedActivityResultLauncher<Intent, ActivityResult>,
|
|
imagePickerLauncher: ManagedActivityResultLauncher<Intent, ActivityResult>,
|
|
remoteFilePickerLauncher: ManagedActivityResultLauncher<Intent, ActivityResult>,
|
|
remoteFilePickerLauncher: ManagedActivityResultLauncher<Intent, ActivityResult>,
|
|
cameraLauncher: ManagedActivityResultLauncher<Intent, ActivityResult>,
|
|
cameraLauncher: ManagedActivityResultLauncher<Intent, ActivityResult>,
|
|
- onDeleteImage: () -> Unit
|
|
|
|
|
|
+ onDeleteImage: () -> Unit,
|
|
|
|
+ selectedImageUri: Uri?
|
|
) {
|
|
) {
|
|
Row(
|
|
Row(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
@@ -299,14 +301,16 @@ fun UploadAvatar(
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
- IconButton(onClick = {
|
|
|
|
- onDeleteImage()
|
|
|
|
- }) {
|
|
|
|
- Icon(
|
|
|
|
- painter = painterResource(id = R.drawable.ic_delete_grey600_24dp),
|
|
|
|
- contentDescription = null,
|
|
|
|
- modifier = Modifier.size(24.dp)
|
|
|
|
- )
|
|
|
|
|
|
+ if (selectedImageUri != null) {
|
|
|
|
+ IconButton(onClick = {
|
|
|
|
+ onDeleteImage()
|
|
|
|
+ }) {
|
|
|
|
+ Icon(
|
|
|
|
+ painter = painterResource(id = R.drawable.ic_delete_grey600_24dp),
|
|
|
|
+ contentDescription = null,
|
|
|
|
+ modifier = Modifier.size(24.dp)
|
|
|
|
+ )
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -323,7 +327,8 @@ fun ConversationNameAndDescription(conversationCreationViewModel: ConversationCr
|
|
label = { Text(text = stringResource(id = R.string.nc_call_name)) },
|
|
label = { Text(text = stringResource(id = R.string.nc_call_name)) },
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
.padding(start = 16.dp, end = 16.dp)
|
|
.padding(start = 16.dp, end = 16.dp)
|
|
- .fillMaxWidth()
|
|
|
|
|
|
+ .fillMaxWidth(),
|
|
|
|
+ singleLine = true
|
|
)
|
|
)
|
|
OutlinedTextField(
|
|
OutlinedTextField(
|
|
value = conversationDescription.value,
|
|
value = conversationDescription.value,
|
|
@@ -549,7 +554,6 @@ fun ShowPasswordDialog(onDismiss: () -> Unit, conversationCreationViewModel: Con
|
|
|
|
|
|
AlertDialog(
|
|
AlertDialog(
|
|
containerColor = colorResource(id = R.color.dialog_background),
|
|
containerColor = colorResource(id = R.color.dialog_background),
|
|
-
|
|
|
|
onDismissRequest = onDismiss,
|
|
onDismissRequest = onDismiss,
|
|
confirmButton = {
|
|
confirmButton = {
|
|
Button(onClick = {
|
|
Button(onClick = {
|
|
@@ -578,11 +582,7 @@ fun ShowPasswordDialog(onDismiss: () -> Unit, conversationCreationViewModel: Con
|
|
}
|
|
}
|
|
|
|
|
|
@Composable
|
|
@Composable
|
|
-fun CreateConversation(
|
|
|
|
- conversationCreationViewModel: ConversationCreationViewModel,
|
|
|
|
- context: Context,
|
|
|
|
- selectedImageUri: Uri?
|
|
|
|
-) {
|
|
|
|
|
|
+fun CreateConversation(conversationCreationViewModel: ConversationCreationViewModel, context: Context) {
|
|
val selectedParticipants by conversationCreationViewModel.selectedParticipants.collectAsState()
|
|
val selectedParticipants by conversationCreationViewModel.selectedParticipants.collectAsState()
|
|
Box(
|
|
Box(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
@@ -595,8 +595,7 @@ fun CreateConversation(
|
|
conversationCreationViewModel.createRoomAndAddParticipants(
|
|
conversationCreationViewModel.createRoomAndAddParticipants(
|
|
roomType = CompanionClass.ROOM_TYPE_GROUP,
|
|
roomType = CompanionClass.ROOM_TYPE_GROUP,
|
|
conversationName = conversationCreationViewModel.roomName.value,
|
|
conversationName = conversationCreationViewModel.roomName.value,
|
|
- participants = selectedParticipants.toSet(),
|
|
|
|
- selectedImageUri = selectedImageUri
|
|
|
|
|
|
+ participants = selectedParticipants.toSet()
|
|
) { roomToken ->
|
|
) { roomToken ->
|
|
val bundle = Bundle()
|
|
val bundle = Bundle()
|
|
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, roomToken)
|
|
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, roomToken)
|