Skip to content

Commit 300f434

Browse files
committed
Refactor view models to use property accessors for controller and state
1 parent ba5e984 commit 300f434

File tree

6 files changed

+22
-20
lines changed

6 files changed

+22
-20
lines changed

stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelAttachmentsViewModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import kotlinx.coroutines.flow.StateFlow
3535
public class ChannelAttachmentsViewModel(
3636
private val cid: String,
3737
private val attachmentTypes: List<String>,
38-
controllerProvider: ViewModel.() -> ChannelAttachmentsViewController = {
38+
private val controllerProvider: ViewModel.() -> ChannelAttachmentsViewController = {
3939
ChannelAttachmentsViewController(
4040
cid = cid,
4141
attachmentTypes = attachmentTypes,
@@ -44,17 +44,17 @@ public class ChannelAttachmentsViewModel(
4444
},
4545
) : ViewModel() {
4646

47-
private val controller: ChannelAttachmentsViewController by lazy { controllerProvider() }
47+
private val controller: ChannelAttachmentsViewController get() = controllerProvider()
4848

4949
/**
5050
* @see [ChannelAttachmentsViewController.state]
5151
*/
52-
public val state: StateFlow<ChannelAttachmentsViewState> by lazy { controller.state }
52+
public val state: StateFlow<ChannelAttachmentsViewState> get() = controller.state
5353

5454
/**
5555
* @see [ChannelAttachmentsViewController.events]
5656
*/
57-
public val events: SharedFlow<ChannelAttachmentsViewEvent> by lazy { controller.events }
57+
public val events: SharedFlow<ChannelAttachmentsViewEvent> get() = controller.events
5858

5959
/**
6060
* @see [ChannelAttachmentsViewController.onViewAction]

stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelHeaderViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ import kotlinx.coroutines.flow.StateFlow
3030
*/
3131
public class ChannelHeaderViewModel(
3232
private val cid: String,
33-
controllerProvider: ViewModel.() -> ChannelHeaderViewController = {
33+
private val controllerProvider: ViewModel.() -> ChannelHeaderViewController = {
3434
ChannelHeaderViewController(cid = cid, scope = viewModelScope)
3535
},
3636
) : ViewModel() {
3737

38-
private val controller: ChannelHeaderViewController by lazy { controllerProvider() }
38+
private val controller: ChannelHeaderViewController get() = controllerProvider()
3939

4040
/**
4141
* @see [ChannelHeaderViewController.state]
4242
*/
43-
public val state: StateFlow<ChannelHeaderViewState> by lazy { controller.state }
43+
public val state: StateFlow<ChannelHeaderViewState> get() = controller.state
4444
}

stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoMemberViewModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import kotlinx.coroutines.flow.StateFlow
3838
public class ChannelInfoMemberViewModel(
3939
private val cid: String,
4040
private val memberId: String,
41-
controllerProvider: ViewModel.() -> ChannelInfoMemberViewController = {
41+
private val controllerProvider: ViewModel.() -> ChannelInfoMemberViewController = {
4242
ChannelInfoMemberViewController(
4343
cid = cid,
4444
memberId = memberId,
@@ -47,17 +47,17 @@ public class ChannelInfoMemberViewModel(
4747
},
4848
) : ViewModel() {
4949

50-
private val controller: ChannelInfoMemberViewController by lazy { controllerProvider() }
50+
private val controller: ChannelInfoMemberViewController get() = controllerProvider()
5151

5252
/**
5353
* @see [ChannelInfoMemberViewController.state]
5454
*/
55-
public val state: StateFlow<ChannelInfoMemberViewState> by lazy { controller.state }
55+
public val state: StateFlow<ChannelInfoMemberViewState> get() = controller.state
5656

5757
/**
5858
* @see [ChannelInfoMemberViewController.events]
5959
*/
60-
public val events: SharedFlow<ChannelInfoMemberViewEvent> by lazy { controller.events }
60+
public val events: SharedFlow<ChannelInfoMemberViewEvent> get() = controller.events
6161

6262
/**
6363
* @see [ChannelInfoMemberViewController.onViewAction]

stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/channel/ChannelInfoViewModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class ChannelInfoViewModel(
4343
private val cid: String,
4444
private val copyToClipboardHandler: CopyToClipboardHandler,
4545
private val optionFilter: (option: ChannelInfoViewState.Content.Option) -> Boolean = { true },
46-
controllerProvider: ViewModel.() -> ChannelInfoViewController = {
46+
private val controllerProvider: ViewModel.() -> ChannelInfoViewController = {
4747
ChannelInfoViewController(
4848
cid = cid,
4949
scope = viewModelScope,
@@ -53,17 +53,17 @@ public class ChannelInfoViewModel(
5353
},
5454
) : ViewModel() {
5555

56-
private val controller: ChannelInfoViewController by lazy { controllerProvider() }
56+
private val controller: ChannelInfoViewController get() = controllerProvider()
5757

5858
/**
5959
* @see [ChannelInfoViewController.state]
6060
*/
61-
public val state: StateFlow<ChannelInfoViewState> by lazy { controller.state }
61+
public val state: StateFlow<ChannelInfoViewState> get() = controller.state
6262

6363
/**
6464
* @see [ChannelInfoViewController.events]
6565
*/
66-
public val events: SharedFlow<ChannelInfoViewEvent> by lazy { controller.events }
66+
public val events: SharedFlow<ChannelInfoViewEvent> get() = controller.events
6767

6868
/**
6969
* @see [ChannelInfoViewController.onViewAction]

stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/viewmodel/mentions/MentionListViewModel.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,21 @@ import kotlinx.coroutines.flow.StateFlow
3535
*/
3636
public class MentionListViewModel(
3737
sort: QuerySorter<Message>? = null,
38-
controllerProvider: ViewModel.() -> MentionListController = { MentionListController(viewModelScope, sort) },
38+
private val controllerProvider: ViewModel.() -> MentionListController = {
39+
MentionListController(viewModelScope, sort)
40+
},
3941
) : ViewModel() {
40-
private val controller: MentionListController by lazy { controllerProvider() }
42+
private val controller: MentionListController get() = controllerProvider()
4143

4244
/**
4345
* The current mention list state.
4446
*/
45-
public val state: StateFlow<MentionListState> by lazy { controller.state }
47+
public val state: StateFlow<MentionListState> get() = controller.state
4648

4749
/**
4850
* One shot events.
4951
*/
50-
public val events: SharedFlow<MentionListEvent> by lazy { controller.events }
52+
public val events: SharedFlow<MentionListEvent> get() = controller.events
5153

5254
/**
5355
* Loads more messages if there are more messages to load.

stream-chat-android-ui-common/src/main/kotlin/io/getstream/chat/android/ui/common/helper/CopyToClipboardHandler.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ internal class CopyToClipboardHandlerImpl(
4646
},
4747
) : CopyToClipboardHandler {
4848

49-
private val clipboardManager: ClipboardManager by lazy { clipboardManagerProvider() }
49+
private val clipboardManager: ClipboardManager get() = clipboardManagerProvider()
5050

5151
override fun copy(text: String) {
5252
clipboardManager.setPrimaryClip(ClipData.newPlainText(PLAIN_TEXT_LABEL, text))

0 commit comments

Comments
 (0)