Added Data Room module.

This commit is contained in:
Neil Marietta 2021-07-12 11:51:44 +02:00
parent 63cb162e19
commit ff22efde46
50 changed files with 126 additions and 53 deletions

View File

@ -97,6 +97,8 @@ Presentation: **0.9.5** - _released on: Jul 21, 2021_
Data: **1.0.3** - _released on: May 03, 2021_
Data Room: **0** - _released on: May 03, 2021_
## Support
### Network

View File

@ -40,6 +40,7 @@ dependencies {
project(Module.crypto),
project(Module.domain),
project(Module.data),
project(Module.dataRoom),
// Features
project(Module.account),

View File

@ -45,6 +45,7 @@ dependencies {
project(Module.network),
project(Module.domain),
project(Module.data),
project(Module.dataRoom),
project(Module.accountManagerDomain),
project(Module.crypto),

View File

@ -28,8 +28,8 @@ import me.proton.core.account.data.entity.AccountMetadataEntity
import me.proton.core.account.data.entity.SessionDetailsEntity
import me.proton.core.account.data.entity.SessionEntity
import me.proton.core.crypto.android.keystore.CryptoConverters
import me.proton.core.data.db.BaseDatabase
import me.proton.core.data.db.CommonConverters
import me.proton.core.data.room.db.BaseDatabase
import me.proton.core.data.room.db.CommonConverters
import me.proton.core.humanverification.data.db.HumanVerificationConverters
import me.proton.core.humanverification.data.db.HumanVerificationDatabase
import me.proton.core.humanverification.data.entity.HumanVerificationEntity

View File

@ -32,6 +32,7 @@ dependencies {
implementation(
project(Module.kotlinUtil),
project(Module.data),
project(Module.dataRoom),
project(Module.domain),
project(Module.crypto),
project(Module.network),

View File

@ -24,7 +24,7 @@ import kotlinx.coroutines.flow.Flow
import me.proton.core.account.data.entity.AccountEntity
import me.proton.core.account.domain.entity.AccountState
import me.proton.core.account.domain.entity.SessionState
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.UserId
import me.proton.core.network.domain.session.SessionId

View File

@ -19,10 +19,10 @@
package me.proton.core.account.data.db
import androidx.sqlite.db.SupportSQLiteDatabase
import me.proton.core.data.db.Database
import me.proton.core.data.db.extension.dropTable
import me.proton.core.data.db.extension.dropTableColumn
import me.proton.core.data.db.migration.DatabaseMigration
import me.proton.core.data.room.db.Database
import me.proton.core.data.room.db.extension.dropTable
import me.proton.core.data.room.db.extension.dropTableColumn
import me.proton.core.data.room.db.migration.DatabaseMigration
interface AccountDatabase : Database {
fun accountDao(): AccountDao

View File

@ -22,7 +22,7 @@ import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.account.data.entity.AccountMetadataEntity
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.Product
import me.proton.core.domain.entity.UserId

View File

@ -23,7 +23,7 @@ import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.account.data.entity.SessionEntity
import me.proton.core.crypto.common.keystore.EncryptedString
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.Product
import me.proton.core.domain.entity.UserId
import me.proton.core.network.domain.session.SessionId

View File

@ -22,7 +22,7 @@ import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.account.data.entity.SessionDetailsEntity
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.network.domain.session.SessionId
@Dao

View File

@ -22,9 +22,9 @@ import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index
import me.proton.core.crypto.common.keystore.EncryptedString
import me.proton.core.crypto.common.keystore.decryptWith
import me.proton.core.crypto.common.keystore.KeyStoreCrypto
import me.proton.core.data.db.CommonConverters
import me.proton.core.crypto.common.keystore.decryptWith
import me.proton.core.data.room.db.CommonConverters
import me.proton.core.domain.entity.Product
import me.proton.core.domain.entity.UserId
import me.proton.core.network.domain.session.Session

View File

@ -19,9 +19,9 @@
package me.proton.core.account.data.extension
import me.proton.core.account.data.entity.SessionEntity
import me.proton.core.crypto.common.keystore.encryptWith
import me.proton.core.crypto.common.keystore.KeyStoreCrypto
import me.proton.core.data.db.CommonConverters
import me.proton.core.crypto.common.keystore.encryptWith
import me.proton.core.data.room.db.CommonConverters
import me.proton.core.domain.entity.Product
import me.proton.core.domain.entity.UserId
import me.proton.core.network.domain.session.Session

View File

@ -39,7 +39,7 @@ import me.proton.core.account.domain.entity.SessionState
import me.proton.core.account.domain.repository.AccountRepository
import me.proton.core.crypto.common.keystore.KeyStoreCrypto
import me.proton.core.crypto.common.keystore.encryptWith
import me.proton.core.data.db.CommonConverters
import me.proton.core.data.room.db.CommonConverters
import me.proton.core.domain.entity.Product
import me.proton.core.domain.entity.UserId
import me.proton.core.network.domain.session.Session

View File

@ -52,6 +52,7 @@ dependencies {
project(Module.network),
project(Module.domain),
project(Module.data),
project(Module.dataRoom),
// Features
project(Module.account),
@ -59,7 +60,6 @@ dependencies {
project(Module.accountManagerDagger),
project(Module.auth),
project(Module.crypto),
project(Module.data),
project(Module.domain),
project(Module.gopenpgp),
project(Module.humanVerification),

View File

@ -28,8 +28,8 @@ import me.proton.core.account.data.entity.AccountMetadataEntity
import me.proton.core.account.data.entity.SessionDetailsEntity
import me.proton.core.account.data.entity.SessionEntity
import me.proton.core.crypto.android.keystore.CryptoConverters
import me.proton.core.data.db.BaseDatabase
import me.proton.core.data.db.CommonConverters
import me.proton.core.data.room.db.BaseDatabase
import me.proton.core.data.room.db.CommonConverters
import me.proton.core.humanverification.data.db.HumanVerificationConverters
import me.proton.core.humanverification.data.db.HumanVerificationDatabase
import me.proton.core.humanverification.data.entity.HumanVerificationEntity

View File

@ -0,0 +1,46 @@
/*
* Copyright (c) 2020 Proton Technologies AG
* This file is part of Proton Technologies AG and ProtonCore.
*
* ProtonCore is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ProtonCore is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
*/
import studio.forface.easygradle.dsl.*
import studio.forface.easygradle.dsl.android.*
plugins {
id("com.android.library")
kotlin("android")
}
libVersion = Version(1, 3, 1)
android()
dependencies {
implementation(
project(Module.kotlinUtil),
project(Module.networkDomain),
project(Module.domain),
// Kotlin
`kotlin-jdk7`,
`coroutines-core`,
// Room
`room-ktx`
)
testImplementation(project(Module.kotlinTest))
}

View File

@ -0,0 +1,18 @@
<!--
~ Copyright (c) 2020 Proton Technologies AG
~ This file is part of Proton Technologies AG and ProtonCore.
~
~ ProtonCore is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ ProtonCore is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
-->
<manifest package="me.proton.core.data.room" />

View File

@ -16,7 +16,7 @@
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
*/
package me.proton.core.data.db
package me.proton.core.data.room.db
import androidx.room.Delete
import androidx.room.Insert

View File

@ -16,7 +16,7 @@
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
*/
package me.proton.core.data.db
package me.proton.core.data.room.db
import android.content.Context
import androidx.room.Room

View File

@ -16,7 +16,7 @@
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
*/
package me.proton.core.data.db
package me.proton.core.data.room.db
import androidx.room.TypeConverter
import me.proton.core.domain.entity.Product

View File

@ -16,7 +16,7 @@
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
*/
package me.proton.core.data.db
package me.proton.core.data.room.db
interface Database {
/**

View File

@ -16,7 +16,7 @@
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
*/
package me.proton.core.data.db.extension
package me.proton.core.data.room.db.extension
import androidx.sqlite.db.SupportSQLiteDatabase

View File

@ -16,7 +16,7 @@
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
*/
package me.proton.core.data.db.migration
package me.proton.core.data.room.db.migration
import androidx.sqlite.db.SupportSQLiteDatabase

View File

@ -16,7 +16,7 @@
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
*/
package me.proton.core.data.db
package me.proton.core.data.room.db
import me.proton.core.domain.entity.UserId
import me.proton.core.network.domain.session.SessionId

View File

@ -39,6 +39,7 @@ object Module {
const val domain = ":domain"
const val presentation = ":presentation"
const val data = ":data"
const val dataRoom = ":data-room"
const val gopenpgp = ":gopenpgp"
// endregion

View File

@ -37,6 +37,7 @@ dependencies {
project(Module.humanVerificationDomain),
project(Module.network),
project(Module.data),
project(Module.dataRoom),
project(Module.crypto),
project(Module.authData),
project(Module.authDomain),

View File

@ -19,8 +19,8 @@
package me.proton.core.humanverification.data.db
import androidx.sqlite.db.SupportSQLiteDatabase
import me.proton.core.data.db.Database
import me.proton.core.data.db.migration.DatabaseMigration
import me.proton.core.data.room.db.Database
import me.proton.core.data.room.db.migration.DatabaseMigration
interface HumanVerificationDatabase : Database {
fun humanVerificationDetailsDao(): HumanVerificationDetailsDao

View File

@ -22,7 +22,7 @@ import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.crypto.common.keystore.EncryptedString
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.humanverification.data.entity.HumanVerificationEntity
import me.proton.core.network.domain.humanverification.HumanVerificationState

View File

@ -34,6 +34,7 @@ dependencies {
project(Module.kotlinUtil),
project(Module.network),
project(Module.data),
project(Module.dataRoom),
project(Module.domain),
project(Module.keyDomain),
project(Module.cryptoCommon),

View File

@ -21,7 +21,7 @@ package me.proton.core.key.data.db
import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.UserId
import me.proton.core.key.data.entity.KeySaltEntity

View File

@ -19,8 +19,8 @@
package me.proton.core.key.data.db
import androidx.sqlite.db.SupportSQLiteDatabase
import me.proton.core.data.db.Database
import me.proton.core.data.db.migration.DatabaseMigration
import me.proton.core.data.room.db.Database
import me.proton.core.data.room.db.migration.DatabaseMigration
interface KeySaltDatabase : Database {
fun keySaltDao(): KeySaltDao

View File

@ -21,7 +21,7 @@ package me.proton.core.key.data.db
import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.key.data.entity.PublicAddressEntity
@Dao

View File

@ -19,8 +19,8 @@
package me.proton.core.key.data.db
import androidx.sqlite.db.SupportSQLiteDatabase
import me.proton.core.data.db.Database
import me.proton.core.data.db.migration.DatabaseMigration
import me.proton.core.data.room.db.Database
import me.proton.core.data.room.db.migration.DatabaseMigration
interface PublicAddressDatabase : Database {
fun publicAddressDao(): PublicAddressDao

View File

@ -21,7 +21,7 @@ package me.proton.core.key.data.db
import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.key.data.entity.PublicAddressKeyEntity
@Dao
@ -35,5 +35,4 @@ abstract class PublicAddressKeyDao : BaseDao<PublicAddressKeyEntity>() {
@Query("DELETE FROM PublicAddressKeyEntity")
abstract suspend fun deleteAll()
}

View File

@ -22,7 +22,7 @@ import androidx.room.Dao
import androidx.room.Query
import androidx.room.Transaction
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.key.data.entity.PublicAddressEntity
import me.proton.core.key.data.entity.PublicAddressWithKeys

View File

@ -33,6 +33,7 @@ dependencies {
implementation(
project(Module.kotlinUtil),
project(Module.data),
project(Module.dataRoom),
project(Module.domain),
project(Module.network),
project(Module.mailSettingsDomain),

View File

@ -19,8 +19,8 @@
package me.proton.core.mailsettings.data.db
import androidx.sqlite.db.SupportSQLiteDatabase
import me.proton.core.data.db.Database
import me.proton.core.data.db.migration.DatabaseMigration
import me.proton.core.data.room.db.Database
import me.proton.core.data.room.db.migration.DatabaseMigration
import me.proton.core.mailsettings.data.db.dao.MailSettingsDao
interface MailSettingsDatabase : Database {

View File

@ -21,7 +21,7 @@ package me.proton.core.mailsettings.data.db.dao
import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.UserId
import me.proton.core.mailsettings.data.entity.MailSettingsEntity

View File

@ -35,6 +35,7 @@ dependencies {
project(Module.networkDomain),
project(Module.networkData),
project(Module.data),
project(Module.dataRoom),
project(Module.domain),
project(Module.userDomain),
project(Module.cryptoCommon),

View File

@ -19,9 +19,9 @@
package me.proton.core.user.data.db
import androidx.sqlite.db.SupportSQLiteDatabase
import me.proton.core.data.db.Database
import me.proton.core.data.db.extension.addTableColumn
import me.proton.core.data.db.migration.DatabaseMigration
import me.proton.core.data.room.db.Database
import me.proton.core.data.room.db.extension.addTableColumn
import me.proton.core.data.room.db.migration.DatabaseMigration
import me.proton.core.user.data.db.dao.AddressDao
import me.proton.core.user.data.db.dao.AddressWithKeysDao

View File

@ -18,7 +18,7 @@
package me.proton.core.user.data.db
import me.proton.core.data.db.Database
import me.proton.core.data.room.db.Database
import me.proton.core.user.data.db.dao.AddressKeyDao
interface AddressKeyDatabase : Database {

View File

@ -19,8 +19,8 @@
package me.proton.core.user.data.db
import androidx.sqlite.db.SupportSQLiteDatabase
import me.proton.core.data.db.Database
import me.proton.core.data.db.migration.DatabaseMigration
import me.proton.core.data.room.db.Database
import me.proton.core.data.room.db.migration.DatabaseMigration
import me.proton.core.user.data.db.dao.UserDao
import me.proton.core.user.data.db.dao.UserWithKeysDao

View File

@ -18,7 +18,7 @@
package me.proton.core.user.data.db
import me.proton.core.data.db.Database
import me.proton.core.data.room.db.Database
import me.proton.core.user.data.db.dao.UserKeyDao
interface UserKeyDatabase : Database {

View File

@ -21,7 +21,7 @@ package me.proton.core.user.data.db.dao
import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.UserId
import me.proton.core.user.data.entity.AddressEntity
import me.proton.core.user.domain.entity.AddressId

View File

@ -21,7 +21,7 @@ package me.proton.core.user.data.db.dao
import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.user.data.entity.AddressKeyEntity
import me.proton.core.user.domain.entity.AddressId

View File

@ -22,7 +22,7 @@ import androidx.room.Dao
import androidx.room.Query
import androidx.room.Transaction
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.UserId
import me.proton.core.user.data.entity.AddressEntity
import me.proton.core.user.data.entity.AddressWithKeys

View File

@ -23,7 +23,7 @@ import androidx.room.Query
import androidx.room.Transaction
import kotlinx.coroutines.flow.Flow
import me.proton.core.crypto.common.keystore.EncryptedByteArray
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.UserId
import me.proton.core.user.data.entity.UserEntity

View File

@ -21,7 +21,7 @@ package me.proton.core.user.data.db.dao
import androidx.room.Dao
import androidx.room.Query
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.UserId
import me.proton.core.user.data.entity.UserKeyEntity

View File

@ -22,7 +22,7 @@ import androidx.room.Dao
import androidx.room.Query
import androidx.room.Transaction
import kotlinx.coroutines.flow.Flow
import me.proton.core.data.db.BaseDao
import me.proton.core.data.room.db.BaseDao
import me.proton.core.domain.entity.UserId
import me.proton.core.user.data.entity.UserEntity
import me.proton.core.user.data.entity.UserWithKeys