Skip to content

Commit

Permalink
Add automation build type
Browse files Browse the repository at this point in the history
  • Loading branch information
aivanovski committed Jul 20, 2024
1 parent 10eb369 commit c3be421
Show file tree
Hide file tree
Showing 36 changed files with 143 additions and 64 deletions.
10 changes: 8 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,15 @@ android {
versionNameSuffix 'd'
signingConfig signingConfigs.debug
}
release {
automation {
debuggable true
minifyEnabled false
signingConfig signingConfigs.debug
applicationIdSuffix '.automation'
}
release {
debuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
Expand Down Expand Up @@ -314,7 +320,7 @@ dependencies {
// KeePass
implementation "com.github.anvell:kotpass:$kotpassVersion"
implementation "com.github.aivanovski:keepass-tree-diff:$treeDiffVersion"
debugImplementation "com.github.aivanovski:keepass-tree-builder:$treeBuilderVersion"
implementation "com.github.aivanovski:keepass-tree-builder:$treeBuilderVersion"

// Fuzzy search
implementation "com.github.aivanovski:fzf4j:$fzf4jVersion"
Expand Down
14 changes: 14 additions & 0 deletions app/src/automation/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android">

<application>

<receiver
android:name=".domain.test.TestDataBroadcastReceiver"
android:enabled="true"
android:exported="true" />

</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.ivanovsky.passnotes.injection

import android.content.Context
import com.ivanovsky.passnotes.data.repository.settings.Settings
import com.ivanovsky.passnotes.domain.LoggerInteractor
import com.ivanovsky.passnotes.injection.modules.BiometricModule
import com.ivanovsky.passnotes.injection.modules.CoreModule
import com.ivanovsky.passnotes.injection.modules.debug.DebugFileSystemProvidersModule
import com.ivanovsky.passnotes.injection.modules.debug.DebugModule
import com.ivanovsky.passnotes.injection.modules.debug.FakeBiometricModule
import com.ivanovsky.passnotes.injection.modules.UiModule
import com.ivanovsky.passnotes.injection.modules.UseCaseModule
import org.koin.core.module.Module

// Is loaded via reflection in App.kt
class DebugModuleBuilder(
private val context: Context,
private val loggerInteractor: LoggerInteractor,
private val settings: Settings
) : DIModuleBuilder {

override var isExternalStorageAccessEnabled: Boolean = false

override fun buildModules(): List<Module> {
val isLoadFakeBiometricModule = settings.testToggles?.isFakeBiometricEnabled ?: false
val isFakeFileSystemEnabled = settings.testToggles?.isFakeFileSystemEnabled ?: false

return listOf(
CoreModule.build(loggerInteractor),
DebugModule.build(),
DebugFileSystemProvidersModule.build(
isExternalStorageAccessEnabled = isExternalStorageAccessEnabled,
isFakeFileSystemEnabled = isFakeFileSystemEnabled
),
if (isLoadFakeBiometricModule) {
FakeBiometricModule.build()
} else {
BiometricModule.build()
},
UseCaseModule.build(),
UiModule.build()
)
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import com.ivanovsky.passnotes.data.repository.settings.Settings
import com.ivanovsky.passnotes.domain.LoggerInteractor
import com.ivanovsky.passnotes.injection.modules.BiometricModule
import com.ivanovsky.passnotes.injection.modules.CoreModule
import com.ivanovsky.passnotes.injection.modules.DebugFileSystemProvidersModule
import com.ivanovsky.passnotes.injection.modules.DebugModule
import com.ivanovsky.passnotes.injection.modules.FakeBiometricModule
import com.ivanovsky.passnotes.injection.modules.debug.DebugFileSystemProvidersModule
import com.ivanovsky.passnotes.injection.modules.debug.DebugModule
import com.ivanovsky.passnotes.injection.modules.debug.FakeBiometricModule
import com.ivanovsky.passnotes.injection.modules.UiModule
import com.ivanovsky.passnotes.injection.modules.UseCaseModule
import org.koin.core.module.Module
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

fun interface DatabaseContentFactory {
fun create(): ByteArray
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import com.ivanovsky.passnotes.data.ObserverBus
import com.ivanovsky.passnotes.data.entity.FSAuthority
import com.ivanovsky.passnotes.data.entity.FSType
import com.ivanovsky.passnotes.data.repository.file.delay.ThreadThrottlerImpl
import com.ivanovsky.passnotes.data.repository.file.FileSystemProvider
import com.ivanovsky.passnotes.data.repository.file.FileSystemResolver
import com.ivanovsky.passnotes.data.repository.file.fake.delay.ThreadThrottlerImpl
import com.ivanovsky.passnotes.injection.GlobalInjector

class DebugFileSystemResolver(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import android.util.Base64
import com.github.aivanovski.keepasstreebuilder.DatabaseBuilderDsl
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import com.ivanovsky.passnotes.data.entity.FSAuthority
import com.ivanovsky.passnotes.data.entity.FileDescriptor
import com.ivanovsky.passnotes.data.entity.SyncStatus
import com.ivanovsky.passnotes.data.repository.file.FakeDatabaseContentFactory.createDatabaseWithAttachmentsData
import com.ivanovsky.passnotes.data.repository.file.FakeDatabaseContentFactory.createDatabaseWithCombinedKey
import com.ivanovsky.passnotes.data.repository.file.FakeDatabaseContentFactory.createDatabaseWithExpiredData
import com.ivanovsky.passnotes.data.repository.file.FakeDatabaseContentFactory.createDatabaseWithHistoryData
import com.ivanovsky.passnotes.data.repository.file.FakeDatabaseContentFactory.createDatabaseWithKeyFile
import com.ivanovsky.passnotes.data.repository.file.FakeDatabaseContentFactory.createDatabaseWithOtpData
import com.ivanovsky.passnotes.data.repository.file.FakeDatabaseContentFactory.createDemoDatabase
import com.ivanovsky.passnotes.data.repository.file.FakeDatabaseContentFactory.createKeyFileData
import com.ivanovsky.passnotes.data.repository.file.entity.FakeStorageEntry
import com.ivanovsky.passnotes.data.repository.file.fake.FakeDatabaseContentFactory.createDatabaseWithAttachmentsData
import com.ivanovsky.passnotes.data.repository.file.fake.FakeDatabaseContentFactory.createDatabaseWithCombinedKey
import com.ivanovsky.passnotes.data.repository.file.fake.FakeDatabaseContentFactory.createDatabaseWithExpiredData
import com.ivanovsky.passnotes.data.repository.file.fake.FakeDatabaseContentFactory.createDatabaseWithHistoryData
import com.ivanovsky.passnotes.data.repository.file.fake.FakeDatabaseContentFactory.createDatabaseWithKeyFile
import com.ivanovsky.passnotes.data.repository.file.fake.FakeDatabaseContentFactory.createDatabaseWithOtpData
import com.ivanovsky.passnotes.data.repository.file.fake.FakeDatabaseContentFactory.createDemoDatabase
import com.ivanovsky.passnotes.data.repository.file.fake.FakeDatabaseContentFactory.createKeyFileData
import com.ivanovsky.passnotes.data.repository.file.fake.entity.FakeStorageEntry
import com.ivanovsky.passnotes.util.FileUtils

class FakeFileFactory(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import java.io.ByteArrayOutputStream
import java.io.IOException
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import com.ivanovsky.passnotes.data.entity.FileDescriptor
import com.ivanovsky.passnotes.data.entity.SyncStatus
import com.ivanovsky.passnotes.data.repository.file.entity.FakeStorageEntry
import com.ivanovsky.passnotes.data.repository.file.entity.StorageDestinationType
import com.ivanovsky.passnotes.data.repository.file.entity.StorageDestinationType.LOCAL
import com.ivanovsky.passnotes.data.repository.file.entity.StorageDestinationType.REMOTE
import com.ivanovsky.passnotes.data.repository.file.FSOptions
import com.ivanovsky.passnotes.data.repository.file.FileSystemAuthenticator
import com.ivanovsky.passnotes.data.repository.file.fake.entity.FakeStorageEntry
import com.ivanovsky.passnotes.data.repository.file.fake.entity.StorageDestinationType
import com.ivanovsky.passnotes.data.repository.file.fake.entity.StorageDestinationType.LOCAL
import com.ivanovsky.passnotes.data.repository.file.fake.entity.StorageDestinationType.REMOTE
import com.ivanovsky.passnotes.util.FileUtils.getParentPath
import timber.log.Timber

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import android.content.Context
import com.ivanovsky.passnotes.data.entity.FSAuthority
import com.ivanovsky.passnotes.data.entity.FSCredentials
import com.ivanovsky.passnotes.data.repository.file.AuthType
import com.ivanovsky.passnotes.data.repository.file.FileSystemAuthenticator
import com.ivanovsky.passnotes.data.repository.file.exception.IncorrectUseException
import java.util.concurrent.atomic.AtomicReference

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import com.ivanovsky.passnotes.data.ObserverBus
import com.ivanovsky.passnotes.data.entity.FSAuthority
Expand All @@ -8,8 +8,13 @@ import com.ivanovsky.passnotes.data.entity.FileDescriptor
import com.ivanovsky.passnotes.data.entity.OperationError
import com.ivanovsky.passnotes.data.entity.OperationError.GENERIC_MESSAGE_FAILED_TO_FIND_FILE
import com.ivanovsky.passnotes.data.entity.OperationResult
import com.ivanovsky.passnotes.data.repository.file.delay.ThreadThrottler
import com.ivanovsky.passnotes.data.repository.file.entity.StorageDestinationType
import com.ivanovsky.passnotes.data.repository.file.FSOptions
import com.ivanovsky.passnotes.data.repository.file.FileSystemAuthenticator
import com.ivanovsky.passnotes.data.repository.file.FileSystemProvider
import com.ivanovsky.passnotes.data.repository.file.FileSystemSyncProcessor
import com.ivanovsky.passnotes.data.repository.file.OnConflictStrategy
import com.ivanovsky.passnotes.data.repository.file.fake.delay.ThreadThrottler
import com.ivanovsky.passnotes.data.repository.file.fake.entity.StorageDestinationType
import com.ivanovsky.passnotes.util.FileUtils
import java.io.ByteArrayInputStream
import java.io.FileNotFoundException
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import com.ivanovsky.passnotes.data.ObserverBus
import com.ivanovsky.passnotes.data.entity.ConflictResolutionStrategy
Expand All @@ -14,13 +14,15 @@ import com.ivanovsky.passnotes.data.entity.SyncConflictInfo
import com.ivanovsky.passnotes.data.entity.SyncProgressStatus
import com.ivanovsky.passnotes.data.entity.SyncResolution
import com.ivanovsky.passnotes.data.entity.SyncStatus
import com.ivanovsky.passnotes.data.repository.file.FakeFileFactory.FileUid
import com.ivanovsky.passnotes.data.repository.file.delay.ThreadThrottler
import com.ivanovsky.passnotes.data.repository.file.delay.ThreadThrottler.Type.LONG_DELAY
import com.ivanovsky.passnotes.data.repository.file.delay.ThreadThrottler.Type.MEDIUM_DELAY
import com.ivanovsky.passnotes.data.repository.file.delay.ThreadThrottler.Type.SHORT_DELAY
import com.ivanovsky.passnotes.data.repository.file.entity.StorageDestinationType.LOCAL
import com.ivanovsky.passnotes.data.repository.file.entity.StorageDestinationType.REMOTE
import com.ivanovsky.passnotes.data.repository.file.FileSystemSyncProcessor
import com.ivanovsky.passnotes.data.repository.file.SyncStrategy
import com.ivanovsky.passnotes.data.repository.file.fake.FakeFileFactory.FileUid
import com.ivanovsky.passnotes.data.repository.file.fake.delay.ThreadThrottler
import com.ivanovsky.passnotes.data.repository.file.fake.delay.ThreadThrottler.Type.LONG_DELAY
import com.ivanovsky.passnotes.data.repository.file.fake.delay.ThreadThrottler.Type.MEDIUM_DELAY
import com.ivanovsky.passnotes.data.repository.file.fake.delay.ThreadThrottler.Type.SHORT_DELAY
import com.ivanovsky.passnotes.data.repository.file.fake.entity.StorageDestinationType.LOCAL
import com.ivanovsky.passnotes.data.repository.file.fake.entity.StorageDestinationType.REMOTE
import com.ivanovsky.passnotes.domain.SyncStrategyResolver
import timber.log.Timber

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.data.repository.file
package com.ivanovsky.passnotes.data.repository.file.fake

import java.text.SimpleDateFormat
import java.time.Instant
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.data.repository.file.delay
package com.ivanovsky.passnotes.data.repository.file.fake.delay

interface ThreadThrottler {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.ivanovsky.passnotes.data.repository.file.delay
package com.ivanovsky.passnotes.data.repository.file.fake.delay

import com.ivanovsky.passnotes.data.repository.file.delay.ThreadThrottler.Type
import com.ivanovsky.passnotes.data.repository.file.fake.delay.ThreadThrottler.Type

class ThreadThrottlerImpl : ThreadThrottler {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.ivanovsky.passnotes.data.repository.file.entity
package com.ivanovsky.passnotes.data.repository.file.fake.entity

import com.ivanovsky.passnotes.data.entity.FileDescriptor
import com.ivanovsky.passnotes.data.entity.SyncStatus
import com.ivanovsky.passnotes.data.repository.file.DatabaseContentFactory
import com.ivanovsky.passnotes.data.repository.file.fake.DatabaseContentFactory

data class FakeStorageEntry(
val localFile: FileDescriptor,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.ivanovsky.passnotes.data.repository.file.fake.entity

enum class StorageDestinationType {
LOCAL,
REMOTE
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.domain.biometric
package com.ivanovsky.passnotes.domain.test.biometric

import com.ivanovsky.passnotes.data.crypto.biometric.BiometricDecoder
import javax.crypto.Cipher
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.domain.biometric
package com.ivanovsky.passnotes.domain.test.biometric

import com.ivanovsky.passnotes.data.crypto.biometric.BiometricEncoder
import com.ivanovsky.passnotes.data.crypto.entity.SecretData
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package com.ivanovsky.passnotes.domain.biometric
package com.ivanovsky.passnotes.domain.test.biometric

import androidx.fragment.app.FragmentActivity
import com.ivanovsky.passnotes.R
import com.ivanovsky.passnotes.data.crypto.biometric.BiometricDataCipher
import com.ivanovsky.passnotes.data.crypto.biometric.BiometricDecoder
import com.ivanovsky.passnotes.data.crypto.biometric.BiometricEncoder
import com.ivanovsky.passnotes.domain.ResourceProvider
import com.ivanovsky.passnotes.domain.biometric.BiometricAuthenticator
import com.ivanovsky.passnotes.presentation.core.dialog.ConfirmationDialog
import timber.log.Timber

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.ivanovsky.passnotes.domain.biometric
package com.ivanovsky.passnotes.domain.test.biometric

import com.ivanovsky.passnotes.data.crypto.biometric.BiometricDecoder
import com.ivanovsky.passnotes.data.crypto.biometric.BiometricEncoder
import com.ivanovsky.passnotes.data.crypto.entity.BiometricData
import com.ivanovsky.passnotes.data.entity.OperationError
import com.ivanovsky.passnotes.data.entity.OperationResult
import com.ivanovsky.passnotes.domain.biometric.BiometricInteractor
import java.util.concurrent.atomic.AtomicBoolean

class FakeBiometricInteractorImpl : BiometricInteractor {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import com.ivanovsky.passnotes.data.entity.OperationResult
import com.ivanovsky.passnotes.data.entity.TestToggles
import com.ivanovsky.passnotes.data.entity.UsedFile
import com.ivanovsky.passnotes.data.repository.UsedFileRepository
import com.ivanovsky.passnotes.data.repository.file.DebugFileSystemResolver
import com.ivanovsky.passnotes.data.repository.file.FakeFileSystemProvider
import com.ivanovsky.passnotes.data.repository.file.fake.DebugFileSystemResolver
import com.ivanovsky.passnotes.data.repository.file.fake.FakeFileSystemProvider
import com.ivanovsky.passnotes.data.repository.file.FileSystemResolver
import com.ivanovsky.passnotes.data.repository.settings.Settings
import com.ivanovsky.passnotes.domain.DispatcherProvider
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.ivanovsky.passnotes.injection.modules
package com.ivanovsky.passnotes.injection.modules.debug

import com.ivanovsky.passnotes.data.ObserverBus
import com.ivanovsky.passnotes.data.entity.FSType
import com.ivanovsky.passnotes.data.repository.file.DebugFileSystemResolver
import com.ivanovsky.passnotes.data.repository.file.FakeFileSystemProvider
import com.ivanovsky.passnotes.data.repository.file.fake.DebugFileSystemResolver
import com.ivanovsky.passnotes.data.repository.file.fake.FakeFileSystemProvider
import com.ivanovsky.passnotes.data.repository.file.FileSystemResolver
import com.ivanovsky.passnotes.data.repository.file.delay.ThreadThrottlerImpl
import com.ivanovsky.passnotes.data.repository.file.fake.delay.ThreadThrottlerImpl
import com.ivanovsky.passnotes.injection.GlobalInjector
import org.koin.dsl.module

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ivanovsky.passnotes.injection.modules
package com.ivanovsky.passnotes.injection.modules.debug

import com.ivanovsky.passnotes.domain.test.TestDataInteractor
import com.ivanovsky.passnotes.domain.test.usecases.ResetAppDataUseCase
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.ivanovsky.passnotes.injection.modules
package com.ivanovsky.passnotes.injection.modules.debug

import com.ivanovsky.passnotes.domain.biometric.BiometricAuthenticator
import com.ivanovsky.passnotes.domain.biometric.BiometricInteractor
import com.ivanovsky.passnotes.domain.biometric.FakeBiometricAuthenticatorImpl
import com.ivanovsky.passnotes.domain.biometric.FakeBiometricInteractorImpl
import com.ivanovsky.passnotes.domain.test.biometric.FakeBiometricAuthenticatorImpl
import com.ivanovsky.passnotes.domain.test.biometric.FakeBiometricInteractorImpl
import org.koin.dsl.module

object FakeBiometricModule {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ class NavigationMenuViewModel(
val header = modelFactory.creteHeaderModel()
val items = modelFactory.createMenuItemModels(
isDatabaseOpened = isDbOpened,
isDebugMenuVisible = BuildConfig.DEBUG
isDebugMenuVisible = (BuildConfig.BUILD_TYPE == "debug")
)

return viewModelFactory.createCellViewModels(header + items, eventProvider)
Expand Down

0 comments on commit c3be421

Please sign in to comment.