@@ -5,9 +5,18 @@ package xyz.junerver.compose.hooks
5
5
import android.hardware.Sensor
6
6
import android.hardware.SensorEvent
7
7
import androidx.compose.runtime.Composable
8
+ import arrow.core.Either
9
+ import arrow.core.Tuple4
10
+ import arrow.core.Tuple5
8
11
import kotlin.time.Duration
9
12
import kotlin.time.Duration.Companion.seconds
10
13
import org.jetbrains.annotations.Nullable
14
+ import xyz.junerver.compose.hooks.usedeviceinfo.BatteryInfo
15
+ import xyz.junerver.compose.hooks.usedeviceinfo.BuildInfo
16
+ import xyz.junerver.compose.hooks.usedeviceinfo.ScreenInfo
17
+ import xyz.junerver.compose.hooks.usedeviceinfo.useBatteryInfo
18
+ import xyz.junerver.compose.hooks.usedeviceinfo.useBuildInfo
19
+ import xyz.junerver.compose.hooks.usedeviceinfo.useScreenInfo
11
20
import xyz.junerver.compose.hooks.useredux.DispatchAsync
12
21
import xyz.junerver.compose.hooks.useredux.DispatchCallback
13
22
import xyz.junerver.compose.hooks.useredux.useDispatch
@@ -18,9 +27,21 @@ import xyz.junerver.compose.hooks.userequest.RequestOptions
18
27
import xyz.junerver.compose.hooks.userequest.useRequest
19
28
import xyz.junerver.compose.hooks.usevibrate.useVibrate
20
29
import xyz.junerver.kotlin.Tuple2
30
+ import xyz.junerver.kotlin.Tuple3
21
31
22
32
/* * ζ΄η¬¦ε Compose ηε½ζ°ε½εζΉεΌ */
23
33
34
+ // region useDeviceInfo
35
+ @Composable
36
+ fun rememberBatteryInfo (): BatteryInfo = useBatteryInfo()
37
+
38
+ @Composable
39
+ fun rememberBuildInfo (): BuildInfo = useBuildInfo()
40
+
41
+ @Composable
42
+ fun rememberScreenInfo (): ScreenInfo = useScreenInfo()
43
+ // endregion
44
+
24
45
// region useRedux
25
46
@Composable
26
47
inline fun <reified A > rememberDispatch (alias : String? = null): Dispatch <A > = useDispatch(alias)
@@ -55,6 +76,9 @@ fun rememberAsync(fn: SuspendAsyncFn) = useAsync(fn)
55
76
fun rememberAsync (): AsyncRunFn = useAsync()
56
77
// endregion
57
78
79
+ @Composable
80
+ fun <T > rememberAutoReset (default : T & Any , interval : Duration ) = useAutoReset(default, interval)
81
+
58
82
@Composable
59
83
fun rememberBackToFrontEffect (vararg keys : Any? , effect : () -> Unit ) =
60
84
useBackToFrontEffect(* keys, effect = effect)
@@ -72,6 +96,17 @@ fun rememberClipboard(): Tuple2<CopyFn, PasteFn> = useClipboard()
72
96
@Composable
73
97
fun <T > rememberContext (context : ReactContext <T >) = useContext(context)
74
98
99
+ @Composable
100
+ fun rememberCountdown (options : CountdownOptions ): Tuple2 <Duration , FormattedRes > =
101
+ useCountdown(options)
102
+
103
+ @Composable
104
+ fun rememberCounter (
105
+ initialValue : Int = 0,
106
+ options : CounterOptions ,
107
+ ): Tuple5 <Int , IncFn , DecFn , SetValueFn <Either <Int , (Int ) - > Int >>, ResetFn> =
108
+ useCounter(initialValue, options)
109
+
75
110
@Composable
76
111
fun <T > rememberCreation (vararg keys : Any? , factory : () -> T ) =
77
112
useCreation(* keys, factory = factory)
@@ -97,6 +132,9 @@ fun LaunchedDebounceEffect(
97
132
) = useDebounceEffect(* keys, options = options, block = block)
98
133
// endregion
99
134
135
+ @Composable
136
+ fun rememberDisableScreenshot (): Tuple3 <DisableFn , EnableFn , IsDisabled > = useDisableScreenshot()
137
+
100
138
// region useEvent
101
139
@Composable
102
140
inline fun <reified T > rememberEventSubscribe (noinline subscriber : (T ) -> Unit ) =
@@ -106,6 +144,9 @@ inline fun <reified T> rememberEventSubscribe(noinline subscriber: (T) -> Unit)
106
144
inline fun <reified T > rememberEventPublish (): (T ) -> Unit = useEventPublish()
107
145
// endregion
108
146
147
+ @Composable
148
+ fun rememberFlashlight (): Tuple2 <TurnOnFn , TurnOffFn > = useFlashlight()
149
+
109
150
// region useGetState
110
151
@Composable
111
152
fun <T > rememberGetState (default : T & Any ) = useGetState(default = default)
@@ -187,6 +228,13 @@ fun <S, A> rememberReducer(
187
228
@Composable
188
229
fun <T > rememberRef (default : T ) = useRef(default)
189
230
231
+ @Composable
232
+ fun <T > rememberResetState (default : T & Any ): Tuple4 <T , SetValueFn <T & Any >, GetValueFn<T>, ResetFn> =
233
+ useResetState(default)
234
+
235
+ @Composable
236
+ fun rememberScreenBrightness (): Tuple2 <SetValueFn <Float >, Float> = useScreenBrightness()
237
+
190
238
@Composable
191
239
fun rememberSensor (
192
240
sensorType : Int ,
@@ -279,3 +327,10 @@ fun rememberUpdateEffect(vararg keys: Any?, block: SuspendAsyncFn) =
279
327
280
328
@Composable
281
329
fun rememberVibrate () = useVibrate()
330
+
331
+ @Composable
332
+ fun rememberWakeLock (): Tuple3 <RequestFn , ReleaseFn , IsActive > = useWakeLock()
333
+
334
+ @Composable
335
+ fun rememberWindowFlags (key : String , flags : Int ): Tuple3 <AddFlagsFn , ClearFlagsFn , IsFlagsAdded > =
336
+ useWindowFlags(key, flags)
0 commit comments