srctree

Robin Lindén parent e947af2b d67b4c17
Enforce only accessing the database via the repositories

inlinesplit
app/src/main/java/ltd/evilcorp/atox/di/AppComponent.kt added: 35, removed: 30, total 5
@@ -4,6 +4,7 @@ import dagger.Component
import dagger.android.AndroidInjectionModule
import dagger.android.AndroidInjector
import ltd.evilcorp.atox.App
import ltd.evilcorp.core.di.DatabaseModule
import javax.inject.Singleton
 
@Singleton
 
core/build.gradle added: 35, removed: 30, total 5
@@ -42,4 +42,8 @@ dependencies {
// Room
api "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
 
// Dagger
implementation "com.google.dagger:dagger:$dagger_version"
kapt "com.google.dagger:dagger-compiler:$dagger_version"
}
 
core/src/main/java/ltd/evilcorp/core/db/ContactDao.kt added: 35, removed: 30, total 5
@@ -6,7 +6,7 @@ import ltd.evilcorp.core.vo.ConnectionStatus
import ltd.evilcorp.core.vo.Contact
 
@Dao
interface ContactDao {
internal interface ContactDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun save(contact: Contact)
 
 
core/src/main/java/ltd/evilcorp/core/db/Database.kt added: 35, removed: 30, total 5
@@ -15,8 +15,8 @@ import ltd.evilcorp.core.vo.User
)
@TypeConverters(Converters::class)
abstract class Database : RoomDatabase() {
abstract fun contactDao(): ContactDao
abstract fun friendRequestDao(): FriendRequestDao
abstract fun messageDao(): MessageDao
abstract fun userDao(): UserDao
internal abstract fun contactDao(): ContactDao
internal abstract fun friendRequestDao(): FriendRequestDao
internal abstract fun messageDao(): MessageDao
internal abstract fun userDao(): UserDao
}
 
core/src/main/java/ltd/evilcorp/core/db/FriendRequestDao.kt added: 35, removed: 30, total 5
@@ -5,7 +5,7 @@ import androidx.room.*
import ltd.evilcorp.core.vo.FriendRequest
 
@Dao
interface FriendRequestDao {
internal interface FriendRequestDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun save(friendRequest: FriendRequest)
 
 
core/src/main/java/ltd/evilcorp/core/db/MessageDao.kt added: 35, removed: 30, total 5
@@ -8,7 +8,7 @@ import androidx.room.Query
import ltd.evilcorp.core.vo.Message
 
@Dao
interface MessageDao {
internal interface MessageDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun save(message: Message)
 
 
core/src/main/java/ltd/evilcorp/core/db/UserDao.kt added: 35, removed: 30, total 5
@@ -6,7 +6,7 @@ import ltd.evilcorp.core.vo.ConnectionStatus
import ltd.evilcorp.core.vo.User
 
@Dao
interface UserDao {
internal interface UserDao {
@Insert(onConflict = OnConflictStrategy.ABORT)
fun save(user: User)
 
 
app/src/main/java/ltd/evilcorp/atox/di/DatabaseModule.kt added: 35, removed: 30, total 5
@@ -1,4 +1,4 @@
package ltd.evilcorp.atox.di
package ltd.evilcorp.core.di
 
import android.app.Application
import androidx.room.Room
@@ -12,32 +12,32 @@ class DatabaseModule {
@Singleton
@Provides
fun provideDatabase(application: Application): Database {
return Room.databaseBuilder(application, Database::class.java, "contact_db")
return Room.databaseBuilder(application, Database::class.java, "core_db")
.fallbackToDestructiveMigration() // TODO(robinlinden): Delete this.
.build()
}
 
@Singleton
@Provides
fun provideContactDao(db: Database): ContactDao {
internal fun provideContactDao(db: Database): ContactDao {
return db.contactDao()
}
 
@Singleton
@Provides
fun provideFriendRequestDao(db: Database): FriendRequestDao {
internal fun provideFriendRequestDao(db: Database): FriendRequestDao {
return db.friendRequestDao()
}
 
@Singleton
@Provides
fun provideMessageDao(db: Database): MessageDao {
internal fun provideMessageDao(db: Database): MessageDao {
return db.messageDao()
}
 
@Singleton
@Provides
fun provideUserDao(db: Database): UserDao {
internal fun provideUserDao(db: Database): UserDao {
return db.userDao()
}
}
 
core/src/main/java/ltd/evilcorp/core/repository/ContactRepository.kt added: 35, removed: 30, total 5
@@ -7,7 +7,7 @@ import javax.inject.Inject
import javax.inject.Singleton
 
@Singleton
class ContactRepository @Inject constructor(
class ContactRepository @Inject internal constructor(
private val contactDao: ContactDao
) {
fun exists(publicKey: String): Boolean {
 
core/src/main/java/ltd/evilcorp/core/repository/FriendRequestRepository.kt added: 35, removed: 30, total 5
@@ -7,7 +7,7 @@ import javax.inject.Inject
import javax.inject.Singleton
 
@Singleton
class FriendRequestRepository @Inject constructor(
class FriendRequestRepository @Inject internal constructor(
private val friendRequestDao: FriendRequestDao
) {
fun add(friendRequest: FriendRequest) {
 
core/src/main/java/ltd/evilcorp/core/repository/MessageRepository.kt added: 35, removed: 30, total 5
@@ -7,7 +7,7 @@ import javax.inject.Inject
import javax.inject.Singleton
 
@Singleton
class MessageRepository @Inject constructor(
class MessageRepository @Inject internal constructor(
private val messageDao: MessageDao
) {
fun add(message: Message) {
 
core/src/main/java/ltd/evilcorp/core/repository/UserRepository.kt added: 35, removed: 30, total 5
@@ -8,7 +8,7 @@ import javax.inject.Inject
import javax.inject.Singleton
 
@Singleton
class UserRepository @Inject constructor(
class UserRepository @Inject internal constructor(
private val userDao: UserDao
) {
fun exists(publicKey: String): Boolean {