Exit multi-select mode on back press in sticker management.

This commit is contained in:
jeffrey-signal
2026-01-07 15:28:25 -05:00
parent 5fa5a98b87
commit af32996728
2 changed files with 19 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ import android.content.Context
import android.content.Intent
import android.content.res.Resources
import android.os.Bundle
import androidx.activity.compose.BackHandler
import androidx.activity.compose.setContent
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.combinedClickable
@@ -286,6 +287,10 @@ fun StickerManagementScreen(
val pagerState = rememberPagerState(pageCount = { pages.size })
val coroutineScope = rememberCoroutineScope()
BackHandler(enabled = uiState.multiSelectEnabled) {
onSetMultiSelectModeEnabled(false)
}
Scaffold(
topBar = {
val isInstalledTabActive = pagerState.currentPage == 1

View File

@@ -7,12 +7,14 @@ package org.thoughtcrime.securesms.stickers
import android.app.Dialog
import android.os.Bundle
import androidx.activity.OnBackPressedCallback
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
@@ -52,6 +54,12 @@ class StickerManagementBottomSheet : ComposeBottomSheetDialogFragment() {
private val viewModel by viewModel { StickerManagementViewModel() }
private val multiSelectBackPressCallback = object : OnBackPressedCallback(enabled = false) {
override fun handleOnBackPressed() {
viewModel.setMultiSelectEnabled(false)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -67,12 +75,18 @@ class StickerManagementBottomSheet : ComposeBottomSheetDialogFragment() {
return dialog.apply {
behavior.skipCollapsed = true
behavior.state = BottomSheetBehavior.STATE_EXPANDED
onBackPressedDispatcher.addCallback(multiSelectBackPressCallback)
}
}
@Composable
override fun SheetContent() {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
LaunchedEffect(uiState.multiSelectEnabled) {
multiSelectBackPressCallback.isEnabled = uiState.multiSelectEnabled
}
Column {
Box(
modifier = Modifier