mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
BatteryOptimizationEvents -> BatteryOptimizationEvent
This commit is contained in:
+3
-3
@@ -16,7 +16,7 @@ import io.element.android.libraries.designsystem.components.Announcement
|
|||||||
import io.element.android.libraries.designsystem.components.AnnouncementType
|
import io.element.android.libraries.designsystem.components.AnnouncementType
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.push.api.battery.BatteryOptimizationEvents
|
import io.element.android.libraries.push.api.battery.BatteryOptimizationEvent
|
||||||
import io.element.android.libraries.push.api.battery.BatteryOptimizationState
|
import io.element.android.libraries.push.api.battery.BatteryOptimizationState
|
||||||
import io.element.android.libraries.push.api.battery.aBatteryOptimizationState
|
import io.element.android.libraries.push.api.battery.aBatteryOptimizationState
|
||||||
|
|
||||||
@@ -31,8 +31,8 @@ internal fun BatteryOptimizationBanner(
|
|||||||
description = stringResource(R.string.banner_battery_optimization_content_android),
|
description = stringResource(R.string.banner_battery_optimization_content_android),
|
||||||
type = AnnouncementType.Actionable(
|
type = AnnouncementType.Actionable(
|
||||||
actionText = stringResource(R.string.banner_battery_optimization_submit_android),
|
actionText = stringResource(R.string.banner_battery_optimization_submit_android),
|
||||||
onActionClick = { state.eventSink(BatteryOptimizationEvents.RequestDisableOptimizations) },
|
onActionClick = { state.eventSink(BatteryOptimizationEvent.RequestDisableOptimizations) },
|
||||||
onDismissClick = { state.eventSink(BatteryOptimizationEvents.Dismiss) },
|
onDismissClick = { state.eventSink(BatteryOptimizationEvent.Dismiss) },
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
package io.element.android.libraries.push.api.battery
|
package io.element.android.libraries.push.api.battery
|
||||||
|
|
||||||
sealed interface BatteryOptimizationEvents {
|
sealed interface BatteryOptimizationEvent {
|
||||||
data object Dismiss : BatteryOptimizationEvents
|
data object Dismiss : BatteryOptimizationEvent
|
||||||
data object RequestDisableOptimizations : BatteryOptimizationEvents
|
data object RequestDisableOptimizations : BatteryOptimizationEvent
|
||||||
}
|
}
|
||||||
+1
-1
@@ -10,5 +10,5 @@ package io.element.android.libraries.push.api.battery
|
|||||||
|
|
||||||
data class BatteryOptimizationState(
|
data class BatteryOptimizationState(
|
||||||
val shouldDisplayBanner: Boolean,
|
val shouldDisplayBanner: Boolean,
|
||||||
val eventSink: (BatteryOptimizationEvents) -> Unit,
|
val eventSink: (BatteryOptimizationEvent) -> Unit,
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ package io.element.android.libraries.push.api.battery
|
|||||||
|
|
||||||
fun aBatteryOptimizationState(
|
fun aBatteryOptimizationState(
|
||||||
shouldDisplayBanner: Boolean = false,
|
shouldDisplayBanner: Boolean = false,
|
||||||
eventSink: (BatteryOptimizationEvents) -> Unit = {},
|
eventSink: (BatteryOptimizationEvent) -> Unit = {},
|
||||||
) = BatteryOptimizationState(
|
) = BatteryOptimizationState(
|
||||||
shouldDisplayBanner = shouldDisplayBanner,
|
shouldDisplayBanner = shouldDisplayBanner,
|
||||||
eventSink = eventSink,
|
eventSink = eventSink,
|
||||||
|
|||||||
+4
-4
@@ -18,7 +18,7 @@ import androidx.compose.runtime.setValue
|
|||||||
import androidx.lifecycle.compose.LifecycleResumeEffect
|
import androidx.lifecycle.compose.LifecycleResumeEffect
|
||||||
import dev.zacsweers.metro.Inject
|
import dev.zacsweers.metro.Inject
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.push.api.battery.BatteryOptimizationEvents
|
import io.element.android.libraries.push.api.battery.BatteryOptimizationEvent
|
||||||
import io.element.android.libraries.push.api.battery.BatteryOptimizationState
|
import io.element.android.libraries.push.api.battery.BatteryOptimizationState
|
||||||
import io.element.android.libraries.push.impl.push.MutableBatteryOptimizationStore
|
import io.element.android.libraries.push.impl.push.MutableBatteryOptimizationStore
|
||||||
import io.element.android.libraries.push.impl.store.PushDataStore
|
import io.element.android.libraries.push.impl.store.PushDataStore
|
||||||
@@ -48,12 +48,12 @@ class BatteryOptimizationPresenter(
|
|||||||
onPauseOrDispose {}
|
onPauseOrDispose {}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun handleEvent(event: BatteryOptimizationEvents) {
|
fun handleEvent(event: BatteryOptimizationEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
BatteryOptimizationEvents.Dismiss -> coroutineScope.launch {
|
BatteryOptimizationEvent.Dismiss -> coroutineScope.launch {
|
||||||
mutableBatteryOptimizationStore.onOptimizationBannerDismissed()
|
mutableBatteryOptimizationStore.onOptimizationBannerDismissed()
|
||||||
}
|
}
|
||||||
BatteryOptimizationEvents.RequestDisableOptimizations -> {
|
BatteryOptimizationEvent.RequestDisableOptimizations -> {
|
||||||
isRequestSent = true
|
isRequestSent = true
|
||||||
if (batteryOptimization.requestDisablingBatteryOptimization().not()) {
|
if (batteryOptimization.requestDisablingBatteryOptimization().not()) {
|
||||||
// If not able to perform the request, ensure that we do not display the banner again
|
// If not able to perform the request, ensure that we do not display the banner again
|
||||||
|
|||||||
+4
-4
@@ -10,7 +10,7 @@ package io.element.android.libraries.push.impl.battery
|
|||||||
|
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.push.api.battery.BatteryOptimizationEvents
|
import io.element.android.libraries.push.api.battery.BatteryOptimizationEvent
|
||||||
import io.element.android.libraries.push.impl.push.FakeMutableBatteryOptimizationStore
|
import io.element.android.libraries.push.impl.push.FakeMutableBatteryOptimizationStore
|
||||||
import io.element.android.libraries.push.impl.push.MutableBatteryOptimizationStore
|
import io.element.android.libraries.push.impl.push.MutableBatteryOptimizationStore
|
||||||
import io.element.android.libraries.push.impl.store.InMemoryPushDataStore
|
import io.element.android.libraries.push.impl.store.InMemoryPushDataStore
|
||||||
@@ -98,7 +98,7 @@ class BatteryOptimizationPresenterTest {
|
|||||||
assertThat(initialState.shouldDisplayBanner).isFalse()
|
assertThat(initialState.shouldDisplayBanner).isFalse()
|
||||||
val displayedItem = awaitItem()
|
val displayedItem = awaitItem()
|
||||||
assertThat(displayedItem.shouldDisplayBanner).isTrue()
|
assertThat(displayedItem.shouldDisplayBanner).isTrue()
|
||||||
displayedItem.eventSink(BatteryOptimizationEvents.Dismiss)
|
displayedItem.eventSink(BatteryOptimizationEvent.Dismiss)
|
||||||
onOptimizationBannerDismissedResult.assertions().isCalledOnce()
|
onOptimizationBannerDismissedResult.assertions().isCalledOnce()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -124,7 +124,7 @@ class BatteryOptimizationPresenterTest {
|
|||||||
assertThat(initialState.shouldDisplayBanner).isFalse()
|
assertThat(initialState.shouldDisplayBanner).isFalse()
|
||||||
val displayedItem = awaitItem()
|
val displayedItem = awaitItem()
|
||||||
assertThat(displayedItem.shouldDisplayBanner).isTrue()
|
assertThat(displayedItem.shouldDisplayBanner).isTrue()
|
||||||
displayedItem.eventSink(BatteryOptimizationEvents.RequestDisableOptimizations)
|
displayedItem.eventSink(BatteryOptimizationEvent.RequestDisableOptimizations)
|
||||||
requestDisablingBatteryOptimizationResult.assertions().isCalledOnce()
|
requestDisablingBatteryOptimizationResult.assertions().isCalledOnce()
|
||||||
onOptimizationBannerDismissedResult.assertions().isCalledOnce()
|
onOptimizationBannerDismissedResult.assertions().isCalledOnce()
|
||||||
}
|
}
|
||||||
@@ -150,7 +150,7 @@ class BatteryOptimizationPresenterTest {
|
|||||||
assertThat(initialState.shouldDisplayBanner).isFalse()
|
assertThat(initialState.shouldDisplayBanner).isFalse()
|
||||||
val displayedItem = awaitItem()
|
val displayedItem = awaitItem()
|
||||||
assertThat(displayedItem.shouldDisplayBanner).isTrue()
|
assertThat(displayedItem.shouldDisplayBanner).isTrue()
|
||||||
displayedItem.eventSink(BatteryOptimizationEvents.RequestDisableOptimizations)
|
displayedItem.eventSink(BatteryOptimizationEvent.RequestDisableOptimizations)
|
||||||
requestDisablingBatteryOptimizationResult.assertions().isCalledOnce()
|
requestDisablingBatteryOptimizationResult.assertions().isCalledOnce()
|
||||||
batteryOptimization.isIgnoringBatteryOptimizationsResult = true
|
batteryOptimization.isIgnoringBatteryOptimizationsResult = true
|
||||||
lifeCycleOwner.givenState(Lifecycle.State.RESUMED)
|
lifeCycleOwner.givenState(Lifecycle.State.RESUMED)
|
||||||
|
|||||||
Reference in New Issue
Block a user