Minor poll UI fixes.

This commit is contained in:
Michelle Tang
2025-11-11 11:22:55 -05:00
parent 7d4da76895
commit 70cf74ff4f
2 changed files with 11 additions and 0 deletions

View File

@@ -790,6 +790,7 @@ public final class ConversationUpdateItem extends FrameLayout
handler.post(timerUpdateRunnable);
} else {
latestFrame = 0;
updateBodyWithTimer();
handler.removeCallbacks(timerUpdateRunnable);
}
}

View File

@@ -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<String>) -> 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
}