From 14e9eff32596c55e4f863ee39d642ae92cd132a9 Mon Sep 17 00:00:00 2001 From: Carlos Martinez Date: Sun, 2 Feb 2020 14:03:11 -0300 Subject: [PATCH] add base room implementation --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 2 +- .../com/hako/friendlists/MainApplication.kt | 25 +++++++++++++++++++ .../com/hako/friendlists/view/HomeActivity.kt | 2 +- base/build.gradle | 2 ++ .../main/java/com/hako/base/di/BaseModules.kt | 16 ++++++++++++ .../room/{Database.kt => BaseDatabase.kt} | 2 +- .../java/com/hako/base/room/dao/AlbumDao.kt | 2 +- .../java/com/hako/base/room/dao/PhotoDao.kt | 2 +- .../java/com/hako/base/room/dao/UserDao.kt | 2 +- 10 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 base/src/main/java/com/hako/base/di/BaseModules.kt rename base/src/main/java/com/hako/base/room/{Database.kt => BaseDatabase.kt} (92%) diff --git a/app/build.gradle b/app/build.gradle index 0b27de6..552d861 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -45,4 +45,5 @@ android { dependencies { implementation project(":base") + implementation project(":userlist") } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5322f2e..a241d9b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ android:theme="@style/AppTheme"> diff --git a/app/src/main/java/com/hako/friendlists/MainApplication.kt b/app/src/main/java/com/hako/friendlists/MainApplication.kt index 4e58a5a..c2b26db 100644 --- a/app/src/main/java/com/hako/friendlists/MainApplication.kt +++ b/app/src/main/java/com/hako/friendlists/MainApplication.kt @@ -1,7 +1,32 @@ package com.hako.friendlists import android.app.Application +import com.hako.base.di.baseModule +import org.koin.android.ext.koin.androidContext +import org.koin.core.context.startKoin +import timber.log.Timber +@Suppress("unused") class MainApplication : Application() { + override fun onCreate() { + super.onCreate() + setupLogger() + setupDi() + } + private fun setupLogger() { + Timber.plant(Timber.DebugTree()) + } + + private fun setupDi() { + startKoin { + androidContext(this@MainApplication) + + modules( + listOf( + baseModule + ) + ) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/hako/friendlists/view/HomeActivity.kt b/app/src/main/java/com/hako/friendlists/view/HomeActivity.kt index 9147d3e..3b3e7ed 100644 --- a/app/src/main/java/com/hako/friendlists/view/HomeActivity.kt +++ b/app/src/main/java/com/hako/friendlists/view/HomeActivity.kt @@ -1,4 +1,4 @@ -package com.hako.friendlists.home +package com.hako.friendlists.view import androidx.appcompat.app.AppCompatActivity diff --git a/base/build.gradle b/base/build.gradle index 75c9e33..817b5e5 100644 --- a/base/build.gradle +++ b/base/build.gradle @@ -12,6 +12,8 @@ android { minSdkVersion build_versions.min_sdk targetSdkVersion build_versions.target_sdk testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + buildConfigField "String", "DB_NAME", '"friendlists.db"' } compileOptions { diff --git a/base/src/main/java/com/hako/base/di/BaseModules.kt b/base/src/main/java/com/hako/base/di/BaseModules.kt new file mode 100644 index 0000000..e535755 --- /dev/null +++ b/base/src/main/java/com/hako/base/di/BaseModules.kt @@ -0,0 +1,16 @@ +package com.hako.base.di + +import androidx.room.Room +import com.hako.base.BuildConfig +import com.hako.base.room.BaseDatabase +import org.koin.dsl.module + +val baseModule = module { + + // Room database + single { Room.databaseBuilder(get(), BaseDatabase::class.java, BuildConfig.DB_NAME).build() } + factory { get().userDao() } + factory { get().albumDao() } + factory { get().photoDao() } + +} \ No newline at end of file diff --git a/base/src/main/java/com/hako/base/room/Database.kt b/base/src/main/java/com/hako/base/room/BaseDatabase.kt similarity index 92% rename from base/src/main/java/com/hako/base/room/Database.kt rename to base/src/main/java/com/hako/base/room/BaseDatabase.kt index 0358461..47648b7 100644 --- a/base/src/main/java/com/hako/base/room/Database.kt +++ b/base/src/main/java/com/hako/base/room/BaseDatabase.kt @@ -10,7 +10,7 @@ import com.hako.base.room.entities.PhotoEntity import com.hako.base.room.entities.UserEntity @Database(entities = [UserEntity::class, AlbumEntity::class, PhotoEntity::class], version = 1, exportSchema = false) -abstract class Database : RoomDatabase() { +abstract class BaseDatabase : RoomDatabase() { abstract fun userDao(): UserDao abstract fun albumDao(): AlbumDao abstract fun photoDao(): PhotoDao diff --git a/base/src/main/java/com/hako/base/room/dao/AlbumDao.kt b/base/src/main/java/com/hako/base/room/dao/AlbumDao.kt index 9988b89..5d452c4 100644 --- a/base/src/main/java/com/hako/base/room/dao/AlbumDao.kt +++ b/base/src/main/java/com/hako/base/room/dao/AlbumDao.kt @@ -19,7 +19,7 @@ interface AlbumDao { val all: List @Query("SELECT COUNT(*) FROM ${AlbumEntity.TABLE_NAME}") - fun count(page: Int): Int + fun count(): Int @Query("DELETE FROM ${AlbumEntity.TABLE_NAME}") fun nukeDatabase() diff --git a/base/src/main/java/com/hako/base/room/dao/PhotoDao.kt b/base/src/main/java/com/hako/base/room/dao/PhotoDao.kt index 2f696de..b61d826 100644 --- a/base/src/main/java/com/hako/base/room/dao/PhotoDao.kt +++ b/base/src/main/java/com/hako/base/room/dao/PhotoDao.kt @@ -19,7 +19,7 @@ interface PhotoDao { val all: List @Query("SELECT COUNT(*) FROM ${PhotoEntity.TABLE_NAME}") - fun count(page: Int): Int + fun count(): Int @Query("DELETE FROM ${PhotoEntity.TABLE_NAME}") fun nukeDatabase() diff --git a/base/src/main/java/com/hako/base/room/dao/UserDao.kt b/base/src/main/java/com/hako/base/room/dao/UserDao.kt index 3546001..69879cc 100644 --- a/base/src/main/java/com/hako/base/room/dao/UserDao.kt +++ b/base/src/main/java/com/hako/base/room/dao/UserDao.kt @@ -19,7 +19,7 @@ interface UserDao { val all: List @Query("SELECT COUNT(*) FROM ${UserEntity.TABLE_NAME}") - fun count(page: Int): Int + fun count(): Int @Query("DELETE FROM ${UserEntity.TABLE_NAME}") fun nukeDatabase()