Skip to content

Commit b84c357

Browse files
author
Targholi
committed
add :core:data and use them in the app.Replace flow.collect with collectLatest.
1 parent 1e92fc1 commit b84c357

22 files changed

+105
-126
lines changed

.idea/gradle.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ android {
4242
dependencies {
4343
implementation(project(":core:model"))
4444
implementation(project(":core:network"))
45+
implementation(project(":core:data"))
4546

4647
implementation(libs.coreKtx)
4748
implementation(libs.appcompat)
@@ -50,7 +51,7 @@ dependencies {
5051
implementation(libs.navigationFragment)
5152
implementation(libs.navigationUi)
5253
implementation(libs.coroutinesCore)
53-
implementation(libs.coroutinesAndroid)
54+
// implementation(libs.coroutinesAndroid)
5455
implementation(libs.legacy)
5556
implementation(libs.recyclerview)
5657
testImplementation(libs.junit)

app/src/main/java/com/milad/githoob/data/model/type/EventTypeEnum.java

Lines changed: 0 additions & 62 deletions
This file was deleted.

app/src/main/java/com/milad/githoob/di/DataRepositoryModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import androidx.datastore.core.DataStore
55
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
66
import androidx.datastore.preferences.core.Preferences
77
import androidx.datastore.preferences.preferencesDataStoreFile
8-
import com.milad.githoob.data.MainRepository
8+
import com.milad.data.MainRepository
99
import com.milad.network.api.ApiService
1010
import com.milad.githoob.utils.AppConstants.PREFERENCES_STORE_NAME
1111
import dagger.Module

app/src/main/java/com/milad/githoob/ui/launch/LaunchViewModel.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,19 @@ import androidx.lifecycle.LiveData
77
import androidx.lifecycle.MutableLiveData
88
import androidx.lifecycle.ViewModel
99
import androidx.lifecycle.viewModelScope
10-
import com.milad.githoob.data.MainRepository
10+
import com.milad.data.utils.Status
1111
import com.milad.githoob.utils.AppConstants.KEY_DATA_STORE_TOKEN
12-
import com.milad.githoob.utils.Status
1312
import dagger.hilt.android.lifecycle.HiltViewModel
1413
import kotlinx.coroutines.CoroutineDispatcher
15-
import kotlinx.coroutines.flow.collect
14+
import kotlinx.coroutines.flow.collectLatest
1615
import kotlinx.coroutines.launch
1716
import timber.log.Timber
1817
import javax.inject.Inject
1918

2019

2120
@HiltViewModel
2221
class LaunchViewModel @Inject constructor(
23-
private val mainRepository: MainRepository,
22+
private val mainRepository: com.milad.data.MainRepository,
2423
private val dataStore: DataStore<Preferences>,
2524
private val ioDispatcher: CoroutineDispatcher
2625
) : ViewModel() {
@@ -38,7 +37,7 @@ class LaunchViewModel @Inject constructor(
3837
clientId,
3938
clientSecret,
4039
code
41-
).collect {
40+
).collectLatest {
4241
when (it.status) {
4342
Status.SUCCESS -> {
4443
it.data.let {

app/src/main/java/com/milad/githoob/ui/profile/ProfileViewModel.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package com.milad.githoob.ui.profile
22

33
import androidx.lifecycle.*
4-
import com.milad.githoob.data.MainRepository
4+
import com.milad.data.MainRepository
55
import com.milad.model.User
66
import com.milad.githoob.utils.AppConstants
7-
import com.milad.githoob.utils.Result
8-
import com.milad.githoob.utils.Status
7+
import com.milad.data.utils.Result
8+
import com.milad.data.utils.Status
99
import com.milad.githoob.utils.contributions.ContributionsDay
1010
import com.milad.githoob.utils.contributions.ContributionsProvider
1111
import dagger.hilt.android.lifecycle.HiltViewModel
1212
import kotlinx.coroutines.CoroutineDispatcher
13-
import kotlinx.coroutines.flow.Flow
14-
import kotlinx.coroutines.flow.flow
13+
import kotlinx.coroutines.InternalCoroutinesApi
14+
import kotlinx.coroutines.flow.*
1515
import kotlinx.coroutines.launch
16+
import okhttp3.ResponseBody
1617
import timber.log.Timber
1718
import javax.inject.Inject
1819

@@ -32,7 +33,7 @@ class ProfileViewModel @Inject constructor(
3233
if (bool) {
3334
viewModelScope.launch(ioDispatcher) {
3435

35-
getUserInfo(token, userId).collect {
36+
getUserInfo(token, userId).collectLatest {
3637
when (it.status) {
3738
Status.SUCCESS -> {
3839
_dataLoading.postValue(false)
@@ -59,7 +60,7 @@ class ProfileViewModel @Inject constructor(
5960

6061
val url = "https://raw.githubusercontent.com/${it.login}/${it.login}/master/README.md"
6162

62-
mainRepository.getUserReadMe(url).collect {
63+
mainRepository.getUserReadMe(url).collectLatest {
6364
when (it.status) {
6465
Status.SUCCESS -> {
6566
val data = it.data!!.string()
@@ -85,7 +86,7 @@ class ProfileViewModel @Inject constructor(
8586
val url = String.format(AppConstants.CONTRIBUTE_URL, it.login)
8687

8788
viewModelScope.launch(ioDispatcher) {
88-
mainRepository.getUserContribute(url).collect {
89+
mainRepository.getUserContribute(url).collectLatest {
8990
when (it.status) {
9091
Status.SUCCESS -> {
9192
val listCont = ContributionsProvider().getContributions(it.data?.string())

app/src/main/java/com/milad/githoob/ui/profile/connection/ConnectionViewModel.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ import androidx.lifecycle.LiveData
44
import androidx.lifecycle.MutableLiveData
55
import androidx.lifecycle.ViewModel
66
import androidx.lifecycle.viewModelScope
7-
import com.milad.githoob.data.MainRepository
7+
import com.milad.data.MainRepository
8+
import com.milad.data.utils.Status
9+
import com.milad.data.utils.Result
810
import com.milad.model.User
9-
import com.milad.githoob.utils.Result
10-
import com.milad.githoob.utils.Status
1111
import dagger.hilt.android.lifecycle.HiltViewModel
1212
import kotlinx.coroutines.CoroutineDispatcher
1313
import kotlinx.coroutines.flow.Flow
14+
import kotlinx.coroutines.flow.collectLatest
1415
import kotlinx.coroutines.flow.flow
1516
import kotlinx.coroutines.launch
1617
import timber.log.Timber
@@ -37,7 +38,7 @@ class ConnectionViewModel @Inject constructor(
3738
type: String
3839
) {
3940
viewModelScope.launch(ioDispatcher) {
40-
getConnections(token, userId, type).collect {
41+
getConnections(token, userId, type).collectLatest {
4142
when (it.status) {
4243
Status.SUCCESS -> {
4344
_connectionList.postValue((it.data!!))

app/src/main/java/com/milad/githoob/ui/profile/feed/ProfileFeedsViewModel.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ import android.text.SpannableStringBuilder
55
import androidx.core.text.bold
66
import androidx.core.text.color
77
import androidx.lifecycle.*
8-
import com.milad.githoob.data.MainRepository
9-
import com.milad.githoob.utils.Status
10-
import com.milad.model.event.Event
8+
import com.milad.data.MainRepository
9+
import com.milad.data.utils.Status
1110
import com.milad.model.User
11+
import com.milad.model.event.Event
1212
import com.milad.model.type.EventType
1313
import dagger.hilt.android.lifecycle.HiltViewModel
1414
import kotlinx.coroutines.CoroutineDispatcher
15+
import kotlinx.coroutines.flow.collectLatest
1516
import kotlinx.coroutines.launch
1617
import timber.log.Timber
1718
import javax.inject.Inject
@@ -207,7 +208,7 @@ class ProfileFeedsViewModel @Inject constructor(
207208
fun setUser(token: String, user: User) {
208209

209210
viewModelScope.launch(ioDispatcher) {
210-
mainRepository.getMyEvents(token, user.login, 1).collect {
211+
mainRepository.getMyEvents(token, user.login, 1).collectLatest {
211212
when (it.status) {
212213
Status.SUCCESS -> {
213214
_eventsList.postValue(it.data!!)

app/src/main/java/com/milad/githoob/ui/profile/organization/ProfileOrgsViewModel.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ import androidx.lifecycle.LiveData
55
import androidx.lifecycle.MutableLiveData
66
import androidx.lifecycle.ViewModel
77
import androidx.lifecycle.viewModelScope
8-
import com.milad.githoob.data.MainRepository
8+
import com.milad.data.MainRepository
9+
import com.milad.data.utils.Status
10+
import com.milad.data.utils.Result
911
import com.milad.model.Org
10-
import com.milad.githoob.utils.Result
11-
import com.milad.githoob.utils.Status
1212
import dagger.hilt.android.lifecycle.HiltViewModel
1313
import kotlinx.coroutines.CoroutineDispatcher
1414
import kotlinx.coroutines.flow.Flow
15+
import kotlinx.coroutines.flow.collectLatest
1516
import kotlinx.coroutines.flow.flow
1617
import kotlinx.coroutines.launch
1718
import timber.log.Timber
@@ -34,7 +35,7 @@ class ProfileOrgsViewModel @Inject constructor(
3435

3536
private fun getOrgs(token: String, userId: String) {
3637
viewModelScope.launch(ioDispatcher) {
37-
getOrgsFlow(token, userId).collect {
38+
getOrgsFlow(token, userId).collectLatest {
3839
when (it.status) {
3940
Status.SUCCESS -> {
4041
Log.d("@@", "getOrgs: ${it.data?.size}")

app/src/main/java/com/milad/githoob/ui/profile/overview/ProfileOverviewViewModel.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,24 @@ import androidx.lifecycle.LiveData
44
import androidx.lifecycle.MutableLiveData
55
import androidx.lifecycle.ViewModel
66
import androidx.lifecycle.viewModelScope
7-
import com.milad.githoob.data.MainRepository
7+
import com.milad.data.MainRepository
88
import com.milad.model.User
99
import com.milad.model.event.Event
1010
import com.milad.githoob.utils.AppConstants
11-
import com.milad.githoob.utils.Status
11+
import com.milad.data.utils.Status
1212
import com.milad.githoob.utils.contributions.ContributionsDay
1313
import com.milad.githoob.utils.contributions.ContributionsProvider
1414
import dagger.hilt.android.lifecycle.HiltViewModel
1515
import kotlinx.coroutines.CoroutineDispatcher
16+
import kotlinx.coroutines.flow.collectLatest
1617
import kotlinx.coroutines.launch
1718
import kotlinx.coroutines.withContext
1819
import timber.log.Timber
1920
import javax.inject.Inject
2021

2122
@HiltViewModel
2223
class ProfileOverviewViewModel @Inject constructor(
23-
private val mainRepository: MainRepository,
24+
private val mainRepository: com.milad.data.MainRepository,
2425
private val ioDispatcher: CoroutineDispatcher
2526
) : ViewModel() {
2627
private val _userContributes = MutableLiveData<List<ContributionsDay>>()
@@ -55,7 +56,7 @@ class ProfileOverviewViewModel @Inject constructor(
5556
token,
5657
username,
5758
page
58-
).collect {
59+
).collectLatest {
5960
when (it.status) {
6061
Status.SUCCESS -> {
6162
_feedsList.postValue(it.data!!)

0 commit comments

Comments
 (0)