A fork of Simple Time Tracker with WearOS support. (Now integrated upstream)
0

Configure Feed

Select the types of activity you want to include in your feed.

refactor: Rename `affectCurrentActivities` to `setCurrentActivities`

"affect" is too generic of a word that fails to
precisely describe the type of change it causes in
the system. "set" is more precise and better
matches the naming of the underlying WearRPCClient
method it eventually calls.

Also removed the unnecessary currying of the
callback.
Now it's (Array<Current>Activity>) -> Unit
instead of
(Array<Current>Activity>) -> (Array<Current>Activity>) -> Unit

Joseph Hale (Feb 26, 2024, 10:27 PM -0700) 23261ab3 ca364428

+14 -11
+9 -7
wear/src/main/java/com/example/util/simpletimetracker/presentation/remember/currentActivities.kt
··· 26 26 * Usage: 27 27 * ``` 28 28 * val rpc = /* create a WearRPCClient instance */ 29 - * val (currents, refresh) = rememberCurrentActivities(rpc) 29 + * val (currents, setCurrents, refresh) = rememberCurrentActivities(rpc) 30 30 * ``` 31 31 * 32 32 * Initially, `currents` will be an empty array. Once the actual current activities are received 33 33 * from the phone, `currents` will *automatically* update to that array and the encapsulating 34 34 * Composable will *automatically* re-render. 35 + * 36 + * `setCurrents` is a function you can call to set the array of current activities on the phone. 35 37 * 36 38 * `refresh` is a function you can call to forcibly re-request the array of current activities 37 39 * from the phone. ··· 41 43 rpc: WearRPCClient, 42 44 ): Triple< 43 45 Array<CurrentActivity>, 44 - ((Array<CurrentActivity>) -> (Array<CurrentActivity>)) -> Unit, 45 - () -> Unit, 46 + (Array<CurrentActivity>) -> Unit, 47 + () -> Unit, 46 48 > { 47 49 var currentActivities: Array<CurrentActivity> by remember { mutableStateOf(arrayOf()) } 48 50 var currentActivitiesQueryCount by remember { mutableIntStateOf(0) } ··· 56 58 57 59 return Triple( 58 60 currentActivities, 59 - { affectCurrentActivities -> 60 - currentActivities = affectCurrentActivities(currentActivities) 61 + { updatedCurrentActivities -> 61 62 coroutineScope.launch(Dispatchers.Default) { 62 - rpc.setCurrentActivities(currentActivities) 63 + rpc.setCurrentActivities(updatedCurrentActivities) 63 64 queryCurrentActivities() 64 65 } 65 - }, { queryCurrentActivities() }, 66 + }, 67 + { queryCurrentActivities() }, 66 68 ) 67 69 }
+5 -4
wear/src/main/java/com/example/util/simpletimetracker/presentation/screens/ActivitiesScreen.kt
··· 18 18 fun ActivitiesScreen(onSelectActivity: (activityId: Long) -> Unit) { 19 19 val rpc = WearRPCClient(ContextMessenger(LocalContext.current)) 20 20 val (activities, refreshActivities) = rememberActivities(rpc) 21 - val (currentActivities, affectCurrentActivities, refreshCurrentActivities) = 22 - rememberCurrentActivities(rpc) 21 + val (currentActivities, setCurrentActivities, refreshCurrentActivities) = rememberCurrentActivities( 22 + rpc, 23 + ) 23 24 24 25 ActivitiesList( 25 26 activities, ··· 28 29 onSelectActivity(it.id) 29 30 }, 30 31 onDeselectActivity = { deselectedActivity: Activity -> 31 - affectCurrentActivities { 32 + val remainingActivities = 32 33 currentActivities.filter { it.id != deselectedActivity.id }.toTypedArray() 33 - } 34 + setCurrentActivities(remainingActivities) 34 35 }, 35 36 onRefresh = { 36 37 refreshActivities()