Skip to content

Commit a05e53e

Browse files
committed
refactored data layer
trying new approach
1 parent 740ac19 commit a05e53e

File tree

73 files changed

+1515
-2521
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+1515
-2521
lines changed

app/build.gradle

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ android {
2828

2929
def globalConfiguration = rootProject.extensions.getByName("ext")
3030
compileSdkVersion globalConfiguration["androidCompileSdkVersion"]
31+
buildToolsVersion globalConfiguration["androidBuildToolsVersion"]
3132

3233

3334
defaultConfig {
@@ -74,23 +75,20 @@ android {
7475
}
7576
}
7677

77-
sourceSets {
78-
main.java.srcDirs += 'src/main/kotlin'
79-
}
80-
8178
}
8279

8380
dependencies {
8481

8582
implementation fileTree(dir: 'libs', include: ['*.jar'])
86-
implementation project(':business')
83+
implementation project(':domain')
8784
implementation project(':data')
8885

8986
//core
9087
implementation 'androidx.core:core-ktx:1.5.0-alpha05'
9188
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
9289
implementation 'androidx.constraintlayout:constraintlayout:2.1.0-alpha2'
9390
implementation 'com.google.android.material:material:1.3.0-beta01'
91+
implementation 'androidx.lifecycle:lifecycle-process:2.3.0-rc01'
9492

9593
// dagger hilt
9694
implementation "com.google.dagger:hilt-android:2.30.1-alpha"
@@ -113,7 +111,7 @@ dependencies {
113111

114112

115113
//facebook auth
116-
implementation libs.facebookLogin
114+
implementation 'com.facebook.android:facebook-login:7.1.0'
117115

118116
//glide
119117
implementation 'com.github.bumptech.glide:glide:4.11.0'
@@ -123,23 +121,15 @@ dependencies {
123121
}
124122

125123

126-
127124
// Navigation component
128125
implementation "androidx.navigation:navigation-ui-ktx:2.3.2"
129126
implementation "androidx.navigation:navigation-fragment-ktx:2.3.2"
130127

131128
// RxJava
132-
implementation libs.rxJava
129+
implementation "io.reactivex.rxjava3:rxjava:3.0.8"
133130

134131
// RxAndroid
135-
implementation libs.rxAndroid
136-
137-
138-
// ViewModel and LiveData
139-
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
140-
141-
//binary prefs
142-
implementation "com.github.yandextaxitech:binaryprefs:1.0.1"
132+
implementation "io.reactivex.rxjava3:rxandroid:3.0.0"
143133

144134

145135
}

app/src/main/java/com/mmdev/roove/core/di/AppComponent.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Created by Andrii Kovalchuk
3-
* Copyright (C) 2020. roove
3+
* Copyright (C) 2021. roove
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU General Public License as published by
@@ -20,18 +20,18 @@ package com.mmdev.roove.core.di
2020

2121
import android.app.Application
2222
import com.mmdev.roove.core.di.modules.AuthModule
23+
import com.mmdev.roove.core.di.modules.DataSourceModule
2324
import com.mmdev.roove.core.di.modules.FirebaseModule
2425
import com.mmdev.roove.core.di.modules.RepositoryModule
25-
import com.mmdev.roove.core.di.modules.UserModule
2626
import dagger.BindsInstance
2727
import dagger.Component
2828
import javax.inject.Singleton
2929

3030
@Component(modules = [
3131
AuthModule::class,
32+
DataSourceModule::class,
3233
FirebaseModule::class,
33-
RepositoryModule::class,
34-
UserModule::class
34+
RepositoryModule::class
3535
])
3636
@Singleton
3737
interface AppComponent {

app/src/main/java/com/mmdev/roove/core/di/modules/AuthModule.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Created by Andrii Kovalchuk
3-
* Copyright (C) 2020. roove
3+
* Copyright (C) 2021. roove
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU General Public License as published by
@@ -19,18 +19,24 @@
1919
package com.mmdev.roove.core.di.modules
2020

2121
import com.facebook.login.LoginManager
22+
import com.google.firebase.auth.FirebaseAuth
23+
import com.mmdev.data.datasource.AuthCollector
2224
import dagger.Module
2325
import dagger.Provides
2426
import dagger.hilt.InstallIn
25-
import dagger.hilt.android.components.ApplicationComponent
27+
import dagger.hilt.components.SingletonComponent
2628
import javax.inject.Singleton
2729

2830
@Module
29-
@InstallIn(ApplicationComponent::class)
31+
@InstallIn(SingletonComponent::class)
3032
class AuthModule{
3133

3234
@Provides
3335
@Singleton
3436
fun facebookAuth(): LoginManager = LoginManager.getInstance()
3537

38+
@Provides
39+
@Singleton
40+
fun authCollector(auth: FirebaseAuth): AuthCollector = AuthCollector(auth)
41+
3642
}
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Created by Andrii Kovalchuk
3-
* Copyright (C) 2020. roove
3+
* Copyright (C) 2021. roove
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU General Public License as published by
@@ -16,29 +16,32 @@
1616
* along with this program. If not, see https://www.gnu.org/licenses
1717
*/
1818

19-
package com.mmdev.roove.core.log
19+
package com.mmdev.roove.core.di.modules
2020

21-
import com.mmdev.data.core.log.DebugConfig
22-
import com.mmdev.data.core.log.MyLogger
23-
import com.mmdev.roove.BuildConfig
21+
import android.content.Context
22+
import com.google.firebase.firestore.FirebaseFirestore
23+
import com.mmdev.data.datasource.UserDataSource
24+
import dagger.Module
25+
import dagger.Provides
26+
import dagger.hilt.InstallIn
27+
import dagger.hilt.android.qualifiers.ApplicationContext
28+
import dagger.hilt.components.SingletonComponent
29+
import javax.inject.Singleton
2430

2531
/**
26-
* Own solution for logging operations
27-
* Good enough to not use Timber or any other third-party loggers
32+
*
2833
*/
2934

30-
interface DebugConfig {
35+
@Module
36+
@InstallIn(SingletonComponent::class)
37+
class DataSourceModule {
3138

32-
val isEnabled: Boolean
33-
val logger: MyLogger
39+
@Provides
40+
@Singleton
41+
fun userDataSource(fs: FirebaseFirestore) = UserDataSource(fs)
3442

35-
object Default : DebugConfig {
36-
override val isEnabled: Boolean = BuildConfig.DEBUG
37-
override val logger: MyLogger = if (isEnabled) MyLogger.Debug else MyLogger.Default
38-
}
43+
@Provides
44+
@Singleton
45+
fun appContext(@ApplicationContext appContext: Context): Context = appContext
3946

40-
object Enabled : DebugConfig {
41-
override val isEnabled: Boolean = true
42-
override val logger: MyLogger = MyLogger.Debug
43-
}
4447
}

app/src/main/java/com/mmdev/roove/core/di/modules/FirebaseModule.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Created by Andrii Kovalchuk
3-
* Copyright (C) 2020. roove
3+
* Copyright (C) 2021. roove
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@ import com.mmdev.data.BuildConfig
2727
import dagger.Module
2828
import dagger.Provides
2929
import dagger.hilt.InstallIn
30-
import dagger.hilt.android.components.ApplicationComponent
30+
import dagger.hilt.components.SingletonComponent
3131
import javax.inject.Singleton
3232

3333
/**
@@ -36,7 +36,7 @@ import javax.inject.Singleton
3636
*/
3737

3838
@Module
39-
@InstallIn(ApplicationComponent::class)
39+
@InstallIn(SingletonComponent::class)
4040
class FirebaseModule {
4141

4242
@Provides
Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Created by Andrii Kovalchuk
3-
* Copyright (C) 2020. roove
3+
* Copyright (C) 2021. roove
44
*
55
* This program is free software: you can redistribute it and/or modify
66
* it under the terms of the GNU General Public License as published by
@@ -18,56 +18,50 @@
1818

1919
package com.mmdev.roove.core.di.modules
2020

21+
import com.google.firebase.auth.FirebaseAuth
2122
import com.mmdev.business.auth.AuthRepository
2223
import com.mmdev.business.cards.CardsRepository
2324
import com.mmdev.business.chat.ChatRepository
2425
import com.mmdev.business.conversations.ConversationsRepository
25-
import com.mmdev.business.local.LocalUserRepository
2626
import com.mmdev.business.pairs.PairsRepository
27-
import com.mmdev.business.remote.RemoteUserRepository
27+
import com.mmdev.business.user.IUserRepository
28+
import com.mmdev.data.datasource.AuthCollector
2829
import com.mmdev.data.repository.auth.AuthRepositoryImpl
2930
import com.mmdev.data.repository.cards.CardsRepositoryImpl
3031
import com.mmdev.data.repository.chat.ChatRepositoryImpl
3132
import com.mmdev.data.repository.conversations.ConversationsRepositoryImpl
3233
import com.mmdev.data.repository.pairs.PairsRepositoryImpl
33-
import com.mmdev.data.repository.user.UserRepositoryLocal
34-
import com.mmdev.data.repository.user.UserRepositoryRemoteImpl
34+
import com.mmdev.data.repository.user.UserRepositoryImpl
3535
import dagger.Module
3636
import dagger.Provides
3737
import dagger.hilt.InstallIn
38-
import dagger.hilt.android.components.ApplicationComponent
38+
import dagger.hilt.components.SingletonComponent
3939
import javax.inject.Singleton
4040

4141
@Module
42-
@InstallIn(ApplicationComponent::class)
42+
@InstallIn(SingletonComponent::class)
4343
class RepositoryModule {
44-
44+
4545
@Provides
4646
@Singleton
47+
fun authCollector(auth: FirebaseAuth): AuthCollector = AuthCollector(auth)
48+
49+
@Provides
4750
fun authRepository(repository: AuthRepositoryImpl): AuthRepository = repository
4851

4952
@Provides
50-
@Singleton
5153
fun cardsRepository(repository: CardsRepositoryImpl): CardsRepository = repository
5254

5355
@Provides
54-
@Singleton
5556
fun chatRepository(repository: ChatRepositoryImpl): ChatRepository = repository
5657

5758
@Provides
58-
@Singleton
5959
fun conversationsRepository(repository: ConversationsRepositoryImpl): ConversationsRepository = repository
6060

6161
@Provides
62-
@Singleton
6362
fun pairsRepository(repository: PairsRepositoryImpl): PairsRepository = repository
6463

6564
@Provides
66-
@Singleton
67-
fun localUserRepository(repository: UserRepositoryLocal): LocalUserRepository = repository
68-
69-
@Provides
70-
@Singleton
71-
fun remoteUserRepository(repository: UserRepositoryRemoteImpl): RemoteUserRepository = repository
65+
fun remoteUserRepository(repository: UserRepositoryImpl): IUserRepository = repository
7266

7367
}

app/src/main/java/com/mmdev/roove/core/di/modules/UserModule.kt

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

0 commit comments

Comments
 (0)