From e44f1859b55de7e80b2738dbead70b074cae1420 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 12 May 2025 15:25:28 +0800 Subject: [PATCH] viewmodel: Switch to getter to get helper modules with types Signed-off-by: Aayush Gupta --- .../store/viewmodel/homestream/StreamViewModel.kt | 11 +++++------ .../store/viewmodel/search/SearchResultViewModel.kt | 13 +++++-------- .../viewmodel/search/SearchSuggestionViewModel.kt | 13 +++++-------- .../subcategory/CategoryStreamViewModel.kt | 11 +++++------ .../store/viewmodel/topchart/TopChartViewModel.kt | 9 ++++----- 5 files changed, 24 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/aurora/store/viewmodel/homestream/StreamViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/homestream/StreamViewModel.kt index 094a7d01b..4ee641da3 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/homestream/StreamViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/homestream/StreamViewModel.kt @@ -46,9 +46,8 @@ class StreamViewModel @Inject constructor( private var stash: HomeStash = mutableMapOf() - fun contract(): StreamContract { - return webStreamHelper - } + private val streamContract: StreamContract + get() = webStreamHelper fun getStreamBundle(category: StreamContract.Category, type: StreamContract.Type) { liveData.postValue(ViewState.Loading) @@ -68,12 +67,12 @@ class StreamViewModel @Inject constructor( //Fetch new stream bundle val newBundle = if (bundle.hasCluster()) { - contract().nextStreamBundle( + streamContract.nextStreamBundle( category, bundle.streamNextPageUrl ) } else { - contract().fetch(type, category) + streamContract.fetch(type, category) } //Update old bundle @@ -100,7 +99,7 @@ class StreamViewModel @Inject constructor( try { if (streamCluster.hasNext()) { val newCluster = - contract().nextStreamCluster(streamCluster.clusterNextPageUrl) + streamContract.nextStreamCluster(streamCluster.clusterNextPageUrl) updateCluster(category, streamCluster.id, newCluster) liveData.postValue(ViewState.Success(stash)) } else { diff --git a/app/src/main/java/com/aurora/store/viewmodel/search/SearchResultViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/search/SearchResultViewModel.kt index cdce43762..3eaf3e08f 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/search/SearchResultViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/search/SearchResultViewModel.kt @@ -39,9 +39,9 @@ import javax.inject.Inject @HiltViewModel class SearchResultViewModel @Inject constructor( val filterProvider: FilterProvider, - authProvider: AuthProvider, - searchHelper: SearchHelper, - webSearchHelper: WebSearchHelper + private val authProvider: AuthProvider, + private val searchHelper: SearchHelper, + private val webSearchHelper: WebSearchHelper ) : ViewModel() { private val TAG = SearchResultViewModel::class.java.simpleName @@ -50,11 +50,8 @@ class SearchResultViewModel @Inject constructor( private var searchBundle: SearchBundle = SearchBundle() - private val helper: SearchContract = if (authProvider.isAnonymous) { - webSearchHelper - } else { - searchHelper - } + private val helper: SearchContract + get() = if (authProvider.isAnonymous) webSearchHelper else searchHelper fun observeSearchResults(query: String) { //Clear old results diff --git a/app/src/main/java/com/aurora/store/viewmodel/search/SearchSuggestionViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/search/SearchSuggestionViewModel.kt index a7baac7cb..e41a271d9 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/search/SearchSuggestionViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/search/SearchSuggestionViewModel.kt @@ -35,19 +35,16 @@ import javax.inject.Inject @HiltViewModel class SearchSuggestionViewModel @Inject constructor( - authProvider: AuthProvider, - searchHelper: SearchHelper, - webSearchHelper: WebSearchHelper + private val authProvider: AuthProvider, + private val searchHelper: SearchHelper, + private val webSearchHelper: WebSearchHelper ) : ViewModel() { private val _searchSuggestions = MutableStateFlow>(emptyList()) val searchSuggestions = _searchSuggestions.asStateFlow() - private val helper: SearchContract = if (authProvider.isAnonymous) { - webSearchHelper - } else { - searchHelper - } + private val helper: SearchContract + get() = if (authProvider.isAnonymous) webSearchHelper else searchHelper fun observeStreamBundles(query: String) { viewModelScope.launch(Dispatchers.IO) { diff --git a/app/src/main/java/com/aurora/store/viewmodel/subcategory/CategoryStreamViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/subcategory/CategoryStreamViewModel.kt index b8d08386e..a51c54727 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/subcategory/CategoryStreamViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/subcategory/CategoryStreamViewModel.kt @@ -46,9 +46,8 @@ class CategoryStreamViewModel @Inject constructor( private var stash: MutableMap = mutableMapOf() - fun contract(): CategoryStreamContract { - return webCategoryStreamHelper - } + private val categoryStreamContract: CategoryStreamContract + get() = webCategoryStreamHelper fun getStreamBundle(category: StreamContract.Category) { liveData.postValue(ViewState.Loading) @@ -69,9 +68,9 @@ class CategoryStreamViewModel @Inject constructor( //Fetch new stream bundle val newBundle = if (bundle.streamClusters.isEmpty()) { - contract().fetch(category.value) + categoryStreamContract.fetch(category.value) } else { - contract().nextStreamBundle( + categoryStreamContract.nextStreamBundle( category, bundle.streamNextPageUrl ) @@ -101,7 +100,7 @@ class CategoryStreamViewModel @Inject constructor( try { if (streamCluster.hasNext()) { val newCluster = - contract().nextStreamCluster(streamCluster.clusterNextPageUrl) + categoryStreamContract.nextStreamCluster(streamCluster.clusterNextPageUrl) updateCluster(category, streamCluster.id, newCluster) liveData.postValue(ViewState.Success(stash)) } else { diff --git a/app/src/main/java/com/aurora/store/viewmodel/topchart/TopChartViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/topchart/TopChartViewModel.kt index 0ef5f1d70..37a1999fb 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/topchart/TopChartViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/topchart/TopChartViewModel.kt @@ -42,9 +42,8 @@ class TopChartViewModel @Inject constructor( val liveData: MutableLiveData = MutableLiveData() - private fun contract(): TopChartsContract { - return webTopChartsHelper - } + private val topChartsContract: TopChartsContract + get() = webTopChartsHelper fun getStreamCluster(type: TopChartsContract.Type, chart: TopChartsContract.Chart) { viewModelScope.launch(Dispatchers.IO) { @@ -53,7 +52,7 @@ class TopChartViewModel @Inject constructor( } try { - val cluster = contract().getCluster(type.value, chart.value) + val cluster = topChartsContract.getCluster(type.value, chart.value) updateCluster(type, chart, cluster) liveData.postValue(ViewState.Success(stash)) } catch (_: Exception) { @@ -67,7 +66,7 @@ class TopChartViewModel @Inject constructor( try { val target = targetCluster(type, chart) if (target.hasNext()) { - val newCluster = contract().getNextStreamCluster( + val newCluster = topChartsContract.getNextStreamCluster( target.clusterNextPageUrl )