Skip to content
This repository was archived by the owner on Apr 20, 2025. It is now read-only.

Commit 05298ea

Browse files
committed
refactor: split ui & data modules to enforce SOLID principles
1 parent 9a5fd19 commit 05298ea

File tree

73 files changed

+745
-93
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

+745
-93
lines changed

app/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ android {
3030

3131
dependencies {
3232
implementation project(':ui')
33+
implementation project(':presentation')
3334
implementation project(':domain')
3435
implementation project(':data')
36+
implementation project(':remote')
37+
implementation project(':local')
3538

3639
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
3740
implementation 'androidx.appcompat:appcompat:1.1.0'

app/src/main/java/co/zsmb/rainbowcake/guardiandemo/di/AppComponent.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package co.zsmb.rainbowcake.guardiandemo.di
22

33
import co.zsmb.rainbowcake.dagger.RainbowCakeComponent
44
import co.zsmb.rainbowcake.dagger.RainbowCakeModule
5-
import co.zsmb.rainbowcake.guardiandemo.data.disk.DiskModule
6-
import co.zsmb.rainbowcake.guardiandemo.data.network.NetworkModule
5+
import co.zsmb.rainbowcake.guardiandemo.local.DiskModule
6+
import co.zsmb.rainbowcake.guardiandemo.remote.NetworkModule
77
import dagger.Component
88
import javax.inject.Singleton
99

app/src/main/java/co/zsmb/rainbowcake/guardiandemo/di/ViewModelModule.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package co.zsmb.rainbowcake.guardiandemo.di
22

33
import androidx.lifecycle.ViewModel
44
import co.zsmb.rainbowcake.dagger.ViewModelKey
5-
import co.zsmb.rainbowcake.guardiandemo.ui.detail.DetailViewModel
6-
import co.zsmb.rainbowcake.guardiandemo.ui.list.ListViewModel
7-
import co.zsmb.rainbowcake.guardiandemo.ui.saved.SavedViewModel
5+
import co.zsmb.rainbowcake.guardiandemo.presentation.detail.DetailViewModel
6+
import co.zsmb.rainbowcake.guardiandemo.presentation.list.ListViewModel
7+
import co.zsmb.rainbowcake.guardiandemo.presentation.saved.SavedViewModel
88
import dagger.Binds
99
import dagger.Module
1010
import dagger.multibindings.IntoMap

build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ buildscript {
22
ext.kotlin_version = '1.3.72'
33
repositories {
44
google()
5-
mavenCentral()
65
jcenter()
76
}
87
dependencies {
@@ -14,7 +13,7 @@ buildscript {
1413
allprojects {
1514
repositories {
1615
google()
17-
mavenCentral()
16+
jcenter()
1817
}
1918
}
2019

data/build.gradle

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,6 @@ apply plugin: 'kotlin-android'
33
apply plugin: 'kotlin-android-extensions'
44
apply plugin: 'kotlin-kapt'
55

6-
Properties localProps = new Properties()
7-
if (project.rootProject.file('local.properties').canRead()) {
8-
localProps.load(new FileInputStream(project.rootProject.file('local.properties')))
9-
} else {
10-
System.err.println("local.properties file is missing, please create it.")
11-
}
12-
136
android {
147
compileSdkVersion 29
158
buildToolsVersion "30.0.0"
@@ -20,9 +13,6 @@ android {
2013
versionCode 1
2114
versionName "1.0"
2215

23-
buildConfigField 'String', 'GUARDIAN_API_BASE_URL', "\"https://content.guardianapis.com/\""
24-
buildConfigField 'String', 'GUARDIAN_API_KEY', "\"" + localProps['guardian.apikey'] + "\""
25-
2616
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2717

2818
javaCompileOptions {
@@ -50,6 +40,9 @@ android {
5040
}
5141

5242
dependencies {
43+
implementation project(':remote')
44+
implementation project(':local')
45+
5346
implementation fileTree(dir: "libs", include: ["*.jar"])
5447

5548
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

data/src/main/java/co/zsmb/rainbowcake/guardiandemo/data/disk/DiskDataSource.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package co.zsmb.rainbowcake.guardiandemo.data.disk
22

3-
import co.zsmb.rainbowcake.guardiandemo.News
4-
import co.zsmb.rainbowcake.guardiandemo.data.disk.entities.RoomNewsItem
3+
import co.zsmb.rainbowcake.guardiandemo.data.model.News
4+
import co.zsmb.rainbowcake.guardiandemo.local.NewsDao
5+
import co.zsmb.rainbowcake.guardiandemo.local.entities.RoomNewsItem
56
import kotlinx.coroutines.flow.Flow
67
import kotlinx.coroutines.flow.map
78
import javax.inject.Inject

data/src/main/java/co/zsmb/rainbowcake/guardiandemo/data/disk/DiskModelMapping.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package co.zsmb.rainbowcake.guardiandemo.data.disk
22

3-
import co.zsmb.rainbowcake.guardiandemo.News
4-
import co.zsmb.rainbowcake.guardiandemo.data.disk.entities.RoomNewsItem
3+
import co.zsmb.rainbowcake.guardiandemo.data.model.News
4+
import co.zsmb.rainbowcake.guardiandemo.local.entities.RoomNewsItem
55

66
fun News.toRoomNewsItem(): RoomNewsItem {
77
return RoomNewsItem(

data/src/main/java/co/zsmb/rainbowcake/guardiandemo/News.kt renamed to data/src/main/java/co/zsmb/rainbowcake/guardiandemo/data/model/News.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package co.zsmb.rainbowcake.guardiandemo
1+
package co.zsmb.rainbowcake.guardiandemo.data.model
22

33
class News(
44
val id: String,

data/src/main/java/co/zsmb/rainbowcake/guardiandemo/data/network/NetworkDataSource.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package co.zsmb.rainbowcake.guardiandemo.data.network
22

3-
import co.zsmb.rainbowcake.guardiandemo.News
3+
import co.zsmb.rainbowcake.guardiandemo.data.model.News
4+
import co.zsmb.rainbowcake.guardiandemo.remote.GuardianApi
45
import javax.inject.Inject
56
import javax.inject.Singleton
67

domain/src/main/java/co/zsmb/rainbowcake/guardiandemo/domain/NewsInteractor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package co.zsmb.rainbowcake.guardiandemo.domain
22

3-
import co.zsmb.rainbowcake.guardiandemo.News
3+
import co.zsmb.rainbowcake.guardiandemo.data.model.News
44
import co.zsmb.rainbowcake.guardiandemo.data.disk.DiskDataSource
55
import co.zsmb.rainbowcake.guardiandemo.data.network.NetworkDataSource
66
import kotlinx.coroutines.flow.Flow

0 commit comments

Comments
 (0)