Replace mutableStateOf by mutableIntStateOf and mutableFloatStateOf. Use intValue and floatValue to avoid unboxing.
This commit is contained in:
parent
6eed650ad0
commit
99caa031e8
8 changed files with 31 additions and 26 deletions
|
|
@ -21,7 +21,7 @@ import androidx.compose.foundation.layout.BoxWithConstraints
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableIntStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
|
|
@ -64,7 +64,7 @@ fun StaticMapView(
|
||||||
contentAlignment = Alignment.Center
|
contentAlignment = Alignment.Center
|
||||||
) {
|
) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
var retryHash by remember { mutableStateOf(0) }
|
var retryHash by remember { mutableIntStateOf(0) }
|
||||||
val builder = remember { StaticMapUrlBuilder(context) }
|
val builder = remember { StaticMapUrlBuilder(context) }
|
||||||
val painter = rememberAsyncImagePainter(
|
val painter = rememberAsyncImagePainter(
|
||||||
model = if (constraints.isZero) {
|
model = if (constraints.isZero) {
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ package io.element.android.features.login.impl.screens.waitlistscreen
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.MutableState
|
import androidx.compose.runtime.MutableState
|
||||||
|
import androidx.compose.runtime.mutableIntStateOf
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
|
|
@ -58,14 +59,14 @@ class WaitListPresenter @AssistedInject constructor(
|
||||||
mutableStateOf(Async.Uninitialized)
|
mutableStateOf(Async.Uninitialized)
|
||||||
}
|
}
|
||||||
|
|
||||||
val attemptNumber: MutableState<Int> = remember { mutableStateOf(0) }
|
val attemptNumber = remember { mutableIntStateOf(0) }
|
||||||
|
|
||||||
fun handleEvents(event: WaitListEvents) {
|
fun handleEvents(event: WaitListEvents) {
|
||||||
when (event) {
|
when (event) {
|
||||||
WaitListEvents.AttemptLogin -> {
|
WaitListEvents.AttemptLogin -> {
|
||||||
// Do not attempt to login on first resume of the View.
|
// Do not attempt to login on first resume of the View.
|
||||||
attemptNumber.value++
|
attemptNumber.intValue++
|
||||||
if (attemptNumber.value > 1) {
|
if (attemptNumber.intValue > 1) {
|
||||||
coroutineScope.loginAttempt(formState, loginAction)
|
coroutineScope.loginAttempt(formState, loginAction)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.DisposableEffect
|
import androidx.compose.runtime.DisposableEffect
|
||||||
import androidx.compose.runtime.MutableState
|
import androidx.compose.runtime.MutableState
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableIntStateOf
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
|
|
@ -59,7 +60,7 @@ class MediaViewerPresenter @AssistedInject constructor(
|
||||||
@Composable
|
@Composable
|
||||||
override fun present(): MediaViewerState {
|
override fun present(): MediaViewerState {
|
||||||
val coroutineScope = rememberCoroutineScope()
|
val coroutineScope = rememberCoroutineScope()
|
||||||
var loadMediaTrigger by remember { mutableStateOf(0) }
|
var loadMediaTrigger by remember { mutableIntStateOf(0) }
|
||||||
val mediaFile: MutableState<MediaFile?> = remember {
|
val mediaFile: MutableState<MediaFile?> = remember {
|
||||||
mutableStateOf(null)
|
mutableStateOf(null)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,7 @@ fun TimelineItemEventRow(
|
||||||
}
|
}
|
||||||
if (canReply) {
|
if (canReply) {
|
||||||
val state: SwipeableActionsState = rememberSwipeableActionsState()
|
val state: SwipeableActionsState = rememberSwipeableActionsState()
|
||||||
val offset = state.offset.value
|
val offset = state.offset.floatValue
|
||||||
val swipeThresholdPx = 40.dp.toPx()
|
val swipeThresholdPx = 40.dp.toPx()
|
||||||
val thresholdCrossed = abs(offset) > swipeThresholdPx
|
val thresholdCrossed = abs(offset) > swipeThresholdPx
|
||||||
SwipeSensitivity(3f) {
|
SwipeSensitivity(3f) {
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,11 @@
|
||||||
package io.element.android.features.rageshake.impl.bugreport
|
package io.element.android.features.rageshake.impl.bugreport
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.MutableFloatState
|
||||||
import androidx.compose.runtime.MutableState
|
import androidx.compose.runtime.MutableState
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableFloatStateOf
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
|
|
@ -43,27 +45,27 @@ class BugReportPresenter @Inject constructor(
|
||||||
) : Presenter<BugReportState> {
|
) : Presenter<BugReportState> {
|
||||||
|
|
||||||
private class BugReporterUploadListener(
|
private class BugReporterUploadListener(
|
||||||
private val sendingProgress: MutableState<Float>,
|
private val sendingProgress: MutableFloatState,
|
||||||
private val sendingAction: MutableState<Async<Unit>>
|
private val sendingAction: MutableState<Async<Unit>>
|
||||||
) : BugReporterListener {
|
) : BugReporterListener {
|
||||||
|
|
||||||
override fun onUploadCancelled() {
|
override fun onUploadCancelled() {
|
||||||
sendingProgress.value = 0f
|
sendingProgress.floatValue = 0f
|
||||||
sendingAction.value = Async.Uninitialized
|
sendingAction.value = Async.Uninitialized
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUploadFailed(reason: String?) {
|
override fun onUploadFailed(reason: String?) {
|
||||||
sendingProgress.value = 0f
|
sendingProgress.floatValue = 0f
|
||||||
sendingAction.value = Async.Failure(Exception(reason))
|
sendingAction.value = Async.Failure(Exception(reason))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onProgress(progress: Int) {
|
override fun onProgress(progress: Int) {
|
||||||
sendingProgress.value = progress.toFloat() / 100
|
sendingProgress.floatValue = progress.toFloat() / 100
|
||||||
sendingAction.value = Async.Loading()
|
sendingAction.value = Async.Loading()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUploadSucceed(reportUrl: String?) {
|
override fun onUploadSucceed(reportUrl: String?) {
|
||||||
sendingProgress.value = 0f
|
sendingProgress.floatValue = 0f
|
||||||
sendingAction.value = Async.Success(Unit)
|
sendingAction.value = Async.Success(Unit)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -80,7 +82,7 @@ class BugReportPresenter @Inject constructor(
|
||||||
.collectAsState(initial = "")
|
.collectAsState(initial = "")
|
||||||
|
|
||||||
val sendingProgress = remember {
|
val sendingProgress = remember {
|
||||||
mutableStateOf(0f)
|
mutableFloatStateOf(0f)
|
||||||
}
|
}
|
||||||
val sendingAction: MutableState<Async<Unit>> = remember {
|
val sendingAction: MutableState<Async<Unit>> = remember {
|
||||||
mutableStateOf(Async.Uninitialized)
|
mutableStateOf(Async.Uninitialized)
|
||||||
|
|
@ -107,7 +109,7 @@ class BugReportPresenter @Inject constructor(
|
||||||
copy(sendScreenshot = event.sendScreenshot)
|
copy(sendScreenshot = event.sendScreenshot)
|
||||||
}
|
}
|
||||||
BugReportEvents.ClearError -> {
|
BugReportEvents.ClearError -> {
|
||||||
sendingProgress.value = 0f
|
sendingProgress.floatValue = 0f
|
||||||
sendingAction.value = Async.Uninitialized
|
sendingAction.value = Async.Uninitialized
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -115,7 +117,7 @@ class BugReportPresenter @Inject constructor(
|
||||||
|
|
||||||
return BugReportState(
|
return BugReportState(
|
||||||
hasCrashLogs = crashInfo.isNotEmpty(),
|
hasCrashLogs = crashInfo.isNotEmpty(),
|
||||||
sendingProgress = sendingProgress.value,
|
sendingProgress = sendingProgress.floatValue,
|
||||||
sending = sendingAction.value,
|
sending = sendingAction.value,
|
||||||
formState = formState.value,
|
formState = formState.value,
|
||||||
screenshotUri = screenshotUri.value,
|
screenshotUri = screenshotUri.value,
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,10 @@ import androidx.compose.animation.core.tween
|
||||||
import androidx.compose.foundation.MutatePriority
|
import androidx.compose.foundation.MutatePriority
|
||||||
import androidx.compose.foundation.gestures.DraggableState
|
import androidx.compose.foundation.gestures.DraggableState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.FloatState
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import androidx.compose.runtime.State
|
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableFloatStateOf
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
|
|
@ -41,8 +42,8 @@ class SwipeableActionsState {
|
||||||
/**
|
/**
|
||||||
* The current position (in pixels) of the content.
|
* The current position (in pixels) of the content.
|
||||||
*/
|
*/
|
||||||
val offset: State<Float> get() = offsetState
|
val offset: FloatState get() = offsetState
|
||||||
private var offsetState = mutableStateOf(0f)
|
private var offsetState = mutableFloatStateOf(0f)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the content is currently animating to reset its offset after it was swiped.
|
* Whether the content is currently animating to reset its offset after it was swiped.
|
||||||
|
|
@ -51,21 +52,21 @@ class SwipeableActionsState {
|
||||||
private set
|
private set
|
||||||
|
|
||||||
val draggableState = DraggableState { delta ->
|
val draggableState = DraggableState { delta ->
|
||||||
val targetOffset = offsetState.value + delta
|
val targetOffset = offsetState.floatValue + delta
|
||||||
val isAllowed = isResettingOnRelease || targetOffset > 0f
|
val isAllowed = isResettingOnRelease || targetOffset > 0f
|
||||||
|
|
||||||
offsetState.value += if (isAllowed) delta else 0f
|
offsetState.floatValue += if (isAllowed) delta else 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun resetOffset() {
|
suspend fun resetOffset() {
|
||||||
draggableState.drag(MutatePriority.PreventUserInput) {
|
draggableState.drag(MutatePriority.PreventUserInput) {
|
||||||
isResettingOnRelease = true
|
isResettingOnRelease = true
|
||||||
try {
|
try {
|
||||||
Animatable(offsetState.value).animateTo(
|
Animatable(offsetState.floatValue).animateTo(
|
||||||
targetValue = 0f,
|
targetValue = 0f,
|
||||||
animationSpec = tween(durationMillis = 300),
|
animationSpec = tween(durationMillis = 300),
|
||||||
) {
|
) {
|
||||||
dragBy(value - offsetState.value)
|
dragBy(value - offsetState.floatValue)
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
isResettingOnRelease = false
|
isResettingOnRelease = false
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import androidx.compose.material3.SliderColors
|
||||||
import androidx.compose.material3.SliderDefaults
|
import androidx.compose.material3.SliderDefaults
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableFloatStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
|
@ -62,7 +62,7 @@ internal fun SlidersPreview() = ElementThemedPreview { ContentToPreview() }
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun ContentToPreview() {
|
private fun ContentToPreview() {
|
||||||
var value by remember { mutableStateOf(0.33f) }
|
var value by remember { mutableFloatStateOf(0.33f) }
|
||||||
Column {
|
Column {
|
||||||
Slider(onValueChange = { value = it }, value = value, enabled = true)
|
Slider(onValueChange = { value = it }, value = value, enabled = true)
|
||||||
Slider(steps = 10, onValueChange = { value = it }, value = value, enabled = true)
|
Slider(steps = 10, onValueChange = { value = it }, value = value, enabled = true)
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.derivedStateOf
|
import androidx.compose.runtime.derivedStateOf
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableIntStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
|
|
@ -55,7 +55,7 @@ fun SelectedUsersList(
|
||||||
) {
|
) {
|
||||||
val lazyListState = rememberLazyListState()
|
val lazyListState = rememberLazyListState()
|
||||||
if (autoScroll) {
|
if (autoScroll) {
|
||||||
var currentSize by rememberSaveable { mutableStateOf(selectedUsers.size) }
|
var currentSize by rememberSaveable { mutableIntStateOf(selectedUsers.size) }
|
||||||
LaunchedEffect(selectedUsers.size) {
|
LaunchedEffect(selectedUsers.size) {
|
||||||
val isItemAdded = selectedUsers.size > currentSize
|
val isItemAdded = selectedUsers.size > currentSize
|
||||||
if (isItemAdded) {
|
if (isItemAdded) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue