feat: Update media selection logic for Telegram-style interaction; improve user experience for image and video selection
This commit is contained in:
@@ -257,29 +257,30 @@ fun MediaPickerBottomSheet(
|
||||
mediaItems = mediaItems,
|
||||
selectedItems = selectedItems,
|
||||
onItemClick = { item ->
|
||||
// Single tap - open editor for images, or select for videos
|
||||
if (!item.isVideo) {
|
||||
// Open image editor
|
||||
editingItem = item
|
||||
} else {
|
||||
// For videos - just toggle selection
|
||||
selectedItems = if (item.id in selectedItems) {
|
||||
selectedItems - item.id
|
||||
} else if (selectedItems.size < maxSelection) {
|
||||
selectedItems + item.id
|
||||
// Telegram-style:
|
||||
// - Первый клик по невыбранной фото → выбрать
|
||||
// - Клик по уже выбранной фото → открыть редактор
|
||||
if (item.id in selectedItems) {
|
||||
// Уже выбрана - открываем редактор (только для изображений)
|
||||
if (!item.isVideo) {
|
||||
editingItem = item
|
||||
} else {
|
||||
selectedItems
|
||||
// Для видео - снимаем выделение
|
||||
selectedItems = selectedItems - item.id
|
||||
}
|
||||
} else {
|
||||
// Не выбрана - добавляем в selection
|
||||
if (selectedItems.size < maxSelection) {
|
||||
selectedItems = selectedItems + item.id
|
||||
}
|
||||
}
|
||||
},
|
||||
onItemLongClick = { item ->
|
||||
// Long press - toggle selection (multi-select mode)
|
||||
selectedItems = if (item.id in selectedItems) {
|
||||
selectedItems - item.id
|
||||
// Long press - снять выделение если выбрана
|
||||
if (item.id in selectedItems) {
|
||||
selectedItems = selectedItems - item.id
|
||||
} else if (selectedItems.size < maxSelection) {
|
||||
selectedItems + item.id
|
||||
} else {
|
||||
selectedItems
|
||||
selectedItems = selectedItems + item.id
|
||||
}
|
||||
},
|
||||
isDarkTheme = isDarkTheme,
|
||||
|
||||
Reference in New Issue
Block a user