From 70cf74ff4fce03279c9eba73324a1283d2bcdcfd Mon Sep 17 00:00:00 2001 From: Michelle Tang Date: Tue, 11 Nov 2025 11:22:55 -0500 Subject: [PATCH] Minor poll UI fixes. --- .../securesms/conversation/ConversationUpdateItem.java | 1 + .../securesms/conversation/v2/CreatePollFragment.kt | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java index ad666bfc57..c684f611a1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationUpdateItem.java @@ -790,6 +790,7 @@ public final class ConversationUpdateItem extends FrameLayout handler.post(timerUpdateRunnable); } else { latestFrame = 0; + updateBodyWithTimer(); handler.removeCallbacks(timerUpdateRunnable); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/CreatePollFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/CreatePollFragment.kt index 76681bb6b6..7e6a24a796 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/CreatePollFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/CreatePollFragment.kt @@ -4,6 +4,7 @@ import android.app.Dialog import android.os.Bundle import android.view.WindowManager import androidx.compose.animation.AnimatedVisibility +import androidx.compose.foundation.gestures.animateScrollBy import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer @@ -30,6 +31,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateListOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Alignment @@ -40,6 +42,7 @@ import androidx.compose.ui.focus.onFocusChanged import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.input.KeyboardCapitalization @@ -49,6 +52,7 @@ import androidx.fragment.app.setFragmentResult import com.google.android.material.snackbar.Snackbar import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.debounce +import kotlinx.coroutines.launch import org.signal.core.ui.compose.Buttons import org.signal.core.ui.compose.DayNightPreviews import org.signal.core.ui.compose.Dividers @@ -134,6 +138,8 @@ private fun CreatePollScreen( onSend: (String, Boolean, List) -> Unit = { _, _, _ -> }, onShowErrorSnackbar: (Boolean, Boolean) -> Unit = { _, _ -> } ) { + val coroutineScope = rememberCoroutineScope() + val density = LocalDensity.current val focusRequester = remember { FocusRequester() } // Parts of poll @@ -167,6 +173,10 @@ private fun CreatePollScreen( val count = currentOptions.count { it.isNotBlank() } if (count == currentOptions.size && currentOptions.size < CreatePollFragment.MAX_OPTIONS) { options.add("") + coroutineScope.launch { + val offset = with(density) { 48.dp.toPx() } + listState.animateScrollBy(offset) + } } hasMinimumOptions = count >= CreatePollFragment.MIN_OPTIONS }