diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1965ab2541..8c45acb57a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -69,7 +69,6 @@ android { isMinifyEnabled = false isShrinkResources = false - isDebuggable = true isDefault = true @@ -124,15 +123,15 @@ android { } packagingOptions { - //Exclude this files so Jetpack Compose UI tests can build + // Exclude this files so Jetpack Compose UI tests can build resources.excludes.add("META-INF/AL2.0") resources.excludes.add("META-INF/LGPL2.1") - //------------------------------------------------------- + // ------------------------------------------------------- } testOptions { unitTests.all { - //Required by Kotest + // Required by Kotest it.useJUnitPlatform() } } diff --git a/app/src/main/java/com/ivy/wallet/AppModuleDI.kt b/app/src/main/java/com/ivy/wallet/AppModuleDI.kt index 43faf4749c..07163f267e 100644 --- a/app/src/main/java/com/ivy/wallet/AppModuleDI.kt +++ b/app/src/main/java/com/ivy/wallet/AppModuleDI.kt @@ -44,7 +44,6 @@ object AppModuleDI { return SharedPrefs(appContext) } - @Provides @Singleton fun provideIvyRoomDatabase( @@ -83,7 +82,6 @@ object AppModuleDI { fun provideTrnRecurringRuleDao(db: IvyRoomDatabase): PlannedPaymentRuleDao = db.plannedPaymentRuleDao() - @Provides fun provideWalletAccountLogic( transactionDao: TransactionDao, @@ -235,7 +233,6 @@ object AppModuleDI { ) } - @Provides fun loanTransactionsLogic(loanTransactionsCore: LoanTransactionsCore): LoanTransactionsLogic { return LoanTransactionsLogic( @@ -243,4 +240,4 @@ object AppModuleDI { LoanRecord = LTLoanRecordMapper(ltCore = loanTransactionsCore) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/Constants.kt b/app/src/main/java/com/ivy/wallet/Constants.kt index 3bfbdf6de8..7859fcf298 100644 --- a/app/src/main/java/com/ivy/wallet/Constants.kt +++ b/app/src/main/java/com/ivy/wallet/Constants.kt @@ -33,7 +33,7 @@ object Constants { const val URL_GITHUB_SPONSORS = "https://github.com/sponsors/Ivy-Apps" - const val USER_INACTIVITY_TIME_LIMIT = 60 //Time in seconds + const val USER_INACTIVITY_TIME_LIMIT = 60 // Time in seconds const val SWIPE_DOWN_THRESHOLD_OPEN_MORE_MENU = 200 @@ -42,4 +42,4 @@ object Constants { const val SUPPORT_EMAIL = "iliyan.germanov971@gmail.com" const val PAGE_TRANSACTIONS_SIZE = 100 -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/IvyAndroidApp.kt b/app/src/main/java/com/ivy/wallet/IvyAndroidApp.kt index b883913d5a..31d1b4d72e 100644 --- a/app/src/main/java/com/ivy/wallet/IvyAndroidApp.kt +++ b/app/src/main/java/com/ivy/wallet/IvyAndroidApp.kt @@ -25,7 +25,6 @@ class IvyAndroidApp : Application(), Configuration.Provider { lateinit var appContext: Context } - @Inject lateinit var workerFactory: HiltWorkerFactory @@ -49,7 +48,7 @@ fun stringRes( @StringRes id: Int, vararg args: String ): String { - //I don't want strings.xml to handle something different than String at this point + // I don't want strings.xml to handle something different than String at this point return IvyAndroidApp.appContext.getString(id, *args) } @@ -67,4 +66,4 @@ fun refreshWidget(widgetReceiver: Class) { updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids) IvyAndroidApp.appContext.sendBroadcast(updateIntent) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt b/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt index cc6476aba3..56bd629801 100644 --- a/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt +++ b/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt @@ -18,9 +18,7 @@ import com.ivy.wallet.utils.sendToCrashlytics import timber.log.Timber import javax.inject.Inject -class IvyBilling @Inject constructor( - -) { +class IvyBilling @Inject constructor() { companion object { private const val MONTHLY_V1 = "monthly_v1" private const val SIX_MONTH_V1 = "six_month_v1" @@ -69,7 +67,6 @@ class IvyBilling @Inject constructor( } else { onError(billingResult.responseCode, billingResult.debugMessage) } - } billingClient = BillingClient.newBuilder(activity) @@ -214,8 +211,10 @@ class IvyBilling @Inject constructor( .build() ) } - Timber.i("Acknowledge purchase result, code=${acknowledgeResult.responseCode}: ${acknowledgeResult.debugMessage}") + Timber.i( + "Acknowledge purchase result, code=${acknowledgeResult.responseCode}: ${acknowledgeResult.debugMessage}" + ) } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/android/billing/Plan.kt b/app/src/main/java/com/ivy/wallet/android/billing/Plan.kt index 1f5cf9e549..c977cc202b 100644 --- a/app/src/main/java/com/ivy/wallet/android/billing/Plan.kt +++ b/app/src/main/java/com/ivy/wallet/android/billing/Plan.kt @@ -25,7 +25,6 @@ data class Plan( } catch (e: Exception) { return null } - } fun freePeriod(): String = when (skuDetails.freeTrialPeriod) { @@ -41,4 +40,4 @@ data class Plan( val amount: Double, val currency: String ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/android/billing/PlanType.kt b/app/src/main/java/com/ivy/wallet/android/billing/PlanType.kt index 94f32953d7..4444ae906b 100644 --- a/app/src/main/java/com/ivy/wallet/android/billing/PlanType.kt +++ b/app/src/main/java/com/ivy/wallet/android/billing/PlanType.kt @@ -2,4 +2,4 @@ package com.ivy.wallet.android.billing enum class PlanType { MONTHLY, SIX_MONTH, YEARLY, LIFETIME -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/android/notification/IvyNotification.kt b/app/src/main/java/com/ivy/wallet/android/notification/IvyNotification.kt index 0d86904b41..e33f176355 100644 --- a/app/src/main/java/com/ivy/wallet/android/notification/IvyNotification.kt +++ b/app/src/main/java/com/ivy/wallet/android/notification/IvyNotification.kt @@ -6,4 +6,4 @@ import androidx.core.app.NotificationCompat class IvyNotification( context: Context, val ivyChannel: IvyNotificationChannel -) : NotificationCompat.Builder(context, ivyChannel.channelId) \ No newline at end of file +) : NotificationCompat.Builder(context, ivyChannel.channelId) diff --git a/app/src/main/java/com/ivy/wallet/android/notification/IvyNotificationChannel.kt b/app/src/main/java/com/ivy/wallet/android/notification/IvyNotificationChannel.kt index 30810dd670..b773f3c50c 100644 --- a/app/src/main/java/com/ivy/wallet/android/notification/IvyNotificationChannel.kt +++ b/app/src/main/java/com/ivy/wallet/android/notification/IvyNotificationChannel.kt @@ -22,7 +22,6 @@ enum class IvyNotificationChannel( bypassDnd = false ); - @SuppressLint("WrongConstant") fun create(context: Context): NotificationChannel { // Create the NotificationChannel, but only on API 26+ because @@ -40,4 +39,4 @@ enum class IvyNotificationChannel( channel.setBypassDnd(false) return channel } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/android/notification/NotificationService.kt b/app/src/main/java/com/ivy/wallet/android/notification/NotificationService.kt index 2679f00afe..ef99d2bab0 100644 --- a/app/src/main/java/com/ivy/wallet/android/notification/NotificationService.kt +++ b/app/src/main/java/com/ivy/wallet/android/notification/NotificationService.kt @@ -29,7 +29,6 @@ class NotificationService @Inject constructor( return ivyNotification } - fun showNotification( notification: NotificationCompat.Builder, notificationId: Int @@ -53,4 +52,4 @@ class NotificationService @Inject constructor( context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.cancel(notificationId) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/backup/github/GitHubAutoBackupManager.kt b/app/src/main/java/com/ivy/wallet/backup/github/GitHubAutoBackupManager.kt index 01c6b9bd1b..d4277dd87c 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/GitHubAutoBackupManager.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/GitHubAutoBackupManager.kt @@ -24,7 +24,8 @@ class GitHubAutoBackupManager @Inject constructor( fun scheduleAutoBackups() { val dailyWorkRequest = PeriodicWorkRequestBuilder( - 6, TimeUnit.HOURS + 6, + TimeUnit.HOURS ).setInitialDelay(30, TimeUnit.MINUTES) .setConstraints( Constraints.Builder() diff --git a/app/src/main/java/com/ivy/wallet/backup/github/GitHubBackup.kt b/app/src/main/java/com/ivy/wallet/backup/github/GitHubBackup.kt index 9cbe42d9c9..bb4af835ec 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/GitHubBackup.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/GitHubBackup.kt @@ -119,4 +119,4 @@ class GitHubBackup @Inject constructor( get() = "Failed to commit: $error." } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/backup/github/GitHubClient.kt b/app/src/main/java/com/ivy/wallet/backup/github/GitHubClient.kt index 7ade0f67ca..4dbad8ff8a 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/GitHubClient.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/GitHubClient.kt @@ -23,7 +23,6 @@ import kotlinx.serialization.Serializable import timber.log.Timber import javax.inject.Inject - class GitHubClient @Inject constructor( private val httpClient: Lazy, ) { @@ -138,7 +137,6 @@ class GitHubClient @Inject constructor( githubToken(credentials) } }.body() - }) { null } @@ -157,4 +155,4 @@ class GitHubClient @Inject constructor( ): String { return "https://api.github.com/repos/${credentials.owner}/${credentials.repo}/contents/$path" } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/backup/github/GitHubCredentials.kt b/app/src/main/java/com/ivy/wallet/backup/github/GitHubCredentials.kt index 1a9957c2a7..88a97d1244 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/GitHubCredentials.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/GitHubCredentials.kt @@ -4,4 +4,4 @@ data class GitHubCredentials( val owner: String, val repo: String, val gitHubPAT: String, -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/backup/github/GitHubCredentialsManager.kt b/app/src/main/java/com/ivy/wallet/backup/github/GitHubCredentialsManager.kt index 92209fde81..094d24e005 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/GitHubCredentialsManager.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/GitHubCredentialsManager.kt @@ -67,4 +67,3 @@ class GitHubCredentialsManager @Inject constructor( } } } - diff --git a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupCard.kt b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupCard.kt index 224c7f0298..eaa0d67abe 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupCard.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupCard.kt @@ -161,8 +161,11 @@ private fun LastBackup( fontWeight = FontWeight.Bold, style = MaterialTheme.typography.bodyMedium, textAlign = TextAlign.Start, - color = if (backup.indicateDanger) - MaterialTheme.colorScheme.error else LocalContentColor.current + color = if (backup.indicateDanger) { + MaterialTheme.colorScheme.error + } else { + LocalContentColor.current + } ) Spacer(modifier = Modifier.width(12.dp)) val uriHandler = LocalUriHandler.current @@ -217,4 +220,4 @@ private fun GitHubIcon( contentScale = ContentScale.Fit, colorFilter = ColorFilter.tint(LocalContentColor.current) ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupRequirementsCard.kt b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupRequirementsCard.kt index a2a5dc9abc..abed98ec78 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupRequirementsCard.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupRequirementsCard.kt @@ -75,9 +75,9 @@ private fun WarningCardInfo() { val text = buildAnnotatedString { append( "To ensure Ivy Wallet can automatically backup your data you must do the below:" + - "\n" + - "\n" + - "1. Disable " + "\n" + + "\n" + + "1. Disable " ) withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) { @@ -86,7 +86,7 @@ private fun WarningCardInfo() { append( " for this app in the app's settings.\n" + - "2. In some mobile models like Xiaomi and Vivo the " + "2. In some mobile models like Xiaomi and Vivo the " ) withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) { diff --git a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupScreen.kt b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupScreen.kt index 5ab3a92c3d..38ac28990f 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupScreen.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupScreen.kt @@ -230,4 +230,4 @@ private fun ColumnScope.HeaderInfo() { style = MaterialTheme.typography.bodyMedium, textAlign = TextAlign.Start, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupStatus.kt b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupStatus.kt index 32d46ae7c4..4907b711eb 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupStatus.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupStatus.kt @@ -24,7 +24,6 @@ fun GitHubBackupStatus( val status by viewModel.backupStatus.collectAsState() if (status == null) return - when (val stat = status) { is GitHubBackupStatus.Error -> { Spacer(modifier = Modifier.height(8.dp)) @@ -71,4 +70,4 @@ fun GitHubBackupStatus( null -> {} } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupViewModel.kt b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupViewModel.kt index 2b6f08b1ac..e7b90d8fba 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupViewModel.kt @@ -33,7 +33,6 @@ class GitHubBackupViewModel @Inject constructor( private val backupLogic: BackupLogic, ) : ViewModel() { - val enabled = gitHubBackup.enabled val lastBackupInfo: Flow = gitHubBackup.lastBackupTime.map { instant -> @@ -46,8 +45,9 @@ class GitHubBackupViewModel @Inject constructor( indicateDanger = Instant.now().epochSecond - instant.epochSecond > H24_IN_SECONDS, ) } - } else null - + } else { + null + } } val backupStatus = MutableStateFlow(null) @@ -106,7 +106,7 @@ class GitHubBackupViewModel @Inject constructor( } private fun GitHubCredentials.toRepoUrl(): String { - return "https://github.com/${owner}/${repo}" + return "https://github.com/$owner/$repo" } private var backupImportInProgress = false @@ -146,8 +146,7 @@ class GitHubBackupViewModel @Inject constructor( ).show() } - companion object { private const val H24_IN_SECONDS = 86400 } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupViewState.kt b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupViewState.kt index 3a53384929..e2f51b5e72 100644 --- a/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupViewState.kt +++ b/app/src/main/java/com/ivy/wallet/backup/github/ui/GitHubBackupViewState.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.backup.github.ui - sealed interface GitHubBackupStatus { object Loading : GitHubBackupStatus data class Error(val error: String) : GitHubBackupStatus @@ -15,4 +14,4 @@ data class GitHubBackupInput( data class LastBackupInfo( val time: String, val indicateDanger: Boolean -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/data/EncryptedSharedPrefs.kt b/app/src/main/java/com/ivy/wallet/data/EncryptedSharedPrefs.kt index 9d102ea7e3..1d55c60323 100644 --- a/app/src/main/java/com/ivy/wallet/data/EncryptedSharedPrefs.kt +++ b/app/src/main/java/com/ivy/wallet/data/EncryptedSharedPrefs.kt @@ -36,4 +36,4 @@ object EncryptedSharedPrefsModule { object EncryptedPrefsKeys { @Deprecated("Use DataStoreKeys.GITHUB_PAT instead") const val BACKUP_GITHUB_PAT = "github_backup_pat" -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/data/IvyWalletDatastore.kt b/app/src/main/java/com/ivy/wallet/data/IvyWalletDatastore.kt index 923eaec36e..4e21dd9951 100644 --- a/app/src/main/java/com/ivy/wallet/data/IvyWalletDatastore.kt +++ b/app/src/main/java/com/ivy/wallet/data/IvyWalletDatastore.kt @@ -17,4 +17,4 @@ object DatastoreKeys { val GITHUB_PAT = stringPreferencesKey("github_backup_pat") val GITHUB_LAST_BACKUP_EPOCH_SEC = longPreferencesKey("github_backup_last_backup_time_epoch_sec") -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/account/AccTrnsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/account/AccTrnsAct.kt index 80589ee2aa..1ea83ef666 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/account/AccTrnsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/account/AccTrnsAct.kt @@ -32,4 +32,3 @@ class AccTrnsAct @Inject constructor( val range: ClosedTimeRange ) } - diff --git a/app/src/main/java/com/ivy/wallet/domain/action/account/AccountByIdAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/account/AccountByIdAct.kt index 658b124b0a..80a63c0365 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/account/AccountByIdAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/account/AccountByIdAct.kt @@ -11,8 +11,8 @@ class AccountByIdAct @Inject constructor( private val accountDao: AccountDao ) : FPAction() { override suspend fun UUID.compose(): suspend () -> Account? = suspend { - this //accountId + this // accountId } then accountDao::findById then { it?.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/account/AccountsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/account/AccountsAct.kt index 2d6313377f..8253489e02 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/account/AccountsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/account/AccountsAct.kt @@ -12,4 +12,4 @@ class AccountsAct @Inject constructor( override suspend fun Unit.compose(): suspend () -> List = suspend { io { accountDao.findAll().map { it.toDomain() } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/account/CalcAccBalanceAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/account/CalcAccBalanceAct.kt index 4868b66449..ae09b1f50d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/account/CalcAccBalanceAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/account/CalcAccBalanceAct.kt @@ -41,4 +41,4 @@ class CalcAccBalanceAct @Inject constructor( val account: Account, val balance: BigDecimal, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/account/CalcAccIncomeExpenseAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/account/CalcAccIncomeExpenseAct.kt index 3b83dff847..bd246e5f6d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/account/CalcAccIncomeExpenseAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/account/CalcAccIncomeExpenseAct.kt @@ -51,4 +51,4 @@ class CalcAccIncomeExpenseAct @Inject constructor( val account: Account, val incomeExpensePair: IncomeExpensePair ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/budget/BudgetsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/budget/BudgetsAct.kt index 524fabdbda..a28b48c97c 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/budget/BudgetsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/budget/BudgetsAct.kt @@ -12,4 +12,4 @@ class BudgetsAct @Inject constructor( override suspend fun Unit.compose(): suspend () -> List = suspend { budgetDao.findAll() } thenMap { it.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/category/CategoriesAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/category/CategoriesAct.kt index b3cf59b935..90b74382a8 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/category/CategoriesAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/category/CategoriesAct.kt @@ -14,4 +14,4 @@ class CategoriesAct @Inject constructor( categoryDao.findAll() } } thenMap { it.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryByIdAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryByIdAct.kt index 1a5f0516ce..ca5eca4736 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryByIdAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryByIdAct.kt @@ -12,4 +12,4 @@ class CategoryByIdAct @Inject constructor( override suspend fun UUID.compose(): suspend () -> Category? = suspend { categoryDao.findById(this)?.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryIncomeWithAccountFiltersAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryIncomeWithAccountFiltersAct.kt index 9dd79f8be9..5c9134cc85 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryIncomeWithAccountFiltersAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryIncomeWithAccountFiltersAct.kt @@ -18,10 +18,11 @@ class CategoryIncomeWithAccountFiltersAct @Inject constructor( transactions.filter { it.categoryId == category?.id }.filter { - if (accountFilterSet.isEmpty()) + if (accountFilterSet.isEmpty()) { true - else + } else { accountFilterSet.contains(it.accountId) + } } } then { CalcTrnsIncomeExpenseAct.Input( @@ -37,4 +38,4 @@ class CategoryIncomeWithAccountFiltersAct @Inject constructor( val category: Category?, val baseCurrency: String ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryTrnsBetweenAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryTrnsBetweenAct.kt index 5a1a0acf05..b74bb7fbf4 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryTrnsBetweenAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/category/CategoryTrnsBetweenAct.kt @@ -34,4 +34,4 @@ fun actInput( ) = CategoryTrnsBetweenAct.Input( categoryId = categoryId, between = between -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/action/charts/BalanceChartAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/charts/BalanceChartAct.kt index 3f5188dce4..acd855bddc 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/charts/BalanceChartAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/charts/BalanceChartAct.kt @@ -31,4 +31,4 @@ class BalanceChartAct @Inject constructor( val baseCurrency: String, val period: ChartPeriod ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/charts/PieChartAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/charts/PieChartAct.kt index eac301f128..98e89fd5c9 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/charts/PieChartAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/charts/PieChartAct.kt @@ -74,7 +74,7 @@ class PieChartAct @Inject constructor( type = type, baseCurrency = baseCurrency, allCategories = suspend { - categoriesAct(Unit).plus(null) //for unspecified + categoriesAct(Unit).plus(null) // for unspecified }, transactions = suspend { transactions }, accountsUsed = suspend { accountsUsed }, @@ -94,7 +94,6 @@ class PieChartAct @Inject constructor( Pair(incomeExpenseTransfer, categoryAmounts()) } then { - val totalAmount = calculateTotalAmount( type = type, treatTransferAsIncExp = treatTransferAsIncExp, @@ -115,13 +114,13 @@ class PieChartAct @Inject constructor( @SideEffect allAccounts: suspend () -> List ): Pair, Set> { - - val accountsUsed = if (accountIdFilterList.isEmpty()) + val accountsUsed = if (accountIdFilterList.isEmpty()) { allAccounts then ::filterExcluded - else + } else { allAccounts thenFilter { accountIdFilterList.contains(it.id) } + } val accountsUsedIDSet = accountsUsed thenMap { it.id } then { it.toHashSet() } @@ -148,12 +147,13 @@ class PieChartAct @Inject constructor( val catAmtList = allCategories thenMap { category -> val categoryTransactions = asyncIo { - if (addAssociatedTransToCategoryAmt) + if (addAssociatedTransToCategoryAmt) { trans.filter { it.type == type && it.categoryId == category?.id } - else + } else { emptyList() + } } val catIncomeExpense = categoryIncomeWithAccountFiltersAct( @@ -196,18 +196,20 @@ class PieChartAct @Inject constructor( return when (type) { TransactionType.INCOME -> { incExpQuad.income + - if (treatTransferAsIncExp) - incExpQuad.transferIncome - else - BigDecimal.ZERO + if (treatTransferAsIncExp) { + incExpQuad.transferIncome + } else { + BigDecimal.ZERO + } } TransactionType.EXPENSE -> { incExpQuad.expense + - if (treatTransferAsIncExp) - incExpQuad.transferExpense - else - BigDecimal.ZERO + if (treatTransferAsIncExp) { + incExpQuad.transferExpense + } else { + BigDecimal.ZERO + } } else -> BigDecimal.ZERO @@ -230,26 +232,26 @@ class PieChartAct @Inject constructor( @SideEffect categoryAmounts: suspend () -> List ): List { - val incExpQuad = incomeExpenseTransfer() val catAmtList = - if (!showAccountTransfersCategory || incExpQuad.transferIncome == BigDecimal.ZERO && incExpQuad.transferExpense == BigDecimal.ZERO) + if (!showAccountTransfersCategory || incExpQuad.transferIncome == BigDecimal.ZERO && incExpQuad.transferExpense == BigDecimal.ZERO) { categoryAmounts then { it.sortedByDescending { ca -> ca.amount } } - else { - - val amt = if (type == TransactionType.INCOME) + } else { + val amt = if (type == TransactionType.INCOME) { incExpQuad.transferIncome.toDouble() - else + } else { incExpQuad.transferExpense.toDouble() + } val categoryTrans = transactions().filter { it.type == TransactionType.TRANSFER && it.categoryId == null }.filter { - if (type == TransactionType.EXPENSE) + if (type == TransactionType.EXPENSE) { accountIdFilterSet.contains(it.accountId) - else + } else { accountIdFilterSet.contains(it.toAccountId) + } } categoryAmounts then { @@ -280,4 +282,4 @@ class PieChartAct @Inject constructor( ) data class Output(val totalAmount: Double, val categoryAmounts: List) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/exchange/SyncExchangeRatesAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/exchange/SyncExchangeRatesAct.kt index c5fb0203e8..15df82fe3f 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/exchange/SyncExchangeRatesAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/exchange/SyncExchangeRatesAct.kt @@ -101,4 +101,4 @@ class SyncExchangeRatesAct @Inject constructor( data class Response( val eur: Map ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/global/StartDayOfMonthAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/global/StartDayOfMonthAct.kt index 32a918f078..0c871c83e9 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/global/StartDayOfMonthAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/global/StartDayOfMonthAct.kt @@ -17,4 +17,4 @@ class StartDayOfMonthAct @Inject constructor( ivyWalletCtx.setStartDayOfMonth(startDay) startDay } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/global/UpdateStartDayOfMonthAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/global/UpdateStartDayOfMonthAct.kt index 17d25f34ff..8808511456 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/global/UpdateStartDayOfMonthAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/global/UpdateStartDayOfMonthAct.kt @@ -31,4 +31,4 @@ class UpdateStartDayOfMonthAct @Inject constructor( ) Res.Ok(startDay) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/loan/LoanByIdAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/loan/LoanByIdAct.kt index 5ce7c91ff6..e76fb9c280 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/loan/LoanByIdAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/loan/LoanByIdAct.kt @@ -12,4 +12,4 @@ class LoanByIdAct @Inject constructor( override suspend fun UUID.compose(): suspend () -> Loan? = suspend { loanDao.findById(this)?.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/loan/LoansAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/loan/LoansAct.kt index 0351206295..44a897a9f5 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/loan/LoansAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/loan/LoansAct.kt @@ -12,4 +12,4 @@ class LoansAct @Inject constructor( override suspend fun Unit.compose(): suspend () -> List = suspend { loanDao.findAll() } thenMap { it.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/settings/BaseCurrencyAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/settings/BaseCurrencyAct.kt index 3337c65541..cbb8932ebd 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/settings/BaseCurrencyAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/settings/BaseCurrencyAct.kt @@ -10,4 +10,4 @@ class BaseCurrencyAct @Inject constructor( override suspend fun Unit.compose(): suspend () -> String = suspend { io { settingsDao.findFirst().currency } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/settings/CalcBufferDiffAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/settings/CalcBufferDiffAct.kt index 677a849ae8..7ce2c8c1c5 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/settings/CalcBufferDiffAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/settings/CalcBufferDiffAct.kt @@ -14,4 +14,4 @@ class CalcBufferDiffAct @Inject constructor() : FPAction Settings = suspend { io { settingsDao.findFirst() } } then { it.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/settings/UpdateSettingsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/settings/UpdateSettingsAct.kt index 839de8b3b5..62cd769755 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/settings/UpdateSettingsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/settings/UpdateSettingsAct.kt @@ -12,4 +12,4 @@ class UpdateSettingsAct @Inject constructor( settingsDao.save(this.toEntity()) this } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/settings/preference/PreferenceAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/settings/preference/PreferenceAct.kt index 031e1d595d..4d6c932c03 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/settings/preference/PreferenceAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/settings/preference/PreferenceAct.kt @@ -11,4 +11,4 @@ class PreferenceAct

, V> @Inject constructor( ) : FPAction() { override suspend fun P.compose(): suspend () -> V? = this.key asParamTo dataStore::get -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/settings/preference/SetPreferenceAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/settings/preference/SetPreferenceAct.kt index 2f9c5bdb34..698a03fdf4 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/settings/preference/SetPreferenceAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/settings/preference/SetPreferenceAct.kt @@ -17,5 +17,4 @@ class SetPreferenceAct

, V> @Inject constructor( key asParamTo dataStore::remove } } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/transaction/AllTrnsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/transaction/AllTrnsAct.kt index 2a6a35a09f..5e51b81b2e 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/transaction/AllTrnsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/transaction/AllTrnsAct.kt @@ -12,4 +12,4 @@ class AllTrnsAct @Inject constructor( override suspend fun Unit.compose(): suspend () -> List = suspend { transactionDao.findAll() } thenMap { it.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/transaction/CalcTrnsIncomeExpenseAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/transaction/CalcTrnsIncomeExpenseAct.kt index 73e49901b0..c623ab7d6d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/transaction/CalcTrnsIncomeExpenseAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/transaction/CalcTrnsIncomeExpenseAct.kt @@ -44,4 +44,4 @@ class CalcTrnsIncomeExpenseAct @Inject constructor( val baseCurrency: String, val accounts: List ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/transaction/DueTrnsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/transaction/DueTrnsAct.kt index 860caecbde..5e7e6bd95d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/transaction/DueTrnsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/transaction/DueTrnsAct.kt @@ -19,4 +19,4 @@ class DueTrnsAct @Inject constructor( ) } } thenMap { it.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/transaction/HistoryTrnsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/transaction/HistoryTrnsAct.kt index a4726bd5d5..89a6407c6f 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/transaction/HistoryTrnsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/transaction/HistoryTrnsAct.kt @@ -19,4 +19,4 @@ class HistoryTrnsAct @Inject constructor( ) } } thenMap { it.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/transaction/HistoryWithDateDivsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/transaction/HistoryWithDateDivsAct.kt index 5585c24660..b785c1af33 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/transaction/HistoryWithDateDivsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/transaction/HistoryWithDateDivsAct.kt @@ -24,4 +24,4 @@ class HistoryWithDateDivsAct @Inject constructor( val range: ClosedTimeRange, val baseCurrency: String ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnByIdAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnByIdAct.kt index afe9e4ca96..4ab896a066 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnByIdAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnByIdAct.kt @@ -11,8 +11,8 @@ class TrnByIdAct @Inject constructor( private val transactionDao: TransactionDao ) : FPAction() { override suspend fun UUID.compose(): suspend () -> Transaction? = suspend { - this //transactionId + this // transactionId } then transactionDao::findById then { it?.toDomain() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnsWithDateDivsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnsWithDateDivsAct.kt index 9e7c5b5a94..7ee63d020e 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnsWithDateDivsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnsWithDateDivsAct.kt @@ -29,4 +29,4 @@ class TrnsWithDateDivsAct @Inject constructor( val baseCurrency: String, val transactions: List ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnsWithRangeAndAccFiltersAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnsWithRangeAndAccFiltersAct.kt index 14fa3d300b..6ecb6759ac 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnsWithRangeAndAccFiltersAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/transaction/TrnsWithRangeAndAccFiltersAct.kt @@ -23,4 +23,4 @@ class TrnsWithRangeAndAccFiltersAct @Inject constructor( val range: FromToTimeRange, val accountIdFilterSet: Set ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/account/AccountDataAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/account/AccountDataAct.kt index e35718987e..589f0fb9f9 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/account/AccountDataAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/account/AccountDataAct.kt @@ -64,4 +64,4 @@ class AccountDataAct @Inject constructor( val range: ClosedTimeRange, val includeTransfersInCalc: Boolean = false ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/DueTrnsInfoAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/DueTrnsInfoAct.kt index deec0b9c78..8675993c60 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/DueTrnsInfoAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/DueTrnsInfoAct.kt @@ -3,7 +3,6 @@ package com.ivy.wallet.domain.action.viewmodel.home import com.ivy.frp.action.FPAction import com.ivy.frp.lambda import com.ivy.frp.then - import com.ivy.wallet.domain.action.account.AccountByIdAct import com.ivy.wallet.domain.action.exchange.ExchangeAct import com.ivy.wallet.domain.action.exchange.actInput @@ -35,7 +34,7 @@ class DueTrnsInfoAct @Inject constructor( this.dueFilter(it, dateNow) } } then { dueTrns -> - //We have due transactions in different currencies + // We have due transactions in different currencies val exchangeArg = ExchangeTrnArgument( baseCurrency = baseCurrency, exchange = ::actInput then exchangeAct, @@ -69,4 +68,4 @@ class DueTrnsInfoAct @Inject constructor( val dueIncomeExpense: IncomeExpensePair, val dueTrns: List ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/HasTrnsAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/HasTrnsAct.kt index 91f9be157b..96719fc72f 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/HasTrnsAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/HasTrnsAct.kt @@ -12,4 +12,4 @@ class HasTrnsAct @Inject constructor( transactionDao.findAll_LIMIT_1().isNotEmpty() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/OverdueAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/OverdueAct.kt index 8aa0760ea7..f63e50fb52 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/OverdueAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/OverdueAct.kt @@ -39,4 +39,4 @@ class OverdueAct @Inject constructor( val overdue: IncomeExpensePair, val overdueTrns: List ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/ShouldHideBalanceAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/ShouldHideBalanceAct.kt index cd1a9523d5..1d4f6e11b0 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/ShouldHideBalanceAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/ShouldHideBalanceAct.kt @@ -13,4 +13,4 @@ class ShouldHideBalanceAct @Inject constructor( false ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpcomingAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpcomingAct.kt index 071b50cdb4..0dea886022 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpcomingAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpcomingAct.kt @@ -34,4 +34,4 @@ class UpcomingAct @Inject constructor( val upcoming: IncomeExpensePair, val upcomingTrns: List ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpdateAccCacheAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpdateAccCacheAct.kt index d062c38ecc..1d4edd8378 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpdateAccCacheAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpdateAccCacheAct.kt @@ -16,4 +16,4 @@ class UpdateAccCacheAct @Inject constructor( accounts } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpdateCategoriesCacheAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpdateCategoriesCacheAct.kt index d5790f3168..96f2c80b8c 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpdateCategoriesCacheAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/home/UpdateCategoriesCacheAct.kt @@ -16,4 +16,4 @@ class UpdateCategoriesCacheAct @Inject constructor( categories } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/transaction/SaveTrnLocallyAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/transaction/SaveTrnLocallyAct.kt index 9f1c3d8b1b..4290e61ca8 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/transaction/SaveTrnLocallyAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/viewmodel/transaction/SaveTrnLocallyAct.kt @@ -14,4 +14,4 @@ class SaveTrnLocallyAct @Inject constructor( isSynced = false ).toEntity() } then transactionDao::save -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/action/wallet/CalcIncomeExpenseAct.kt b/app/src/main/java/com/ivy/wallet/domain/action/wallet/CalcIncomeExpenseAct.kt index ff6c85c316..344fa88b85 100644 --- a/app/src/main/java/com/ivy/wallet/domain/action/wallet/CalcIncomeExpenseAct.kt +++ b/app/src/main/java/com/ivy/wallet/domain/action/wallet/CalcIncomeExpenseAct.kt @@ -73,4 +73,4 @@ class CalcIncomeExpenseAct @Inject constructor( val accounts: List, val range: ClosedTimeRange, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/AuthProviderType.kt b/app/src/main/java/com/ivy/wallet/domain/data/AuthProviderType.kt index 57c9ca0a2a..478cc4f681 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/AuthProviderType.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/AuthProviderType.kt @@ -5,4 +5,4 @@ import androidx.annotation.Keep @Keep enum class AuthProviderType { IVY, GOOGLE -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/CustomExchangeRateState.kt b/app/src/main/java/com/ivy/wallet/domain/data/CustomExchangeRateState.kt index 9d56a8bfc3..eccc81fc65 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/CustomExchangeRateState.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/CustomExchangeRateState.kt @@ -6,4 +6,4 @@ data class CustomExchangeRateState( val fromCurrencyCode: String? = null, val exchangeRate: Double = 1.0, val convertedAmount: Double? = null -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/data/EmailState.kt b/app/src/main/java/com/ivy/wallet/domain/data/EmailState.kt index 8da7e20778..0d07483956 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/EmailState.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/EmailState.kt @@ -2,4 +2,4 @@ package com.ivy.wallet.domain.data enum class EmailState { FREE, IVY_TAKEN, GOOGLE_TAKEN -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/IntervalType.kt b/app/src/main/java/com/ivy/wallet/domain/data/IntervalType.kt index 800de702ae..c0d686cfd5 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/IntervalType.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/IntervalType.kt @@ -27,4 +27,4 @@ enum class IntervalType { YEAR -> date.plusYears(intervalN) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/IvyWalletCompleteData.kt b/app/src/main/java/com/ivy/wallet/domain/data/IvyWalletCompleteData.kt index c7bdcfcac8..ec93c26c26 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/IvyWalletCompleteData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/IvyWalletCompleteData.kt @@ -24,4 +24,4 @@ data class IvyWalletCompleteData( val transactions: List = emptyList(), @SerializedName("sharedPrefs") val sharedPrefs: HashMap = HashMap() -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/data/LoanType.kt b/app/src/main/java/com/ivy/wallet/domain/data/LoanType.kt index 65085d0f65..9ad531582c 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/LoanType.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/LoanType.kt @@ -5,4 +5,4 @@ import androidx.annotation.Keep @Keep enum class LoanType { BORROW, LEND -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/Reorderable.kt b/app/src/main/java/com/ivy/wallet/domain/data/Reorderable.kt index 8340cddd46..a657297897 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/Reorderable.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/Reorderable.kt @@ -4,4 +4,4 @@ interface Reorderable { fun getItemOrderNum(): Double fun withNewOrderNum(newOrderNum: Double): Reorderable -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/SortOrder.kt b/app/src/main/java/com/ivy/wallet/domain/data/SortOrder.kt index 3abbf77bfb..f0c2184d26 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/SortOrder.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/SortOrder.kt @@ -11,4 +11,4 @@ enum class SortOrder(val orderNum: Int, val displayName: String) { return values().firstOrNull { it.orderNum == orderNum } ?: DEFAULT } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/TransactionHistoryDateDivider.kt b/app/src/main/java/com/ivy/wallet/domain/data/TransactionHistoryDateDivider.kt index 9da2ead2d0..77b142a8a6 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/TransactionHistoryDateDivider.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/TransactionHistoryDateDivider.kt @@ -6,4 +6,4 @@ data class TransactionHistoryDateDivider( val date: LocalDate, val income: Double, val expenses: Double -) : TransactionHistoryItem \ No newline at end of file +) : TransactionHistoryItem diff --git a/app/src/main/java/com/ivy/wallet/domain/data/TransactionHistoryItem.kt b/app/src/main/java/com/ivy/wallet/domain/data/TransactionHistoryItem.kt index c0cdc43998..aa2a952f32 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/TransactionHistoryItem.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/TransactionHistoryItem.kt @@ -1,3 +1,3 @@ package com.ivy.wallet.domain.data -interface TransactionHistoryItem \ No newline at end of file +interface TransactionHistoryItem diff --git a/app/src/main/java/com/ivy/wallet/domain/data/TransactionType.kt b/app/src/main/java/com/ivy/wallet/domain/data/TransactionType.kt index 04254efba3..d9f948fc85 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/TransactionType.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/TransactionType.kt @@ -5,4 +5,4 @@ import androidx.annotation.Keep @Keep enum class TransactionType { INCOME, EXPENSE, TRANSFER -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/analytics/AnalyticsEvent.kt b/app/src/main/java/com/ivy/wallet/domain/data/analytics/AnalyticsEvent.kt index 3cda45af5b..adcde6d699 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/analytics/AnalyticsEvent.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/analytics/AnalyticsEvent.kt @@ -37,14 +37,12 @@ data class AnalyticsEvent( const val PAYWALL_CHOOSE_PLAN_YEARLY = "paywall_choose_plan_yearly" const val PAYWALL_CHOOSE_PLAN_LIFETIME = "paywall_choose_plan_lifetime" - const val PAYWALL_START_BUY = "paywall_start_buy" const val PAYWALL_START_BUY_MONTHLY = "paywall_start_buy_monthly" const val PAYWALL_START_BUY_6MONTH = "paywall_start_buy_6month" const val PAYWALL_START_BUY_YEARLY = "paywall_start_buy_6_yearly" const val PAYWALL_START_BUY_LIFETIME = "paywall_start_buy_lifetime" - const val PAYWALL_ACTIVE_PREMIUM = "paywall_active_premium" } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/Account.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/Account.kt index e0d68f1767..ef07a3ce7d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/Account.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/Account.kt @@ -29,4 +29,4 @@ data class Account( isDeleted = isDeleted, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/Budget.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/Budget.kt index febd9b3b51..921c9ce235 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/Budget.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/Budget.kt @@ -64,8 +64,7 @@ data class Budget( } } - fun validate(): Boolean { return name.isNotEmpty() && amount > 0.0 } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/Category.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/Category.kt index 9e9e00509d..531af6d127 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/Category.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/Category.kt @@ -25,4 +25,4 @@ data class Category( isDeleted = isDeleted, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/ExchangeRate.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/ExchangeRate.kt index 5216bc1fb8..69d739526d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/ExchangeRate.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/ExchangeRate.kt @@ -12,4 +12,4 @@ data class ExchangeRate( currency = currency, rate = rate ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/Loan.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/Loan.kt index 529b8588ba..636ffed5b6 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/Loan.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/Loan.kt @@ -34,7 +34,12 @@ data class Loan( ) fun humanReadableType(): String { - return if (type == LoanType.BORROW) stringRes(R.string.borrowed_uppercase) else stringRes( - R.string.lent_uppercase) + return if (type == LoanType.BORROW) { + stringRes(R.string.borrowed_uppercase) + } else { + stringRes( + R.string.lent_uppercase + ) + } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/LoanRecord.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/LoanRecord.kt index 72fc1c7d3d..630f5f7c18 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/LoanRecord.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/LoanRecord.kt @@ -11,7 +11,7 @@ data class LoanRecord( val dateTime: LocalDateTime, val interest: Boolean = false, val accountId: UUID? = null, - //This is used store the converted amount for currencies which are different from the loan account currency + // This is used store the converted amount for currencies which are different from the loan account currency val convertedAmount: Double? = null, val isSynced: Boolean = false, @@ -31,4 +31,4 @@ data class LoanRecord( isDeleted = isDeleted, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/PlannedPaymentRule.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/PlannedPaymentRule.kt index e6baeca7bb..905ddb30bc 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/PlannedPaymentRule.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/PlannedPaymentRule.kt @@ -39,4 +39,4 @@ data class PlannedPaymentRule( isDeleted = isDeleted, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/Settings.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/Settings.kt index f7e89be0e2..20d90e8868 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/Settings.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/Settings.kt @@ -20,4 +20,4 @@ data class Settings( name = name, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/Transaction.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/Transaction.kt index 275c5332e6..1265bcfb2e 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/Transaction.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/Transaction.kt @@ -8,7 +8,7 @@ import java.time.LocalDateTime import java.util.UUID data class Transaction( - //TODO: Remove default values & introduce Transaction#dummy() method + // TODO: Remove default values & introduce Transaction#dummy() method val accountId: UUID, val type: TransactionType, val amount: BigDecimal, @@ -24,16 +24,15 @@ data class Transaction( val attachmentUrl: String? = null, - //This refers to the loan id that is linked with a transaction + // This refers to the loan id that is linked with a transaction val loanId: UUID? = null, - //This refers to the loan record id that is linked with a transaction + // This refers to the loan record id that is linked with a transaction val loanRecordId: UUID? = null, val isSynced: Boolean = false, val isDeleted: Boolean = false, - val id: UUID = UUID.randomUUID() ) : TransactionHistoryItem { fun toEntity(): TransactionEntity = TransactionEntity( @@ -55,4 +54,4 @@ data class Transaction( isSynced = isSynced, isDeleted = isDeleted ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/core/User.kt b/app/src/main/java/com/ivy/wallet/domain/data/core/User.kt index 03fb6732fb..6dff1faaf1 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/core/User.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/core/User.kt @@ -27,4 +27,4 @@ data class User( ) fun names(): String = firstName + if (lastName != null) " $lastName" else "" -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/preference/NewEditScreenPref.kt b/app/src/main/java/com/ivy/wallet/domain/data/preference/NewEditScreenPref.kt index ee5e7c946e..54b7cf2184 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/preference/NewEditScreenPref.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/preference/NewEditScreenPref.kt @@ -6,4 +6,4 @@ data class NewEditScreenPref( override val value: Boolean = false ) : Preference { override val key = booleanPreferencesKey("exp_new_edit_screen") -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/preference/Preference.kt b/app/src/main/java/com/ivy/wallet/domain/data/preference/Preference.kt index 6d6bf40ce5..40b8ac805e 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/preference/Preference.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/preference/Preference.kt @@ -5,4 +5,4 @@ import androidx.datastore.preferences.core.Preferences interface Preference { val key: Preferences.Key val value: T? -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/data/preference/SmallTrnsPref.kt b/app/src/main/java/com/ivy/wallet/domain/data/preference/SmallTrnsPref.kt index bf7e8dc600..1a9edbfe57 100644 --- a/app/src/main/java/com/ivy/wallet/domain/data/preference/SmallTrnsPref.kt +++ b/app/src/main/java/com/ivy/wallet/domain/data/preference/SmallTrnsPref.kt @@ -6,4 +6,4 @@ data class SmallTrnsPref( override val value: Boolean = false ) : Preference { override val key = booleanPreferencesKey("exp_small_trns") -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/AccountCreator.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/AccountCreator.kt index 6680ede550..d24e5ea8de 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/AccountCreator.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/AccountCreator.kt @@ -67,4 +67,4 @@ class AccountCreator( onRefreshUI() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/BudgetCreator.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/BudgetCreator.kt index d017e6d1fe..3fb3448b2c 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/BudgetCreator.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/BudgetCreator.kt @@ -43,7 +43,6 @@ class BudgetCreator( } } - suspend fun editBudget( updatedBudget: Budget, onRefreshUI: suspend (Budget) -> Unit @@ -80,4 +79,4 @@ class BudgetCreator( e.printStackTrace() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CategoryCreator.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CategoryCreator.kt index 4cbb4c6aa1..a22db0f56d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CategoryCreator.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CategoryCreator.kt @@ -42,7 +42,6 @@ class CategoryCreator( } } - suspend fun editCategory( updatedCategory: Category, onRefreshUI: suspend (Category) -> Unit @@ -62,6 +61,5 @@ class CategoryCreator( } catch (e: Exception) { e.printStackTrace() } - } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt index 182e7ec597..b074504d6f 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt @@ -133,7 +133,7 @@ class CustomerJourneyLogic( }, title = stringRes(R.string.did_you_know), description = "You can see a PieChart for your expenses!" + - " Click the Expense card on the top of the dashboard.", + " Click the Expense card on the top of the dashboard.", cta = stringRes(R.string.expenses_piechart), ctaIcon = R.drawable.ic_custom_bills_s, background = Gradient.solid(Red), @@ -198,7 +198,7 @@ class CustomerJourneyLogic( }, title = "GitHub auto-backups", description = "Keep you data safe! Ivy Wallet can perform an automatic daily backup" + - " of your data in a private GitHub repo of your choice.", + " of your data in a private GitHub repo of your choice.", cta = "Enable", ctaIcon = R.drawable.github_logo, background = Gradient.solid(Blue3), @@ -246,7 +246,7 @@ class CustomerJourneyLogic( trnCount >= 28 }, description = "It looks like that you're enjoying Ivy Wallet! " + - "If you haven't yet, feel free join our invite-only Ivy Telegram Community and make our app better :)", + "If you haven't yet, feel free join our invite-only Ivy Telegram Community and make our app better :)", title = "Ivy Community", cta = "Join now", ctaIcon = R.drawable.ic_telegram_24dp, @@ -259,7 +259,6 @@ class CustomerJourneyLogic( } } - @Preview @Composable private fun PreviewAdjustBalanceCard() { @@ -391,7 +390,3 @@ private fun PreviewIvyWallet_gitHubBackups() { ) } } - - - - diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LoanCreator.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LoanCreator.kt index a0692aa916..48c408b65a 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LoanCreator.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LoanCreator.kt @@ -51,7 +51,6 @@ class LoanCreator( return loanId } - suspend fun edit( updatedItem: Loan, onRefreshUI: suspend (Loan) -> Unit @@ -88,4 +87,4 @@ class LoanCreator( e.printStackTrace() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LoanRecordCreator.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LoanRecordCreator.kt index f7e58f4416..86a09367ff 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LoanRecordCreator.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LoanRecordCreator.kt @@ -47,7 +47,6 @@ class LoanRecordCreator( return null } - suspend fun edit( updatedItem: LoanRecord, onRefreshUI: suspend (LoanRecord) -> Unit @@ -83,4 +82,4 @@ class LoanRecordCreator( e.printStackTrace() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LogoutLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LogoutLogic.kt index 4ace30aab3..da06b26a97 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LogoutLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/LogoutLogic.kt @@ -24,7 +24,6 @@ class LogoutLogic( } suspend fun cloudLogout() { - - navigation.navigateTo(Main); + navigation.navigateTo(Main) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PaywallLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PaywallLogic.kt index 0a41f36566..f086145d2f 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PaywallLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PaywallLogic.kt @@ -70,7 +70,6 @@ class PaywallLogic @Inject constructor( null } - } suspend fun protectAddWithPaywall( @@ -122,7 +121,7 @@ class PaywallLogic @Inject constructor( ): PaywallReason? { return ioThread { if (addAccount) { - val accountsCount = accountDao.findAll().size + 1 //+1 for the account being added + val accountsCount = accountDao.findAll().size + 1 // +1 for the account being added if (accountsCount > Constants.FREE_ACCOUNTS) { return@ioThread PaywallReason.ACCOUNTS } @@ -130,7 +129,7 @@ class PaywallLogic @Inject constructor( if (addCategory) { val categoriesCount = - categoryDao.findAll().size + 1 //+1 for the category being added + categoryDao.findAll().size + 1 // +1 for the category being added if (categoriesCount > Constants.FREE_CATEGORIES) { return@ioThread PaywallReason.CATEGORIES } @@ -138,7 +137,7 @@ class PaywallLogic @Inject constructor( if (addBudget) { val budgetsCount = - budgetDao.findAll().size + 1 //+1 for the item being added + budgetDao.findAll().size + 1 // +1 for the item being added if (budgetsCount > Constants.FREE_BUDGETS) { return@ioThread PaywallReason.BUDGETS } @@ -146,7 +145,7 @@ class PaywallLogic @Inject constructor( if (addLoan) { val loansCount = - loanDao.findAll().size + 1 //+1 for the item being added + loanDao.findAll().size + 1 // +1 for the item being added if (loansCount > Constants.FREE_LOANS) { return@ioThread PaywallReason.LOANS } @@ -156,7 +155,6 @@ class PaywallLogic @Inject constructor( } } - suspend fun processPurchases( purchases: List, onActivePurchase: (Purchase) -> Unit = {} @@ -171,4 +169,4 @@ class PaywallLogic @Inject constructor( ) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PlannedPaymentsGenerator.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PlannedPaymentsGenerator.kt index eaea1fc220..41fd3b9411 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PlannedPaymentsGenerator.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PlannedPaymentsGenerator.kt @@ -15,7 +15,7 @@ class PlannedPaymentsGenerator @Inject constructor( } suspend fun generate(rule: PlannedPaymentRule) { - //delete all not happened transactions + // delete all not happened transactions transactionDao.flagDeletedByRecurringRuleIdAndNoDateTime( recurringRuleId = rule.id ) @@ -51,10 +51,10 @@ class PlannedPaymentsGenerator @Inject constructor( } if (trnsToSkip > 0) { - //skip first N happened transactions + // skip first N happened transactions trnsToSkip-- } else { - //generate transaction + // generate transaction generateTransaction( rule = rule, dueDate = date @@ -88,5 +88,4 @@ class PlannedPaymentsGenerator @Inject constructor( ).toEntity() ) } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PlannedPaymentsLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PlannedPaymentsLogic.kt index cb2407097d..2956c19d2b 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PlannedPaymentsLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PlannedPaymentsLogic.kt @@ -225,4 +225,4 @@ class PlannedPaymentsLogic @Inject constructor( onUpdateUI(paidTransactions) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PreloadDataLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PreloadDataLogic.kt index 0008da514c..729cb4d891 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PreloadDataLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/PreloadDataLogic.kt @@ -20,7 +20,7 @@ class PreloadDataLogic( var categoryOrderNum = 0.0 fun shouldPreloadData(accounts: List): Boolean { - //Preload data only if the user has less than 2 accounts + // Preload data only if the user has less than 2 accounts return accounts.size < 2 } @@ -251,7 +251,4 @@ class PreloadDataLogic( ), ) ) - - } - diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/SmartTitleSuggestionsLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/SmartTitleSuggestionsLogic.kt index 10e5aab77a..13a787aa4b 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/SmartTitleSuggestionsLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/SmartTitleSuggestionsLogic.kt @@ -26,28 +26,28 @@ class SmartTitleSuggestionsLogic( val suggestions = mutableSetOf() if (title != null && title.isNotEmpty()) { - //suggest by title - val suggestionsByTitle = transactionDao.findAllByTitleMatchingPattern("${title}%") + // suggest by title + val suggestionsByTitle = transactionDao.findAllByTitleMatchingPattern("$title%") .map { it.toDomain() } .extractUniqueTitles() .sortedByMostUsedFirst { - transactionDao.countByTitleMatchingPattern("${it}%") + transactionDao.countByTitleMatchingPattern("$it%") } suggestions.addAll(suggestionsByTitle) } if (categoryId != null) { - //suggest by category - //all titles used for the specific category - //ordered by N times used + // suggest by category + // all titles used for the specific category + // ordered by N times used val suggestionsByCategory = transactionDao .findAllByCategory( categoryId = categoryId ) .map { it.toDomain() } - //exclude already suggested suggestions so they're ordered by priority at the end + // exclude already suggested suggestions so they're ordered by priority at the end .extractUniqueTitles(excludeSuggestions = suggestions) .sortedByMostUsedFirst { transactionDao.countByTitleMatchingPatternAndCategoryId( @@ -59,18 +59,17 @@ class SmartTitleSuggestionsLogic( suggestions.addAll(suggestionsByCategory) } - if (suggestions.size < SUGGESTIONS_LIMIT && accountId != null) { - //last resort, suggest by account - //all titles used for the specific account - //ordered by N times used + // last resort, suggest by account + // all titles used for the specific account + // ordered by N times used val suggestionsByAccount = transactionDao .findAllByAccount( accountId = accountId ) .map { it.toDomain() } - //exclude already suggested suggestions so they're ordered by priority at the end + // exclude already suggested suggestions so they're ordered by priority at the end .extractUniqueTitles(excludeSuggestions = suggestions) .sortedByMostUsedFirst { transactionDao.countByTitleMatchingPatternAndAccountId( @@ -114,4 +113,4 @@ private suspend fun Set.sortedByMostUsedFirst(countUses: suspend (String .toSet() return sortedSuggestions -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/WalletAccountLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/WalletAccountLogic.kt index e3dc661147..f43813d5d8 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/WalletAccountLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/WalletAccountLogic.kt @@ -31,7 +31,7 @@ class WalletAccountLogic( adjustTransactionTitle: String = "Adjust balance", isFiat: Boolean? = null, - trnIsSyncedFlag: Boolean = false, //TODO: Remove this once Bank Integration trn sync is properly implemented + trnIsSyncedFlag: Boolean = false, // TODO: Remove this once Bank Integration trn sync is properly implemented ) { val ab = actualBalance ?: calculateAccountBalance(account) val diff = ab - newBalance @@ -39,7 +39,7 @@ class WalletAccountLogic( val finalDiff = if (isFiat == true && abs(diff) < 0.009) 0.0 else diff when { finalDiff < 0 -> { - //add income + // add income transactionDao.save( Transaction( type = TransactionType.INCOME, @@ -53,7 +53,7 @@ class WalletAccountLogic( ) } finalDiff > 0 -> { - //add expense + // add expense transactionDao.save( Transaction( type = TransactionType.EXPENSE, @@ -93,7 +93,7 @@ class WalletAccountLogic( ) .sumOf { it.amount.toDouble() } .plus( - //transfers in + // transfers in transactionDao.findAllTransfersToAccount(account.id) .map { it.toDomain() } .filterHappenedTransactions( @@ -114,7 +114,7 @@ class WalletAccountLogic( ) .sumOf { it.amount.toDouble() } .plus( - //transfer out + // transfer out transactionDao.findAllByTypeAndAccount( type = TransactionType.TRANSFER, accountId = account.id @@ -132,7 +132,7 @@ class WalletAccountLogic( ): List { return this.filter { it.dateTime != null && - (before == null || it.dateTime.isBefore(before)) + (before == null || it.dateTime.isBefore(before)) } } @@ -188,7 +188,6 @@ class WalletAccountLogic( .filterUpcoming() } - suspend fun overdue(account: Account, range: FromToTimeRange): List { return transactionDao.findAllDueToBetweenByAccount( accountId = account.id, @@ -198,4 +197,4 @@ class WalletAccountLogic( .map { it.toDomain() } .filterOverdue() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/WalletCategoryLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/WalletCategoryLogic.kt index 94d5d8ec89..4d397fa865 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/WalletCategoryLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/WalletCategoryLogic.kt @@ -48,7 +48,7 @@ class WalletCategoryLogic( when (it.type) { TransactionType.INCOME -> amount TransactionType.EXPENSE -> -amount - TransactionType.TRANSFER -> 0.0 //TODO: Transfer zero operation + TransactionType.TRANSFER -> 0.0 // TODO: Transfer zero operation } } } @@ -112,7 +112,6 @@ class WalletCategoryLogic( ) } - suspend fun calculateCategoryExpenses( expenseTransactions: List, accountFilterSet: Set = emptySet() @@ -160,7 +159,6 @@ class WalletCategoryLogic( ) } - suspend fun historyByCategoryAccountWithDateDividers( category: Category, range: FromToTimeRange, @@ -184,7 +182,6 @@ class WalletCategoryLogic( accountFilterSet: Set = emptySet(), transactions: List = emptyList() ): List { - val trans = transactions.ifEmpty { transactionDao .findAllByCategoryAndBetween( @@ -212,7 +209,6 @@ class WalletCategoryLogic( ) } - suspend fun calculateUpcomingIncomeByCategory(category: Category, range: FromToTimeRange): Double { return upcomingByCategory(category = category, range = range) .filter { it.type == TransactionType.INCOME } @@ -312,7 +308,6 @@ class WalletCategoryLogic( ) } - suspend fun overdueByCategory(category: Category, range: FromToTimeRange): List { return transactionDao.findAllDueToBetweenByCategory( categoryId = category.id, @@ -331,5 +326,4 @@ class WalletCategoryLogic( .map { it.toDomain() } .filterOverdue() } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVImporter.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVImporter.kt index 1db5a117c7..2d04956c1f 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVImporter.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVImporter.kt @@ -58,9 +58,8 @@ class CSVImporter @Inject constructor( } override fun validate(line: String?) { - //do nothing + // do nothing } - }) .withRowValidator(object : RowValidator { override fun isValid(row: Array?): Boolean { @@ -68,7 +67,7 @@ class CSVImporter @Inject constructor( } override fun validate(row: Array?) { - //do nothing + // do nothing } }) .build() @@ -94,8 +93,11 @@ class CSVImporter @Inject constructor( // Example: Financisto separates in and out transfers val joinResult = rowMapping.joinTransactions( rows.mapIndexedNotNull { index, row -> - val progressPercent = if (rowsCount > 0) - index / rowsCount.toDouble() else 0.0 + val progressPercent = if (rowsCount > 0) { + index / rowsCount.toDouble() + } else { + 0.0 + } onProgress(progressPercent / 2) val transaction = mapToTransaction( @@ -107,7 +109,7 @@ class CSVImporter @Inject constructor( if (transaction == null) { failedRows.add( CSVRow( - index = index + 2, //+ 1 because we skip Header and +1 because they don't start from zero + index = index + 2, // + 1 because we skip Header and +1 because they don't start from zero content = row ) ) @@ -119,8 +121,11 @@ class CSVImporter @Inject constructor( val transactions = joinResult.transactions for ((index, transaction) in transactions.withIndex()) { - val progressPercent = if (rowsCount > 0) - index / transactions.size.toDouble() else 0.0 + val progressPercent = if (rowsCount > 0) { + index / transactions.size.toDouble() + } else { + 0.0 + } onProgress(0.5 + progressPercent / 2) transactionDao.save(transaction.toEntity()) } @@ -153,7 +158,9 @@ class CSVImporter @Inject constructor( icon = row.extract(rowMapping.toAccountIcon), orderNum = row.extract(rowMapping.toAccountOrderNum)?.toDoubleOrNull() ) - } else null + } else { + null + } val csvAmount = if (type != TransactionType.TRANSFER) { mapAmount(row.extract(rowMapping.amount)) @@ -163,14 +170,15 @@ class CSVImporter @Inject constructor( val amount = csvAmount.absoluteValue if (amount <= 0) { - //Cannot save transactions with zero amount + // Cannot save transactions with zero amount return null } val toAmount = if (type == TransactionType.TRANSFER) { mapAmount(row.extract(rowMapping.toAmount)) - } else null - + } else { + null + } val dateTime = mapDate( rowMapping = rowMapping, @@ -186,7 +194,7 @@ class CSVImporter @Inject constructor( dateString = row.extract(rowMapping.dueDate) ) if (dateTime == null && dueDate == null) { - //Cannot save transactions without any date + // Cannot save transactions without any date return null } @@ -209,7 +217,6 @@ class CSVImporter @Inject constructor( val description = row.extract(rowMapping.description) val id = mapId(row.extract(rowMapping.id)) - return rowMapping.transformTransaction( Transaction( id = id, @@ -233,8 +240,8 @@ class CSVImporter @Inject constructor( row: List, rowMapping: RowMapping ): TransactionType? { - //Return Expense for intentionally set Type mapping to null - //Example: Fortune City + // Return Expense for intentionally set Type mapping to null + // Example: Fortune City if (rowMapping.type == null) return TransactionType.EXPENSE val type = row.extract(rowMapping.type) ?: return null @@ -294,7 +301,7 @@ class CSVImporter @Inject constructor( "MM/dd/yyyy HH:mm:ss", "dd/MM/yyyy h:mm a", - //Fortune City Date variations with 24-h + // Fortune City Date variations with 24-h "d/M/yyyy HH:mm", "d/MM/yyyy HH:mm", "dd/M/yyyy HH:mm", @@ -304,7 +311,7 @@ class CSVImporter @Inject constructor( "MM/d/yyyy HH:mm", "MM/dd/yyyy HH:mm", - //Fortune City Date variations with 12-h (am/pm) + // Fortune City Date variations with 12-h (am/pm) "d/M/yyyy h:mm a", "d/MM/yyyy h:mm a", "dd/M/yyyy h:mm a", @@ -314,7 +321,7 @@ class CSVImporter @Inject constructor( "MM/d/yyyy h:mm a", "MM/dd/yyyy h:mm a", - //Fortune City Date with "-" variations with 24-h + // Fortune City Date with "-" variations with 24-h "d-M-yyyy HH:mm", "d-MM-yyyy HH:mm", "dd-M-yyyy HH:mm", @@ -324,7 +331,7 @@ class CSVImporter @Inject constructor( "MM-d-yyyy HH:mm", "MM-dd-yyyy HH:mm", - //Fortune City Date with "-" variations with 12-h (am/pm) + // Fortune City Date with "-" variations with 12-h (am/pm) "d-M-yyyy h:mm a", "d-MM-yyyy h:mm a", "dd-M-yyyy h:mm a", @@ -334,7 +341,7 @@ class CSVImporter @Inject constructor( "MM-d-yyyy h:mm a", "MM-dd-yyyy h:mm a", - //More Fortune City Date formats + // More Fortune City Date formats "dd-MM-yy H:mm", "dd-MM-yy HH:mm", "MM-dd-yy H:mm", @@ -382,7 +389,7 @@ class CSVImporter @Inject constructor( } Timber.e("Import: Cannot parse $dateString") - //As a fallback set all transactions 1 year before now + // As a fallback set all transactions 1 year before now return timeNowUTC() .minusYears(1) } @@ -422,7 +429,7 @@ class CSVImporter @Inject constructor( return existingAccount } - //create new account + // create new account val colorArgb = color ?: when { accountNameString.toLowerCaseLocal().contains("cash") -> { Green @@ -465,7 +472,6 @@ class CSVImporter @Inject constructor( } catch (e: Exception) { baseCurrency } - } private suspend fun mapCategory( @@ -483,7 +489,7 @@ class CSVImporter @Inject constructor( return existingCategory } - //create new category + // create new category val colorArgb = color ?: IVY_COLOR_PICKER_COLORS_FREE.getOrElse(newCategoryColorIndex++) { newCategoryColorIndex = 0 IVY_COLOR_PICKER_COLORS_FREE.first() @@ -513,4 +519,4 @@ class CSVImporter @Inject constructor( private fun List.extract(index: Int?): String? = index?.let { this.getOrNull(index) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVMapper.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVMapper.kt index 8ff9557afb..4be69eebac 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVMapper.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVMapper.kt @@ -42,7 +42,7 @@ class CSVMapper @Inject constructor() { description = 8, dueDate = 9, - id = null //Don't map because it fcks up the sync with Insufficient Permission error + id = null // Don't map because it fcks up the sync with Insufficient Permission error ) private fun ivyMappingV2() = RowMapping( @@ -54,15 +54,15 @@ class CSVMapper @Inject constructor() { accountCurrency = 5, type = 6, transferAmount = 7, - //Transfer Currency - 8 + // Transfer Currency - 8 toAccount = 9, toAmount = 10, toAccountCurrency = 11, - //skip "Receive Currency" + // skip "Receive Currency" description = 12, dueDate = 13, - id = null, //14 - Don't map because it fcks up the sync with Insufficient Permission error + id = null, // 14 - Don't map because it fcks up the sync with Insufficient Permission error accountColor = 15, accountOrderNum = 16, @@ -75,7 +75,7 @@ class CSVMapper @Inject constructor() { toAccountIcon = 23 ) - //Praseto - https://play.google.com/store/apps/details?id=com.realbyteapps.moneymanagerfree&hl=en&gl=US + // Praseto - https://play.google.com/store/apps/details?id=com.realbyteapps.moneymanagerfree&hl=en&gl=US private fun moneyManager() = RowMapping( type = 6, amount = 8, @@ -95,7 +95,7 @@ class CSVMapper @Inject constructor() { id = null ) - //Wallet By BudgetBakers - https://play.google.com/store/apps/details?id=com.droid4you.application.wallet&hl=en&gl=US + // Wallet By BudgetBakers - https://play.google.com/store/apps/details?id=com.droid4you.application.wallet&hl=en&gl=US private fun walletByBudgetBakers() = RowMapping( type = 5, amount = 3, @@ -132,13 +132,13 @@ class CSVMapper @Inject constructor() { category = 2, amount = 3, accountCurrency = 4, - //converted amount = 5 - //currency = 6 + // converted amount = 5 + // currency = 6 title = 7, - defaultTypeToExpense = true, //Monefy doesn't have transaction type, it uses amount +/- sign, + defaultTypeToExpense = true, // Monefy doesn't have transaction type, it uses amount +/- sign, transformTransaction = { transaction, _, csvAmount -> - //Monefy doesn't have transaction type, it uses amount +/- sign + // Monefy doesn't have transaction type, it uses amount +/- sign transaction.copy( type = if (csvAmount > 0) TransactionType.INCOME else TransactionType.EXPENSE ) @@ -165,7 +165,6 @@ class CSVMapper @Inject constructor() { account = 6 ) - private fun fortuneCity() = RowMapping( account = 0, category = 1, @@ -176,8 +175,11 @@ class CSVMapper @Inject constructor() { transformTransaction = { transaction, category, _ -> transaction.copy( - type = if (category?.name?.toLowerCaseLocal() == "income") - TransactionType.INCOME else TransactionType.EXPENSE + type = if (category?.name?.toLowerCaseLocal() == "income") { + TransactionType.INCOME + } else { + TransactionType.EXPENSE + } ) } ) @@ -185,12 +187,12 @@ class CSVMapper @Inject constructor() { private fun blueCoins() = RowMapping( type = 0, date = 1, - //set time = 2 + // set time = 2 title = 3, amount = 4, accountCurrency = 5, - //exchangeRate = 6 - //category group = 7 + // exchangeRate = 6 + // category group = 7 category = 8, account = 9, description = 10 @@ -258,4 +260,4 @@ class CSVMapper @Inject constructor() { ) } ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVNormalizer.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVNormalizer.kt index b39372a153..858084d6ae 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVNormalizer.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/CSVNormalizer.kt @@ -17,4 +17,4 @@ class CSVNormalizer @Inject constructor() { .replace(",", " ") .replace(";", ",") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/ExportCSVLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/ExportCSVLogic.kt index 9fc2511504..5caed28651 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/ExportCSVLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/ExportCSVLogic.kt @@ -74,11 +74,11 @@ class ExportCSVLogic @Inject constructor( } "Date, Title, Category, Account, Amount, Currency, Type, " + - "Transfer Amount, Transfer Currency, To Account, Receive Amount, Receive Currency, " + - "Description, Due Date, ID, Account Color, " + - "Account orderNum, Category Color, Category orderNum, " + - "To Account Color, To Account orderNum, Account Icon, Category Icon, To Account Icon\n" + - csvRows + "Transfer Amount, Transfer Currency, To Account, Receive Amount, Receive Currency, " + + "Description, Due Date, ID, Account Color, " + + "Account orderNum, Category Color, Category orderNum, " + + "To Account Color, To Account orderNum, Account Icon, Category Icon, To Account Icon\n" + + csvRows } } @@ -89,17 +89,17 @@ class ExportCSVLogic @Inject constructor( ): String { val csv = StringBuilder() - //Date + // Date csv.appendValue(dateTime) { append(it.formatLocal(CSV_DATETIME_FORMAT)) } - //Title + // Title csv.appendValue(title) { append(it.escapeCSVString()) } - //Category + // Category csv.appendValue(categoryId) { append(categoryMap[it]?.name?.escapeCSVString() ?: it) } @@ -107,12 +107,12 @@ class ExportCSVLogic @Inject constructor( val account = accountMap[accountId] val currency = account?.currency ?: baseCurrency - //Account + // Account csv.appendValue(accountId) { append(account?.name?.escapeCSVString() ?: it) } - //Amount + // Amount csv.appendValue(amount) { val amountFormatted = when (type) { TransactionType.INCOME -> it @@ -122,68 +122,68 @@ class ExportCSVLogic @Inject constructor( append(amountFormatted) } - //Currency + // Currency csv.appendValue(currency) { append(it) } - //Type + // Type csv.appendValue(type) { append(it.name) } - //Transfer Amount + // Transfer Amount csv.appendValue(if (type == TransactionType.TRANSFER) amount else null) { append(it.toDouble().formatAmountCSV(currency)) } - //Transfer Currency + // Transfer Currency csv.appendValue(if (type == TransactionType.TRANSFER) currency else null) { append(it) } - //To Account + // To Account csv.appendValue(toAccountId) { append(accountMap[it]?.name?.escapeCSVString() ?: it) } val receiveCurrency = toAccountId?.let { accountMap[it]?.currency ?: baseCurrency } - //Receive Amount + // Receive Amount csv.appendValue(toAmount) { append(it.toDouble().formatAmountCSV(receiveCurrency ?: baseCurrency)) } - //Receive Currency + // Receive Currency csv.appendValue(receiveCurrency) { append(it) } - //Description + // Description csv.appendValue(description) { append(it.escapeCSVString()) } - //Due Date + // Due Date csv.appendValue(dueDate) { append(it.formatLocal(CSV_DATETIME_FORMAT)) } - //ID + // ID csv.appendValue(id) { append(it) } - //Account Color + // Account Color csv.appendValue(accountMap[accountId]?.color) { append(it) } - //Account orderNum + // Account orderNum csv.appendValue(accountMap[accountId]?.orderNum) { append(it) } - //Category Color + // Category Color csv.appendValue(categoryId?.let { categoryMap[it]?.color }) { append(it) } @@ -193,27 +193,27 @@ class ExportCSVLogic @Inject constructor( append(it) } - //To Account Color + // To Account Color csv.appendValue(toAccountId?.let { accountMap[it]?.color }) { append(it) } - //To Account orderNum + // To Account orderNum csv.appendValue(toAccountId?.let { accountMap[it]?.orderNum }) { append(it) } - //Account Icon + // Account Icon csv.appendValue(accountMap[accountId]?.icon) { append(it) } - //Category Icon + // Category Icon csv.appendValue(categoryId?.let { categoryMap[it]?.icon }) { append(it) } - //To Account Icon + // To Account Icon csv.appendValue(toAccountId?.let { accountMap[it]?.icon }) { append(it) } @@ -222,11 +222,10 @@ class ExportCSVLogic @Inject constructor( } private fun Double.formatAmountCSV(currency: String): String { - val ivyAmountFormat = this.format(currency) // string result example: 1078.38 - return when(localDecimalSeparator()) { + return when (localDecimalSeparator()) { "." -> { // source string example: 1,078.38 ivyAmountFormat @@ -258,4 +257,4 @@ class ExportCSVLogic @Inject constructor( } append(COMMA) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/IvyFileReader.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/IvyFileReader.kt index 8bd34f5b8f..0260c2d161 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/IvyFileReader.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/IvyFileReader.kt @@ -22,4 +22,4 @@ class IvyFileReader @Inject constructor( charset = charset ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/CSVRow.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/CSVRow.kt index 1b926a8f93..c7d5fa2df0 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/CSVRow.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/CSVRow.kt @@ -3,4 +3,4 @@ package com.ivy.wallet.domain.deprecated.logic.csv.model data class CSVRow( val index: Int, val content: List -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/ImportResult.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/ImportResult.kt index 681e3a2f37..c9025b4641 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/ImportResult.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/ImportResult.kt @@ -6,4 +6,4 @@ data class ImportResult( val accountsImported: Int, val categoriesImported: Int, val failedRows: List, -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/ImportType.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/ImportType.kt index ebfb836b06..db923b63f3 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/ImportType.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/ImportType.kt @@ -120,4 +120,4 @@ enum class ImportType { ) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/RowMapping.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/RowMapping.kt index 5bd01acb35..969eae6908 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/RowMapping.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/csv/model/RowMapping.kt @@ -55,4 +55,4 @@ data class RowMapping( data class JoinResult( val transactions: List, val mergedCount: Int -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/currency/ExchangeRatesLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/currency/ExchangeRatesLogic.kt index 2b05c46905..c1f7cd7faa 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/currency/ExchangeRatesLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/currency/ExchangeRatesLogic.kt @@ -16,7 +16,7 @@ class ExchangeRatesLogic @Inject constructor( suspend fun amountBaseCurrency( plannedPayment: PlannedPaymentRule, baseCurrency: String, - accounts: List //helper + accounts: List // helper ): Double { return amountBaseCurrency( amount = plannedPayment.amount, @@ -29,7 +29,7 @@ class ExchangeRatesLogic @Inject constructor( suspend fun amountBaseCurrency( transaction: Transaction, baseCurrency: String, - accounts: List //helper + accounts: List // helper ): Double { return amountBaseCurrency( amount = transaction.amount.toDouble(), @@ -42,7 +42,7 @@ class ExchangeRatesLogic @Inject constructor( suspend fun toAmountBaseCurrency( transaction: Transaction, baseCurrency: String, - accounts: List //helper + accounts: List // helper ): Double { val amount = transaction.toAmount ?: transaction.amount val toCurrency = accounts.find { it.id == transaction.toAccountId }?.currency @@ -59,10 +59,10 @@ class ExchangeRatesLogic @Inject constructor( amount: Double, accountId: UUID, baseCurrency: String, - accounts: List //helper + accounts: List // helper ): Double { val trnCurrency = accounts.find { it.id == accountId }?.currency - ?: return amount //no conversion + ?: return amount // no conversion return amountBaseCurrency( amount = amount, @@ -77,10 +77,10 @@ class ExchangeRatesLogic @Inject constructor( baseCurrency: String ): Double { return if (amountCurrency != baseCurrency) { - //convert to base currency + // convert to base currency amount / exchangeRate(baseCurrency = baseCurrency, currency = amountCurrency) } else { - //no conversion needed, return amount + // no conversion needed, return amount amount } } @@ -150,4 +150,4 @@ suspend fun Iterable.sumByDoublePlannedInBaseCurrency( accounts = accounts.map { it.toDomain() } ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LTLoanMapper.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LTLoanMapper.kt index 170336fe36..276c948ea3 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LTLoanMapper.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LTLoanMapper.kt @@ -62,12 +62,12 @@ class LTLoanMapper( ) { val accounts = ltCore.fetchAccounts().map { it.toDomain() } computationThread { - if (oldLoanAccountId == newLoanAccountId || oldLoanAccountId.fetchAssociatedCurrencyCode( accounts ) == newLoanAccountId.fetchAssociatedCurrencyCode(accounts) - ) + ) { return@computationThread + } val newLoanRecords = calculateLoanRecords( loanId = loanId, diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LTLoanRecordMapper.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LTLoanRecordMapper.kt index 88cc9ba82a..4bbeefe9fa 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LTLoanRecordMapper.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LTLoanRecordMapper.kt @@ -124,4 +124,4 @@ class LTLoanRecordMapper( accounts = ltCore.fetchAccounts().map { it.toDomain() }, ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LoanTransactionsCore.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LoanTransactionsCore.kt index 8fa7c77909..7ae331bf4e 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LoanTransactionsCore.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LoanTransactionsCore.kt @@ -52,14 +52,18 @@ class LoanTransactionsCore @Inject constructor( loanId: UUID? = null, loanRecordId: UUID? = null ) { - if (loanId == null && loanRecordId == null) + if (loanId == null && loanRecordId == null) { return + } ioThread { val transactions: List = - if (loanId != null) transactionDao.findAllByLoanId(loanId = loanId) - .map { it.toDomain() } else + if (loanId != null) { + transactionDao.findAllByLoanId(loanId = loanId) + .map { it.toDomain() } + } else { listOf(transactionDao.findLoanRecordTransaction(loanRecordId!!)).map { it?.toDomain() } + } transactions.forEach { trans -> deleteTransaction(trans) @@ -81,7 +85,6 @@ class LoanTransactionsCore @Inject constructor( suspend fun baseCurrency(): String = ioThread { baseCurrencyCode ?: settingsDao.findFirst().currency } - suspend fun updateAssociatedTransaction( createTransaction: Boolean, loanRecordId: UUID? = null, @@ -95,8 +98,9 @@ class LoanTransactionsCore @Inject constructor( isLoanRecord: Boolean = false, transaction: Transaction? = null, ) { - if (isLoanRecord && loanRecordId == null) + if (isLoanRecord && loanRecordId == null) { return + } if (createTransaction && transaction != null) { createMainTransaction( @@ -141,13 +145,13 @@ class LoanTransactionsCore @Inject constructor( isLoanRecord: Boolean = false, transaction: Transaction? = null ) { - if (selectedAccountId == null) + if (selectedAccountId == null) { return + } - val transType = if (isLoanRecord) + val transType = if (isLoanRecord) { if (loanType == LoanType.BORROW) TransactionType.EXPENSE else TransactionType.INCOME - else - if (loanType == LoanType.BORROW) TransactionType.INCOME else TransactionType.EXPENSE + } else if (loanType == LoanType.BORROW) TransactionType.INCOME else TransactionType.EXPENSE val transCategoryId: UUID? = getCategoryId(existingCategoryId = categoryId) @@ -186,8 +190,9 @@ class LoanTransactionsCore @Inject constructor( } private suspend fun getCategoryId(existingCategoryId: UUID? = null): UUID? { - if (existingCategoryId != null) + if (existingCategoryId != null) { return existingCategoryId + } val categoryList = ioThread { categoryDao.findAll().map { it.toDomain() } @@ -204,14 +209,17 @@ class LoanTransactionsCore @Inject constructor( color = IVY_COLOR_PICKER_COLORS_FREE[4].toArgb(), icon = "loan" ) - } else null + } else { + null + } - if (addCategoryToDb) + if (addCategoryToDb) { ioThread { loanCategory?.let { categoryDao.save(it.toEntity()) } } + } return loanCategory?.id } @@ -227,7 +235,6 @@ class LoanTransactionsCore @Inject constructor( reCalculateLoanAmount: Boolean = false, ): Double? { return computationThread { - val newLoanRecordCurrency = newLoanRecordAccountID.fetchAssociatedCurrencyCode(accountsList = accounts) @@ -243,8 +250,8 @@ class LoanTransactionsCore @Inject constructor( null } - reCalculateLoanAmount || loanRecordCurrenciesChanged - || oldLonRecordConvertedAmount == null -> { + reCalculateLoanAmount || loanRecordCurrenciesChanged || + oldLonRecordConvertedAmount == null -> { ioThread { exchangeRatesLogic.convertAmount( baseCurrency = baseCurrency(), @@ -306,4 +313,4 @@ class LoanTransactionsCore @Inject constructor( } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LoanTransactionsLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LoanTransactionsLogic.kt index 20c431e0a6..5e41208165 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LoanTransactionsLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/loantrasactions/LoanTransactionsLogic.kt @@ -14,9 +14,9 @@ data class LoanTransactionsLogic( accountsChanged: Boolean = true ) { computationThread { - - if (transaction == null) + if (transaction == null) { return@computationThread + } if (transaction.loanId != null && transaction.loanRecordId == null) { Loan.updateAssociatedLoan( diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateAccountData.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateAccountData.kt index 2def1f6323..db372738bb 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateAccountData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateAccountData.kt @@ -9,4 +9,4 @@ data class CreateAccountData( val icon: String?, val balance: Double, val includeBalance: Boolean = true, -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateBudgetData.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateBudgetData.kt index db29ec3812..930d1401c8 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateBudgetData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateBudgetData.kt @@ -5,4 +5,4 @@ data class CreateBudgetData( val amount: Double, val categoryIdsSerialized: String, val accountIdsSerialized: String -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateCategoryData.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateCategoryData.kt index 95be242474..2841a75502 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateCategoryData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateCategoryData.kt @@ -6,4 +6,4 @@ data class CreateCategoryData( val name: String, val color: Color, val icon: String? -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateLoanData.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateLoanData.kt index 826613c6e8..1979be4934 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateLoanData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateLoanData.kt @@ -11,5 +11,5 @@ data class CreateLoanData( val color: Color, val icon: String?, val account: Account? = null, - val createLoanTransaction :Boolean = false, -) \ No newline at end of file + val createLoanTransaction: Boolean = false, +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateLoanRecordData.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateLoanRecordData.kt index df578879ea..4ccf8e6a2b 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateLoanRecordData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CreateLoanRecordData.kt @@ -11,4 +11,4 @@ data class CreateLoanRecordData( val account: Account? = null, val createLoanRecordTransaction: Boolean = false, val convertedAmount: Double? = null -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CustomerJourneyCardData.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CustomerJourneyCardData.kt index 30aa7f138a..4d78f22ea4 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CustomerJourneyCardData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CustomerJourneyCardData.kt @@ -19,4 +19,4 @@ data class CustomerJourneyCardData( val background: Gradient, val onAction: (Navigation, IvyWalletCtx, RootActivity) -> Unit -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/EditLoanRecordData.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/EditLoanRecordData.kt index 542db83cc9..31bff67a94 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/EditLoanRecordData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/EditLoanRecordData.kt @@ -7,4 +7,4 @@ data class EditLoanRecordData( val originalLoanRecord: LoanRecord, val createLoanRecordTransaction: Boolean = false, val reCalculateLoanAmount: Boolean = false -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/notification/TransactionReminderLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/notification/TransactionReminderLogic.kt index 206879dce3..afaf56a753 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/notification/TransactionReminderLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/notification/TransactionReminderLogic.kt @@ -36,8 +36,9 @@ class TransactionReminderLogic @Inject constructor( } fun scheduleReminder() { - if (!fetchShowNotifications()) + if (!fetchShowNotifications()) { return + } val timeNowLocal = timeNowLocal() val today8PM = timeNowLocal() @@ -45,10 +46,10 @@ class TransactionReminderLogic @Inject constructor( .withMinute(0) val initialDelaySeconds = if (today8PM.isAfter(timeNowLocal)) { - //8 PM is in the future, we can start reminder today + // 8 PM is in the future, we can start reminder today today8PM.toEpochSeconds() - timeNowLocal.toEpochSeconds() } else { - //8 PM has passed, we'll start reminding from tomorrow + // 8 PM has passed, we'll start reminding from tomorrow today8PM.plusDays(1).toEpochSeconds() - timeNowLocal.toEpochSeconds() } @@ -68,4 +69,4 @@ class TransactionReminderLogic @Inject constructor( private fun fetchShowNotifications(): Boolean = sharedPrefs.getBoolean(SharedPrefs.SHOW_NOTIFICATIONS, true) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/notification/TransactionReminderWorker.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/notification/TransactionReminderWorker.kt index 8b9c854d37..a7a94f1a68 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/notification/TransactionReminderWorker.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/notification/TransactionReminderWorker.kt @@ -22,7 +22,8 @@ import kotlinx.coroutines.withContext @HiltWorker class TransactionReminderWorker @AssistedInject constructor( - @Assisted appContext: Context, @Assisted params: WorkerParameters, + @Assisted appContext: Context, + @Assisted params: WorkerParameters, private val transactionDao: TransactionDao, private val notificationService: NotificationService, private val sharedPrefs: SharedPrefs, @@ -33,7 +34,6 @@ class TransactionReminderWorker @AssistedInject constructor( } override suspend fun doWork() = withContext(Dispatchers.IO) { - val transactionsToday = transactionDao.findAllBetween( startDate = dateNowUTC().atStartOfDay(), endDate = dateNowUTC().atEndOfDay() @@ -41,9 +41,9 @@ class TransactionReminderWorker @AssistedInject constructor( val showNotifications = fetchShowNotifications() - //Double check is needed because the user can switch off notifications in settings after it has been scheduled to show notifications for the next day + // Double check is needed because the user can switch off notifications in settings after it has been scheduled to show notifications for the next day if (transactionsToday.size < MINIMUM_TRANSACTIONS_PER_DAY && showNotifications) { - //Have less than 1 two transactions today, remind them + // Have less than 1 two transactions today, remind them val notification = notificationService .defaultIvyNotification( @@ -58,7 +58,7 @@ class TransactionReminderWorker @AssistedInject constructor( 1, RootActivity.getIntent(applicationContext), PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_UPDATE_CURRENT - or PendingIntent.FLAG_IMMUTABLE + or PendingIntent.FLAG_IMMUTABLE ) ) @@ -77,4 +77,4 @@ class TransactionReminderWorker @AssistedInject constructor( private fun fetchShowNotifications(): Boolean = sharedPrefs.getBoolean(SharedPrefs.SHOW_NOTIFICATIONS, true) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/zip/BackupLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/zip/BackupLogic.kt index 353abda43e..89bc83ba95 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/zip/BackupLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/zip/BackupLogic.kt @@ -24,7 +24,6 @@ import java.time.ZoneOffset import java.util.* import javax.inject.Inject - class BackupLogic @Inject constructor( private val accountDao: AccountDao, private val budgetDao: BudgetDao, @@ -72,7 +71,8 @@ class BackupLogic @Inject constructor( val sharedPrefs = it.async { getSharedPrefsData() } val gson = GsonBuilder().registerTypeAdapter( - LocalDateTime::class.java, object : JsonSerializer { + LocalDateTime::class.java, + object : JsonSerializer { @Throws(JsonParseException::class) override fun serialize( src: LocalDateTime?, @@ -81,7 +81,8 @@ class BackupLogic @Inject constructor( ): JsonElement { return JsonPrimitive(src!!.toEpochMilli().toString()) } - }).create() + } + ).create() val completeData = IvyWalletCompleteData( accounts = accounts.await(), @@ -132,8 +133,9 @@ class BackupLogic @Inject constructor( onProgress(0.05) - if (filesArray == null || filesArray.isEmpty()) + if (filesArray == null || filesArray.isEmpty()) { error("Couldn't unzip") + } val filesList = filesArray.toList().filter { hasJsonExtension(it) @@ -141,8 +143,9 @@ class BackupLogic @Inject constructor( onProgress(0.1) - if (filesList.size != 1) + if (filesList.size != 1) { error("Didn't unzip exactly one file.") + } readFile(context, filesList[0].toUri(), Charsets.UTF_16) } catch (e: Exception) { @@ -205,7 +208,8 @@ class BackupLogic @Inject constructor( object : TypeToken() {}.type val gson: Gson = GsonBuilder().registerTypeAdapter( - LocalDateTime::class.java, object : JsonDeserializer { + LocalDateTime::class.java, + object : JsonDeserializer { @Throws(JsonParseException::class) override fun deserialize( json: JsonElement, @@ -216,7 +220,8 @@ class BackupLogic @Inject constructor( Instant.ofEpochMilli(json.asJsonPrimitive.asLong) return LocalDateTime.ofInstant(instant, ZoneOffset.UTC) } - }).create() + } + ).create() return gson.fromJson(data, typeOfObjectsList) } @@ -272,8 +277,10 @@ class BackupLogic @Inject constructor( sharedPrefs.putBoolean( SharedPrefs.TRANSFERS_AS_INCOME_EXPENSE, - (completeData.sharedPrefs[SharedPrefs.TRANSFERS_AS_INCOME_EXPENSE] - ?: "false").toBoolean() + ( + completeData.sharedPrefs[SharedPrefs.TRANSFERS_AS_INCOME_EXPENSE] + ?: "false" + ).toBoolean() ) plannedPayments.await() @@ -298,8 +305,9 @@ class BackupLogic @Inject constructor( val backupAccountsList = completeData.accounts val backupCategoryList = completeData.categories - if (existingAccountsList.isEmpty() && existingCategoryList.isEmpty()) + if (existingAccountsList.isEmpty() && existingCategoryList.isEmpty()) { return@scopedIOThread emptyList() + } val sumAccountList = existingAccountsList + backupAccountsList val sumCategoriesList = existingCategoryList + backupCategoryList @@ -309,10 +317,11 @@ class BackupLogic @Inject constructor( val accountsZero = it.value[0] val accountsFirst = it.value[1] - if (backupAccountsList.contains(accountsZero)) + if (backupAccountsList.contains(accountsZero)) { Pair(accountsZero.id, accountsFirst.id) - else + } else { Pair(accountsFirst.id, accountsZero.id) + } } } @@ -321,10 +330,11 @@ class BackupLogic @Inject constructor( val categoryZero = it.value[0] val categoryFirst = it.value[1] - if (completeData.categories.contains(categoryZero)) + if (completeData.categories.contains(categoryZero)) { Pair(categoryZero.id, categoryFirst.id) - else + } else { Pair(categoryFirst.id, categoryZero.id) + } } } @@ -335,8 +345,9 @@ class BackupLogic @Inject constructor( private fun hasJsonExtension(file: File): Boolean { val name = file.name val lastIndexOf = name.lastIndexOf(".") - if (lastIndexOf == -1) + if (lastIndexOf == -1) { return false + } return (name.substring(lastIndexOf).equals(".json", true)) } @@ -344,4 +355,4 @@ class BackupLogic @Inject constructor( private fun clearCacheDir() { context.cacheDir.deleteRecursively() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/zip/ZipUtils.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/zip/ZipUtils.kt index 8b35ba1015..05198919d3 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/zip/ZipUtils.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/zip/ZipUtils.kt @@ -37,16 +37,19 @@ private fun zip( zip(outStream, file.listFiles()?.toList() ?: emptyList(), includeParentFolder = true) } else { val fileLoc: String = - if (file.parent.isNullOrEmpty() || !includeParentFolder) file.name else (file.parent!!).substring( - file.parent!!.lastIndexOf("/") - ) + "/" + file.name + if (file.parent.isNullOrEmpty() || !includeParentFolder) { + file.name + } else { + (file.parent!!).substring( + file.parent!!.lastIndexOf("/") + ) + "/" + file.name + } outStream.putNextEntry(ZipEntry(fileLoc)) BufferedInputStream(FileInputStream(file)).use { inStream -> inStream.copyTo(outStream) } } - } } @@ -67,14 +70,18 @@ fun unzip(context: Context, zipFile: Uri, location: File) { } private fun unzip(inStream: ZipInputStream, location: File) { - if (location.exists() && !location.isDirectory) + if (location.exists() && !location.isDirectory) { throw IllegalStateException("Location file must be directory or not exist") + } if (!location.isDirectory) location.mkdirs() val locationPath = location.absolutePath.let { - if (!it.endsWith(File.separator)) "$it${File.separator}" - else it + if (!it.endsWith(File.separator)) { + "$it${File.separator}" + } else { + it + } } var zipEntry: ZipEntry? @@ -95,4 +102,4 @@ private fun unzip(inStream: ZipInputStream, location: File) { } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/event/AccountsUpdatedEvent.kt b/app/src/main/java/com/ivy/wallet/domain/event/AccountsUpdatedEvent.kt index 6517a21dc2..3dfbd14451 100644 --- a/app/src/main/java/com/ivy/wallet/domain/event/AccountsUpdatedEvent.kt +++ b/app/src/main/java/com/ivy/wallet/domain/event/AccountsUpdatedEvent.kt @@ -1,4 +1,3 @@ package com.ivy.wallet.domain.event -class AccountsUpdatedEvent { -} \ No newline at end of file +class AccountsUpdatedEvent diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/account/AccountFunctions.kt b/app/src/main/java/com/ivy/wallet/domain/pure/account/AccountFunctions.kt index 755b01446b..e638e35209 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/account/AccountFunctions.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/account/AccountFunctions.kt @@ -6,4 +6,4 @@ fun filterExcluded(accounts: List): List = accounts.filter { it.includeInBalance } fun accountCurrency(account: Account, baseCurrency: String): String = - account.currency ?: baseCurrency \ No newline at end of file + account.currency ?: baseCurrency diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/charts/ChartPeriod.kt b/app/src/main/java/com/ivy/wallet/domain/pure/charts/ChartPeriod.kt index 40c1ec1ea0..9bfae80056 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/charts/ChartPeriod.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/charts/ChartPeriod.kt @@ -37,7 +37,7 @@ enum class ChartPeriod { endOfMonth: LocalDateTime = endOfMonth(dateNowUTC()) ): List { return if (accumulator.size < n) { - //recurse + // recurse lastNMonths( n = n, accumulator = accumulator.plus( @@ -47,13 +47,13 @@ enum class ChartPeriod { ) ), endOfMonth = endOfMonth( - endOfMonth.withDayOfMonth(10) //not sure if this line is needed + endOfMonth.withDayOfMonth(10) // not sure if this line is needed .minusMonths(1) .toLocalDate() ) ) } else { - //end recursion + // end recursion accumulator.reversed() } } @@ -64,7 +64,7 @@ enum class ChartPeriod { endOfDay: LocalDateTime = endOfDayNowUTC() ): List { return if (accumulator.size < n) { - //recurse + // recurse lastNWeeks( n = n, accumulator = accumulator.plus( @@ -76,7 +76,7 @@ enum class ChartPeriod { endOfDay = endOfDay.minusDays(8) ) } else { - //end recursion + // end recursion accumulator.reversed() } } @@ -87,7 +87,7 @@ enum class ChartPeriod { endOfDay: LocalDateTime = endOfDayNowUTC() ): List { return if (accumulator.size < n) { - //recurse + // recurse lastNDays( n = n, accumulator = accumulator.plus( @@ -99,7 +99,7 @@ enum class ChartPeriod { endOfDay = endOfDay.minusDays(1) ) } else { - //end recursion + // end recursion accumulator.reversed() } } @@ -124,4 +124,4 @@ enum class ChartPeriod { private fun LocalDateTime.monthLetter(): String { return this.month.name.first().uppercase() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/charts/ChartsCore.kt b/app/src/main/java/com/ivy/wallet/domain/pure/charts/ChartsCore.kt index a8baaaf298..946a71d230 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/charts/ChartsCore.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/charts/ChartsCore.kt @@ -11,4 +11,4 @@ data class ChartPoint( typealias SingleChartPoint = ChartPoint typealias IncomeExpenseChartPoint = ChartPoint -typealias PairChartPoint = ChartPoint> \ No newline at end of file +typealias PairChartPoint = ChartPoint> diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/charts/WalletCharts.kt b/app/src/main/java/com/ivy/wallet/domain/pure/charts/WalletCharts.kt index 76e4c5de8c..90b2411faf 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/charts/WalletCharts.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/charts/WalletCharts.kt @@ -39,8 +39,10 @@ tailrec suspend fun generateBalanceChart( @SideEffect calcWalletBalance: suspend (ClosedTimeRange) -> BigDecimal ): List { - return if (orderedPeriod.isEmpty()) accumulator else { - //recurse + return if (orderedPeriod.isEmpty()) { + accumulator + } else { + // recurse val toDateTime = orderedPeriod.first().to val previousChartPoint = accumulator.lastOrNull() @@ -62,7 +64,6 @@ tailrec suspend fun generateBalanceChart( } } - suspend fun incomeExpenseChart( walletDAOs: WalletDAOs, baseCurrencyCode: String, @@ -91,8 +92,10 @@ tailrec suspend fun generateIncomeExpenseChart( calculateWalletIncomeExpense: suspend (range: ClosedTimeRange) -> IncomeExpensePair, accumulator: List = emptyList() ): List { - return if (orderedPeriod.isEmpty()) accumulator else { - //recurse + return if (orderedPeriod.isEmpty()) { + accumulator + } else { + // recurse val range = orderedPeriod.first() val chartPoint = ChartPoint( @@ -108,7 +111,6 @@ tailrec suspend fun generateIncomeExpenseChart( } } - suspend fun incomeExpenseCountChart( walletDAOs: WalletDAOs, baseCurrencyCode: String, @@ -137,8 +139,10 @@ tailrec suspend fun generateIncomeExpenseCountChart( calculateWalletIncomeExpenseCount: suspend (range: ClosedTimeRange) -> Pair, accumulator: List = emptyList() ): List { - return if (orderedPeriod.isEmpty()) accumulator else { - //recurse + return if (orderedPeriod.isEmpty()) { + accumulator + } else { + // recurse val range = orderedPeriod.first() val chartPoint = ChartPoint( @@ -152,4 +156,4 @@ tailrec suspend fun generateIncomeExpenseCountChart( accumulator = accumulator.plus(chartPoint) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/data/ClosedTimeRange.kt b/app/src/main/java/com/ivy/wallet/domain/pure/data/ClosedTimeRange.kt index b9859b7340..34db7d7e9f 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/data/ClosedTimeRange.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/data/ClosedTimeRange.kt @@ -25,4 +25,4 @@ data class ClosedTimeRange( from = from, to = to ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/data/IncomeExpensePair.kt b/app/src/main/java/com/ivy/wallet/domain/pure/data/IncomeExpensePair.kt index e42f1bce9f..dc4517f481 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/data/IncomeExpensePair.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/data/IncomeExpensePair.kt @@ -9,4 +9,4 @@ data class IncomeExpensePair( companion object { fun zero(): IncomeExpensePair = IncomeExpensePair(BigDecimal.ZERO, BigDecimal.ZERO) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/data/WalletDAOs.kt b/app/src/main/java/com/ivy/wallet/domain/pure/data/WalletDAOs.kt index 450ed0ea77..d4b05e909e 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/data/WalletDAOs.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/data/WalletDAOs.kt @@ -8,4 +8,4 @@ data class WalletDAOs( val accountDao: AccountDao, val transactionDao: TransactionDao, val exchangeRateDao: ExchangeRateDao -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/exchange/Exchange.kt b/app/src/main/java/com/ivy/wallet/domain/pure/exchange/Exchange.kt index e7d1cb9608..04a169adc2 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/exchange/Exchange.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/exchange/Exchange.kt @@ -17,7 +17,6 @@ data class ExchangeData( val toCurrency: String = baseCurrency, ) - @Pure suspend fun exchange( data: ExchangeData, @@ -39,23 +38,23 @@ suspend fun exchange( when (val baseCurrency = data.baseCurrency.validateCurrency().bind()) { fromCurrency -> { - //exchange from base currency to other currency - //we need the rate from baseCurrency to toCurrency + // exchange from base currency to other currency + // we need the rate from baseCurrency to toCurrency val rateFromTo = validExchangeRate( - baseCurrency = fromCurrency, //fromCurrency = baseCurrency + baseCurrency = fromCurrency, // fromCurrency = baseCurrency toCurrency = toCurrency, retrieveExchangeRate = getExchangeRate ).bind() - //toAmount = fromAmount * rateFromTo + // toAmount = fromAmount * rateFromTo amount * rateFromTo } toCurrency -> { - //exchange from other currency to base currency - //we'll get the rate to + // exchange from other currency to base currency + // we'll get the rate to val rateToFrom = validExchangeRate( - baseCurrency = toCurrency, //toCurrency = baseCurrency + baseCurrency = toCurrency, // toCurrency = baseCurrency toCurrency = fromCurrency, retrieveExchangeRate = getExchangeRate ).bind() @@ -72,8 +71,8 @@ suspend fun exchange( amount / rateToFrom } else -> { - //exchange from other currency to other currency - //that's the only possible case left because we already checked "fromCurrency == toCurrency" + // exchange from other currency to other currency + // that's the only possible case left because we already checked "fromCurrency == toCurrency" val rateBaseFrom = validExchangeRate( baseCurrency = baseCurrency, @@ -87,7 +86,7 @@ suspend fun exchange( retrieveExchangeRate = getExchangeRate ).bind() - //Convert: toBaseCurrency -> toToCurrency + // Convert: toBaseCurrency -> toToCurrency val amountBaseCurrency = amount / rateBaseFrom amountBaseCurrency * rateBaseTo } @@ -106,13 +105,14 @@ suspend fun validExchangeRate( retrieveExchangeRate: suspend (baseCurrency: String, toCurrency: String) -> ExchangeRate?, ): Option = option { retrieveExchangeRate( - baseCurrency, toCurrency + baseCurrency, + toCurrency ).toOption().bind() .validateRate().bind() } @Pure fun ExchangeRate.validateRate(): Option { - //exchange rate which <= 0 is invalid! + // exchange rate which <= 0 is invalid! return if (rate > 0) return Some(rate.toBigDecimal()) else None -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/exchange/ExchangeTrns.kt b/app/src/main/java/com/ivy/wallet/domain/pure/exchange/ExchangeTrns.kt index 922e8dcc4c..1fe806a63d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/exchange/ExchangeTrns.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/exchange/ExchangeTrns.kt @@ -92,4 +92,4 @@ suspend fun exchangeInCurrency( ), transaction.amount ).orNull() ?: BigDecimal.ZERO -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/AccValueFunctions.kt b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/AccValueFunctions.kt index 8b624c86f5..c90cd9e26d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/AccValueFunctions.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/AccValueFunctions.kt @@ -13,22 +13,22 @@ object AccountValueFunctions { accountId: UUID ): BigDecimal = with(transaction) { if (this.accountId == accountId) { - //Account's transactions + // Account's transactions when (type) { TransactionType.INCOME -> amount TransactionType.EXPENSE -> amount.negate() TransactionType.TRANSFER -> { if (toAccountId != accountId) { - //transfer to another account + // transfer to another account amount.negate() } else { - //transfer to self + // transfer to self toAmount.minus(amount) } } } } else { - //potential transfer to account? + // potential transfer to account? toAccountId?.takeIf { it == accountId } ?: return BigDecimal.ZERO toAmount } @@ -38,48 +38,65 @@ object AccountValueFunctions { transaction: Transaction, accountId: UUID ): BigDecimal = with(transaction) { - if (this.accountId == accountId && type == TransactionType.INCOME) - amount else BigDecimal.ZERO + if (this.accountId == accountId && type == TransactionType.INCOME) { + amount + } else { + BigDecimal.ZERO + } } fun transferIncome( transaction: Transaction, accountId: UUID ): BigDecimal = with(transaction) { - if (this.toAccountId == accountId && type == TransactionType.TRANSFER) - toAmount else BigDecimal.ZERO + if (this.toAccountId == accountId && type == TransactionType.TRANSFER) { + toAmount + } else { + BigDecimal.ZERO + } } fun expense( transaction: Transaction, accountId: UUID ): BigDecimal = with(transaction) { - if (this.accountId == accountId && type == TransactionType.EXPENSE) - amount else BigDecimal.ZERO + if (this.accountId == accountId && type == TransactionType.EXPENSE) { + amount + } else { + BigDecimal.ZERO + } } fun transferExpense( transaction: Transaction, accountId: UUID ): BigDecimal = with(transaction) { - if (this.accountId == accountId && type == TransactionType.TRANSFER) - amount else BigDecimal.ZERO + if (this.accountId == accountId && type == TransactionType.TRANSFER) { + amount + } else { + BigDecimal.ZERO + } } - fun incomeCount( transaction: Transaction, accountId: UUID ): BigDecimal = with(transaction) { - if (this.accountId == accountId && type == TransactionType.INCOME) - BigDecimal.ONE else BigDecimal.ZERO + if (this.accountId == accountId && type == TransactionType.INCOME) { + BigDecimal.ONE + } else { + BigDecimal.ZERO + } } fun expenseCount( transaction: Transaction, accountId: UUID ): BigDecimal = with(transaction) { - if (this.accountId == accountId && type == TransactionType.EXPENSE) - BigDecimal.ONE else BigDecimal.ZERO + if (this.accountId == accountId && type == TransactionType.EXPENSE) { + BigDecimal.ONE + } else { + BigDecimal.ZERO + } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/CatValueFunctions.kt b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/CatValueFunctions.kt index b2681c2713..e7bbfa925d 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/CatValueFunctions.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/CatValueFunctions.kt @@ -33,7 +33,9 @@ object CategoryValueFunctions { TransactionType.EXPENSE -> amount.toBaseCurrencyOrZero(arg, accountId).negate() TransactionType.TRANSFER -> BigDecimal.ZERO } - } else BigDecimal.ZERO + } else { + BigDecimal.ZERO + } } suspend fun income( @@ -45,7 +47,9 @@ object CategoryValueFunctions { TransactionType.INCOME -> amount.toBaseCurrencyOrZero(arg, accountId) else -> BigDecimal.ZERO } - } else BigDecimal.ZERO + } else { + BigDecimal.ZERO + } } suspend fun expense( @@ -57,7 +61,9 @@ object CategoryValueFunctions { TransactionType.EXPENSE -> amount.toBaseCurrencyOrZero(arg, accountId) else -> BigDecimal.ZERO } - } else BigDecimal.ZERO + } else { + BigDecimal.ZERO + } } suspend fun incomeCount( @@ -69,7 +75,9 @@ object CategoryValueFunctions { TransactionType.INCOME -> BigDecimal.ONE else -> BigDecimal.ZERO } - } else BigDecimal.ZERO + } else { + BigDecimal.ZERO + } } suspend fun expenseCount( @@ -81,7 +89,9 @@ object CategoryValueFunctions { TransactionType.EXPENSE -> BigDecimal.ONE else -> BigDecimal.ZERO } - } else BigDecimal.ZERO + } else { + BigDecimal.ZERO + } } private suspend fun BigDecimal.toBaseCurrencyOrZero( @@ -101,4 +111,4 @@ object CategoryValueFunctions { val trnCurrency = arg.accounts.find { it.id == accountId }?.currency.toOption() return arg.exchangeToBaseCurrency(trnCurrency, this) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/FoldTransactions.kt b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/FoldTransactions.kt index 376f57ae04..7acfa66f19 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/FoldTransactions.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/FoldTransactions.kt @@ -30,9 +30,9 @@ internal tailrec fun sumTransactionsInternal( valueFunctions: NonEmptyList>, sum: NonEmptyList = nonEmptyListOfZeros(n = valueFunctions.size) ): NonEmptyList { - return if (transactions.isEmpty()) + return if (transactions.isEmpty()) { sum - else + } else { sumTransactionsInternal( valueFunctionArgument = valueFunctionArgument, transactions = transactions.drop(1), @@ -42,6 +42,7 @@ internal tailrec fun sumTransactionsInternal( sumValue + valueFunction(transactions.first(), valueFunctionArgument) } ) + } } @Pure @@ -62,9 +63,9 @@ internal tailrec suspend fun sumTransactionsSuspendInternal( valueFunctions: NonEmptyList>, sum: NonEmptyList = nonEmptyListOfZeros(n = valueFunctions.size) ): NonEmptyList { - return if (transactions.isEmpty()) + return if (transactions.isEmpty()) { sum - else + } else { sumTransactionsSuspendInternal( valueFunctionArgument = valueFunctionArgument, transactions = transactions.drop(1), @@ -74,6 +75,7 @@ internal tailrec suspend fun sumTransactionsSuspendInternal( sumValue + valueFunction(transactions.first(), valueFunctionArgument) } ) + } } suspend fun sumTrns( @@ -86,4 +88,4 @@ suspend fun sumTrns( valueFunctionArgument = argument, valueFunctions = nonEmptyListOf(valueFunction) ).head -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/TrnDateDividers.kt b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/TrnDateDividers.kt index 6e17c38647..b5c1c90a3b 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/TrnDateDividers.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/TrnDateDividers.kt @@ -57,7 +57,7 @@ suspend fun transactionsWithDateDividers( .groupBy { it.dateTime?.convertUTCtoLocal()?.toLocalDate() } .filterKeys { it != null } .toSortedMap { date1, date2 -> - if (date1 == null || date2 == null) return@toSortedMap 0 //this case shouldn't happen + if (date1 == null || date2 == null) return@toSortedMap 0 // this case shouldn't happen (date2.atStartOfDay().toEpochSeconds() - date1.atStartOfDay().toEpochSeconds()).toInt() } .flatMap { (date, transactionsForDate) -> @@ -67,7 +67,6 @@ suspend fun transactionsWithDateDividers( exchange = exchange ) - listOf( TransactionHistoryDateDivider( date = date!!, @@ -84,4 +83,4 @@ suspend fun transactionsWithDateDividers( ), ).plus(transactionsForDate) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/TrnFunctions.kt b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/TrnFunctions.kt index 26e6f1e228..80440ef513 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/TrnFunctions.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/TrnFunctions.kt @@ -45,4 +45,4 @@ fun trnCurrency( val account = accounts.find { it.id == transaction.accountId } ?: return baseCurrency.toOption() return accountCurrency(account, baseCurrency).toOption() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/WalletValueFunctions.kt b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/WalletValueFunctions.kt index 6481deb7cd..31a5cf9ee7 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/transaction/WalletValueFunctions.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/transaction/WalletValueFunctions.kt @@ -43,7 +43,7 @@ object WalletValueFunctions { transaction = this.copy( amount = this.toAmount, accountId = this.toAccountId ?: this.accountId - ), //Do not remove copy() + ), // Do not remove copy() accounts = arg.accounts, baseCurrency = arg.baseCurrency, exchange = arg.exchange @@ -82,4 +82,4 @@ object WalletValueFunctions { else -> BigDecimal.ZERO } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/util/IvyDomainUtils.kt b/app/src/main/java/com/ivy/wallet/domain/pure/util/IvyDomainUtils.kt index 2b1eb487e9..75be57497a 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/util/IvyDomainUtils.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/util/IvyDomainUtils.kt @@ -1,3 +1,3 @@ package com.ivy.wallet.domain.pure.util -fun Double?.nextOrderNum(): Double = this?.plus(1) ?: 0.0 \ No newline at end of file +fun Double?.nextOrderNum(): Double = this?.plus(1) ?: 0.0 diff --git a/app/src/main/java/com/ivy/wallet/domain/pure/util/Utils.kt b/app/src/main/java/com/ivy/wallet/domain/pure/util/Utils.kt index bec0a01b90..9b5ca43193 100644 --- a/app/src/main/java/com/ivy/wallet/domain/pure/util/Utils.kt +++ b/app/src/main/java/com/ivy/wallet/domain/pure/util/Utils.kt @@ -31,4 +31,4 @@ fun nonEmptyListOfZeros(n: Int): NonEmptyList { fun Option.orZero(): BigDecimal { return this.orNull() ?: BigDecimal.ZERO -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/IvyRoomDatabase.kt b/app/src/main/java/com/ivy/wallet/io/persistence/IvyRoomDatabase.kt index 0c0e46ed90..44ffdd7d65 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/IvyRoomDatabase.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/IvyRoomDatabase.kt @@ -7,7 +7,6 @@ import com.ivy.wallet.io.persistence.dao.* import com.ivy.wallet.io.persistence.data.* import com.ivy.wallet.io.persistence.migration.* - @Database( entities = [ AccountEntity::class, TransactionEntity::class, CategoryEntity::class, @@ -54,7 +53,8 @@ abstract class IvyRoomDatabase : RoomDatabase() { return Room .databaseBuilder( applicationContext, - IvyRoomDatabase::class.java, DB_NAME + IvyRoomDatabase::class.java, + DB_NAME ) .addMigrations( Migration105to106_TrnRecurringRules(), @@ -96,4 +96,4 @@ abstract class IvyRoomDatabase : RoomDatabase() { @DeleteColumn(tableName = "transactions", columnName = "seAutoCategoryId") @DeleteColumn(tableName = "categories", columnName = "seCategoryName") class DeleteSEMigration : AutoMigrationSpec -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/RoomTypeConverters.kt b/app/src/main/java/com/ivy/wallet/io/persistence/RoomTypeConverters.kt index bdf3f385b0..5a38b05b9a 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/RoomTypeConverters.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/RoomTypeConverters.kt @@ -55,4 +55,4 @@ class RoomTypeConverters { @TypeConverter fun parseLoanType(value: String?) = value?.let { LoanType.valueOf(it) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/SharedPrefs.kt b/app/src/main/java/com/ivy/wallet/io/persistence/SharedPrefs.kt index 7da746b945..7ef1a6ba65 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/SharedPrefs.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/SharedPrefs.kt @@ -17,7 +17,7 @@ class SharedPrefs(appContext: Context) { const val FCM_TOKEN = "fcm_token" - //Sync + // Sync const val LAST_SYNC_DATE_CATEGORIES = "last_sync_date_categories" const val LAST_SYNC_DATE_BUDGETS = "last_sync_date_budgets" const val LAST_SYNC_DATE_LOANS = "last_sync_date_loans" @@ -26,37 +26,36 @@ class SharedPrefs(appContext: Context) { const val LAST_SYNC_DATE_TRANSACTIONS = "last_sync_date_transactions" const val LAST_SYNC_DATE_PLANNED_PAYMENTS = "last_sync_date_planned_payments" - //----------------------------------------------------------------------------- + // ----------------------------------------------------------------------------- - //Analytics + // Analytics const val ANALYTICS_SESSION_ID = "analytics_session_id" - //------------------------------------------------------------------------------------------ + // ------------------------------------------------------------------------------------------ - //-------------------------------------- UX ------------------------------------------------ + // -------------------------------------- UX ------------------------------------------------ const val LAST_SELECTED_ACCOUNT_ID = "last_selected_account_id" - //-------------------------------------- UX ------------------------------------------------ + // -------------------------------------- UX ------------------------------------------------ const val SESSION_USER_ID = "session_user_id" const val SESSION_AUTH_TOKEN = "session_auth_token" - - //-------------------------------- Bank Integrations temp ---------------------------------- + // -------------------------------- Bank Integrations temp ---------------------------------- const val ENABLE_BANK_SYNC = "enable_bank_sync" - //-------------------------------- Bank Integrations temp ---------------------------------- + // -------------------------------- Bank Integrations temp ---------------------------------- - //----------------------------- App Settings ----------------------------------------------- + // ----------------------------- App Settings ----------------------------------------------- const val APP_LOCK_ENABLED = "lock_app" const val START_DATE_OF_MONTH = "start_date_of_month" const val SHOW_NOTIFICATIONS = "show_notifications" const val HIDE_CURRENT_BALANCE = "hide_current_balance" const val TRANSFERS_AS_INCOME_EXPENSE = "transfers_as_inc_exp" - //----------------------------- App Settings ----------------------------------------------- + // ----------------------------- App Settings ----------------------------------------------- - //-------------------------------- Customer Journey ---------------------------------------- + // -------------------------------- Customer Journey ---------------------------------------- const val _CARD_DISMISSED = "_cj_dismissed" - //-------------------------------- Customer Journey ---------------------------------------- + // -------------------------------- Customer Journey ---------------------------------------- - //----------------------------- Others ----------------------------------------------- + // ----------------------------- Others ----------------------------------------------- const val CATEGORY_SORT_ORDER = "categorySortOrder" const val DATA_BACKUP_COMPLETED = "data_backup_completed" } @@ -164,4 +163,4 @@ class SharedPrefs(appContext: Context) { fun removeAll() { preferences.edit().clear().apply() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/AccountDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/AccountDao.kt index 8dee90628c..e36d864745 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/AccountDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/AccountDao.kt @@ -38,4 +38,4 @@ interface AccountDao { @Query("SELECT MAX(orderNum) FROM accounts") suspend fun findMaxOrderNum(): Double? -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/BudgetDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/BudgetDao.kt index b04d7e2ae6..2248821f71 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/BudgetDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/BudgetDao.kt @@ -35,4 +35,4 @@ interface BudgetDao { @Query("SELECT MAX(orderId) FROM budgets") suspend fun findMaxOrderNum(): Double? -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/CategoryDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/CategoryDao.kt index 5055935921..4bcc79a249 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/CategoryDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/CategoryDao.kt @@ -35,4 +35,4 @@ interface CategoryDao { @Query("SELECT MAX(orderNum) FROM categories") suspend fun findMaxOrderNum(): Double? -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/ExchangeRateDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/ExchangeRateDao.kt index 0429bd8052..50e50b7d96 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/ExchangeRateDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/ExchangeRateDao.kt @@ -32,4 +32,4 @@ interface ExchangeRateDao { @Query("DELETE FROM exchange_rates") suspend fun deleteALl() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/LoanDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/LoanDao.kt index e4cfd76991..4e4e5c0c40 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/LoanDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/LoanDao.kt @@ -35,4 +35,4 @@ interface LoanDao { @Query("SELECT MAX(orderNum) FROM loans") suspend fun findMaxOrderNum(): Double? -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/LoanRecordDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/LoanRecordDao.kt index b0c01b911d..d25e7461c4 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/LoanRecordDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/LoanRecordDao.kt @@ -38,4 +38,4 @@ interface LoanRecordDao { @Query("DELETE FROM loan_records") suspend fun deleteAll() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/PlannedPaymentRuleDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/PlannedPaymentRuleDao.kt index 23d6492392..0f3d8b343d 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/PlannedPaymentRuleDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/PlannedPaymentRuleDao.kt @@ -24,7 +24,9 @@ interface PlannedPaymentRuleDao { deleted: Boolean = false ): List - @Query("SELECT * FROM planned_payment_rules WHERE isDeleted = 0 AND oneTime = :oneTime ORDER BY amount DESC, startDate ASC") + @Query( + "SELECT * FROM planned_payment_rules WHERE isDeleted = 0 AND oneTime = :oneTime ORDER BY amount DESC, startDate ASC" + ) suspend fun findAllByOneTime(oneTime: Boolean): List @Query("SELECT * FROM planned_payment_rules WHERE id = :id AND isDeleted = 0") @@ -44,4 +46,4 @@ interface PlannedPaymentRuleDao { @Query("SELECT COUNT(*) FROM planned_payment_rules WHERE isDeleted = 0 ") suspend fun countPlannedPayments(): Long -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/SettingsDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/SettingsDao.kt index 81b24813c2..8e7d74ae89 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/SettingsDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/SettingsDao.kt @@ -29,4 +29,4 @@ interface SettingsDao { @Query("DELETE FROM settings") suspend fun deleteAll() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/TransactionDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/TransactionDao.kt index 1c4f3a3ffc..2671e24d13 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/TransactionDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/TransactionDao.kt @@ -23,14 +23,17 @@ interface TransactionDao { @Query("SELECT * FROM transactions WHERE isDeleted = 0 LIMIT 1") suspend fun findAll_LIMIT_1(): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type ORDER BY dateTime DESC") suspend fun findAllByType(type: TransactionType): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId ORDER BY dateTime DESC" + ) suspend fun findAllByTypeAndAccount(type: TransactionType, accountId: UUID): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllByTypeAndAccountBetween( type: TransactionType, accountId: UUID, @@ -38,13 +41,17 @@ interface TransactionDao { endDate: LocalDateTime ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId ORDER BY dateTime DESC" + ) suspend fun findAllTransfersToAccount( toAccountId: UUID, type: TransactionType = TransactionType.TRANSFER ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllTransfersToAccountBetween( toAccountId: UUID, startDate: LocalDateTime, @@ -52,30 +59,40 @@ interface TransactionDao { type: TransactionType = TransactionType.TRANSFER ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllBetween(startDate: LocalDateTime, endDate: LocalDateTime): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND accountId = :accountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND accountId = :accountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllByAccountAndBetween( accountId: UUID, startDate: LocalDateTime, endDate: LocalDateTime ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllByCategoryAndBetween( categoryId: UUID, startDate: LocalDateTime, endDate: LocalDateTime ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllUnspecifiedAndBetween( startDate: LocalDateTime, endDate: LocalDateTime ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllByCategoryAndTypeAndBetween( categoryId: UUID, type: TransactionType, @@ -83,57 +100,75 @@ interface TransactionDao { endDate: LocalDateTime ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllUnspecifiedAndTypeAndBetween( type: TransactionType, startDate: LocalDateTime, endDate: LocalDateTime ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND toAccountId = :toAccountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND toAccountId = :toAccountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + ) suspend fun findAllToAccountAndBetween( toAccountId: UUID, startDate: LocalDateTime, endDate: LocalDateTime ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate ORDER BY dueDate ASC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate ORDER BY dueDate ASC" + ) suspend fun findAllDueToBetween( startDate: LocalDateTime, endDate: LocalDateTime ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId = :categoryId) ORDER BY dateTime DESC, dueDate ASC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId = :categoryId) ORDER BY dateTime DESC, dueDate ASC" + ) suspend fun findAllDueToBetweenByCategory( startDate: LocalDateTime, endDate: LocalDateTime, categoryId: UUID ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId IS NULL) ORDER BY dateTime DESC, dueDate ASC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId IS NULL) ORDER BY dateTime DESC, dueDate ASC" + ) suspend fun findAllDueToBetweenByCategoryUnspecified( startDate: LocalDateTime, endDate: LocalDateTime, ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND accountId = :accountId ORDER BY dateTime DESC, dueDate ASC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND accountId = :accountId ORDER BY dateTime DESC, dueDate ASC" + ) suspend fun findAllDueToBetweenByAccount( startDate: LocalDateTime, endDate: LocalDateTime, accountId: UUID ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC" + ) suspend fun findAllByRecurringRuleId(recurringRuleId: UUID): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND type = :type ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND type = :type ORDER BY dateTime DESC" + ) suspend fun findAllBetweenAndType( startDate: LocalDateTime, endDate: LocalDateTime, type: TransactionType ): List - @Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC") + @Query( + "SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC" + ) suspend fun findAllBetweenAndRecurringRuleId( startDate: LocalDateTime, endDate: LocalDateTime, @@ -152,7 +187,9 @@ interface TransactionDao { @Query("UPDATE transactions SET isDeleted = 1, isSynced = 0 WHERE id = :id") suspend fun flagDeleted(id: UUID) - @Query("UPDATE transactions SET isDeleted = 1, isSynced = 0 WHERE recurringRuleId = :recurringRuleId AND dateTime IS NULL") + @Query( + "UPDATE transactions SET isDeleted = 1, isSynced = 0 WHERE recurringRuleId = :recurringRuleId AND dateTime IS NULL" + ) suspend fun flagDeletedByRecurringRuleIdAndNoDateTime(recurringRuleId: UUID) @Query("UPDATE transactions SET isDeleted = 1, isSynced = 0 WHERE accountId = :accountId") @@ -170,7 +207,7 @@ interface TransactionDao { @Query("SELECT COUNT(*) FROM transactions WHERE isDeleted = 0 AND dateTime IS NOT null") suspend fun countHappenedTransactions(): Long - //Smart Title Suggestions + // Smart Title Suggestions @Query("SELECT * FROM transactions WHERE title LIKE :pattern AND isDeleted = 0") suspend fun findAllByTitleMatchingPattern(pattern: String): List @@ -215,4 +252,4 @@ interface TransactionDao { suspend fun findAllByLoanId( loanId: UUID ): List -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/dao/UserDao.kt b/app/src/main/java/com/ivy/wallet/io/persistence/dao/UserDao.kt index 081db84a66..8030c5bfcf 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/dao/UserDao.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/dao/UserDao.kt @@ -17,4 +17,4 @@ interface UserDao { @Query("DELETE FROM users") suspend fun deleteAll() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/AccountEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/AccountEntity.kt index b14c9ab783..205be9d133 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/AccountEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/AccountEntity.kt @@ -45,4 +45,4 @@ data class AccountEntity( isDeleted = isDeleted, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/BudgetEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/BudgetEntity.kt index 663e300e1e..45d3e7b919 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/BudgetEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/BudgetEntity.kt @@ -77,8 +77,7 @@ data class BudgetEntity( } } - fun validate(): Boolean { return name.isNotEmpty() && amount > 0.0 } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/CategoryEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/CategoryEntity.kt index 88e6ba05de..948776cd4d 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/CategoryEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/CategoryEntity.kt @@ -39,4 +39,4 @@ data class CategoryEntity( isDeleted = isDeleted, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/ExchangeRateEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/ExchangeRateEntity.kt index 4aac4d657c..8ff8513dc2 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/ExchangeRateEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/ExchangeRateEntity.kt @@ -22,4 +22,4 @@ data class ExchangeRateEntity( currency = currency, rate = rate ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/LoanEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/LoanEntity.kt index 27b1e2756e..683a130677 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/LoanEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/LoanEntity.kt @@ -51,4 +51,4 @@ data class LoanEntity( fun humanReadableType(): String { return if (type == LoanType.BORROW) "BORROWED" else "LENT" } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/LoanRecordEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/LoanRecordEntity.kt index 987bf41e36..c30e997d6d 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/LoanRecordEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/LoanRecordEntity.kt @@ -23,7 +23,7 @@ data class LoanRecordEntity( val interest: Boolean = false, @SerializedName("accountId") val accountId: UUID? = null, - //This is used store the converted amount for currencies which are different from the loan account currency + // This is used store the converted amount for currencies which are different from the loan account currency @SerializedName("convertedAmount") val convertedAmount: Double? = null, @@ -48,4 +48,4 @@ data class LoanRecordEntity( isDeleted = isDeleted, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/PlannedPaymentRuleEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/PlannedPaymentRuleEntity.kt index fab700e636..30a55e9001 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/PlannedPaymentRuleEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/PlannedPaymentRuleEntity.kt @@ -59,4 +59,4 @@ data class PlannedPaymentRuleEntity( isDeleted = isDeleted, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/SettingsEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/SettingsEntity.kt index 50bef9cd55..50a79d28a6 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/SettingsEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/SettingsEntity.kt @@ -36,4 +36,4 @@ data class SettingsEntity( name = name, id = id ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/TransactionEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/TransactionEntity.kt index e37b9c1bb0..1655ff361d 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/TransactionEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/TransactionEntity.kt @@ -39,11 +39,11 @@ data class TransactionEntity( @SerializedName("attachmentUrl") val attachmentUrl: String? = null, - //This refers to the loan id that is linked with a transaction + // This refers to the loan id that is linked with a transaction @SerializedName("loanId") val loanId: UUID? = null, - //This refers to the loan record id that is linked with a transaction + // This refers to the loan record id that is linked with a transaction @SerializedName("loanRecordId") val loanRecordId: UUID? = null, @@ -77,7 +77,7 @@ data class TransactionEntity( fun isIdenticalWith(transaction: TransactionEntity?): Boolean { if (transaction == null) return false - //Set isSynced && isDeleted to false so they aren't accounted in the equals check + // Set isSynced && isDeleted to false so they aren't accounted in the equals check return this.copy( isSynced = false, isDeleted = false @@ -86,4 +86,4 @@ data class TransactionEntity( isDeleted = false ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/data/UserEntity.kt b/app/src/main/java/com/ivy/wallet/io/persistence/data/UserEntity.kt index e8200b4519..39a4231739 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/data/UserEntity.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/data/UserEntity.kt @@ -52,4 +52,4 @@ data class UserEntity( ) fun names(): String = firstName + if (lastName != null) " $lastName" else "" -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/datastore/IvyDataStore.kt b/app/src/main/java/com/ivy/wallet/io/persistence/datastore/IvyDataStore.kt index ed3267ec99..b780714740 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/datastore/IvyDataStore.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/datastore/IvyDataStore.kt @@ -47,4 +47,4 @@ class IvyDataStore @Inject constructor( suspend fun get(key: Preferences.Key): T? = appContext.dataStore.data.map { it[key] }.firstOrNull() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration105to106_TrnRecurringRules.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration105to106_TrnRecurringRules.kt index adaeb93d74..3e8bf60287 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration105to106_TrnRecurringRules.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration105to106_TrnRecurringRules.kt @@ -11,4 +11,4 @@ class Migration105to106_TrnRecurringRules : Migration(105, 106) { database.execSQL("ALTER TABLE transactions ADD COLUMN recurringRuleId TEXT") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration106to107_Wishlist.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration106to107_Wishlist.kt index 29e3af70d5..375ecd2536 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration106to107_Wishlist.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration106to107_Wishlist.kt @@ -6,6 +6,8 @@ import androidx.sqlite.db.SupportSQLiteDatabase class Migration106to107_Wishlist : Migration(106, 107) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("DROP TABLE wishlist_items") - database.execSQL("CREATE TABLE IF NOT EXISTS `wishlist_items` (`name` TEXT NOT NULL, `price` REAL NOT NULL, `accountId` TEXT NOT NULL, `categoryId` TEXT, `description` TEXT, `plannedDateTime` INTEGER, `orderNum` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") + database.execSQL( + "CREATE TABLE IF NOT EXISTS `wishlist_items` (`name` TEXT NOT NULL, `price` REAL NOT NULL, `accountId` TEXT NOT NULL, `categoryId` TEXT, `description` TEXT, `plannedDateTime` INTEGER, `orderNum` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration107to108_Sync.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration107to108_Sync.kt index 7d57f07514..9097d20b7f 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration107to108_Sync.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration107to108_Sync.kt @@ -15,4 +15,4 @@ class Migration107to108_Sync : Migration(107, 108) { execSQL("ALTER TABLE $tableName ADD COLUMN isSynced INTEGER NOT NULL DEFAULT 0") execSQL("ALTER TABLE $tableName ADD COLUMN isDeleted INTEGER NOT NULL DEFAULT 0") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration108to109_Users.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration108to109_Users.kt index f50d8d4189..7cfc1e224f 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration108to109_Users.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration108to109_Users.kt @@ -5,6 +5,8 @@ import androidx.sqlite.db.SupportSQLiteDatabase class Migration108to109_Users : Migration(108, 109) { override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("CREATE TABLE IF NOT EXISTS `users` (`email` TEXT NOT NULL, `authProviderType` TEXT NOT NULL, `firstName` TEXT NOT NULL, `lastName` TEXT, `profilePicture` TEXT, `color` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") + database.execSQL( + "CREATE TABLE IF NOT EXISTS `users` (`email` TEXT NOT NULL, `authProviderType` TEXT NOT NULL, `firstName` TEXT NOT NULL, `lastName` TEXT, `profilePicture` TEXT, `color` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration109to110_PlannedPayments.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration109to110_PlannedPayments.kt index 58699790be..e0304e17f2 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration109to110_PlannedPayments.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration109to110_PlannedPayments.kt @@ -7,11 +7,13 @@ class Migration109to110_PlannedPayments : Migration(109, 110) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("DROP TABLE transaction_recurring_rules") - database.execSQL("CREATE TABLE IF NOT EXISTS `transaction_recurring_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") + database.execSQL( + "CREATE TABLE IF NOT EXISTS `transaction_recurring_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + ) } private fun SupportSQLiteDatabase.addSyncColumns(tableName: String) { execSQL("ALTER TABLE $tableName ADD COLUMN isSynced INTEGER NOT NULL DEFAULT 0") execSQL("ALTER TABLE $tableName ADD COLUMN isDeleted INTEGER NOT NULL DEFAULT 0") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration110to111_PlannedPaymentRule.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration110to111_PlannedPaymentRule.kt index a4503767ae..247eb1bc64 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration110to111_PlannedPaymentRule.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration110to111_PlannedPaymentRule.kt @@ -7,7 +7,8 @@ class Migration110to111_PlannedPaymentRule : Migration(110, 111) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("DROP TABLE transaction_recurring_rules") - database.execSQL("CREATE TABLE IF NOT EXISTS `planned_payment_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") + database.execSQL( + "CREATE TABLE IF NOT EXISTS `planned_payment_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + ) } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration111to112_User_testUser.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration111to112_User_testUser.kt index 1286a5f7f4..436f96346d 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration111to112_User_testUser.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration111to112_User_testUser.kt @@ -7,5 +7,4 @@ class Migration111to112_User_testUser : Migration(111, 112) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("ALTER TABLE users ADD COLUMN testUser INTEGER NOT NULL DEFAULT 0") } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration112to113_ExchangeRates.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration112to113_ExchangeRates.kt index 38f3e13ef3..f855cab009 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration112to113_ExchangeRates.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration112to113_ExchangeRates.kt @@ -5,7 +5,8 @@ import androidx.sqlite.db.SupportSQLiteDatabase class Migration112to113_ExchangeRates : Migration(112, 113) { override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("CREATE TABLE IF NOT EXISTS `exchange_rates` (`baseCurrency` TEXT NOT NULL, `currency` TEXT NOT NULL, `rate` REAL NOT NULL, PRIMARY KEY(`baseCurrency`, `currency`))") + database.execSQL( + "CREATE TABLE IF NOT EXISTS `exchange_rates` (`baseCurrency` TEXT NOT NULL, `currency` TEXT NOT NULL, `rate` REAL NOT NULL, PRIMARY KEY(`baseCurrency`, `currency`))" + ) } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration113to114_Multi_Currency.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration113to114_Multi_Currency.kt index 6e357a6ce5..6a62b71be8 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration113to114_Multi_Currency.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration113to114_Multi_Currency.kt @@ -8,5 +8,4 @@ class Migration113to114_Multi_Currency : Migration(113, 114) { database.execSQL("ALTER TABLE accounts ADD COLUMN currency TEXT") database.execSQL("ALTER TABLE transactions ADD COLUMN toAmount REAL") } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration114to115_Category_Account_Icons.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration114to115_Category_Account_Icons.kt index 1d22bf83f8..8412bc293e 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration114to115_Category_Account_Icons.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration114to115_Category_Account_Icons.kt @@ -8,5 +8,4 @@ class Migration114to115_Category_Account_Icons : Migration(114, 115) { database.execSQL("ALTER TABLE accounts ADD COLUMN icon TEXT") database.execSQL("ALTER TABLE categories ADD COLUMN icon TEXT") } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration115to116_Account_Include_In_Balance.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration115to116_Account_Include_In_Balance.kt index e79796d46d..5bd5738c7f 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration115to116_Account_Include_In_Balance.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration115to116_Account_Include_In_Balance.kt @@ -7,5 +7,4 @@ class Migration115to116_Account_Include_In_Balance : Migration(115, 116) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("ALTER TABLE accounts ADD COLUMN includeInBalance INTEGER NOT NULL DEFAULT 1") } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration116to117_SalteEdgeIntgration.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration116to117_SalteEdgeIntgration.kt index a89871666a..1e34cf9ee3 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration116to117_SalteEdgeIntgration.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration116to117_SalteEdgeIntgration.kt @@ -10,5 +10,4 @@ class Migration116to117_SalteEdgeIntgration : Migration(116, 117) { database.execSQL("ALTER TABLE transactions ADD COLUMN seTransactionId TEXT") database.execSQL("ALTER TABLE transactions ADD COLUMN seAutoCategoryId TEXT") } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration117to118_Budgets.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration117to118_Budgets.kt index 5b549076f8..67feed2a0f 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration117to118_Budgets.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration117to118_Budgets.kt @@ -6,7 +6,8 @@ import androidx.sqlite.db.SupportSQLiteDatabase class Migration117to118_Budgets : Migration(117, 118) { override fun migrate(database: SupportSQLiteDatabase) { val tableName = "budgets" - database.execSQL("CREATE TABLE IF NOT EXISTS `${tableName}` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryIdsSerialized` TEXT, `accountIdsSerialized` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `orderId` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") + database.execSQL( + "CREATE TABLE IF NOT EXISTS `$tableName` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryIdsSerialized` TEXT, `accountIdsSerialized` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `orderId` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + ) } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration118to119_Loans.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration118to119_Loans.kt index ac2dbbcd57..ba4ef4780d 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration118to119_Loans.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration118to119_Loans.kt @@ -10,9 +10,12 @@ class Migration118to119_Loans : Migration(118, 119) { } override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("CREATE TABLE IF NOT EXISTS `$LOANS_TABLE` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `type` TEXT NOT NULL, `color` INTEGER NOT NULL, `icon` TEXT, `orderNum` REAL NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") + database.execSQL( + "CREATE TABLE IF NOT EXISTS `$LOANS_TABLE` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `type` TEXT NOT NULL, `color` INTEGER NOT NULL, `icon` TEXT, `orderNum` REAL NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + ) - database.execSQL("CREATE TABLE IF NOT EXISTS `$LOAN_RECORDS_TABLE` (`loanId` TEXT NOT NULL, `amount` REAL NOT NULL, `note` TEXT, `dateTime` INTEGER NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") + database.execSQL( + "CREATE TABLE IF NOT EXISTS `$LOAN_RECORDS_TABLE` (`loanId` TEXT NOT NULL, `amount` REAL NOT NULL, `note` TEXT, `dateTime` INTEGER NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + ) } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration119to120_LoanTransactions.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration119to120_LoanTransactions.kt index 7645eaaf51..159dd50459 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration119to120_LoanTransactions.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration119to120_LoanTransactions.kt @@ -13,4 +13,4 @@ class Migration119to120_LoanTransactions : Migration(119, 120) { database.execSQL("ALTER TABLE loan_records ADD COLUMN convertedAmount REAL") database.execSQL("ALTER TABLE loans ADD COLUMN accountId TEXT") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration120to121_DropWishlistItem.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration120to121_DropWishlistItem.kt index e982ef60ac..81a8551592 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration120to121_DropWishlistItem.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration120to121_DropWishlistItem.kt @@ -7,4 +7,4 @@ class Migration120to121_DropWishlistItem : Migration(120, 121) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("DROP TABLE wishlist_items") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration122to123_ExchangeRates.kt b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration122to123_ExchangeRates.kt index df8d7ad36a..fe89cdcdcd 100644 --- a/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration122to123_ExchangeRates.kt +++ b/app/src/main/java/com/ivy/wallet/io/persistence/migration/Migration122to123_ExchangeRates.kt @@ -7,4 +7,4 @@ class Migration122to123_ExchangeRates : Migration(122, 123) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("ALTER TABLE exchange_rates ADD COLUMN manualOverride INTEGER NOT NULL DEFAULT 0") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ktor/KtorClient.kt b/app/src/main/java/com/ivy/wallet/ktor/KtorClient.kt index ab3533a5bc..a6f4953faa 100644 --- a/app/src/main/java/com/ivy/wallet/ktor/KtorClient.kt +++ b/app/src/main/java/com/ivy/wallet/ktor/KtorClient.kt @@ -12,10 +12,12 @@ import timber.log.Timber fun newKtorClient(): HttpClient { return HttpClient { install(ContentNegotiation) { - json(json = Json { - ignoreUnknownKeys = true - isLenient = true - }) + json( + json = Json { + ignoreUnknownKeys = true + isLenient = true + } + ) } install(Logging) { @@ -27,4 +29,4 @@ fun newKtorClient(): HttpClient { } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ktor/KtorClientModule.kt b/app/src/main/java/com/ivy/wallet/ktor/KtorClientModule.kt index ec3a15fe60..ba451ea4c9 100644 --- a/app/src/main/java/com/ivy/wallet/ktor/KtorClientModule.kt +++ b/app/src/main/java/com/ivy/wallet/ktor/KtorClientModule.kt @@ -15,4 +15,4 @@ object KtorClientModule { fun provideKtorClient(): HttpClient { return newKtorClient() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ktor/kotlinxserilzation/UUIDSerializer.kt b/app/src/main/java/com/ivy/wallet/ktor/kotlinxserilzation/UUIDSerializer.kt index 03ff62d7d0..e34becde1f 100644 --- a/app/src/main/java/com/ivy/wallet/ktor/kotlinxserilzation/UUIDSerializer.kt +++ b/app/src/main/java/com/ivy/wallet/ktor/kotlinxserilzation/UUIDSerializer.kt @@ -17,4 +17,4 @@ object UUIDSerializer : KSerializer { override fun serialize(encoder: Encoder, value: UUID) { encoder.encodeString(value.toString()) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/migrations/Migration.kt b/app/src/main/java/com/ivy/wallet/migrations/Migration.kt index a3f66db5a1..6056102838 100644 --- a/app/src/main/java/com/ivy/wallet/migrations/Migration.kt +++ b/app/src/main/java/com/ivy/wallet/migrations/Migration.kt @@ -4,4 +4,4 @@ interface Migration { val key: String suspend fun migrate() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/migrations/MigrationsManager.kt b/app/src/main/java/com/ivy/wallet/migrations/MigrationsManager.kt index 98c54efbeb..a18111ee11 100644 --- a/app/src/main/java/com/ivy/wallet/migrations/MigrationsManager.kt +++ b/app/src/main/java/com/ivy/wallet/migrations/MigrationsManager.kt @@ -54,4 +54,4 @@ class MigrationsManager @Inject constructor( } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/migrations/impl/GitHubPATMigration.kt b/app/src/main/java/com/ivy/wallet/migrations/impl/GitHubPATMigration.kt index 52ca5893d9..add560a0aa 100644 --- a/app/src/main/java/com/ivy/wallet/migrations/impl/GitHubPATMigration.kt +++ b/app/src/main/java/com/ivy/wallet/migrations/impl/GitHubPATMigration.kt @@ -37,4 +37,4 @@ class GitHubPATMigration @Inject constructor( ) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/migrations/impl/GitHubWorkerMigration.kt b/app/src/main/java/com/ivy/wallet/migrations/impl/GitHubWorkerMigration.kt index 6b0b7c63ce..274548ea0d 100644 --- a/app/src/main/java/com/ivy/wallet/migrations/impl/GitHubWorkerMigration.kt +++ b/app/src/main/java/com/ivy/wallet/migrations/impl/GitHubWorkerMigration.kt @@ -20,4 +20,4 @@ class GitHubWorkerMigration @Inject constructor( Timber.i("GitHub auto-backups worker rescheduled.") } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/IvyComposeApp.kt b/app/src/main/java/com/ivy/wallet/ui/IvyComposeApp.kt index f6f0d50d22..2824c8ddf6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/IvyComposeApp.kt +++ b/app/src/main/java/com/ivy/wallet/ui/IvyComposeApp.kt @@ -22,7 +22,6 @@ import com.ivy.frp.view.navigation.Navigation import com.ivy.frp.view.navigation.NavigationRoot import com.ivy.wallet.IvyAndroidApp - @Composable fun ivyWalletCtx(): IvyWalletCtx = ivyContext() as IvyWalletCtx diff --git a/app/src/main/java/com/ivy/wallet/ui/IvyWalletCtx.kt b/app/src/main/java/com/ivy/wallet/ui/IvyWalletCtx.kt index 5d3835bb9d..92888fd59f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/IvyWalletCtx.kt +++ b/app/src/main/java/com/ivy/wallet/ui/IvyWalletCtx.kt @@ -20,7 +20,7 @@ import java.time.LocalTime import java.util.* class IvyWalletCtx : IvyContext() { - //------------------------------------------ State --------------------------------------------- + // ------------------------------------------ State --------------------------------------------- var startDayOfMonth = 1 private set @@ -28,10 +28,10 @@ class IvyWalletCtx : IvyContext() { startDayOfMonth = day } - //---------------------- Optimization ---------------------------- + // ---------------------- Optimization ---------------------------- val categoryMap: MutableMap = mutableMapOf() val accountMap: MutableMap = mutableMapOf() - //---------------------- Optimization ---------------------------- + // ---------------------- Optimization ---------------------------- var dataBackupCompleted = false @@ -42,7 +42,7 @@ class IvyWalletCtx : IvyContext() { } var selectedPeriod: TimePeriod = TimePeriod.currentMonth( - startDayOfMonth = startDayOfMonth //this is default value + startDayOfMonth = startDayOfMonth // this is default value ) private var selectedPeriodInitialized = false fun initSelectedPeriodInMemory( @@ -63,7 +63,6 @@ class IvyWalletCtx : IvyContext() { selectedPeriod = period } - var transactionsListState: LazyListState? = null var mainTab by mutableStateOf(MainTab.HOME) @@ -79,9 +78,9 @@ class IvyWalletCtx : IvyContext() { fun setMoreMenuExpanded(expanded: Boolean) { moreMenuExpanded = expanded } - //------------------------------------------ State --------------------------------------------- + // ------------------------------------------ State --------------------------------------------- - //------------------------------------------- Navigation ---------------------------------------- + // ------------------------------------------- Navigation ---------------------------------------- fun protectWithPaywall( paywallReason: PaywallReason, navigation: Navigation, @@ -97,9 +96,9 @@ class IvyWalletCtx : IvyContext() { ) } } - //------------------------------------------- Navigation ---------------------------------------- + // ------------------------------------------- Navigation ---------------------------------------- - //Activity help ------------------------------------------------------------------------------- + // Activity help ------------------------------------------------------------------------------- lateinit var onShowDatePicker: ( minDate: LocalDate?, maxDate: LocalDate?, @@ -120,11 +119,10 @@ class IvyWalletCtx : IvyContext() { fun timePicker(onTimePicked: (LocalTime) -> Unit) { onShowTimePicker(onTimePicked) } - //Activity help ------------------------------------------------------------------------------- - + // Activity help ------------------------------------------------------------------------------- // Billing ------------------------------------------------------------------------------------- - var isPremium = true //if (BuildConfig.DEBUG) Constants.PREMIUM_INITIAL_VALUE_DEBUG else false + var isPremium = true // if (BuildConfig.DEBUG) Constants.PREMIUM_INITIAL_VALUE_DEBUG else false // Billing ------------------------------------------------------------------------------------- lateinit var googleSignIn: (idTokenResult: (String?) -> Unit) -> Unit @@ -133,7 +131,7 @@ class IvyWalletCtx : IvyContext() { lateinit var openFile: (onOpened: (Uri) -> Unit) -> Unit - //Testing -------------------------------------------------------------------------------------- + // Testing -------------------------------------------------------------------------------------- fun reset() { mainTab = MainTab.HOME startDayOfMonth = 1 diff --git a/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt b/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt index e454c5ea66..141f6e5dc0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt +++ b/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt @@ -90,7 +90,6 @@ import java.time.LocalTime import java.util.Random import javax.inject.Inject - @AndroidEntryPoint class RootActivity : AppCompatActivity() { @@ -122,10 +121,8 @@ class RootActivity : AppCompatActivity() { private lateinit var openFileLauncher: ActivityResultLauncher private lateinit var onFileOpened: (fileUri: Uri) -> Unit - private val viewModel: RootViewModel by viewModels() - @OptIn( ExperimentalAnimationApi::class, ExperimentalFoundationApi::class @@ -146,7 +143,6 @@ class RootActivity : AppCompatActivity() { AddTransactionWidgetCompact.updateBroadcast(this) WalletBalanceWidgetReceiver.updateBroadcast(this) - setContent { val viewModel: RootViewModel = viewModel() val isSystemInDarkTheme = isSystemInDarkTheme() @@ -172,7 +168,7 @@ class RootActivity : AppCompatActivity() { when (appLocked) { null -> { - //display nothing + // display nothing } true -> { @@ -236,9 +232,9 @@ class RootActivity : AppCompatActivity() { private fun setupDatePicker() { ivyContext.onShowDatePicker = { minDate, - maxDate, - initialDate, - onDatePicked -> + maxDate, + initialDate, + onDatePicked -> val picker = DatePickerDialog(this) if (minDate != null) { @@ -258,7 +254,7 @@ class RootActivity : AppCompatActivity() { if (initialDate != null) { picker.updateDate( initialDate.year, - //month-1 because LocalDate start from 1 and date picker starts from 0 + // month-1 because LocalDate start from 1 and date picker starts from 0 initialDate.monthValue - 1, initialDate.dayOfMonth ) @@ -388,14 +384,16 @@ class RootActivity : AppCompatActivity() { override fun onResume() { super.onResume() - if (viewModel.isAppLockEnabled()) + if (viewModel.isAppLockEnabled()) { viewModel.checkUserInactiveTimeStatus() + } } override fun onPause() { super.onPause() - if (viewModel.isAppLockEnabled()) + if (viewModel.isAppLockEnabled()) { viewModel.startUserInactiveTimeCounter() + } } private fun authenticateWithOSBiometricsModal( @@ -403,7 +401,8 @@ class RootActivity : AppCompatActivity() { ) { val executor = ContextCompat.getMainExecutor(this) val biometricPrompt = BiometricPrompt( - this, executor, + this, + executor, biometricPromptCallback ) @@ -416,7 +415,7 @@ class RootActivity : AppCompatActivity() { ) .setAllowedAuthenticators( BiometricManager.Authenticators.BIOMETRIC_WEAK or - BiometricManager.Authenticators.DEVICE_CREDENTIAL + BiometricManager.Authenticators.DEVICE_CREDENTIAL ) .setConfirmationRequired(false) .build() @@ -434,8 +433,7 @@ class RootActivity : AppCompatActivity() { } } - - //Helpers for Compose UI + // Helpers for Compose UI fun contactSupport() { val caseNumber: Int = Random().nextInt(100) + 100 @@ -444,15 +442,15 @@ class RootActivity : AppCompatActivity() { putExtra(Intent.EXTRA_EMAIL, arrayOf(SUPPORT_EMAIL)) putExtra( - Intent.EXTRA_SUBJECT, "Ivy Wallet Support Request #" + caseNumber + - "0" + BuildConfig.VERSION_CODE + Intent.EXTRA_SUBJECT, + "Ivy Wallet Support Request #" + caseNumber + + "0" + BuildConfig.VERSION_CODE ) putExtra(Intent.EXTRA_TEXT, "") } try { startActivity(emailIntent) - } catch (e: Exception) { e.printStackTrace() Toast.makeText(this, "Email: $SUPPORT_EMAIL", Toast.LENGTH_LONG).show() @@ -506,7 +504,8 @@ class RootActivity : AppCompatActivity() { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_STREAM, fileUri) type = "text/csv" - }, null + }, + null ) startActivity(intent) } @@ -517,7 +516,8 @@ class RootActivity : AppCompatActivity() { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_STREAM, fileUri) type = "application/zip" - }, null + }, + null ) startActivity(intent) } @@ -551,4 +551,4 @@ class RootActivity : AppCompatActivity() { val addTransactionWidget = ComponentName(this, widget) appWidgetManager.requestPinAppWidget(addTransactionWidget, null, null) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/RootViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/RootViewModel.kt index cf70e5f415..5d7485e344 100644 --- a/app/src/main/java/com/ivy/wallet/ui/RootViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/RootViewModel.kt @@ -53,7 +53,6 @@ class RootViewModel @Inject constructor( private val _appLocked = MutableStateFlow(null) val appLocked = _appLocked.readOnly() - fun start(systemDarkMode: Boolean, intent: Intent) { viewModelScope.launch { TestIdlingResource.increment() @@ -74,7 +73,7 @@ class RootViewModel @Inject constructor( ioThread { appLockEnabled = sharedPrefs.getBoolean(SharedPrefs.APP_LOCK_ENABLED, false) - //initial app locked state + // initial app locked state _appLocked.value = appLockEnabled if (isOnboardingCompleted()) { @@ -82,7 +81,6 @@ class RootViewModel @Inject constructor( } else { nav.navigateTo(Onboarding) } - } TestIdlingResource.decrement() @@ -108,7 +106,6 @@ class RootViewModel @Inject constructor( null } - if (addTrnType != null) { nav.navigateTo( EditTransaction( @@ -138,7 +135,6 @@ class RootViewModel @Inject constructor( } override fun onAuthenticationError(errorCode: Int, errString: CharSequence) { - } } } @@ -156,7 +152,6 @@ class RootViewModel @Inject constructor( viewModelScope.launch { paywallLogic.processPurchases(purchases) } - }, onError = { code, msg -> sendToCrashlytics("IvyActivity Billing error: code=$code: $msg") @@ -169,14 +164,13 @@ class RootViewModel @Inject constructor( return sharedPrefs.getBoolean(SharedPrefs.ONBOARDING_COMPLETED, false) } - - //App Lock & UserInactivity -------------------------------------------------------------------- + // App Lock & UserInactivity -------------------------------------------------------------------- fun isAppLockEnabled(): Boolean { return appLockEnabled } fun isAppLocked(): Boolean { - //by default we assume that the app is locked + // by default we assume that the app is locked return appLocked.value ?: true } @@ -222,4 +216,4 @@ class RootViewModel @Inject constructor( fun resetUserInactiveTimer() { userInactiveTime.set(0) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/Screens.kt b/app/src/main/java/com/ivy/wallet/ui/Screens.kt index a38dc71c64..fa26612ed9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/Screens.kt +++ b/app/src/main/java/com/ivy/wallet/ui/Screens.kt @@ -20,7 +20,7 @@ data class EditTransaction( val initialTransactionId: UUID?, val type: TransactionType, - //extras + // extras val accountId: UUID? = null, val categoryId: UUID? = null ) : Screen @@ -52,8 +52,8 @@ data class EditPlanned( val description: String? = null, ) : Screen { fun mandatoryFilled(): Boolean { - return amount != null && amount > 0.0 - && accountId != null + return amount != null && amount > 0.0 && + accountId != null } } diff --git a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountData.kt b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountData.kt index 62336b06e1..f1b52df2c6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountData.kt +++ b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountData.kt @@ -17,4 +17,4 @@ data class AccountData( orderNum = newOrderNum ) ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountState.kt b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountState.kt index 963a480ab1..ca23010718 100644 --- a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountState.kt @@ -8,4 +8,4 @@ data class AccountState( val totalBalanceWithExcluded: Double = 0.0, val totalBalanceWithExcludedText: UiText = UiText.DynamicString(""), val reorderVisible: Boolean = false -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsEvent.kt b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsEvent.kt index 1ed888b3c3..f3547a4895 100644 --- a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsEvent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsEvent.kt @@ -6,4 +6,4 @@ sealed class AccountsEvent { data class OnReorder(val reorderedList: List) : AccountsEvent() data class OnEditAccount(val editedAccount: Account, val newBalance: Double) : AccountsEvent() data class OnReorderModalVisible(val reorderVisible: Boolean) : AccountsEvent() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsTab.kt b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsTab.kt index 14fedaf194..455b5a7535 100644 --- a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsTab.kt +++ b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsTab.kt @@ -98,7 +98,6 @@ private fun BoxWithConstraintsScope.UI( } ), ) { - item { Spacer(Modifier.height(32.dp)) @@ -165,7 +164,7 @@ private fun BoxWithConstraintsScope.UI( } item { - Spacer(Modifier.height(150.dp)) //scroll hack + Spacer(Modifier.height(150.dp)) // scroll hack } } @@ -383,7 +382,9 @@ private fun PreviewAccountsTab() { ), totalBalanceWithExcluded = 25.54, totalBalanceWithExcludedText = UiText.StringResource( - R.string.total, "BGN", "25.54" + R.string.total, + "BGN", + "25.54" ) ) diff --git a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsViewModel.kt index 0d5775c498..ae674627d7 100644 --- a/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/accounts/AccountsViewModel.kt @@ -68,7 +68,7 @@ class AccountsViewModel @Inject constructor( val period = TimePeriod.currentMonth( startDayOfMonth = ivyContext.startDayOfMonth - ) //this must be monthly + ) // this must be monthly val range = period.toRange(ivyContext.startDayOfMonth) val baseCurrencyCode = baseCurrencyAct(Unit) @@ -99,7 +99,9 @@ class AccountsViewModel @Inject constructor( accountsData = accountsDataList, totalBalanceWithExcluded = totalBalanceWithExcluded, totalBalanceWithExcludedText = UiText.StringResource( - R.string.total, baseCurrencyCode, totalBalanceWithExcluded.format( + R.string.total, + baseCurrencyCode, + totalBalanceWithExcluded.format( baseCurrencyCode ) ) @@ -157,4 +159,4 @@ class AccountsViewModel @Inject constructor( } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/accounts/IncomeExpensesRow.kt b/app/src/main/java/com/ivy/wallet/ui/accounts/IncomeExpensesRow.kt index bc62bfb4d5..ba9469396e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/accounts/IncomeExpensesRow.kt +++ b/app/src/main/java/com/ivy/wallet/ui/accounts/IncomeExpensesRow.kt @@ -58,7 +58,7 @@ fun IncomeExpensesRow( Spacer(modifier = Modifier.width(dividerSpacer)) } - //Divider + // Divider Spacer( modifier = Modifier .width(2.dp) @@ -118,6 +118,5 @@ private fun LabelAmountColumn( currency = currency ) } - } } diff --git a/app/src/main/java/com/ivy/wallet/ui/applocked/AppLockedScreen.kt b/app/src/main/java/com/ivy/wallet/ui/applocked/AppLockedScreen.kt index 47083ad59c..73da1728f0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/applocked/AppLockedScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/applocked/AppLockedScreen.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.applocked - import android.content.Context import androidx.compose.foundation.Image import androidx.compose.foundation.background @@ -104,7 +103,7 @@ fun BoxWithConstraintsScope.AppLockedScreen( } Spacer(Modifier.height(24.dp)) - //To automatically launch the biometric screen on load of this composable + // To automatically launch the biometric screen on load of this composable LaunchedEffect(true) { osAuthentication( context = context, diff --git a/app/src/main/java/com/ivy/wallet/ui/balance/BalanceScreen.kt b/app/src/main/java/com/ivy/wallet/ui/balance/BalanceScreen.kt index 14e4d6a914..b99e0dc47d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/balance/BalanceScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/balance/BalanceScreen.kt @@ -152,7 +152,6 @@ private fun BoxWithConstraintsScope.UI( } } - @Composable private fun ColumnScope.CurrentBalance( currency: String, @@ -270,7 +269,7 @@ private fun Preview() { UI( period = TimePeriod.currentMonth( startDayOfMonth = 1 - ), //preview + ), // preview baseCurrencyCode = "BGN", currentBalance = 9326.55, balanceAfterPlannedPayments = 8426.0, diff --git a/app/src/main/java/com/ivy/wallet/ui/balance/BalanceViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/balance/BalanceViewModel.kt index 974f06022b..6919f6488e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/balance/BalanceViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/balance/BalanceViewModel.kt @@ -51,7 +51,9 @@ class BalanceViewModel @Inject constructor( _currentBalance.value = currentBalance val plannedPaymentsAmount = ioThread { - plannedPaymentsLogic.plannedPaymentsAmountFor(period.toRange(ivyContext.startDayOfMonth)) //+ positive if Income > Expenses else - negative + plannedPaymentsLogic.plannedPaymentsAmountFor( + period.toRange(ivyContext.startDayOfMonth) + ) // + positive if Income > Expenses else - negative } _plannedPaymentsAmount.value = plannedPaymentsAmount @@ -82,4 +84,4 @@ class BalanceViewModel @Inject constructor( ) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/budget/BudgetBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/budget/BudgetBottomBar.kt index 29f2731c0a..801ab679f7 100644 --- a/app/src/main/java/com/ivy/wallet/ui/budget/BudgetBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/budget/BudgetBottomBar.kt @@ -38,7 +38,6 @@ private fun PreviewBottomBar() { .fillMaxSize() .background(Blue) ) { - } BudgetBottomBar( diff --git a/app/src/main/java/com/ivy/wallet/ui/budget/BudgetScreen.kt b/app/src/main/java/com/ivy/wallet/ui/budget/BudgetScreen.kt index b22656047b..7ff62ffab2 100644 --- a/app/src/main/java/com/ivy/wallet/ui/budget/BudgetScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/budget/BudgetScreen.kt @@ -151,7 +151,7 @@ private fun BoxWithConstraintsScope.UI( Spacer(Modifier.weight(1f)) } - Spacer(Modifier.height(150.dp)) //scroll hack + Spacer(Modifier.height(150.dp)) // scroll hack } val nav = navigation() @@ -248,7 +248,9 @@ private fun Toolbar( categoryBudgetsTotal.format(baseCurrency), baseCurrency ) - } else "" + } else { + "" + } val appBudgetMaxText = if (appBudgetMax > 0) { stringResource( @@ -256,26 +258,29 @@ private fun Toolbar( appBudgetMax.format(baseCurrency), baseCurrency ) - } else "" + } else { + "" + } val hasBothBudgetTypes = categoryBudgetText.isNotBlank() && appBudgetMaxText.isNotBlank() Text( modifier = Modifier.testTag("budgets_info_text"), - text = if (hasBothBudgetTypes) + text = if (hasBothBudgetTypes) { stringResource( R.string.budget_info_both, categoryBudgetText, appBudgetMaxText ) - else stringResource(R.string.budget_info, categoryBudgetText, appBudgetMaxText), + } else { + stringResource(R.string.budget_info, categoryBudgetText, appBudgetMaxText) + }, style = UI.typo.nC.style( color = Gray, fontWeight = FontWeight.ExtraBold ) ) } - } ReorderButton { @@ -324,7 +329,6 @@ private fun BudgetItem( ) } - AmountCurrencyB1( amount = displayBudget.budget.amount, currency = baseCurrency, @@ -390,7 +394,6 @@ private fun NoBudgetsEmptyState( } } - @Preview @Composable private fun Preview_Empty() { @@ -398,7 +401,7 @@ private fun Preview_Empty() { UI( timeRange = TimePeriod.currentMonth( startDayOfMonth = 1 - ).toRange(1), //preview + ).toRange(1), // preview baseCurrency = "BGN", categories = emptyList(), accounts = emptyList(), @@ -418,7 +421,7 @@ private fun Preview_Budgets() { UI( timeRange = TimePeriod.currentMonth( startDayOfMonth = 1 - ).toRange(1), //preview + ).toRange(1), // preview baseCurrency = "BGN", categories = emptyList(), accounts = emptyList(), diff --git a/app/src/main/java/com/ivy/wallet/ui/budget/BudgetViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/budget/BudgetViewModel.kt index 4352c63bcb..b5a5414355 100644 --- a/app/src/main/java/com/ivy/wallet/ui/budget/BudgetViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/budget/BudgetViewModel.kt @@ -121,7 +121,7 @@ class BudgetViewModel @Inject constructor( baseCurrencyCode: String, accounts: List ): Double { - //TODO: Re-work this by creating an FPAction for it + // TODO: Re-work this by creating an FPAction for it val accountsFilter = budget.parseAccountIds() val categoryFilter = budget.parseCategoryIds() @@ -131,12 +131,12 @@ class BudgetViewModel @Inject constructor( .sumOfSuspend { when (it.type) { TransactionType.INCOME -> { - //decrement spent amount if it's not global budget - 0.0 //ignore income + // decrement spent amount if it's not global budget + 0.0 // ignore income // if (categoryFilter.isEmpty()) 0.0 else -amountBaseCurrency } TransactionType.EXPENSE -> { - //increment spent amount + // increment spent amount exchangeAct( ExchangeAct.Input( data = ExchangeData( @@ -148,7 +148,7 @@ class BudgetViewModel @Inject constructor( ).orNull()?.toDouble() ?: 0.0 } TransactionType.TRANSFER -> { - //ignore transfers for simplicity + // ignore transfers for simplicity 0.0 } } @@ -191,7 +191,6 @@ class BudgetViewModel @Inject constructor( } } - fun reorder(newOrder: List) { viewModelScope.launch { TestIdlingResource.increment() @@ -211,4 +210,4 @@ class BudgetViewModel @Inject constructor( TestIdlingResource.decrement() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/budget/model/DisplayBudget.kt b/app/src/main/java/com/ivy/wallet/ui/budget/model/DisplayBudget.kt index c7a69d18a3..2aa4ac22fd 100644 --- a/app/src/main/java/com/ivy/wallet/ui/budget/model/DisplayBudget.kt +++ b/app/src/main/java/com/ivy/wallet/ui/budget/model/DisplayBudget.kt @@ -18,4 +18,4 @@ data class DisplayBudget( ) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/category/CategoriesBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/category/CategoriesBottomBar.kt index 32efc856ab..824f250784 100644 --- a/app/src/main/java/com/ivy/wallet/ui/category/CategoriesBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/category/CategoriesBottomBar.kt @@ -38,7 +38,6 @@ private fun PreviewBottomBar() { .fillMaxSize() .background(Blue) ) { - } CategoriesBottomBar( diff --git a/app/src/main/java/com/ivy/wallet/ui/category/CategoriesScreen.kt b/app/src/main/java/com/ivy/wallet/ui/category/CategoriesScreen.kt index e5a38c0c58..d9c7e642ce 100644 --- a/app/src/main/java/com/ivy/wallet/ui/category/CategoriesScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/category/CategoriesScreen.kt @@ -160,7 +160,7 @@ private fun BoxWithConstraintsScope.UI( } item { - Spacer(Modifier.height(150.dp)) //scroll hack + Spacer(Modifier.height(150.dp)) // scroll hack } } CategoriesBottomBar( @@ -298,7 +298,7 @@ fun AddedSpent( Spacer(modifier = Modifier.width(dividerSpacer)) } - //Divider + // Divider Spacer( modifier = Modifier .width(2.dp) @@ -358,9 +358,7 @@ private fun LabelAmount( currency = currency ) } - } - } @Composable @@ -546,7 +544,6 @@ private fun SelectTypeButton( } } - @Preview @Composable private fun Preview() { @@ -601,8 +598,8 @@ private fun Preview() { monthlyIncome = 400.0 ), - ) + ) ) UI(state = state) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/category/CategoriesViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/category/CategoriesViewModel.kt index 54e7526087..320aafdd8e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/category/CategoriesViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/category/CategoriesViewModel.kt @@ -72,7 +72,7 @@ class CategoriesViewModel @Inject constructor( ioThread { val range = TimePeriod.currentMonth( startDayOfMonth = ivyContext.startDayOfMonth - ).toRange(ivyContext.startDayOfMonth) //this must be monthly + ).toRange(ivyContext.startDayOfMonth) // this must be monthly allAccounts = accountsAct(Unit) baseCurrency = baseCurrencyAct(Unit) @@ -81,7 +81,7 @@ class CategoriesViewModel @Inject constructor( TrnsWithRangeAndAccFiltersAct.Input( range = range, accountIdFilterSet = suspend { allAccounts } thenMap { it.id } - thenInvokeAfter { it.toHashSet() } + thenInvokeAfter { it.toHashSet() } ) ) diff --git a/app/src/main/java/com/ivy/wallet/ui/category/CategoryData.kt b/app/src/main/java/com/ivy/wallet/ui/category/CategoryData.kt index 5e0b3900f1..57eaf19e64 100644 --- a/app/src/main/java/com/ivy/wallet/ui/category/CategoryData.kt +++ b/app/src/main/java/com/ivy/wallet/ui/category/CategoryData.kt @@ -16,4 +16,4 @@ data class CategoryData( orderNum = newOrderNum ) ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/charts/CategoryValues.kt b/app/src/main/java/com/ivy/wallet/ui/charts/CategoryValues.kt index 500d318587..c44cfcf845 100644 --- a/app/src/main/java/com/ivy/wallet/ui/charts/CategoryValues.kt +++ b/app/src/main/java/com/ivy/wallet/ui/charts/CategoryValues.kt @@ -5,4 +5,4 @@ import com.ivy.wallet.domain.data.core.Category class CategoryValues( val category: Category, val values: List -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/charts/ChartType.kt b/app/src/main/java/com/ivy/wallet/ui/charts/ChartType.kt index 28ee8530fb..b91f403abd 100644 --- a/app/src/main/java/com/ivy/wallet/ui/charts/ChartType.kt +++ b/app/src/main/java/com/ivy/wallet/ui/charts/ChartType.kt @@ -10,4 +10,4 @@ enum class ChartType { ACCOUNT -> "Accounts" } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/charts/ChartsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/charts/ChartsScreen.kt index 612d4cce7e..7f8c1dbc57 100644 --- a/app/src/main/java/com/ivy/wallet/ui/charts/ChartsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/charts/ChartsScreen.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.charts - import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.BoxWithConstraintsScope @@ -254,7 +253,6 @@ private fun ChartsType( onSetChartType(it) } } - } } diff --git a/app/src/main/java/com/ivy/wallet/ui/charts/ChartsViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/charts/ChartsViewModel.kt index dedf1e3605..bc603d9555 100644 --- a/app/src/main/java/com/ivy/wallet/ui/charts/ChartsViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/charts/ChartsViewModel.kt @@ -49,7 +49,6 @@ class ChartsViewModel @Inject constructor( val incomeExpenseChart = _incomeExpenseChart // ----------------------------------- Wallet -------------------------------------------------- - // --------------------------- Category -------------------------------------------------------- private val _categories = MutableStateFlow(emptyList()) val categories = _categories.asStateFlow() @@ -68,10 +67,9 @@ class ChartsViewModel @Inject constructor( // --------------------------- Category -------------------------------------------------------- // --------------------------- Accounts -------------------------------------------------------- - //TODO: Implement + // TODO: Implement // --------------------------- Accounts -------------------------------------------------------- - fun start() { viewModelScope.launch { // _baseCurrencyCode.value = ioThread { baseCurrencyCode(settingsDao) } @@ -86,14 +84,16 @@ class ChartsViewModel @Inject constructor( } private suspend fun generateBalanceChart(period: ChartPeriod) = - (baseCurrencyAct then { baseCurrency -> - balanceChartAct( - BalanceChartAct.Input( - baseCurrency = baseCurrency, - period = period + ( + baseCurrencyAct then { baseCurrency -> + balanceChartAct( + BalanceChartAct.Input( + baseCurrency = baseCurrency, + period = period + ) ) - ) - })(Unit) + } + )(Unit) private suspend fun generateIncomeExpenseChart(period: ChartPeriod) = ioThread { incomeExpenseChart( @@ -103,7 +103,6 @@ class ChartsViewModel @Inject constructor( ) } - fun loadValuesForCategory( category: Category ) { @@ -155,7 +154,7 @@ class ChartsViewModel @Inject constructor( _categoryExpenseCount.value = categoryExpenseCount.loadCategoryValue( period = period, category = category, - calculateValue = { range -> + calculateValue = { range -> walletCategoryLogic.historyByCategory( category = category, range = range @@ -196,7 +195,6 @@ class ChartsViewModel @Inject constructor( ) } - private suspend fun StateFlow>.loadCategoryValue( period: ChartPeriod, category: Category, @@ -233,10 +231,9 @@ class ChartsViewModel @Inject constructor( _period.value = period start() - //Re-load categories + // Re-load categories val loadedCategories = categoryExpenseValues.value.map { it.category } loadedCategories.forEach { removeCategory(it) } loadedCategories.forEach { loadValuesForCategory(it) } } } - diff --git a/app/src/main/java/com/ivy/wallet/ui/charts/TimeValue.kt b/app/src/main/java/com/ivy/wallet/ui/charts/TimeValue.kt index ba1ff83729..4875a5ecb3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/charts/TimeValue.kt +++ b/app/src/main/java/com/ivy/wallet/ui/charts/TimeValue.kt @@ -27,4 +27,4 @@ fun List.toValue(): List { y = it.value ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/charts/charts/AccountCharts.kt b/app/src/main/java/com/ivy/wallet/ui/charts/charts/AccountCharts.kt index c752d4ad19..39bdf7217a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/charts/charts/AccountCharts.kt +++ b/app/src/main/java/com/ivy/wallet/ui/charts/charts/AccountCharts.kt @@ -4,5 +4,4 @@ import androidx.compose.foundation.lazy.LazyListScope import com.ivy.wallet.domain.pure.charts.ChartPeriod fun LazyListScope.accountCharts(period: ChartPeriod) { - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/charts/charts/CategoryCharts.kt b/app/src/main/java/com/ivy/wallet/ui/charts/charts/CategoryCharts.kt index da22663d5e..d839d49425 100644 --- a/app/src/main/java/com/ivy/wallet/ui/charts/charts/CategoryCharts.kt +++ b/app/src/main/java/com/ivy/wallet/ui/charts/charts/CategoryCharts.kt @@ -57,7 +57,6 @@ fun LazyListScope.categoryCharts( Spacer(Modifier.width(24.dp)) } - items(items = categories) { category -> ListItem( icon = category.icon, @@ -68,10 +67,10 @@ fun LazyListScope.categoryCharts( } ) { selected -> if (selected) { - //remove category + // remove category onRemoveCategory(category) } else { - //add category + // add category onLoadCategory(category) } } @@ -126,7 +125,7 @@ fun LazyListScope.categoryCharts( } item { - Spacer(Modifier.height(196.dp)) //scroll hack + Spacer(Modifier.height(196.dp)) // scroll hack } } @@ -195,6 +194,5 @@ private fun CategoriesChart( // ), // formatValueAsCount = countChart // ) - } } diff --git a/app/src/main/java/com/ivy/wallet/ui/charts/charts/WalletCharts.kt b/app/src/main/java/com/ivy/wallet/ui/charts/charts/WalletCharts.kt index 892d173da5..0c4e8c641b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/charts/charts/WalletCharts.kt +++ b/app/src/main/java/com/ivy/wallet/ui/charts/charts/WalletCharts.kt @@ -101,7 +101,7 @@ fun LazyListScope.walletCharts( // } item { - Spacer(Modifier.height(196.dp)) //scroll hack + Spacer(Modifier.height(196.dp)) // scroll hack } } diff --git a/app/src/main/java/com/ivy/wallet/ui/component/transaction/HistoryDateDivider.kt b/app/src/main/java/com/ivy/wallet/ui/component/transaction/HistoryDateDivider.kt index 27bc6a2ed0..64c292dcd4 100644 --- a/app/src/main/java/com/ivy/wallet/ui/component/transaction/HistoryDateDivider.kt +++ b/app/src/main/java/com/ivy/wallet/ui/component/transaction/HistoryDateDivider.kt @@ -80,7 +80,6 @@ fun HistoryDateDivider( Spacer(Modifier.weight(1f)) - val cashflow = income - expenses Text( text = "${cashflow.format(baseCurrency)} $baseCurrency", @@ -136,4 +135,4 @@ private fun Preview_OneYear_Ago() { expenses = 256.13 ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionCard.kt b/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionCard.kt index 20cf2647dc..0528b29436 100644 --- a/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionCard.kt +++ b/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionCard.kt @@ -66,7 +66,6 @@ import com.ivy.wallet.utils.isNotNullOrBlank import com.ivy.wallet.utils.timeNowUTC import java.time.LocalDateTime - @Composable fun TransactionCard( baseData: AppBaseData, @@ -93,7 +92,7 @@ fun TransactionCard( .background(UI.colors.medium, UI.shapes.r4) .testTag("transaction_card") ) { - //TODO: Optimize this + // TODO: Optimize this val transactionCurrency = baseData.accounts.find { it.id == transaction.accountId }?.currency ?: baseData.baseCurrency @@ -120,8 +119,11 @@ fun TransactionCard( transaction.dueDate.formatNicely() ).uppercase(), style = UI.typo.nC.style( - color = if (transaction.dueDate.isAfter(timeNowUTC())) - Orange else UI.colors.gray, + color = if (transaction.dueDate.isAfter(timeNowUTC())) { + Orange + } else { + UI.colors.gray + }, fontWeight = FontWeight.Bold ) ) @@ -142,7 +144,6 @@ fun TransactionCard( color = UI.colors.pureInverse ) ) - } if (transaction.description.isNotNullOrBlank()) { @@ -189,7 +190,7 @@ fun TransactionCard( } if (transaction.dueDate != null && transaction.dateTime == null) { - //Pay/Get button + // Pay/Get button Spacer(Modifier.height(16.dp)) val isExpense = transaction.type == TransactionType.EXPENSE @@ -226,7 +227,6 @@ fun TransactionCard( onPayOrGet(transaction) } } - } Spacer(Modifier.height(20.dp)) @@ -409,7 +409,6 @@ fun TypeAmountCurrency( currency: String, amount: Double ) { - Row( modifier = Modifier.testTag("type_amount_currency"), verticalAlignment = Alignment.CenterVertically @@ -428,7 +427,7 @@ fun TypeAmountCurrency( TransactionType.EXPENSE -> { when { dueDate != null && dueDate.isAfter(timeNowUTC()) -> { - //Upcoming Expense + // Upcoming Expense AmountTypeStyle( icon = R.drawable.ic_expense, gradient = GradientOrangeRevert, @@ -437,7 +436,7 @@ fun TypeAmountCurrency( ) } dueDate != null && dueDate.isBefore(dateNowUTC().atStartOfDay()) -> { - //Overdue Expense + // Overdue Expense AmountTypeStyle( icon = R.drawable.ic_overdue, gradient = GradientRed, @@ -446,7 +445,7 @@ fun TypeAmountCurrency( ) } else -> { - //Normal Expense + // Normal Expense AmountTypeStyle( icon = R.drawable.ic_expense, gradient = Gradient.black(), @@ -457,7 +456,7 @@ fun TypeAmountCurrency( } } TransactionType.TRANSFER -> { - //Transfer + // Transfer AmountTypeStyle( icon = R.drawable.ic_transfer, gradient = GradientIvy, @@ -519,7 +518,6 @@ private fun PreviewUpcomingExpense() { ), onPayOrGet = {}, ) { - } } } @@ -552,7 +550,6 @@ private fun PreviewOverdueExpense() { ), onPayOrGet = {}, ) { - } } } @@ -619,7 +616,6 @@ private fun PreviewIncome() { ), onPayOrGet = {}, ) { - } } } @@ -651,14 +647,12 @@ private fun PreviewTransfer() { ), onPayOrGet = {}, ) { - } } } } } - @Preview @Composable private fun PreviewTransfer_differentCurrency() { @@ -690,9 +684,8 @@ private fun PreviewTransfer_differentCurrency() { ), onPayOrGet = {}, ) { - } } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionSectionDivider.kt b/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionSectionDivider.kt index 4d1b66d16f..56d32c7827 100644 --- a/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionSectionDivider.kt +++ b/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionSectionDivider.kt @@ -164,7 +164,6 @@ private fun Preview_Income_Expenses() { income = 8043.23, expenses = 923.87 ) { - } } } @@ -181,7 +180,6 @@ private fun Preview_Expenses() { income = 0.0, expenses = 923.87 ) { - } } } @@ -198,7 +196,6 @@ private fun Preview_Income() { income = 8043.23, expenses = 0.0 ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/component/transaction/Transactions.kt b/app/src/main/java/com/ivy/wallet/ui/component/transaction/Transactions.kt index f01be48c46..0e36911e1e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/component/transaction/Transactions.kt +++ b/app/src/main/java/com/ivy/wallet/ui/component/transaction/Transactions.kt @@ -114,7 +114,7 @@ private fun LazyListScope.upcomingSection( onSkipTransaction: (Transaction) -> Unit, setExpanded: (Boolean) -> Unit ) { - if (upcoming == null) return //guard + if (upcoming == null) return // guard if (upcoming.trns.isNotEmpty()) { item( @@ -178,10 +178,14 @@ private fun LazyListScope.overdueSection( modifier = Modifier.padding(horizontal = 24.dp), text = stringRes(R.string.skip_all), wrapContentMode = false, - backgroundGradient = if (isLightTheme) Gradient(White, White) else Gradient( - Black, - Black - ), + backgroundGradient = if (isLightTheme) { + Gradient(White, White) + } else { + Gradient( + Black, + Black + ) + }, textStyle = UI.typo.b2.style( color = if (isLightTheme) Black else White, fontWeight = FontWeight.Bold @@ -348,7 +352,7 @@ private fun LazyListScope.scrollHackSpacer( if (lastItemSpacer != null) { Spacer(Modifier.height(lastItemSpacer)) } else { - //last spacer - scroll hack + // last spacer - scroll hack val trnCount = history.size.plus( if (upcoming != null && upcoming.expanded) upcoming.trns.size else 0 ).plus( diff --git a/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionsDividerLine.kt b/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionsDividerLine.kt index b16aa4fd51..dae4a4c13e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionsDividerLine.kt +++ b/app/src/main/java/com/ivy/wallet/ui/component/transaction/TransactionsDividerLine.kt @@ -9,7 +9,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI - @Composable fun TransactionsDividerLine( modifier: Modifier = Modifier, @@ -22,4 +21,4 @@ fun TransactionsDividerLine( color = UI.colors.medium, thickness = 2.dp ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/component/transaction/Utils.kt b/app/src/main/java/com/ivy/wallet/ui/component/transaction/Utils.kt index 52f3c564bc..4502dcb092 100644 --- a/app/src/main/java/com/ivy/wallet/ui/component/transaction/Utils.kt +++ b/app/src/main/java/com/ivy/wallet/ui/component/transaction/Utils.kt @@ -22,4 +22,4 @@ fun account( ): Account? { val targetId = accountId ?: return null return ivyWalletCtx().accountMap[targetId] ?: accounts.find { it.id == targetId } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csv/CSVEvent.kt b/app/src/main/java/com/ivy/wallet/ui/csv/CSVEvent.kt index 9b84b1f9d8..1f7f581565 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csv/CSVEvent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csv/CSVEvent.kt @@ -31,4 +31,4 @@ sealed interface CSVEvent { val launchedFromOnboarding: Boolean, val onboardingViewModel: OnboardingViewModel ) : CSVEvent -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csv/CSVScreen.kt b/app/src/main/java/com/ivy/wallet/ui/csv/CSVScreen.kt index abe9ddc1e6..94ce231931 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csv/CSVScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csv/CSVScreen.kt @@ -107,7 +107,7 @@ private fun ImportUI( Duplicate transactions can NOT be easily deleted and you'll need to remove manually each one of them! Reason: We can't parse transaction ids because Ivy Wallet works only with UUID and other apps don't. If you're starting fresh, no worries - kindly ignore this message. - """.trimIndent(), + """.trimIndent(), style = UI.typo.c.colorAs(UI.colors.red), fontWeight = FontWeight.Bold, ) @@ -171,7 +171,6 @@ fun Spacer8(horizontal: Boolean = false) { } } - private fun LazyListScope.csvTable( csv: List ) { @@ -187,7 +186,6 @@ private fun LazyListScope.csvTable( } } } - } @Composable @@ -229,7 +227,6 @@ private fun CSVCell( ) } - private fun LazyListScope.mappingRow( columns: CSVRow, mapping: ColumnMapping, @@ -289,7 +286,8 @@ private fun LazyListScope.mappingRow( CSVRow( modifier = Modifier.horizontalScroll(rememberScrollState()), row = CSVRow(status.sampleValues), - header = false, even = true + header = false, + even = true ) } } diff --git a/app/src/main/java/com/ivy/wallet/ui/csv/CSVState.kt b/app/src/main/java/com/ivy/wallet/ui/csv/CSVState.kt index 76a67a0178..cbe28eee2c 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csv/CSVState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csv/CSVState.kt @@ -75,4 +75,4 @@ data class MappingStatus( data class CSVRow( val values: List -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/csv/CSVViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/csv/CSVViewModel.kt index 25e7c5c7c9..368fd1368d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csv/CSVViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csv/CSVViewModel.kt @@ -185,7 +185,6 @@ class CSVViewModel @Inject constructor( private var uiState by mutableStateOf(UIState.Idle) - @Composable fun uiState(): CSVState { val sampleCSV = remember(csv) { @@ -208,16 +207,21 @@ class CSVViewModel @Inject constructor( @Composable private fun continueEnabled(important: ImportantFields?): Boolean { return important != null && important.accountStatus.success && - important.amountStatus.success && - important.typeStatus.success && - important.dateStatus.success + important.amountStatus.success && + important.typeStatus.success && + important.dateStatus.success } @Composable private fun importantFields(sampleCSV: List?): ImportantFields? { return produceState( initialValue = null, - sampleCSV, amount, type, date, account, accountCurrency, + sampleCSV, + amount, + type, + date, + account, + accountCurrency, ) { val result = withContext(Dispatchers.Default) { if (sampleCSV != null) { @@ -236,7 +240,9 @@ class CSVViewModel @Inject constructor( ::parseAccountCurrency ), ) - } else null + } else { + null + } } value = result }.value @@ -246,7 +252,10 @@ class CSVViewModel @Inject constructor( private fun transferFields(sampleCSV: List?): TransferFields? { return produceState( initialValue = null, - sampleCSV, toAccount, toAccountCurrency, toAmount, + sampleCSV, + toAccount, + toAccountCurrency, + toAmount, ) { val result = withContext(Dispatchers.Default) { if (sampleCSV != null) { @@ -261,7 +270,9 @@ class CSVViewModel @Inject constructor( toAmount = toAmount, toAmountStatus = sampleCSV.parseStatus(toAmount, ::parseAmount) ) - } else null + } else { + null + } } value = result }.value @@ -271,7 +282,10 @@ class CSVViewModel @Inject constructor( private fun optionalFields(sampleCSV: List?): OptionalFields? { return produceState( initialValue = null, - sampleCSV, category, title, description, + sampleCSV, + category, + title, + description, ) { val result = withContext(Dispatchers.Default) { if (sampleCSV != null) { @@ -283,13 +297,14 @@ class CSVViewModel @Inject constructor( description = description, descriptionStatus = sampleCSV.parseStatus(description, ::parseDescription), ) - } else null + } else { + null + } } value = result }.value } - private suspend fun handleEvent(event: CSVEvent) { when (event) { is CSVEvent.FilePicked -> handleFilePicked(event) @@ -438,9 +453,8 @@ class CSVViewModel @Inject constructor( } override fun validate(line: String?) { - //do nothing + // do nothing } - }) .withRowValidator(object : RowValidator { override fun isValid(row: Array?): Boolean { @@ -448,7 +462,7 @@ class CSVViewModel @Inject constructor( } override fun validate(row: Array?) { - //do nothing + // do nothing } }) .build() @@ -463,7 +477,6 @@ class CSVViewModel @Inject constructor( val emptyStatus = MappingStatus(emptyList(), false) withContext(Dispatchers.IO) { - val result = csvImporter.import( csv = csv, importantFields = ImportantFields( @@ -526,7 +539,6 @@ class CSVViewModel @Inject constructor( columns = null } - // region Boiler-plate private val events = MutableSharedFlow(replay = 0) @@ -544,4 +556,4 @@ class CSVViewModel @Inject constructor( } } // endregion -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csv/domain/CSVImporterV2.kt b/app/src/main/java/com/ivy/wallet/ui/csv/domain/CSVImporterV2.kt index dd2591ad20..a43bdbf07e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csv/domain/CSVImporterV2.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csv/domain/CSVImporterV2.kt @@ -61,10 +61,12 @@ class CSVImporterV2 @Inject constructor( val failedRows = mutableListOf() - val transactions = rows.mapIndexedNotNull { index, row -> - val progressPercent = if (rowsCount > 0) - index / rowsCount.toDouble() else 0.0 + val progressPercent = if (rowsCount > 0) { + index / rowsCount.toDouble() + } else { + 0.0 + } onProgress(progressPercent / 2) val transaction = mapToTransaction( @@ -78,7 +80,7 @@ class CSVImporterV2 @Inject constructor( if (transaction == null) { failedRows.add( CSVRow( - index = index + 2, //+ 1 because we skip Header and +1 because they don't start from zero + index = index + 2, // + 1 because we skip Header and +1 because they don't start from zero content = row.values ) ) @@ -86,10 +88,12 @@ class CSVImporterV2 @Inject constructor( transaction } - for ((index, transaction) in transactions.withIndex()) { - val progressPercent = if (rowsCount > 0) - index / transactions.size.toDouble() else 0.0 + val progressPercent = if (rowsCount > 0) { + index / transactions.size.toDouble() + } else { + 0.0 + } onProgress(0.5 + progressPercent / 2) transactionDao.save(transaction.toEntity()) } @@ -133,7 +137,9 @@ class CSVImporterV2 @Inject constructor( icon = null, orderNum = null, ) - } else null + } else { + null + } val csvAmount = if (type != TransactionType.TRANSFER) { parseAmount( @@ -149,7 +155,7 @@ class CSVImporterV2 @Inject constructor( val amount = csvAmount.absoluteValue if (amount <= 0) { - //Cannot save transactions with zero amount + // Cannot save transactions with zero amount return null } @@ -158,8 +164,9 @@ class CSVImporterV2 @Inject constructor( value = row.extractValue(transferFields.toAmount), metadata = transferFields.toAmount.metadata ) - } else null - + } else { + null + } val dateTime = parseDate( row.extractValue(importantFields.date), @@ -214,7 +221,6 @@ class CSVImporterV2 @Inject constructor( ) } - private suspend fun mapAccount( baseCurrency: String, accountNameString: String?, @@ -232,7 +238,7 @@ class CSVImporterV2 @Inject constructor( return existingAccount } - //create new account + // create new account val colorArgb = color ?: when { accountNameString.toLowerCaseLocal().contains("cash") -> { Green @@ -275,7 +281,6 @@ class CSVImporterV2 @Inject constructor( } catch (e: Exception) { baseCurrency } - } private suspend fun mapCategory( @@ -293,7 +298,7 @@ class CSVImporterV2 @Inject constructor( return existingCategory } - //create new category + // create new category val colorArgb = color ?: IVY_COLOR_PICKER_COLORS_FREE.getOrElse(newCategoryColorIndex++) { newCategoryColorIndex = 0 IVY_COLOR_PICKER_COLORS_FREE.first() @@ -310,4 +315,4 @@ class CSVImporterV2 @Inject constructor( return newCategory } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csv/domain/ParseFields.kt b/app/src/main/java/com/ivy/wallet/ui/csv/domain/ParseFields.kt index f074f549ac..8d436aaa52 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csv/domain/ParseFields.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csv/domain/ParseFields.kt @@ -62,7 +62,7 @@ fun parseTransactionType( ): TransactionType? { fun String.tryMeta(metaContains: String): Boolean { return metaContains.isNotBlank() && - this.contains(metaContains.trim(), ignoreCase = true) + this.contains(metaContains.trim(), ignoreCase = true) } return tryParse { @@ -232,4 +232,4 @@ private fun tryParse(block: () -> T): T? = try { } catch (e: Exception) { null } -// endregion \ No newline at end of file +// endregion diff --git a/app/src/main/java/com/ivy/wallet/ui/csv/domain/ParseStatus.kt b/app/src/main/java/com/ivy/wallet/ui/csv/domain/ParseStatus.kt index f74d069a66..ee4c9ffaaa 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csv/domain/ParseStatus.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csv/domain/ParseStatus.kt @@ -20,11 +20,10 @@ fun List.parseStatus( ) } - private fun tryStatus(block: () -> MappingStatus): MappingStatus = try { block() } catch (e: Exception) { MappingStatus(sampleValues = emptyList(), success = false) } -fun mappingFailure(): MappingStatus = MappingStatus(sampleValues = emptyList(), success = false) \ No newline at end of file +fun mappingFailure(): MappingStatus = MappingStatus(sampleValues = emptyList(), success = false) diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/ImportStep.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/ImportStep.kt index d0abce2763..e7a04ec325 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/ImportStep.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/ImportStep.kt @@ -2,4 +2,4 @@ package com.ivy.wallet.ui.csvimport enum class ImportStep { IMPORT_FROM, INSTRUCTIONS, LOADING, RESULT -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/ImportViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/ImportViewModel.kt index a6d1f3f5d5..20684ac336 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/ImportViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/ImportViewModel.kt @@ -58,7 +58,7 @@ class ImportViewModel @Inject constructor( true } ImportStep.LOADING -> { - //do nothing, disable back + // do nothing, disable back true } ImportStep.RESULT -> { @@ -80,9 +80,9 @@ class ImportViewModel @Inject constructor( _importStep.value = ImportStep.LOADING - _importResult.value = if (hasCSVExtension(context, fileUri)) + _importResult.value = if (hasCSVExtension(context, fileUri)) { restoreCSVFile(fileUri = fileUri, importType = importType) - else { + } else { backupLogic.import( backupFileUri = fileUri ) { progressPercent -> @@ -203,4 +203,4 @@ class ImportViewModel @Inject constructor( val fileName = context.getFileName(fileUri) fileName?.endsWith(suffix = ".csv", ignoreCase = true) ?: false } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportFrom.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportFrom.kt index b97a17f70d..0ac1df67e7 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportFrom.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportFrom.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.csvimport.flow - import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.clickable @@ -63,7 +62,7 @@ fun BoxWithConstraintsScope.ImportFrom( onBack = { nav.onBackPressed() }, onSkip = onSkip ) - //onboarding toolbar include paddingBottom 16.dp + // onboarding toolbar include paddingBottom 16.dp } item { @@ -104,7 +103,7 @@ fun BoxWithConstraintsScope.ImportFrom( } item { - //last spacer + // last spacer Spacer(Modifier.height(96.dp)) } } @@ -162,4 +161,4 @@ private fun Preview() { launchedFromOnboarding = false, ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportProcessing.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportProcessing.kt index fc06534c26..8af25f3241 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportProcessing.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportProcessing.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.csvimport.flow - import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -48,7 +47,7 @@ fun ImportProcessing( Spacer(Modifier.height(8.dp)) Text( - text = "${progressPercent}%", + text = "$progressPercent%", style = UI.typo.b2.style( color = Gray, fontWeight = FontWeight.Bold @@ -119,4 +118,4 @@ private fun Preview() { progressPercent = 49 ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportResultUI.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportResultUI.kt index 0a4f838ff7..7637199d17 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportResultUI.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/ImportResultUI.kt @@ -58,7 +58,7 @@ fun ImportResultUI( Spacer(Modifier.height(24.dp)) val importSuccess = result.transactionsImported > 0 && - result.transactionsImported > result.rowsFound / 2 + result.transactionsImported > result.rowsFound / 2 Text( modifier = Modifier.padding(horizontal = 32.dp), text = if (importSuccess) stringResource(R.string.success) else stringResource(R.string.failure), @@ -81,8 +81,11 @@ fun ImportResultUI( Spacer(Modifier.height(8.dp)) - val successPercent = if (result.rowsFound > 0) - (result.transactionsImported / result.rowsFound.toDouble()) * 100 else 0.0 + val successPercent = if (result.rowsFound > 0) { + (result.transactionsImported / result.rowsFound.toDouble()) * 100 + } else { + 0.0 + } Text( modifier = Modifier.padding(horizontal = 32.dp), text = "${successPercent.format(2)}%", @@ -122,7 +125,6 @@ fun ImportResultUI( ) ) - Spacer(Modifier.height(32.dp)) IvyDividerLine( @@ -131,7 +133,6 @@ fun ImportResultUI( Spacer(Modifier.height(32.dp)) - Text( modifier = Modifier.padding(horizontal = 32.dp), text = stringResource(R.string.failed), @@ -163,7 +164,7 @@ fun ImportResultUI( ) ) - //TODO: Implement "See failed imports" + // TODO: Implement "See failed imports" if (!isManualCsvImport) { Spacer(modifier = Modifier.height(16.dp)) @@ -221,7 +222,6 @@ fun ImportResultUI( } } - @Preview @Composable private fun Preview() { @@ -236,7 +236,6 @@ private fun Preview() { ), launchedFromOnboarding = false, ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/DefaultImportSteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/DefaultImportSteps.kt index 58a7ebeec9..c077bd06db 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/DefaultImportSteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/DefaultImportSteps.kt @@ -35,4 +35,4 @@ fun DefaultImportSteps( stepNumber = 2, onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/FinancistoSteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/FinancistoSteps.kt index 3659143cf4..94e6734f6e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/FinancistoSteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/FinancistoSteps.kt @@ -26,4 +26,4 @@ fun FinancistoSteps( stepNumber = 2, onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/FortuneCitySteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/FortuneCitySteps.kt index 0ffcd0ffbd..f77d3b78ba 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/FortuneCitySteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/FortuneCitySteps.kt @@ -10,4 +10,4 @@ fun FortuneCitySteps( articleUrl = "https://fourdesire.helpshift.com/hc/en/5-fortune-city/faq/242-can-i-export-my-fortune-city-records/", onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/ImportInstructions.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/ImportInstructions.kt index 5681059d05..3a02ec96b0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/ImportInstructions.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/ImportInstructions.kt @@ -70,7 +70,7 @@ fun BoxWithConstraintsScope.ImportInstructions( onBack = { nav.onBackPressed() }, onSkip = onSkip ) - //onboarding toolbar include paddingBottom 16.dp + // onboarding toolbar include paddingBottom 16.dp } item { @@ -125,7 +125,7 @@ fun BoxWithConstraintsScope.ImportInstructions( } item { - //last spacer + // last spacer Spacer(Modifier.height(96.dp)) } } @@ -326,7 +326,6 @@ fun StepTitle( ) ) } - } @Composable @@ -374,8 +373,6 @@ private fun Preview() { importType = ImportType.MONEY_MANAGER, onSkip = {} ) { - } } } - diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/IvyWalletSteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/IvyWalletSteps.kt index f6f8ce2c50..94be79f822 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/IvyWalletSteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/IvyWalletSteps.kt @@ -37,4 +37,4 @@ fun IvyWalletSteps( btnTitle = "Upload Backup file", onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/KTWMoneyMangerSteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/KTWMoneyMangerSteps.kt index 7cb028e677..40b79b99a0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/KTWMoneyMangerSteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/KTWMoneyMangerSteps.kt @@ -9,4 +9,4 @@ fun KTWMoneyManagerSteps( DefaultImportSteps( onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/MonefySteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/MonefySteps.kt index a3ea6f994b..4820a9f2b3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/MonefySteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/MonefySteps.kt @@ -26,4 +26,4 @@ fun MonefySteps( stepNumber = 2, onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/MoneyManagerPraseSteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/MoneyManagerPraseSteps.kt index 1396bf0b62..ba36507ce4 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/MoneyManagerPraseSteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/MoneyManagerPraseSteps.kt @@ -31,7 +31,6 @@ fun MoneyManagerPraseSteps( Spacer(Modifier.height(24.dp)) - StepTitle( number = 2, title = stringResource(R.string.convert_xls_to_csv), @@ -50,12 +49,10 @@ fun MoneyManagerPraseSteps( ivyActivity.openUrlInBrowser("https://www.zamzar.com/converters/document/xls-to-csv/") } - Spacer(Modifier.height(24.dp)) - UploadFileStep( stepNumber = 3, onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/OneMoneySteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/OneMoneySteps.kt index e0ee39ef39..a4fd66fd0d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/OneMoneySteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/OneMoneySteps.kt @@ -9,4 +9,4 @@ fun OneMoneySteps( DefaultImportSteps( onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/SpendeeSteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/SpendeeSteps.kt index 5da267e1df..0b8fcacc91 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/SpendeeSteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/SpendeeSteps.kt @@ -47,4 +47,4 @@ fun SpendeeSteps( stepNumber = 4, onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/WalletByBudgetBakersSteps.kt b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/WalletByBudgetBakersSteps.kt index 46615c2a6d..c750992ea0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/WalletByBudgetBakersSteps.kt +++ b/app/src/main/java/com/ivy/wallet/ui/csvimport/flow/instructions/WalletByBudgetBakersSteps.kt @@ -10,4 +10,4 @@ fun WalletByBudgetBakersSteps( articleUrl = "https://support.budgetbakers.com/hc/en-us/articles/209753325-How-to-EXPORT-transactions-from-Wallet", onUploadClick = onUploadClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/data/AppBaseData.kt b/app/src/main/java/com/ivy/wallet/ui/data/AppBaseData.kt index 090396c6c2..24d9ade89e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/data/AppBaseData.kt +++ b/app/src/main/java/com/ivy/wallet/ui/data/AppBaseData.kt @@ -7,4 +7,4 @@ data class AppBaseData( val baseCurrency: String, val accounts: List, val categories: List -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/data/BufferInfo.kt b/app/src/main/java/com/ivy/wallet/ui/data/BufferInfo.kt index 6b5052a916..fc8f0fe3e4 100644 --- a/app/src/main/java/com/ivy/wallet/ui/data/BufferInfo.kt +++ b/app/src/main/java/com/ivy/wallet/ui/data/BufferInfo.kt @@ -5,4 +5,4 @@ import java.math.BigDecimal data class BufferInfo( val amount: BigDecimal, val bufferDiff: BigDecimal -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/data/DueSection.kt b/app/src/main/java/com/ivy/wallet/ui/data/DueSection.kt index 8a40a2ef73..b27bb8e575 100644 --- a/app/src/main/java/com/ivy/wallet/ui/data/DueSection.kt +++ b/app/src/main/java/com/ivy/wallet/ui/data/DueSection.kt @@ -7,4 +7,4 @@ data class DueSection( val trns: List, val expanded: Boolean, val stats: IncomeExpensePair -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt index a15cb407c5..1b26ca8bd5 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt @@ -10,4 +10,4 @@ sealed class DonateEvent { val activity: RootActivity, val option: DonateOption ) : DonateEvent() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateModal.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateModal.kt index b793f77714..315decc78d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateModal.kt @@ -76,9 +76,9 @@ fun BoxWithConstraintsScope.DonateModal( .fillMaxWidth() .padding(horizontal = 32.dp), text = "*GitHub Sponsors is our preferred way of donation because:\n" + - "1) You have custom donation options.\n2) If you choose a 'tier', you'll receive a small digital reward from us " + - "as a token of gratitude!\n3) You can be publicly recognized as an Ivy Wallet sponsor.\n\n" + - "Note: You'll need to choose your donation amount in the GitHub's website again.", + "1) You have custom donation options.\n2) If you choose a 'tier', you'll receive a small digital reward from us " + + "as a token of gratitude!\n3) You can be publicly recognized as an Ivy Wallet sponsor.\n\n" + + "Note: You'll need to choose your donation amount in the GitHub's website again.", color = UI.colors.primary, style = UI.typo.c, textAlign = TextAlign.Center, @@ -87,7 +87,6 @@ fun BoxWithConstraintsScope.DonateModal( } } - @Preview @Composable private fun Preview() { @@ -99,4 +98,4 @@ private fun Preview() { onGitHubSponsors = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt index f2cc80e974..7f23048bca 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt @@ -264,7 +264,7 @@ private fun ScreenContent() { } item { - SpacerVer(height = 120.dp) //scroll hack + SpacerVer(height = 120.dp) // scroll hack } } } @@ -316,4 +316,4 @@ private fun Preview() { IvyWalletPreview { UI(onEvent = {}) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt index ee3dccf9bd..e30a29805a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt @@ -6,4 +6,4 @@ sealed class DonateState { data class Error( val errMsg: String ) : DonateState() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt index cd3d1b58ad..2d34fa5765 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt @@ -67,4 +67,4 @@ class DonateViewModel @Inject constructor( } stateVal() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt b/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt index 06bb421daa..0444b4abfe 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt @@ -2,4 +2,4 @@ package com.ivy.wallet.ui.donate.data enum class DonateOption { DONATE_2, DONATE_5, DONATE_10, DONATE_15, DONATE_25, DONATE_50, DONATE_100 -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/EditTransactionScreen.kt b/app/src/main/java/com/ivy/wallet/ui/edit/EditTransactionScreen.kt index c29d559fb2..808fcccd5d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/EditTransactionScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/EditTransactionScreen.kt @@ -229,7 +229,7 @@ private fun BoxWithConstraintsScope.UI( val titleFocus = FocusRequester() val scrollState = rememberScrollState() - //This is to scroll the column to the customExchangeCard composable when it is shown + // This is to scroll the column to the customExchangeCard composable when it is shown var customExchangeRatePosition by remember { mutableStateOf(0F) } LaunchedEffect(key1 = customExchangeRateState.showCard) { val scrollInt = @@ -247,7 +247,7 @@ private fun BoxWithConstraintsScope.UI( Spacer(Modifier.height(16.dp)) Toolbar( - //Setting the transaction type to TransactionType.TRANSFER for transactions associated + // Setting the transaction type to TransactionType.TRANSFER for transactions associated // with loan record to hide the ChangeTransactionType Button type = if (loanData.isLoanRecord) TransactionType.TRANSFER else transactionType, initialTransactionId = screen.initialTransactionId, @@ -352,7 +352,7 @@ private fun BoxWithConstraintsScope.UI( toCurrencyCode = customExchangeRateState.toCurrencyCode ?: baseCurrency, exchangeRate = customExchangeRateState.exchangeRate, onRefresh = { - //Set exchangeRate to null to reset + // Set exchangeRate to null to reset onExchangeRateChanged(null) }, modifier = Modifier.onGloballyPositioned { coordinates -> @@ -387,7 +387,7 @@ private fun BoxWithConstraintsScope.UI( ) } - Spacer(Modifier.height(600.dp)) //scroll hack + Spacer(Modifier.height(600.dp)) // scroll hack } onScreenStart { @@ -409,33 +409,37 @@ private fun BoxWithConstraintsScope.UI( ActionButton = { if (screen.initialTransactionId != null) { - //Edit mode + // Edit mode if (dueDate != null) { - //due date stuff + // due date stuff if (hasChanges) { - //has changes + // has changes ModalSave { onSave(false) onSetHasChanges(false) } } else { - //no changes, pay + // no changes, pay ModalCheck( - label = if (transactionType == TransactionType.EXPENSE) stringResource( - R.string.pay - ) else stringResource(R.string.get) + label = if (transactionType == TransactionType.EXPENSE) { + stringResource( + R.string.pay + ) + } else { + stringResource(R.string.get) + } ) { onPayPlannedPayment() } } } else { - //normal transaction + // normal transaction ModalSave { onSave(true) } } } else { - //create new mode + // create new mode ModalAdd { onSave(true) } @@ -459,8 +463,9 @@ private fun BoxWithConstraintsScope.UI( if (loanData.isLoan && account?.currency != it.currency) { selectedAcc = it accountChangeModal = true - } else + } else { onAccountChanged(it) + } }, onToAccountChanged = onToAccountChanged, onAddNewAccount = { @@ -472,7 +477,7 @@ private fun BoxWithConstraintsScope.UI( } ) - //Modals + // Modals ChooseCategoryModal( visible = chooseCategoryModalVisible, initialCategory = category, @@ -572,7 +577,6 @@ private fun BoxWithConstraintsScope.UI( onExchangeRateChanged(it) } ) - } private fun shouldFocusCategory( @@ -629,4 +633,4 @@ private fun Preview() { onSetTransactionType = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/EditTransactionViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/edit/EditTransactionViewModel.kt index b3b03ed005..4d537c16f8 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/EditTransactionViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/EditTransactionViewModel.kt @@ -116,7 +116,7 @@ class EditTransactionViewModel @Inject constructor( MutableStateFlow(EditTransactionDisplayLoan()) val displayLoanHelper = _displayLoanHelper.asStateFlow() - //This is used to when the transaction is associated with a loan/loan record, + // This is used to when the transaction is associated with a loan/loan record, // used to indicate the background updating of loan/loanRecord data private val _backgroundProcessingStarted = MutableStateFlow(false) val backgroundProcessingStarted = _backgroundProcessingStarted.asStateFlow() @@ -127,7 +127,7 @@ class EditTransactionViewModel @Inject constructor( private var loadedTransaction: Transaction? = null private var editMode = false - //Used for optimising in updating all loan/loanRecords + // Used for optimising in updating all loan/loanRecords private var accountsChanged = false var title: String? = null @@ -172,26 +172,30 @@ class EditTransactionViewModel @Inject constructor( } private suspend fun getDisplayLoanHelper(trans: Transaction): EditTransactionDisplayLoan { - if (trans.loanId == null) + if (trans.loanId == null) { return EditTransactionDisplayLoan() + } val loan = ioThread { loanDao.findById(trans.loanId) } ?: return EditTransactionDisplayLoan() val isLoanRecord = trans.loanRecordId != null - val loanWarningDescription = if (isLoanRecord) + val loanWarningDescription = if (isLoanRecord) { "Note: This transaction is associated with a Loan Record of Loan : ${loan.name}\n" + - "You are trying to change the account associated with the loan record to an account of different currency" + - "\n The Loan Record will be re-calculated based on today's currency exchanges rates" - else { + "You are trying to change the account associated with the loan record to an account of different currency" + + "\n The Loan Record will be re-calculated based on today's currency exchanges rates" + } else { "Note: You are trying to change the account associated with the loan: ${loan.name} with an account " + - "of different currency, " + - "\nAll the loan records will be re-calculated based on today's currency exchanges rates " + "of different currency, " + + "\nAll the loan records will be re-calculated based on today's currency exchanges rates " } val loanCaption = - if (isLoanRecord) "* This transaction is associated with a Loan Record of Loan : ${loan.name}" - else "* This transaction is associated with Loan : ${loan.name}" + if (isLoanRecord) { + "* This transaction is associated with a Loan Record of Loan : ${loan.name}" + } else { + "* This transaction is associated with Loan : ${loan.name}" + } return EditTransactionDisplayLoan( isLoan = true, @@ -212,7 +216,7 @@ class EditTransactionViewModel @Inject constructor( val lastSelectedId = sharedPrefs.getString(SharedPrefs.LAST_SELECTED_ACCOUNT_ID, null) ?.let { UUID.fromString(it) } if (lastSelectedId != null && ioThread { accounts.find { it.id == lastSelectedId } } != null) { - //use last selected account + // use last selected account return lastSelectedId } @@ -239,9 +243,9 @@ class EditTransactionViewModel @Inject constructor( updateCurrency(account = selectedAccount) - _customExchangeRateState.value = if (transaction.toAccountId == null) + _customExchangeRateState.value = if (transaction.toAccountId == null) { CustomExchangeRateState() - else { + } else { val exchangeRate = transaction.toAmount / transaction.amount val toAccountCurrency = _accounts.value.find { acc -> acc.id == transaction.toAccountId }?.currency @@ -339,7 +343,7 @@ class EditTransactionViewModel @Inject constructor( accountsChanged = true - //update last selected account + // update last selected account sharedPrefs.putString(SharedPrefs.LAST_SELECTED_ACCOUNT_ID, newAccount.id.toString()) saveIfEditMode() @@ -389,7 +393,6 @@ class EditTransactionViewModel @Inject constructor( saveIfEditMode() } - fun onPayPlannedPayment() { viewModelScope.launch { TestIdlingResource.increment() @@ -411,7 +414,6 @@ class EditTransactionViewModel @Inject constructor( } } - fun delete() { viewModelScope.launch { TestIdlingResource.increment() @@ -434,7 +436,7 @@ class EditTransactionViewModel @Inject constructor( categoryCreator.createCategory(data) { _categories.value = categoriesAct(Unit) - //Select the newly created category + // Select the newly created category onCategoryChanged(it) } @@ -512,7 +514,7 @@ class EditTransactionViewModel @Inject constructor( dueDate = dueDate.value, dateTime = when { loadedTransaction().dateTime == null && - dueDate.value == null -> { + dueDate.value == null -> { timeNowUTC() } @@ -534,7 +536,7 @@ class EditTransactionViewModel @Inject constructor( accountsChanged = accountsChanged ) - //Reset Counter + // Reset Counter accountsChanged = false } @@ -622,18 +624,18 @@ class EditTransactionViewModel @Inject constructor( } val exRate = exchangeRate - ?: if (customExchangeRateState.value.showCard && toAccCurrencyCode == customExchangeRateState.value.toCurrencyCode - && fromAccCurrencyCode == customExchangeRateState.value.fromCurrencyCode && !resetRate - ) + ?: if (customExchangeRateState.value.showCard && toAccCurrencyCode == customExchangeRateState.value.toCurrencyCode && + fromAccCurrencyCode == customExchangeRateState.value.fromCurrencyCode && !resetRate + ) { customExchangeRateState.value.exchangeRate - else + } else { exchangeRatesLogic.convertAmount( baseCurrency = baseUserCurrency, amount = 1.0, fromCurrency = fromAccCurrencyCode, toCurrency = toAccCurrencyCode ) - + } val amount = amt ?: _amount.value ?: 0.0 @@ -657,4 +659,4 @@ class EditTransactionViewModel @Inject constructor( updateCustomExchangeRateState(exchangeRate = exRate, resetRate = exRate == null) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/PrimaryAttributeColumn.kt b/app/src/main/java/com/ivy/wallet/ui/edit/PrimaryAttributeColumn.kt index c975a0b2c8..c52a3c082b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/PrimaryAttributeColumn.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/PrimaryAttributeColumn.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.edit - import androidx.annotation.DrawableRes import androidx.compose.foundation.border import androidx.compose.foundation.layout.Column @@ -83,13 +82,13 @@ private fun PreviewPrimaryAttributeColumn() { Text( modifier = Modifier.padding(horizontal = 24.dp), text = "This mode is not recommended for production use,\n" + - "as no stability/compatibility guarantees are given on\n" + - "compiler or generated code. Use it at your own risk!\n" + - "\n" + - "\n" + - "Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.\n" + - "Use '--warning-mode all' to show the individual deprecation warnings.\n" + - "See https://docs.gradle.org/7.0-rc-1/userguide/command_line_interface.html#sec:command_line_warnings", + "as no stability/compatibility guarantees are given on\n" + + "compiler or generated code. Use it at your own risk!\n" + + "\n" + + "\n" + + "Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.\n" + + "Use '--warning-mode all' to show the individual deprecation warnings.\n" + + "See https://docs.gradle.org/7.0-rc-1/userguide/command_line_interface.html#sec:command_line_warnings", style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.Medium @@ -99,4 +98,4 @@ private fun PreviewPrimaryAttributeColumn() { Spacer(Modifier.height(20.dp)) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/TransactionDateTime.kt b/app/src/main/java/com/ivy/wallet/ui/edit/TransactionDateTime.kt index 44fd7ba49f..fa35ef5c87 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/TransactionDateTime.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/TransactionDateTime.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.edit - import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Row @@ -89,7 +88,6 @@ private fun Preview() { dateTime = timeNowUTC(), dueDateTime = null ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/core/Category.kt b/app/src/main/java/com/ivy/wallet/ui/edit/core/Category.kt index 82cf0bd3eb..1c7754ee51 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/core/Category.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/core/Category.kt @@ -11,7 +11,6 @@ import com.ivy.design.l0_system.style import com.ivy.wallet.R import com.ivy.wallet.domain.data.core.Category import com.ivy.wallet.ui.theme.Gradient - import com.ivy.wallet.ui.theme.components.IvyBorderButton import com.ivy.wallet.ui.theme.components.IvyButton import com.ivy.wallet.ui.theme.components.getCustomIconIdS @@ -63,4 +62,4 @@ private fun CategoryButton( wrapContentMode = true, onClick = onClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/core/Description.kt b/app/src/main/java/com/ivy/wallet/ui/edit/core/Description.kt index 2142637d53..80e7ec8349 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/core/Description.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/core/Description.kt @@ -79,7 +79,6 @@ private fun PreviewDescription_Empty() { description = null, onAddDescription = {} ) { - } } } @@ -92,7 +91,6 @@ private fun PreviewDescription_withText() { description = "This is my sample description.", onAddDescription = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/core/DueDate.kt b/app/src/main/java/com/ivy/wallet/ui/edit/core/DueDate.kt index 4db41849ad..f51b25f438 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/core/DueDate.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/core/DueDate.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.edit.core - import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Row @@ -90,4 +89,4 @@ private fun Preview_OneTime() { ) { } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/core/EditBottomSheet.kt b/app/src/main/java/com/ivy/wallet/ui/edit/core/EditBottomSheet.kt index 3d97305515..d93e77ca23 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/core/EditBottomSheet.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/core/EditBottomSheet.kt @@ -143,10 +143,11 @@ fun BoxWithConstraintsScope.EditBottomSheet( val percentCollapsed = 1f - percentExpanded val showConvertedAmountText by remember(convertedAmount) { - if (type == TransactionType.TRANSFER && convertedAmount != null && convertedAmountCurrencyCode != null) + if (type == TransactionType.TRANSFER && convertedAmount != null && convertedAmountCurrencyCode != null) { mutableStateOf("${convertedAmount.format(2)} $convertedAmountCurrencyCode") - else + } else { mutableStateOf(null) + } } Column( @@ -179,7 +180,7 @@ fun BoxWithConstraintsScope.EditBottomSheet( ) .consumeClicks() ) { - //Accounts label + // Accounts label val label = when (type) { TransactionType.INCOME -> stringResource(R.string.add_money_to) TransactionType.EXPENSE -> stringResource(R.string.pay_with) @@ -234,7 +235,7 @@ fun BoxWithConstraintsScope.EditBottomSheet( Spacer(Modifier.height(lastSpacer.dp)) } // - //system stuff + keyboard padding + // system stuff + keyboard padding Spacer(Modifier.height(densityScope { bottomBarHeight.toDp() })) Spacer(Modifier.height(keyboardShownInsetDp)) } @@ -522,10 +523,10 @@ private fun AccountsRow( val selectedIndex = accounts.indexOf(selectedAccount) if (selectedIndex != -1) { launch { - if (TestingContext.inTest) return@launch //breaks UI tests + if (TestingContext.inTest) return@launch // breaks UI tests lazyState.scrollToItem( - index = selectedIndex, //+1 because Spacer width 24.dp + index = selectedIndex, // +1 because Spacer width 24.dp ) } } @@ -679,7 +680,7 @@ private fun Amount( ) } - Column() { + Column { BalanceRow( modifier = Modifier .clickableNoIndication { @@ -693,7 +694,6 @@ private fun Amount( spacerDecimal = spacerInteger.dp, spacerCurrency = 8.dp, - integerFontSize = integerFontSize.sp, decimalFontSize = 18.sp, currencyFontSize = currencyFontSize.sp, @@ -789,8 +789,7 @@ private fun Preview() { initialTransactionId = null, type = TransactionType.INCOME, ActionButton = { - ModalSet() { - + ModalSet { } }, accounts = listOf( @@ -829,7 +828,6 @@ private fun Preview_Transfer() { initialTransactionId = UUID.randomUUID(), ActionButton = { ModalSave { - } }, type = TransactionType.TRANSFER, @@ -850,4 +848,4 @@ private fun Preview_Transfer() { ) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/core/Title.kt b/app/src/main/java/com/ivy/wallet/ui/edit/core/Title.kt index 7b86e918ef..821fee2722 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/core/Title.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/core/Title.kt @@ -86,7 +86,7 @@ fun ColumnScope.Title( onTitleChanged(suggestion) coroutineScope.launch { - //scroll to top for better UX + // scroll to top for better UX scrollState?.animateScrollTo(0) } } @@ -147,8 +147,7 @@ private fun PreviewTitleWithSuggestions() { ), onTitleChanged = {} ) { - } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/core/Toolbar.kt b/app/src/main/java/com/ivy/wallet/ui/edit/core/Toolbar.kt index 4bdebef516..41b865e077 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/core/Toolbar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/core/Toolbar.kt @@ -58,12 +58,11 @@ fun Toolbar( Spacer(Modifier.width(12.dp)) } else -> { - //show nothing + // show nothing } } if (initialTransactionId != null) { - DeleteButton( hasShadow = false ) { diff --git a/app/src/main/java/com/ivy/wallet/ui/exchangerates/ExchangeRatesScreen.kt b/app/src/main/java/com/ivy/wallet/ui/exchangerates/ExchangeRatesScreen.kt index b9f842568e..3ae480c45d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/exchangerates/ExchangeRatesScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/exchangerates/ExchangeRatesScreen.kt @@ -204,7 +204,6 @@ private fun SearchField( ) } - @Preview @Composable private fun Preview() { @@ -234,4 +233,4 @@ private fun Preview() { onEvent = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/exchangerates/ExchangeRatesViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/exchangerates/ExchangeRatesViewModel.kt index 278ae07be2..6b7fef3dc3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/exchangerates/ExchangeRatesViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/exchangerates/ExchangeRatesViewModel.kt @@ -59,7 +59,6 @@ class ExchangeRatesViewModel @Inject constructor( rate = entity.rate ) - // region Event Handling fun onEvent(event: RatesEvent) { viewModelScope.launch { @@ -120,4 +119,4 @@ class ExchangeRatesViewModel @Inject constructor( syncExchangeRatesAct(SyncExchangeRatesAct.Input(baseCurrencyAct(Unit))) } // endregion -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/exchangerates/RatesEvent.kt b/app/src/main/java/com/ivy/wallet/ui/exchangerates/RatesEvent.kt index 1d323b120d..0d7fc7d8dc 100644 --- a/app/src/main/java/com/ivy/wallet/ui/exchangerates/RatesEvent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/exchangerates/RatesEvent.kt @@ -7,4 +7,4 @@ sealed interface RatesEvent { data class RemoveOverride(val rate: RateUi) : RatesEvent data class UpdateRate(val rate: RateUi, val newRate: Double) : RatesEvent data class AddRate(val rate: RateUi) : RatesEvent -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/exchangerates/RatesState.kt b/app/src/main/java/com/ivy/wallet/ui/exchangerates/RatesState.kt index 3f11f9632d..13285df2f3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/exchangerates/RatesState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/exchangerates/RatesState.kt @@ -6,4 +6,4 @@ data class RatesState( val baseCurrency: String, val manual: List, val automatic: List -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/exchangerates/component/RateItem.kt b/app/src/main/java/com/ivy/wallet/ui/exchangerates/component/RateItem.kt index 203b747adf..fbe0c5b82a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/exchangerates/component/RateItem.kt +++ b/app/src/main/java/com/ivy/wallet/ui/exchangerates/component/RateItem.kt @@ -55,7 +55,6 @@ fun RateItem( } } - // region Preview @Preview @Composable @@ -88,4 +87,4 @@ private fun Preview_Delete() { ) } } -// endregion \ No newline at end of file +// endregion diff --git a/app/src/main/java/com/ivy/wallet/ui/exchangerates/data/RateUi.kt b/app/src/main/java/com/ivy/wallet/ui/exchangerates/data/RateUi.kt index 352852f60e..73f23bd274 100644 --- a/app/src/main/java/com/ivy/wallet/ui/exchangerates/data/RateUi.kt +++ b/app/src/main/java/com/ivy/wallet/ui/exchangerates/data/RateUi.kt @@ -7,4 +7,4 @@ data class RateUi( val from: String, val to: String, val rate: Double -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/exchangerates/modal/AddRateModal.kt b/app/src/main/java/com/ivy/wallet/ui/exchangerates/modal/AddRateModal.kt index 4b88d7c7fc..6b80b79cd6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/exchangerates/modal/AddRateModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/exchangerates/modal/AddRateModal.kt @@ -83,7 +83,7 @@ fun BoxWithConstraintsScope.AddRateModal( amountModalVisible = true } .padding(horizontal = 16.dp, vertical = 12.dp), - text = "${baseCurrency}-${toCurrency} = ${rate ?: "???"}", + text = "$baseCurrency-$toCurrency = ${rate ?: "???"}", style = UI.typo.nH2.style( color = Orange, textAlign = TextAlign.Center, @@ -105,7 +105,6 @@ fun BoxWithConstraintsScope.AddRateModal( ) } - @Preview @Composable private fun Preview() { @@ -117,4 +116,4 @@ private fun Preview() { onAdd = {}, ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/home/CustomerJourney.kt b/app/src/main/java/com/ivy/wallet/ui/home/CustomerJourney.kt index c44017577f..7feabe4313 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/CustomerJourney.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/CustomerJourney.kt @@ -102,7 +102,7 @@ fun CustomerJourneyCard( .clickable { onDismiss() } - .padding(8.dp), //enlarge click area + .padding(8.dp), // enlarge click area icon = R.drawable.ic_dismiss, tint = cardData.background.startColor.dynamicContrast(), contentDescription = "prompt_dismiss", @@ -160,4 +160,4 @@ private fun PreviewCard() { onDismiss = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/home/HomeEvent.kt b/app/src/main/java/com/ivy/wallet/ui/home/HomeEvent.kt index 97efffcff9..d630be74a8 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/HomeEvent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/HomeEvent.kt @@ -29,4 +29,4 @@ sealed class HomeEvent { object SelectNextMonth : HomeEvent() object SelectPreviousMonth : HomeEvent() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/home/HomeHeader.kt b/app/src/main/java/com/ivy/wallet/ui/home/HomeHeader.kt index 254456b252..4614c5b1e3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/HomeHeader.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/HomeHeader.kt @@ -57,7 +57,6 @@ import com.ivy.wallet.utils.thenIf import com.ivy.wallet.utils.verticalSwipeListener import kotlin.math.absoluteValue - @ExperimentalAnimationApi @Composable internal fun HomeHeader( @@ -140,24 +139,31 @@ private fun HeaderStickyRow( modifier = Modifier .alpha(percentExpanded) .testTag("home_greeting_text"), - text = if (name.isNotNullOrBlank()) stringResource(R.string.hi_name, name) else stringResource(R.string.hi), + text = if (name.isNotNullOrBlank()) { + stringResource( + R.string.hi_name, + name + ) + } else { + stringResource(R.string.hi) + }, style = UI.typo.b1.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse ) ) - //Balance mini row + // Balance mini row if (percentExpanded < 1f) { BalanceRowMini( modifier = Modifier .alpha(alpha = 1f - percentExpanded) .clickableNoIndication { - if (hideCurrentBalance) + if (hideCurrentBalance) { onHiddenBalanceClick() - else + } else { onBalanceClick() - + } }, currency = currency, balance = balance, @@ -187,7 +193,7 @@ private fun HeaderStickyRow( Spacer(Modifier.width(12.dp)) - Spacer(Modifier.width(40.dp)) //settings menu button spacer + Spacer(Modifier.width(40.dp)) // settings menu button spacer Spacer(Modifier.width(24.dp)) } @@ -223,10 +229,11 @@ fun CashFlowInfo( modifier = Modifier .padding(horizontal = 20.dp) .clickableNoIndication { - if (hideCurrentBalance) + if (hideCurrentBalance) { onHiddenBalanceClick() - else + } else { onBalanceClick() + } } .testTag("home_balance"), currency = currency, @@ -245,7 +252,6 @@ fun CashFlowInfo( monthlyExpenses = monthlyExpenses ) - val cashflow = monthlyIncome - monthlyExpenses if (cashflow != 0.0) { Spacer(Modifier.height(12.dp)) @@ -254,7 +260,12 @@ fun CashFlowInfo( modifier = Modifier.padding( start = 24.dp ), - text = stringResource(R.string.cashflow, (if (cashflow > 0) "+" else ""), cashflow.format(currency), currency), + text = stringResource( + R.string.cashflow, + (if (cashflow > 0) "+" else ""), + cashflow.format(currency), + currency + ), style = UI.typo.nB2.style( color = if (cashflow < 0) Gray else Green ) @@ -393,4 +404,4 @@ private fun RowScope.HeaderCard( Spacer(Modifier.height(20.dp)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/home/HomeMoreMenu.kt b/app/src/main/java/com/ivy/wallet/ui/home/HomeMoreMenu.kt index b0c09b762e..09b99a7319 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/HomeMoreMenu.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/HomeMoreMenu.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.home - import androidx.annotation.DrawableRes import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.Canvas @@ -89,7 +88,6 @@ import kotlin.math.roundToInt private const val SWIPE_UP_THRESHOLD_CLOSE_MORE_MENU = 300 - @Composable fun BoxWithConstraintsScope.MoreMenu( expanded: Boolean, @@ -127,14 +125,14 @@ fun BoxWithConstraintsScope.MoreMenu( fraction = percentExpanded ) - //Background + // Background val colorMedium = UI.colors.medium if (percentExpanded > 0.01f) { Canvas( modifier = Modifier .fillMaxSize() .clickableNoIndication { - //do nothing + // do nothing } .zIndex(500f) ) { @@ -354,7 +352,6 @@ private fun ColumnScope.OpenSource() { ) ) } - } } @@ -485,7 +482,7 @@ private fun QuickAccess( Spacer(Modifier.height(16.dp)) - //Second Row + // Second Row Row( modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.Start, @@ -594,7 +591,6 @@ private fun Preview_Expanded() { onSwitchTheme = { }, onBufferClick = { } ) { - } } } @@ -639,7 +635,6 @@ private fun Preview() { onSwitchTheme = { }, onBufferClick = { } ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/home/HomeState.kt b/app/src/main/java/com/ivy/wallet/ui/home/HomeState.kt index f4b4a74d4b..ac4383a7e4 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/HomeState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/HomeState.kt @@ -62,4 +62,4 @@ data class HomeState( hideCurrentBalance = false ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/home/HomeTab.kt b/app/src/main/java/com/ivy/wallet/ui/home/HomeTab.kt index 1ffab84dd7..d232a6ba18 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/HomeTab.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/HomeTab.kt @@ -161,7 +161,6 @@ private fun BoxWithConstraintsScope.UI( hideCurrentBalance = state.hideCurrentBalance, - period = state.period, listState = listState, @@ -274,10 +273,8 @@ fun HomeLazyColumn( stats: IncomeExpensePair, history: List, - customerJourneyCards: List, - setUpcomingExpanded: (Boolean) -> Unit, setOverdueExpanded: (Boolean) -> Unit, @@ -301,7 +298,7 @@ fun HomeLazyColumn( source: NestedScrollSource ): Offset { if (listState.firstVisibleItemIndex == 0) { - //To prevent unnecessary updates + // To prevent unnecessary updates if (listState.firstVisibleItemScrollOffset >= 150 && !hideBalanceRowState.value) { hideBalanceRowState.value = true } else if (listState.firstVisibleItemScrollOffset < 150 && hideBalanceRowState.value) { @@ -381,4 +378,4 @@ private fun PreviewHomeTab() { onEvent = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/home/HomeViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/home/HomeViewModel.kt index acda9d1143..1fe3ac84fc 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/HomeViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/HomeViewModel.kt @@ -96,7 +96,7 @@ class HomeViewModel @Inject constructor( ) } then ::reload - //----------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------- private suspend fun reload( period: TimePeriod = ivyContext.selectedPeriod ): HomeState = suspend { @@ -112,13 +112,13 @@ class HomeViewModel @Inject constructor( ) } - //This method is used to restore the theme when user imports locally backed up data + // This method is used to restore the theme when user imports locally backed up data ivyContext.switchTheme(theme = settings.theme) Pair(settings, period.toRange(ivyContext.startDayOfMonth).toCloseTimeRange()) } then ::loadAppBaseData then ::loadIncomeExpenseBalance then - ::loadBuffer then ::loadTrnHistory then - ::loadDueTrns thenInvokeAfter ::loadCustomerJourney + ::loadBuffer then ::loadTrnHistory then + ::loadDueTrns thenInvokeAfter ::loadCustomerJourney private suspend fun loadAppBaseData( input: Pair @@ -248,7 +248,7 @@ class HomeViewModel @Inject constructor( ) } } - //----------------------------------------------------------------- + // ----------------------------------------------------------------- private suspend fun setUpcomingExpanded(expanded: Boolean) = suspend { updateState { it.copy(upcoming = it.upcoming.copy(expanded = expanded)) } @@ -261,10 +261,10 @@ class HomeViewModel @Inject constructor( private suspend fun onBalanceClick() = suspend { val hasTransactions = hasTrnsAct(Unit) if (hasTransactions) { - //has transactions show him "Balance" screen + // has transactions show him "Balance" screen nav.navigateTo(BalanceScreen) } else { - //doesn't have transactions lead him to adjust balance + // doesn't have transactions lead him to adjust balance ivyContext.selectMainTab(MainTab.ACCOUNTS) nav.navigateTo(Main) } @@ -275,7 +275,7 @@ class HomeViewModel @Inject constructor( private suspend fun onHiddenBalanceClick() = suspend { updateState { it.copy(hideCurrentBalance = false) } - //Showing Balance fow 5s + // Showing Balance fow 5s delay(5000) updateState { it.copy(hideCurrentBalance = true) } @@ -307,7 +307,7 @@ class HomeViewModel @Inject constructor( baseCurrency = newCurrency ) } then updateSettingsAct then { - //update exchange rates from POV of the new base currency + // update exchange rates from POV of the new base currency syncExchangeRatesAct(SyncExchangeRatesAct.Input(baseCurrency = newCurrency)) } then { reload() @@ -321,7 +321,7 @@ class HomeViewModel @Inject constructor( reload() } - //TODO: Refactor + // TODO: Refactor stateVal() } @@ -333,19 +333,19 @@ class HomeViewModel @Inject constructor( reload() } - //TODO: Refactor + // TODO: Refactor stateVal() } private suspend fun skipAllPlanned(transactions: List) = suspend { - //transactions.forEach { + // transactions.forEach { // plannedPaymentsLogic.payOrGet( // transaction = it, // skipTransaction = true // ){ // reload() // } - //} + // } plannedPaymentsLogic.payOrGet( transactions = transactions, skipTransaction = true @@ -368,7 +368,9 @@ class HomeViewModel @Inject constructor( } then { if (it != null) { reload(it) - } else stateVal() + } else { + stateVal() + } } private suspend fun previousMonth() = suspend { @@ -378,10 +380,12 @@ class HomeViewModel @Inject constructor( } then { if (it != null) { reload(it) - } else stateVal() + } else { + stateVal() + } } private suspend fun setPeriod(period: TimePeriod) = suspend { reload(period) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/loan/LoanBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/loan/LoanBottomBar.kt index 1da0afa3d2..795b40795b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/loan/LoanBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/loan/LoanBottomBar.kt @@ -38,7 +38,6 @@ private fun PreviewBottomBar() { .fillMaxSize() .background(Blue) ) { - } LoanBottomBar( @@ -46,4 +45,4 @@ private fun PreviewBottomBar() { onClose = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/loan/LoanViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/loan/LoanViewModel.kt index e459198352..dadf87406e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/loan/LoanViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/loan/LoanViewModel.kt @@ -172,7 +172,6 @@ class LoanViewModel @Inject constructor( private fun defaultAccountId( accounts: List, ): Account? { - val lastSelectedId = sharedPrefs.getString(SharedPrefs.LAST_SELECTED_ACCOUNT_ID, null)?.let { UUID.fromString(it) @@ -265,4 +264,4 @@ sealed class LoanScreenEvent { data class OnReOrderModalShow(val show: Boolean) : LoanScreenEvent() object OnAddLoan : LoanScreenEvent() object OnLoanModalDismiss : LoanScreenEvent() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/loan/LoansScreen.kt b/app/src/main/java/com/ivy/wallet/ui/loan/LoansScreen.kt index b43a1b044a..e18ba9ab01 100644 --- a/app/src/main/java/com/ivy/wallet/ui/loan/LoansScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/loan/LoansScreen.kt @@ -124,10 +124,9 @@ private fun BoxWithConstraintsScope.UI( Spacer(Modifier.weight(1f)) } - Spacer(Modifier.height(150.dp)) //scroll hack + Spacer(Modifier.height(150.dp)) // scroll hack } - LoanBottomBar( onAdd = { onEventHandler.invoke(LoanScreenEvent.OnAddLoan) @@ -285,7 +284,6 @@ private fun LoanHeader( color = loan.color.toComposeColor().dynamicContrast() ) ) - } Spacer(Modifier.height(4.dp)) @@ -315,7 +313,6 @@ private fun LoanHeader( private fun ColumnScope.LoanInfo( displayLoan: DisplayLoan ) { - Text( modifier = Modifier .fillMaxWidth() @@ -427,4 +424,4 @@ private fun Preview() { state = state ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/loan/data/DisplayLoan.kt b/app/src/main/java/com/ivy/wallet/ui/loan/data/DisplayLoan.kt index 00655cc7b6..45fe8084d9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/loan/data/DisplayLoan.kt +++ b/app/src/main/java/com/ivy/wallet/ui/loan/data/DisplayLoan.kt @@ -22,4 +22,4 @@ data class DisplayLoan( ) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/loandetails/LoanDetailsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/loandetails/LoanDetailsScreen.kt index 11711d1c0a..4c547d03a9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/loandetails/LoanDetailsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/loandetails/LoanDetailsScreen.kt @@ -151,7 +151,6 @@ private fun BoxWithConstraintsScope.UI( } var waitModalVisible by remember(loan) { mutableStateOf(false) } - Column( modifier = Modifier .fillMaxSize() @@ -159,7 +158,6 @@ private fun BoxWithConstraintsScope.UI( ) { val listState = rememberLazyListState() - LazyColumn( modifier = Modifier .fillMaxSize() @@ -212,12 +210,12 @@ private fun BoxWithConstraintsScope.UI( } item { - //Rounded corners top effect + // Rounded corners top effect Spacer( Modifier .height(32.dp) .fillMaxWidth() - .background(itemColor) //itemColor is displayed below the clip + .background(itemColor) // itemColor is displayed below the clip .background(UI.colors.pure, UI.shapes.r1Top) ) } @@ -246,7 +244,7 @@ private fun BoxWithConstraintsScope.UI( } item { - //scroll hack + // scroll hack Spacer(Modifier.height(96.dp)) } } @@ -255,7 +253,7 @@ private fun BoxWithConstraintsScope.UI( LoanModal( modal = loanModalData, onCreateLoan = { - //do nothing + // do nothing }, onEditLoan = onEditLoan, dismiss = { @@ -347,7 +345,6 @@ private fun Header( balance = loan.amount, ) - Spacer(Modifier.height(20.dp)) LoanInfoCard( @@ -419,8 +416,11 @@ private fun LoanInfoCard( onAddRecord: () -> Unit ) { - val backgroundColor = if (isDarkColor(loan.color)) - MediumBlack.copy(alpha = 0.9f) else MediumWhite.copy(alpha = 0.9f) + val backgroundColor = if (isDarkColor(loan.color)) { + MediumBlack.copy(alpha = 0.9f) + } else { + MediumWhite.copy(alpha = 0.9f) + } val contrastColor = findContrastTextColor(backgroundColor) val percentPaid = amountPaid / loan.amount @@ -450,7 +450,7 @@ private fun LoanInfoCard( fontWeight = FontWeight.ExtraBold ) ) - if (selectedLoanAccount != null) + if (selectedLoanAccount != null) { IvyButton( modifier = Modifier.padding(end = 16.dp, top = 12.dp), backgroundGradient = Gradient.solid(loan.color.toComposeColor()), @@ -475,11 +475,13 @@ private fun LoanInfoCard( ) ) } + } } - //Support UI for Old Versions where - if (selectedLoanAccount == null) + // Support UI for Old Versions where + if (selectedLoanAccount == null) { Spacer(Modifier.height(12.dp)) + } Text( modifier = Modifier @@ -548,7 +550,6 @@ private fun LoanInfoCard( ) if (loanAmountPaid != 0.0) { - Divider( modifier = Modifier .padding(horizontal = 24.dp, vertical = 16.dp) @@ -680,7 +681,6 @@ private fun LoanRecordItem( .background(UI.colors.medium, UI.shapes.r4) .testTag("loan_record_item") ) { - if (account != null || loanRecord.interest) { Row(Modifier.padding(16.dp)) { if (account != null) { @@ -710,7 +710,7 @@ private fun LoanRecordItem( } if (loanRecord.interest) { - //Spacer(modifier = Modifier.width(8.dp)) + // Spacer(modifier = Modifier.width(8.dp)) val textIconColor = if (isDarkColor(loan.color)) MediumWhite else MediumBlack @@ -731,7 +731,7 @@ private fun LoanRecordItem( padding = 8.dp, iconEdgePadding = 10.dp ) { - //do Nothing + // do Nothing } } } @@ -761,8 +761,9 @@ private fun LoanRecordItem( ) } - if (loanRecord.note.isNullOrEmpty()) + if (loanRecord.note.isNullOrEmpty()) { Spacer(Modifier.height(16.dp)) + } TypeAmountCurrency( transactionType = if (loan.type == LoanType.LEND) TransactionType.INCOME else TransactionType.EXPENSE, @@ -882,4 +883,4 @@ private fun Preview_Records() { amountPaid = 3821.00 ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/loandetails/LoanDetailsViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/loandetails/LoanDetailsViewModel.kt index d5579b25bf..5d6bb66c26 100644 --- a/app/src/main/java/com/ivy/wallet/ui/loandetails/LoanDetailsViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/loandetails/LoanDetailsViewModel.kt @@ -131,7 +131,7 @@ class LoanDetailsViewModel @Inject constructor( } computationThread { - //Using a local variable to calculate the amount and then reassigning to + // Using a local variable to calculate the amount and then reassigning to // the State variable to reduce the amount of compose re-draws var amtPaid = 0.0 var loanInterestAmtPaid = 0.0 @@ -139,8 +139,9 @@ class LoanDetailsViewModel @Inject constructor( val convertedAmount = it.loanRecord.convertedAmount ?: it.loanRecord.amount if (!it.loanRecord.interest) { amtPaid += convertedAmount - } else + } else { loanInterestAmtPaid += convertedAmount + } } _amountPaid.value = amtPaid @@ -196,7 +197,7 @@ class LoanDetailsViewModel @Inject constructor( loanTransactionsLogic.Loan.deleteAssociatedLoanTransactions(loan.id) loanCreator.delete(loan) { - //close screen + // close screen nav.back() } @@ -313,4 +314,4 @@ class LoanDetailsViewModel @Inject constructor( } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/main/MainBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/main/MainBottomBar.kt index b08f8d8446..ee673e984c 100644 --- a/app/src/main/java/com/ivy/wallet/ui/main/MainBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/main/MainBottomBar.kt @@ -111,7 +111,6 @@ fun BoxWithConstraintsScope.BottomBar( animationSpec = springBounceFast() ) - Row( modifier = Modifier .fillMaxWidth() @@ -120,7 +119,7 @@ fun BoxWithConstraintsScope.BottomBar( .alpha(1f - buttonsShownPercent) .navigationBarsPadding() .clickableNoIndication { - //consume click + // consume click }, verticalAlignment = Alignment.CenterVertically ) { @@ -152,7 +151,7 @@ fun BoxWithConstraintsScope.BottomBar( .offset(y = expandedBackgroundOffset) .background(UI.colors.pure.copy(alpha = 0.95f)) .clickableNoIndication { - //consume click, do nothing + // consume click, do nothing } .zIndex(100f) ) @@ -161,7 +160,7 @@ fun BoxWithConstraintsScope.BottomBar( // ------------------------------------ BUTTONS-------------------------------------------------- val fabStartX = ivyContext.screenWidth / 2 - FAB_BUTTON_SIZE.toDensityPx() / 2 val fabStartY = ivyContext.screenHeight - navigationBarInset() - - 30.dp.toDensityPx() - FAB_BUTTON_SIZE.toDensityPx() + 30.dp.toDensityPx() - FAB_BUTTON_SIZE.toDensityPx() TransactionButtons( buttonsShownPercent = buttonsShownPercent, @@ -178,7 +177,7 @@ fun BoxWithConstraintsScope.BottomBar( var dragOffset by remember { mutableStateOf(Offset.Zero) } - //+ & x button + // + & x button IvyCircleButton( modifier = Modifier .layout { measurable, constraints -> @@ -210,23 +209,23 @@ fun BoxWithConstraintsScope.BottomBar( when { abs(dragOffset.x) < horizontalThreshold && - dragOffset.y < -verticalThreshold -> { - //swipe up - dragOffset = Offset.Zero //prevent double open of the screen + dragOffset.y < -verticalThreshold -> { + // swipe up + dragOffset = Offset.Zero // prevent double open of the screen onAddExpense() } dragOffset.x < -horizontalThreshold && - dragOffset.y < -verticalThreshold -> { - //swipe up left - dragOffset = Offset.Zero //prevent double open of the screen + dragOffset.y < -verticalThreshold -> { + // swipe up left + dragOffset = Offset.Zero // prevent double open of the screen onAddIncome() } dragOffset.x > horizontalThreshold && - dragOffset.y < -verticalThreshold -> { - //swipe up right - dragOffset = Offset.Zero //prevent double open of the screen + dragOffset.y < -verticalThreshold -> { + // swipe up right + dragOffset = Offset.Zero // prevent double open of the screen onAddTransfer() } } @@ -277,8 +276,8 @@ private fun TransactionButtons( val ivyContext = ivyWalletCtx() val bH = 48.dp - val bV = 20.dp //24.dp - val bCenterV = 74.dp //80.dp + val bV = 20.dp // 24.dp + val bCenterV = 74.dp // 80.dp if (buttonsShownPercent > 0.01f) { val buttonLeftX = bH.toDensityPx() @@ -321,8 +320,7 @@ private fun TransactionButtons( ) // Add INCOME ------------------------------------------------------------------------------ - - //Add EXPENSE ------------------------------------------------------------------------------ + // Add EXPENSE ------------------------------------------------------------------------------ AddExpenseButton( buttonsShownPercent = buttonsShownPercent, fabStartX = fabStartX, @@ -331,10 +329,9 @@ private fun TransactionButtons( clickAreaWidth = clickAreaWidth, onAddExpense = onAddExpense ) - //Add EXPENSE ------------------------------------------------------------------------------ - + // Add EXPENSE ------------------------------------------------------------------------------ - //Add TRANSFER ---------------------------------------------------------------------------- + // Add TRANSFER ---------------------------------------------------------------------------- AddTransferButton( buttonsShownPercent = buttonsShownPercent, fabStartX = fabStartX, @@ -410,7 +407,7 @@ private fun AddIncomeButton( ) ) - //Click area + // Click area Spacer( modifier = Modifier .size( @@ -496,7 +493,7 @@ private fun AddExpenseButton( ) ) - //Click area + // Click area Spacer( modifier = Modifier .size( @@ -582,7 +579,7 @@ private fun AddTransferButton( ) ) - //Click area + // Click area Spacer( modifier = Modifier .size( @@ -641,5 +638,4 @@ private fun RowScope.Tab( ) } } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/main/MainScreen.kt b/app/src/main/java/com/ivy/wallet/ui/main/MainScreen.kt index 80e4afa408..c2281744b9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/main/MainScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/main/MainScreen.kt @@ -129,4 +129,4 @@ private fun PreviewMainScreen() { onCreateAccount = { } ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/main/MainTab.kt b/app/src/main/java/com/ivy/wallet/ui/main/MainTab.kt index 6938d9ecb3..3654f251ab 100644 --- a/app/src/main/java/com/ivy/wallet/ui/main/MainTab.kt +++ b/app/src/main/java/com/ivy/wallet/ui/main/MainTab.kt @@ -2,4 +2,4 @@ package com.ivy.wallet.ui.main enum class MainTab { HOME, ACCOUNTS -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/main/MainViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/main/MainViewModel.kt index 265603ae37..067bdeb191 100644 --- a/app/src/main/java/com/ivy/wallet/ui/main/MainViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/main/MainViewModel.kt @@ -39,7 +39,7 @@ class MainViewModel @Inject constructor( ivyContext.selectMainTab(MainTab.HOME) true } else { - //Exiting (the backstack will close the app) + // Exiting (the backstack will close the app) false } } @@ -54,7 +54,7 @@ class MainViewModel @Inject constructor( sharedPrefs.getBoolean(SharedPrefs.DATA_BACKUP_COMPLETED, false) ioThread { - //Sync exchange rates + // Sync exchange rates syncExchangeRatesAct( SyncExchangeRatesAct.Input(baseCurrency = baseCurrency) ) @@ -79,5 +79,4 @@ class MainViewModel @Inject constructor( TestIdlingResource.decrement() } } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/OnboardingScreen.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/OnboardingScreen.kt index 05cced0598..66a295c377 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/OnboardingScreen.kt @@ -177,4 +177,4 @@ private fun PreviewOnboarding() { onSetCurrency = {}, ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/OnboardingState.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/OnboardingState.kt index ed1ce40232..418082d010 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/OnboardingState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/OnboardingState.kt @@ -7,4 +7,4 @@ enum class OnboardingState { CURRENCY, ACCOUNTS, CATEGORIES -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingProgressSlider.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingProgressSlider.kt index 653218d5e4..60adc89562 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingProgressSlider.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingProgressSlider.kt @@ -13,8 +13,6 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI - - @Composable fun OnboardingProgressSlider( modifier: Modifier = Modifier, @@ -50,4 +48,4 @@ private fun Line( .size(width = width, height = 4.dp) .background(color, UI.shapes.rFull) ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingToolbar.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingToolbar.kt index c6ef916b01..799bd62e0a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingToolbar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingToolbar.kt @@ -36,7 +36,7 @@ fun OnboardingToolbar( .clickable { onSkip() } - .padding(all = 16.dp), //enlarge click area + .padding(all = 16.dp), // enlarge click area text = stringResource(R.string.skip), style = UI.typo.b2.style( color = Gray, @@ -54,9 +54,9 @@ fun OnboardingToolbar( private fun Preview() { IvyWalletComponentPreview { OnboardingToolbar( - hasSkip = true, onBack = {} + hasSkip = true, + onBack = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/Suggestions.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/Suggestions.kt index 1df7cdcef3..f20380062f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/Suggestions.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/Suggestions.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.onboarding.components - import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Row @@ -135,7 +134,6 @@ private fun AddNewButton( private class AddNew - @Preview @Composable private fun Preview() { @@ -148,7 +146,6 @@ private fun Preview() { ), onAddSuggestion = { } ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/AccountBalance.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/AccountBalance.kt index 36049d07d4..dd39ba6fd8 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/AccountBalance.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/AccountBalance.kt @@ -5,4 +5,4 @@ import com.ivy.wallet.domain.data.core.Account data class AccountBalance( val account: Account, val balance: Double -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/FromToTimeRange.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/FromToTimeRange.kt index f99c454cc0..91a25e003e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/FromToTimeRange.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/FromToTimeRange.kt @@ -17,13 +17,13 @@ data class FromToTimeRange( fun upcomingFrom(): LocalDateTime { val startOfDayNowUTC = - startOfDayNowUTC().minusDays(1) //-1 day to ensure that everything is included + startOfDayNowUTC().minusDays(1) // -1 day to ensure that everything is included return if (includes(startOfDayNowUTC)) startOfDayNowUTC else from() } fun overdueTo(): LocalDateTime { val startOfDayNowUTC = - startOfDayNowUTC().plusDays(1) //+1 day to ensure that everything is included + startOfDayNowUTC().plusDays(1) // +1 day to ensure that everything is included return if (includes(startOfDayNowUTC)) startOfDayNowUTC else to() } @@ -52,7 +52,7 @@ fun Iterable.filterUpcoming(): List { val todayStartOfDayUTC = dateNowUTC().atStartOfDay() return filter { - //make sure that it's in the future + // make sure that it's in the future it.dueDate != null && it.dueDate.isAfter(todayStartOfDayUTC) } } @@ -61,7 +61,7 @@ fun Iterable.filterOverdue(): List { val todayStartOfDayUTC = dateNowUTC().atStartOfDay() return filter { - //make sure that it's in the past + // make sure that it's in the past it.dueDate != null && it.dueDate.isBefore(todayStartOfDayUTC) } } @@ -78,4 +78,4 @@ fun FromToTimeRange.toCloseTimeRange(): ClosedTimeRange { from = from ?: beginningOfIvyTime(), to = to ?: toIvyFutureTime() ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/LastNTimeRange.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/LastNTimeRange.kt index d6d956e6f6..925f81bbef 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/LastNTimeRange.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/LastNTimeRange.kt @@ -14,5 +14,5 @@ data class LastNTimeRange( ) fun forDisplay(): String = - "$periodN ${periodType.forDisplay(periodN)}" -} \ No newline at end of file + "$periodN ${periodType.forDisplay(periodN)}" +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/TimePeriod.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/TimePeriod.kt index 6b7149aa43..d21554e182 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/TimePeriod.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/TimePeriod.kt @@ -27,15 +27,15 @@ data class TimePeriod( val dateNowUTC = dateNowUTC() val dayToday = dateNowUTC.dayOfMonth - //Examples month = Nov. startDate = 7; Period = from Nov (7) till Dec (6) + // Examples month = Nov. startDate = 7; Period = from Nov (7) till Dec (6) // => new period starts if today => startDayOfMonth val newPeriodStarted = dayToday >= startDayOfMonth val periodDate = if (newPeriodStarted) { - //new monthly period has already started then observe it => current month + // new monthly period has already started then observe it => current month dateNowUTC } else { - //new monthly period hasn't yet started then observe the ongoing one => previous month + // new monthly period hasn't yet started then observe the ongoing one => previous month dateNowUTC.minusMonths(1) } @@ -100,10 +100,10 @@ data class TimePeriod( .convertLocalToUTC() val to = date - //startDayOfMonth != 1 just shift N day the month forward so to should +1 month + // startDayOfMonth != 1 just shift N day the month forward so to should +1 month .plusMonths(1) .withDayOfMonthSafe(startDateOfMonth) - //e.g. Correct: 14.10-13.11 (Incorrect: 14.10-14.11) + // e.g. Correct: 14.10-13.11 (Incorrect: 14.10-14.11) .minusDays(1) .atEndOfDay() .convertLocalToUTC() @@ -160,12 +160,11 @@ data class TimePeriod( private fun displayMonthStartingOn1st(month: Month): String { val year = year return if (year != null && dateNowUTC().year != year) { - //not this year + // not this year "${month.name}, $year" } else { - //this year + // this year month.name } } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingAccounts.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingAccounts.kt index c9b8684e14..d0d9c2c7df 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingAccounts.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingAccounts.kt @@ -238,7 +238,7 @@ fun PremiumInfo( color = if (freeItemsLeft > 2) Green else Orange ) ) - } else if(!ivyWalletCtx().isPremium) { + } else if (!ivyWalletCtx().isPremium) { Spacer(Modifier.height(24.dp)) BuyPremiumRow( @@ -315,7 +315,6 @@ private fun AccountCard( val accountColor = account.color.toComposeColor() val dynamicContrast = accountColor.dynamicContrast() - Row( modifier = Modifier .fillMaxWidth() @@ -501,4 +500,4 @@ private fun Preview_Premium() { ) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingCategories.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingCategories.kt index 10e84e3686..de4dd3be30 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingCategories.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingCategories.kt @@ -205,7 +205,6 @@ fun BoxWithConstraintsScope.OnboardingCategories( ) } - @Composable private fun Categories( categories: List, @@ -474,4 +473,4 @@ private fun Preview_Premium() { } ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSetCurrency.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSetCurrency.kt index b4f59b9e08..87aec8337a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSetCurrency.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSetCurrency.kt @@ -112,7 +112,6 @@ fun BoxWithConstraintsScope.OnboardingSetCurrency( ) { onSetCurrency(currency) } - } @Preview @@ -122,7 +121,6 @@ private fun Preview() { OnboardingSetCurrency( preselectedCurrency = IvyCurrency.getDefault() ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSplashLogin.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSplashLogin.kt index e2089ca09d..835341de96 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSplashLogin.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSplashLogin.kt @@ -166,7 +166,6 @@ fun BoxWithConstraintsScope.OnboardingSplashLogin( val xSplash = ivyContext.screenWidth / 2f - placeable.width / 2 val xLogin = 24.dp.toPx() - layout(placeable.width, placeable.height) { placeable.placeRelative( x = lerp(xSplash, xLogin, percentTransition).roundToInt(), @@ -196,7 +195,6 @@ fun BoxWithConstraintsScope.OnboardingSplashLogin( ) ) - Spacer(modifier = Modifier.height(16.dp)) Text( @@ -354,8 +352,8 @@ private fun LocalAccountExplanation() { Text( modifier = Modifier.padding(start = 32.dp, end = 32.dp), text = "Your data will be saved only locally on your phone. " + - "You risk losing your data if you uninstall the app or change your device. " + - "To prevent data loss, we recommend exporting backup from settings regularly.", + "You risk losing your data if you uninstall the app or change your device. " + + "To prevent data loss, we recommend exporting backup from settings regularly.", style = UI.typo.c.style( color = Gray, fontWeight = FontWeight.Medium @@ -488,4 +486,4 @@ private fun Preview() { onSkip = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingType.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingType.kt index e28bdd361b..3bb83945f6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingType.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingType.kt @@ -139,7 +139,6 @@ private fun Preview() { OnboardingType( onStartImport = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingPrivacyTC.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingPrivacyTC.kt index 2a63d0d4b0..6ac2d71246 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingPrivacyTC.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingPrivacyTC.kt @@ -185,7 +185,6 @@ private fun TextLink( } .clickable { (context as RootActivity).openUrlInBrowser(url) - }, text = text, style = UI.typo.b2.style( @@ -232,7 +231,7 @@ private fun SwipeToAgree( if (agreed) { Text( modifier = Modifier - .padding(start = 32.dp) //24+8=32.dp + .padding(start = 32.dp) // 24+8=32.dp .width(164.dp), text = agreedText, style = UI.typo.c.style( @@ -276,7 +275,9 @@ private fun SwipeToAgree( ) { _, dragAmount -> val dragAmountScaled = dragAmount * 10 val newOffsetX = offsetX + dragAmountScaled - Timber.i("dragAmount=$dragAmount, offsetX=$offsetX, newOffsetX=$newOffsetX, maxOffset=$maxOffsetX") + Timber.i( + "dragAmount=$dragAmount, offsetX=$offsetX, newOffsetX=$newOffsetX, maxOffset=$maxOffsetX" + ) offsetX = newOffsetX.coerceIn( minimumValue = 0f, maximumValue = maxOffsetX @@ -296,8 +297,7 @@ private fun Preview() { IvyWalletPreview { OnboardingPrivacyTC( onAccepted = { - } ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingSetName.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingSetName.kt index 864860715d..2956cbf59d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingSetName.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingSetName.kt @@ -100,7 +100,6 @@ fun OnboardingSetName( Spacer(Modifier.weight(1f)) - var nameTextField by remember { mutableStateOf(TextFieldValue("")) } val nameFocus = FocusRequester() @@ -161,7 +160,6 @@ fun OnboardingSetName( private fun Preview() { IvyWalletPreview { OnboardingSetName { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/viewmodel/OnboardingRouter.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/viewmodel/OnboardingRouter.kt index 16779c1bf9..8cee49295d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/viewmodel/OnboardingRouter.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/viewmodel/OnboardingRouter.kt @@ -52,11 +52,11 @@ class OnboardingRouter( nav.onBackPressed[screen] = { when (_state.value) { OnboardingState.SPLASH -> { - //do nothing, consume back + // do nothing, consume back true } OnboardingState.LOGIN -> { - //let the user exit the app + // let the user exit the app false } OnboardingState.CHOOSE_PATH -> { @@ -65,7 +65,7 @@ class OnboardingRouter( } OnboardingState.CURRENCY -> { if (isLoginCache) { - //user with Ivy account + // user with Ivy account viewModelScope.launch { logoutLogic.logout() isLoginCache = false @@ -73,7 +73,7 @@ class OnboardingRouter( _state.value = OnboardingState.LOGIN } } else { - //fresh user + // fresh user _state.value = OnboardingState.CHOOSE_PATH } true @@ -87,14 +87,14 @@ class OnboardingRouter( true } null -> { - //do nothing, consume back + // do nothing, consume back true } } } } - //------------------------------------- Step 0 - Splash ---------------------------------------- + // ------------------------------------- Step 0 - Splash ---------------------------------------- suspend fun splashNext() { if (_state.value == OnboardingState.SPLASH) { delay(1000) @@ -102,17 +102,15 @@ class OnboardingRouter( _state.value = OnboardingState.LOGIN } } - //------------------------------------- Step 0 ------------------------------------------------- + // ------------------------------------- Step 0 ------------------------------------------------- - - //------------------------------------- Step 1 - Login ----------------------------------------- + // ------------------------------------- Step 1 - Login ----------------------------------------- suspend fun googleLoginNext() { - if (isLogin()) { - //Route logged user + // Route logged user _state.value = OnboardingState.CURRENCY } else { - //Route new user + // Route new user _state.value = OnboardingState.CHOOSE_PATH } } @@ -125,10 +123,9 @@ class OnboardingRouter( suspend fun offlineAccountNext() { _state.value = OnboardingState.CHOOSE_PATH } - //------------------------------------- Step 1 ------------------------------------------------- + // ------------------------------------- Step 1 ------------------------------------------------- - - //------------------------------------- Step 2 - Choose path ----------------------------------- + // ------------------------------------- Step 2 - Choose path ----------------------------------- fun startImport() { nav.navigateTo( Import( @@ -150,10 +147,9 @@ class OnboardingRouter( fun startFresh() { _state.value = OnboardingState.CURRENCY } - //------------------------------------- Step 2 ------------------------------------------------- - + // ------------------------------------- Step 2 ------------------------------------------------- - //------------------------------------- Step 3 - Currency -------------------------------------- + // ------------------------------------- Step 3 - Currency -------------------------------------- suspend fun setBaseCurrencyNext( baseCurrency: IvyCurrency, accountsWithBalance: suspend () -> List, @@ -167,10 +163,9 @@ class OnboardingRouter( completeOnboarding(baseCurrency = baseCurrency) } } - //------------------------------------- Step 3 ------------------------------------------------- + // ------------------------------------- Step 3 ------------------------------------------------- - - //------------------------------------- Step 4 - Accounts -------------------------------------- + // ------------------------------------- Step 4 - Accounts -------------------------------------- suspend fun accountsNext() { routeToCategories() } @@ -182,10 +177,9 @@ class OnboardingRouter( preloadDataLogic.preloadAccounts() } } - //------------------------------------- Step 4 ------------------------------------------------- - + // ------------------------------------- Step 4 ------------------------------------------------- - //------------------------------------- Step 5 - Categories ------------------------------------ + // ------------------------------------- Step 5 - Categories ------------------------------------ suspend fun categoriesNext(baseCurrency: IvyCurrency?) { completeOnboarding(baseCurrency = baseCurrency) } @@ -196,11 +190,10 @@ class OnboardingRouter( ioThread { preloadDataLogic.preloadCategories() } - } - //------------------------------------- Step 5 ------------------------------------------------- + // ------------------------------------- Step 5 ------------------------------------------------- - //-------------------------------------- Routes ------------------------------------------------ + // -------------------------------------- Routes ------------------------------------------------ private suspend fun routeToAccounts( baseCurrency: IvyCurrency, accountsWithBalance: suspend () -> List, @@ -220,7 +213,6 @@ class OnboardingRouter( _state.value = OnboardingState.CATEGORIES } - private suspend fun completeOnboarding( baseCurrency: IvyCurrency? ) { @@ -228,7 +220,7 @@ class OnboardingRouter( navigateOutOfOnboarding() - //the rest below is not UI stuff so I don't care + // the rest below is not UI stuff so I don't care ioThread { transactionReminderLogic.scheduleReminder() @@ -251,5 +243,5 @@ class OnboardingRouter( nav.resetBackStack() nav.navigateTo(Main) } - //-------------------------------------- Routes ------------------------------------------------ -} \ No newline at end of file + // -------------------------------------- Routes ------------------------------------------------ +} diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/viewmodel/OnboardingViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/viewmodel/OnboardingViewModel.kt index 401a545284..af8719d414 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/viewmodel/OnboardingViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/viewmodel/OnboardingViewModel.kt @@ -54,7 +54,7 @@ class OnboardingViewModel @Inject constructor( private val categoriesAct: CategoriesAct, private val syncExchangeRatesAct: SyncExchangeRatesAct, - //Only OnboardingRouter stuff + // Only OnboardingRouter stuff sharedPrefs: SharedPrefs, transactionReminderLogic: TransactionReminderLogic, preloadDataLogic: PreloadDataLogic, @@ -143,7 +143,7 @@ class OnboardingViewModel @Inject constructor( } } - //Step 1 --------------------------------------------------------------------------------------- + // Step 1 --------------------------------------------------------------------------------------- fun loginWithGoogle() { ivyContext.googleSignIn { idToken -> if (idToken != null) { @@ -156,7 +156,7 @@ class OnboardingViewModel @Inject constructor( router.googleLoginNext() - _opGoogleSignIn.value = null //reset login with Google operation state + _opGoogleSignIn.value = null // reset login with Google operation state } catch (e: Exception) { e.sendToCrashlytics("GOOGLE_SIGN_IN ERROR: generic exception when logging with GOOGLE") e.printStackTrace() @@ -187,10 +187,9 @@ class OnboardingViewModel @Inject constructor( TestIdlingResource.decrement() } } - //Step 1 --------------------------------------------------------------------------------------- + // Step 1 --------------------------------------------------------------------------------------- - - //Step 2 --------------------------------------------------------------------------------------- + // Step 2 --------------------------------------------------------------------------------------- fun startImport() { router.startImport() } @@ -206,8 +205,7 @@ class OnboardingViewModel @Inject constructor( fun startFresh() { router.startFresh() } - //Step 2 --------------------------------------------------------------------------------------- - + // Step 2 --------------------------------------------------------------------------------------- fun setBaseCurrency(baseCurrency: IvyCurrency) { viewModelScope.launch { @@ -239,7 +237,7 @@ class OnboardingViewModel @Inject constructor( _currency.value = baseCurrency } - //--------------------- Accounts --------------------------------------------------------------- + // --------------------- Accounts --------------------------------------------------------------- fun editAccount(account: Account, newBalance: Double) { viewModelScope.launch { TestIdlingResource.increment() @@ -252,7 +250,6 @@ class OnboardingViewModel @Inject constructor( } } - fun createAccount(data: CreateAccountData) { viewModelScope.launch { TestIdlingResource.increment() @@ -294,9 +291,9 @@ class OnboardingViewModel @Inject constructor( TestIdlingResource.decrement() } } - //--------------------- Accounts --------------------------------------------------------------- + // --------------------- Accounts --------------------------------------------------------------- - //---------------------------- Categories ------------------------------------------------------ + // ---------------------------- Categories ------------------------------------------------------ fun editCategory(updatedCategory: Category) { viewModelScope.launch { TestIdlingResource.increment() @@ -340,5 +337,5 @@ class OnboardingViewModel @Inject constructor( TestIdlingResource.decrement() } } - //---------------------------- Categories ------------------------------------------------------ -} \ No newline at end of file + // ---------------------------- Categories ------------------------------------------------------ +} diff --git a/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallReason.kt b/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallReason.kt index ebb75b4d09..dcdc025098 100644 --- a/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallReason.kt +++ b/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallReason.kt @@ -2,4 +2,4 @@ package com.ivy.wallet.ui.paywall enum class PaywallReason { CATEGORIES, ACCOUNTS, EXPORT_CSV, PREMIUM_COLOR, BUDGETS, LOANS -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallScreen.kt b/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallScreen.kt index 42266a8260..58535896e6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallScreen.kt @@ -160,7 +160,7 @@ private fun BoxWithConstraintsScope.UI( } item { - //16.dp padding from IvyToolbar already => 24.dp - 16.dp = 8.dp + // 16.dp padding from IvyToolbar already => 24.dp - 16.dp = 8.dp Spacer(Modifier.height(8.dp)) Text( @@ -215,7 +215,7 @@ private fun BoxWithConstraintsScope.UI( } item { - Spacer(Modifier.height(64.dp)) //last item spacer + Spacer(Modifier.height(64.dp)) // last item spacer if (plansSheetHeight > 0) { Spacer(Modifier.height(plansSheetHeight.toDensityDp())) } @@ -250,7 +250,7 @@ private fun UsageText( val usedPercent = usedCount / freeCount.toFloat() Text( - text = "You have ${usedCount}/$freeCount free $itemName.", + text = "You have $usedCount/$freeCount free $itemName.", style = UI.typo.nC.style( fontWeight = FontWeight.ExtraBold, color = when { @@ -314,7 +314,6 @@ data class Benefit( val tag: String? = null, ) - @ExperimentalFoundationApi @Preview @Composable diff --git a/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallViewModel.kt index 500c5564fe..20d17a75fa 100644 --- a/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/paywall/PaywallViewModel.kt @@ -107,7 +107,6 @@ class PaywallViewModel @Inject constructor( } fun onPlanSelected(plan: Plan?) { - } fun buy(activity: RootActivity, plan: Plan) { @@ -119,4 +118,4 @@ class PaywallViewModel @Inject constructor( ?.purchaseToken ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/paywall/PlansSheet.kt b/app/src/main/java/com/ivy/wallet/ui/paywall/PlansSheet.kt index 78054b549b..9d26775f5b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/paywall/PlansSheet.kt +++ b/app/src/main/java/com/ivy/wallet/ui/paywall/PlansSheet.kt @@ -222,14 +222,14 @@ private fun LongNoticeText( Spacer(Modifier.height(8.dp)) val longText = if (plan?.type == PlanType.LIFETIME) { - //Lifetime plan + // Lifetime plan "This limited lifetime offer gives you unlimited access to our app.\n\n" + - "You'll be billed ${plan.price} once" + - " and you'll receive unlimited lifetime access to Ivy Wallet Premium." + - " By subscribing you agree to our Terms & Conditions and Privacy Policy." + - "\n\n*lifetime refers to the product's lifetime but not your lifetime" + "You'll be billed ${plan.price} once" + + " and you'll receive unlimited lifetime access to Ivy Wallet Premium." + + " By subscribing you agree to our Terms & Conditions and Privacy Policy." + + "\n\n*lifetime refers to the product's lifetime but not your lifetime" } else { - //Subscription + // Subscription val part1 = "This subscription gives you unlimited access to our app.\n\n" val part2 = "You'll be billed ${plan?.price} for a ${ when (plan?.type) { @@ -250,7 +250,6 @@ private fun LongNoticeText( part1 + part2 } - Text( modifier = Modifier .padding(horizontal = 32.dp), @@ -353,8 +352,11 @@ private fun ColumnScope.PlanCard( ) { Spacer(Modifier.width(24.dp)) - val textColor = if (purchased || selectedPlan == plan) - White else UI.colors.pureInverse + val textColor = if (purchased || selectedPlan == plan) { + White + } else { + UI.colors.pureInverse + } Column { Text( @@ -382,7 +384,6 @@ private fun ColumnScope.PlanCard( } } - Spacer(Modifier.width(16.dp)) Column( @@ -413,12 +414,14 @@ private fun ColumnScope.PlanCard( val savePercentage = if (monthlyPrice != null && yearlyPrice != null) { (1 - (yearlyPrice.amount / (monthlyPrice.amount * 12))) .times(100).roundToInt() - } else null + } else { + null + } if (savePercentage != null) { Text( modifier = Modifier.fillMaxWidth(), - text = "Save ${savePercentage}%", + text = "Save $savePercentage%", style = UI.typo.nC.style( fontWeight = FontWeight.ExtraBold, color = if (selectedPlan == plan) White else Green, @@ -450,7 +453,6 @@ private fun BoxWithConstraintsScope.BottomBar( setBottomBarHeight: (Int) -> Unit, onClose: () -> Unit, ) { - ActionsRow( modifier = Modifier .align(Alignment.BottomCenter) @@ -537,4 +539,4 @@ private fun Preview_Shitty() { onBuy = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedScreen.kt b/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedScreen.kt index 6488fc8bb9..9c9e6dec86 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedScreen.kt @@ -197,7 +197,7 @@ private fun BoxWithConstraintsScope.UI( setTitleTextFieldValue = { titleTextFieldValue = it }, - suggestions = emptySet(), //DO NOT display title suggestions for "Planned Payments" + suggestions = emptySet(), // DO NOT display title suggestions for "Planned Payments" onTitleChanged = onTitleChanged, onNext = { @@ -253,14 +253,14 @@ private fun BoxWithConstraintsScope.UI( onEditDescription = { descriptionModalVisible = true } ) - Spacer(Modifier.height(600.dp))//scroll hack + Spacer(Modifier.height(600.dp)) // scroll hack } onScreenStart { if (screen.plannedPaymentRuleId == null) { - //Create mode + // Create mode if (screen.mandatoryFilled()) { - //Flow Convert (Amount, Account, Category) + // Flow Convert (Amount, Account, Category) recurringRuleModal = RecurringRuleModalData( initialStartDate = startDate, initialIntervalN = intervalN, @@ -268,7 +268,7 @@ private fun BoxWithConstraintsScope.UI( initialOneTime = oneTime ) } else { - //Flow Empty + // Flow Empty changeTransactionTypeModalVisible = true } } @@ -326,7 +326,7 @@ private fun BoxWithConstraintsScope.UI( } ) - //Modals + // Modals ChooseCategoryModal( visible = chooseCategoryModalVisible, initialCategory = category, @@ -480,4 +480,4 @@ private fun Preview() { onSetTransactionType = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedViewModel.kt index 8a0a18ecb3..a06d5ef348 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedViewModel.kt @@ -155,7 +155,6 @@ class EditPlannedViewModel @Inject constructor( private suspend fun baseCurrency(): String = ioThread { settingsDao.findFirst().currency } - fun onRuleChanged( startDate: LocalDateTime, oneTime: Boolean, @@ -297,9 +296,9 @@ class EditPlannedViewModel @Inject constructor( private fun validateRecurring(): Boolean { return startDate.value != null && - intervalN.value != null && - intervalN.value!! > 0 && - intervalType.value != null + intervalN.value != null && + intervalN.value!! > 0 && + intervalType.value != null } fun delete() { @@ -344,4 +343,4 @@ class EditPlannedViewModel @Inject constructor( } private fun loadedRule() = loadedRule ?: error("Loaded transaction is null") -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/edit/RecurringRule.kt b/app/src/main/java/com/ivy/wallet/ui/planned/edit/RecurringRule.kt index 608171f4ec..8325e9d356 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/edit/RecurringRule.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/edit/RecurringRule.kt @@ -72,7 +72,7 @@ fun hasRecurringRule( oneTime: Boolean, ): Boolean { return startDate != null && - ((intervalN != null && intervalType != null) || oneTime) + ((intervalN != null && intervalType != null) || oneTime) } @Composable @@ -175,4 +175,4 @@ private fun Preview_OneTime() { ) { } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentCard.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentCard.kt index e92472ec42..b8230dbd8e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentCard.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentCard.kt @@ -235,7 +235,7 @@ private fun RuleTextRow( val intervalTypeFormatted = intervalType?.forDisplay(intervalN ?: 0)?.uppercaseLocal() Text( modifier = Modifier.padding(bottom = 1.dp), - text = stringResource(R.string.repeats_every, intervalN ?: 0 , intervalTypeFormatted ?: ""), + text = stringResource(R.string.repeats_every, intervalN ?: 0, intervalTypeFormatted ?: ""), style = UI.typo.nC.style( color = Orange, fontWeight = FontWeight.ExtraBold @@ -244,7 +244,6 @@ private fun RuleTextRow( } Spacer(Modifier.width(24.dp)) - } } @@ -275,7 +274,6 @@ private fun Preview_oneTime() { type = TransactionType.EXPENSE ) ) { - } } } @@ -309,7 +307,6 @@ private fun Preview_recurring() { type = TransactionType.EXPENSE ) ) { - } } } @@ -343,7 +340,6 @@ private fun Preview_recurringError() { type = TransactionType.EXPENSE ) ) { - } } } diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsBottomBar.kt index dc50a864f0..dca84041d7 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsBottomBar.kt @@ -63,4 +63,4 @@ private fun PreviewBottomBar() { onClose = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsLazyColumn.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsLazyColumn.kt index 3df9242028..d9d502bca4 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsLazyColumn.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsLazyColumn.kt @@ -43,7 +43,6 @@ import kotlin.math.absoluteValue fun PlannedPaymentsLazyColumn( Header: @Composable () -> Unit, - currency: String, categories: List, accounts: List, @@ -53,7 +52,6 @@ fun PlannedPaymentsLazyColumn( oneTimeIncome: Double, oneTimeExpenses: Double, - recurring: List, recurringIncome: Double, recurringExpenses: Double, @@ -111,7 +109,6 @@ private fun LazyListScope.plannedPaymentItems( oneTimeExpanded: Boolean, setOneTimeExpanded: (Boolean) -> Unit, - recurring: List, recurringIncome: Double, recurringExpenses: Double, @@ -119,7 +116,6 @@ private fun LazyListScope.plannedPaymentItems( setRecurringExpanded: (Boolean) -> Unit ) { if (oneTime.isNotEmpty()) { - item { SectionDivider( expanded = oneTimeExpanded, @@ -151,7 +147,6 @@ private fun LazyListScope.plannedPaymentItems( } if (recurring.isNotEmpty()) { - item { SectionDivider( expanded = recurringExpanded, @@ -189,7 +184,7 @@ private fun LazyListScope.plannedPaymentItems( } item { - //last spacer - scroll hack + // last spacer - scroll hack Spacer(Modifier.height(150.dp)) } } @@ -207,8 +202,6 @@ private fun onPlannedPaymentClick( ) } - - @Composable private fun LazyItemScope.NoPlannedPaymentsEmptyState() { Column( @@ -243,4 +236,4 @@ private fun LazyItemScope.NoPlannedPaymentsEmptyState() { ) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsScreen.kt index a5e2aa2dea..d209e343b3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsScreen.kt @@ -165,4 +165,4 @@ private fun Preview() { recurringIncome = 0.0 ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsViewModel.kt index f148c767fe..9f0134e4ac 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsViewModel.kt @@ -39,7 +39,7 @@ class PlannedPaymentsViewModel @Inject constructor( private val _accounts = MutableLiveData>() val accounts = _accounts.asLiveData() - //One Time + // One Time private val _oneTime = MutableLiveData>() val oneTime = _oneTime.asLiveData() @@ -49,7 +49,7 @@ class PlannedPaymentsViewModel @Inject constructor( private val _oneTimeExpenses = MutableLiveData() val oneTimeExpenses = _oneTimeExpenses.asLiveData() - //Recurring + // Recurring private val _recurring = MutableLiveData>() val recurring = _recurring.asLiveData() @@ -81,4 +81,4 @@ class PlannedPaymentsViewModel @Inject constructor( TestIdlingResource.decrement() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/reports/FilterOverlay.kt b/app/src/main/java/com/ivy/wallet/ui/reports/FilterOverlay.kt index acf5c56d32..22a37bfb33 100644 --- a/app/src/main/java/com/ivy/wallet/ui/reports/FilterOverlay.kt +++ b/app/src/main/java/com/ivy/wallet/ui/reports/FilterOverlay.kt @@ -123,7 +123,8 @@ fun BoxWithConstraintsScope.FilterOverlay( .layout { measurable, constraints -> val placeable = measurable.measure(constraints) layout( - placeable.width, placeable.height + placeable.width, + placeable.height ) { placeable.place( x = 0, @@ -169,7 +170,7 @@ fun BoxWithConstraintsScope.FilterOverlay( localFilter = null onSetFilter(null) } - .padding(all = 4.dp), //expand click area + .padding(all = 4.dp), // expand click area text = stringResource(R.string.clean_filter), style = UI.typo.b2.style( fontWeight = FontWeight.Bold, @@ -180,7 +181,6 @@ fun BoxWithConstraintsScope.FilterOverlay( Spacer(Modifier.width(24.dp)) } - Spacer(Modifier.height(24.dp)) TypeFilter( @@ -346,7 +346,7 @@ fun BoxWithConstraintsScope.FilterOverlay( localFilter = nonNullFilter(localFilter).copy( includeKeywords = nonNullFilter(localFilter) .includeKeywords.plus(keyword) - .toSet().toList() //filter duplicated + .toSet().toList() // filter duplicated ) } @@ -358,7 +358,7 @@ fun BoxWithConstraintsScope.FilterOverlay( localFilter = nonNullFilter(localFilter).copy( excludeKeywords = nonNullFilter(localFilter) .excludeKeywords.plus(keyword) - .toSet().toList() //filter duplicated + .toSet().toList() // filter duplicated ) } } @@ -428,21 +428,20 @@ private fun TypeFilterCheckbox( checked = filter != null && filter.trnTypes.contains(trnType), ) { checked -> if (checked) { - //remove trn type + // remove trn type onSetFilter( nonFilter(filter).copy( trnTypes = nonFilter(filter).trnTypes.plus(trnType) ) ) } else { - //add trn type + // add trn type onSetFilter( nonFilter(filter).copy( trnTypes = nonFilter(filter).trnTypes.filter { it != trnType } ) ) } - } } @@ -517,14 +516,14 @@ private fun AccountsFilter( } ) { selected -> if (selected) { - //remove account + // remove account onSetFilter( nonNullFilter(filter).copy( accounts = nonNullFilter(filter).accounts.filter { it != account } ) ) } else { - //add account + // add account onSetFilter( nonNullFilter(filter).copy( accounts = nonNullFilter(filter).accounts @@ -588,14 +587,14 @@ private fun CategoriesFilter( } ) { selected -> if (selected) { - //remove category + // remove category onSetFilter( myNonNullFilter.copy( categories = myNonNullFilter.categories.filter { it != category } ) ) } else { - //add category + // add category onSetFilter( myNonNullFilter.copy( categories = myNonNullFilter.categories @@ -640,7 +639,7 @@ private fun ListFilterTitle( onSelectAll() } } - .padding(all = 4.dp), //expand click area + .padding(all = 4.dp), // expand click area text = if (itemsSelected > 0) stringResource(R.string.clear_all) else stringResource(R.string.select_all), style = UI.typo.b2.style( fontWeight = FontWeight.Bold, @@ -805,7 +804,7 @@ private fun KeywordsFilter( keyword = item, borderColor = UI.colors.pureInverse ) { - //Remove keyword + // Remove keyword onSetFilter( nonNullFilter(filter).copy( includeKeywords = nonNullFilter(filter) @@ -845,7 +844,7 @@ private fun KeywordsFilter( keyword = item, borderColor = UI.colors.pureInverse ) { - //Remove keyword + // Remove keyword onSetFilter( nonNullFilter(filter).copy( excludeKeywords = nonNullFilter(filter) @@ -861,7 +860,6 @@ private fun KeywordsFilter( } } } - } @Composable @@ -897,7 +895,6 @@ private fun AddKeywordButton( private class AddKeywordButton - @Composable private fun FilterDivider() { Spacer(modifier = Modifier.height(24.dp)) @@ -951,7 +948,8 @@ private fun Preview() { filter = ReportFilter.emptyFilter("BGN").copy( accounts = listOf( - acc1, acc2 + acc1, + acc2 ), categories = listOf( cat1 @@ -964,4 +962,4 @@ private fun Preview() { } ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/reports/ReportFilter.kt b/app/src/main/java/com/ivy/wallet/ui/reports/ReportFilter.kt index 09cdc4cf1c..bf82cdd287 100644 --- a/app/src/main/java/com/ivy/wallet/ui/reports/ReportFilter.kt +++ b/app/src/main/java/com/ivy/wallet/ui/reports/ReportFilter.kt @@ -50,4 +50,4 @@ data class ReportFilter( return true } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreen.kt b/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreen.kt index d89a8a485b..b2663142df 100644 --- a/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreen.kt @@ -103,7 +103,7 @@ private fun BoxWithConstraintsScope.UI( .zIndex(1000f) .background(pureBlur()) .clickableNoIndication { - //consume clicks + // consume clicks }, contentAlignment = Alignment.Center ) { @@ -172,7 +172,7 @@ private fun BoxWithConstraintsScope.UI( hasAddButtons = false, itemColor = UI.colors.pure, incomeHeaderCardClicked = { - if (state.transactions.isNotEmpty()) + if (state.transactions.isNotEmpty()) { nav.navigateTo( PieChartStatistic( type = TransactionType.INCOME, @@ -181,9 +181,10 @@ private fun BoxWithConstraintsScope.UI( treatTransfersAsIncomeExpense = state.treatTransfersAsIncExp ) ) + } }, expenseHeaderCardClicked = { - if (state.transactions.isNotEmpty()) + if (state.transactions.isNotEmpty()) { nav.navigateTo( PieChartStatistic( type = TransactionType.EXPENSE, @@ -192,6 +193,7 @@ private fun BoxWithConstraintsScope.UI( treatTransfersAsIncomeExpense = state.treatTransfersAsIncExp ) ) + } } ) @@ -208,8 +210,9 @@ private fun BoxWithConstraintsScope.UI( ) ) } - } else + } else { Spacer(Modifier.height(32.dp)) + } TransactionsDividerLine( paddingHorizontal = 0.dp @@ -358,7 +361,7 @@ private fun Toolbar( ) { Spacer(Modifier.weight(1f)) - //Export CSV + // Export CSV IvyOutlinedButton( text = stringResource(R.string.export), iconTint = Green, @@ -372,7 +375,7 @@ private fun Toolbar( Spacer(Modifier.width(16.dp)) - //Filter + // Filter CircleButtonFilled( icon = R.drawable.ic_filter_xs ) { @@ -468,4 +471,4 @@ private fun Preview_NO_FILTER() { UI(state = state) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreenEvent.kt b/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreenEvent.kt index 90c8621818..0c0d7731b8 100644 --- a/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreenEvent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreenEvent.kt @@ -12,4 +12,4 @@ sealed class ReportScreenEvent { data class OnFilterOverlayVisible(val filterOverlayVisible: Boolean) : ReportScreenEvent() data class OnTreatTransfersAsIncomeExpense(val transfersAsIncomeExpense: Boolean) : ReportScreenEvent() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreenState.kt b/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreenState.kt index 90aebdd833..295633d750 100644 --- a/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreenState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreenState.kt @@ -29,4 +29,4 @@ data class ReportScreenState( val filterOverlayVisible: Boolean = false, val showTransfersAsIncExpCheckbox: Boolean = false, val treatTransfersAsIncExp: Boolean = false -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/reports/ReportViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/reports/ReportViewModel.kt index c2e70a843f..f25a6367e0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/reports/ReportViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/reports/ReportViewModel.kt @@ -421,4 +421,4 @@ class ReportViewModel @Inject constructor( } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/search/SearchScreen.kt b/app/src/main/java/com/ivy/wallet/ui/search/SearchScreen.kt index 389f52c052..899fceb996 100644 --- a/app/src/main/java/com/ivy/wallet/ui/search/SearchScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/search/SearchScreen.kt @@ -110,7 +110,7 @@ private fun UI( ) LaunchedEffect(transactions) { - //scroll to top when transactions are changed + // scroll to top when transactions are changed listState.animateScrollToItem(index = 0, scrollOffset = 0) } @@ -154,7 +154,7 @@ private fun UI( ) Spacer(Modifier.height(keyboardShownInsetDp)) - //add keyboard height margin at bototm so the list can scroll to bottom + // add keyboard height margin at bototm so the list can scroll to bottom } } } @@ -207,7 +207,7 @@ fun SearchInput( .clickable { onSetSearchQueryTextField(selectEndTextFieldValue("")) } - .padding(all = 12.dp), //enlarge click area + .padding(all = 12.dp), // enlarge click area icon = R.drawable.ic_outline_clear_24 ) @@ -226,4 +226,4 @@ private fun Preview() { accounts = emptyList() ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/search/SearchViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/search/SearchViewModel.kt index 1a0ec9e537..43fd66b2f2 100644 --- a/app/src/main/java/com/ivy/wallet/ui/search/SearchViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/search/SearchViewModel.kt @@ -56,7 +56,7 @@ class SearchViewModel @Inject constructor( val trns = allTrnsAct(Unit) .filter { it.title.matchesQuery(normalizedQuery) || - it.description.matchesQuery(normalizedQuery) + it.description.matchesQuery(normalizedQuery) } trnsWithDateDivsAct( TrnsWithDateDivsAct.Input( @@ -73,4 +73,4 @@ class SearchViewModel @Inject constructor( private fun String?.matchesQuery(query: String): Boolean { return this?.lowercase()?.trim()?.contains(query) == true } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopScreen.kt b/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopScreen.kt index c17cd913e7..5623aea8d2 100644 --- a/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopScreen.kt @@ -73,15 +73,15 @@ private fun Content( SpacerVer(height = 16.dp) Text( text = "We're shutting down the Ivy Cloud servers on Jan 1st, 2023. " + - "The cloud sync using Google account will no longer work!", + "The cloud sync using Google account will no longer work!", style = UI.typo.b1.style(color = UI.colors.red) ) SpacerVer(height = 12.dp) Text( modifier = Modifier.fillMaxWidth(), text = "The reason for that is because we're a FOSS (Free & Open Source Software) and " + - "it isn't profitable for us to pay our servers monthly bills. More importantly, " + - "we don't have a dedicated person to maintain them which is bad.", + "it isn't profitable for us to pay our servers monthly bills. More importantly, " + + "we don't have a dedicated person to maintain them which is bad.", style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.Normal, @@ -91,7 +91,7 @@ private fun Content( Text( modifier = Modifier.fillMaxWidth(), text = "To keep your data safe in case of device change or app uninstall/clear data, " + - "you need to make manually export a backup file of Ivy Wallet.", + "you need to make manually export a backup file of Ivy Wallet.", style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.Bold, @@ -101,9 +101,9 @@ private fun Content( Text( modifier = Modifier.fillMaxWidth(), text = "To export a backup file:\n" + - "1) Click the arrow at top-right on the \"Home\" screen.\n" + - "2) Go to \"Settings\"\n" + - "3) Click \"Backup Data\"", + "1) Click the arrow at top-right on the \"Home\" screen.\n" + + "2) Go to \"Settings\"\n" + + "3) Click \"Backup Data\"", style = UI.typo.b2.style( color = UI.colors.primary, fontWeight = FontWeight.Bold, @@ -113,9 +113,9 @@ private fun Content( Text( modifier = Modifier.fillMaxWidth(), text = "To restore your data on Ivy Wallet fresh install, " + - "you'll simply need to import the backup file that you've exported. " + - "We recommend making regular exports and keeping the backup file on Google Drive, " + - "OneDrive, DropBox or other safe cloud storage. Thank you for your understanding!", + "you'll simply need to import the backup file that you've exported. " + + "We recommend making regular exports and keeping the backup file on Google Drive, " + + "OneDrive, DropBox or other safe cloud storage. Thank you for your understanding!", style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.Normal, @@ -141,7 +141,6 @@ private fun ColumnScope.Loading() { SpacerWeight(weight = 1f) } - // region Preview @Preview @Composable @@ -162,4 +161,4 @@ private fun PreviewLoading() { ) {} } } -// endregion \ No newline at end of file +// endregion diff --git a/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopState.kt b/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopState.kt index 97cdddf1c4..afa48830cc 100644 --- a/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopState.kt @@ -2,4 +2,4 @@ package com.ivy.wallet.ui.serverstop data class ServerStopState( val exportInProgress: Boolean -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopViewModel.kt index e89462a1e1..f6df35a3f6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/serverstop/ServerStopViewModel.kt @@ -65,4 +65,4 @@ class ServerStopViewModel @Inject constructor( } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt index 327de3de08..f80844b767 100644 --- a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt @@ -174,7 +174,6 @@ private fun BoxWithConstraintsScope.UI( onSetCurrency: (String) -> Unit, onSetName: (String) -> Unit = {}, - onSync: () -> Unit, onLogout: () -> Unit, onLogin: () -> Unit, @@ -188,7 +187,7 @@ private fun BoxWithConstraintsScope.UI( onDeleteAllUserData: () -> Unit = {}, onDeleteCloudUserData: () -> Unit = {}, - ) { +) { var currencyModalVisible by remember { mutableStateOf(false) } var nameModalVisible by remember { mutableStateOf(false) } var chooseStartDateOfMonthVisible by remember { mutableStateOf(false) } @@ -225,7 +224,7 @@ private fun BoxWithConstraintsScope.UI( Spacer(Modifier.width(32.dp)) } - //onboarding toolbar include paddingBottom 16.dp + // onboarding toolbar include paddingBottom 16.dp } item { @@ -482,7 +481,7 @@ private fun BoxWithConstraintsScope.UI( } item { - Spacer(modifier = Modifier.height(120.dp)) //last item spacer + Spacer(modifier = Modifier.height(120.dp)) // last item spacer } } @@ -514,7 +513,8 @@ private fun BoxWithConstraintsScope.UI( DeleteModal( title = stringResource(R.string.delete_all_user_data_question), description = stringResource( - R.string.delete_all_user_data_warning, user?.email ?: stringResource( + R.string.delete_all_user_data_warning, + user?.email ?: stringResource( R.string.your_account ) ), @@ -528,7 +528,8 @@ private fun BoxWithConstraintsScope.UI( DeleteModal( title = stringResource( - R.string.confirm_all_userd_data_deletion, user?.email ?: stringResource( + R.string.confirm_all_userd_data_deletion, + user?.email ?: stringResource( R.string.all_of_your_data ) ), @@ -543,7 +544,8 @@ private fun BoxWithConstraintsScope.UI( DeleteModal( title = stringResource(R.string.delete_all_cloud_data_question), description = stringResource( - R.string.delete_all_user_cloud_data_warning, user?.email ?: stringResource( + R.string.delete_all_user_cloud_data_warning, + user?.email ?: stringResource( R.string.your_account ) ), @@ -604,7 +606,6 @@ private fun StartDateOfMonth( } } - @Composable private fun IvyTelegram() { val rootActivity = rootActivity() @@ -723,7 +724,7 @@ private fun AppSwitch( } } - //Spacer(Modifier.weight(1f)) + // Spacer(Modifier.weight(1f)) IvySwitch(enabled = lockApp) { onSetLockApp(it) @@ -806,7 +807,6 @@ private fun AccountCard( name = nameLocalAccount, ) } - } } @@ -907,7 +907,7 @@ private fun AccountCardUser( is OpResult.Success -> { if (opSync.data) { - //synced + // synced Row( verticalAlignment = Alignment.CenterVertically ) { @@ -933,7 +933,7 @@ private fun AccountCardUser( Spacer(Modifier.width(24.dp)) } } else { - //not synced + // not synced IvyButton( modifier = Modifier.padding(horizontal = 24.dp), iconStart = R.drawable.ic_sync, @@ -1393,4 +1393,4 @@ private fun Preview_localAccount() { onSync = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsViewModel.kt index 7a9ced5c99..5a35f9b8fe 100644 --- a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsViewModel.kt @@ -122,7 +122,6 @@ class SettingsViewModel @Inject constructor( } } - fun setName(newName: String) { viewModelScope.launch { TestIdlingResource.increment() @@ -213,7 +212,6 @@ class SettingsViewModel @Inject constructor( } } - fun setStartDateOfMonth(startDate: Int) { viewModelScope.launch { TestIdlingResource.increment() @@ -257,7 +255,9 @@ class SettingsViewModel @Inject constructor( try { } catch (e: Exception) { - e.sendToCrashlytics("Settings - GOOGLE_SIGN_IN ERROR: generic exception when logging with GOOGLE") + e.sendToCrashlytics( + "Settings - GOOGLE_SIGN_IN ERROR: generic exception when logging with GOOGLE" + ) e.printStackTrace() Timber.e("Settings - Login with Google failed on Ivy server - ${e.message}") } @@ -330,4 +330,4 @@ class SettingsViewModel @Inject constructor( cloudLogout() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/CategoryAmount.kt b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/CategoryAmount.kt index d11a3faf7a..fa389aebdb 100644 --- a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/CategoryAmount.kt +++ b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/CategoryAmount.kt @@ -8,4 +8,4 @@ data class CategoryAmount( val amount: Double, val associatedTransactions: List = emptyList(), val isCategoryUnspecified: Boolean = false -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChart.kt b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChart.kt index 541b279ff9..5d718776ff 100644 --- a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChart.kt +++ b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChart.kt @@ -34,7 +34,6 @@ import timber.log.Timber import kotlin.math.acos import kotlin.math.sqrt - const val PIE_CHART_RADIUS_DP = 128 const val RADIUS_DP = 112f @@ -90,7 +89,6 @@ fun PieChart( tint = Gray ) } - } private class PieChartView(context: Context) : View(context) { @@ -99,7 +97,8 @@ private class PieChartView(context: Context) : View(context) { private var totalAmount = 0.0 val rectangle = RectF( - 0f, 0f, + 0f, + 0f, convertDpToPixel(context, 2 * RADIUS_DP), convertDpToPixel(context, 2 * RADIUS_DP) ) @@ -181,13 +180,12 @@ private class PieChartView(context: Context) : View(context) { sweepAngle.toFloat(), true, paint - ) //draw + ) // draw startAngle += sweepAngle } } - private var startClickTime = 0L @SuppressLint("ClickableViewAccessibility") @@ -241,8 +239,9 @@ private class PieChartView(context: Context) : View(context) { val d2 = sqrt((x2 * x2 + y2 * y2).toDouble()) angle = if (touchX >= centerX) { Math.toDegrees(acos((-centerY * y2) / (d1 * d2))) - } else + } else { 360 - Math.toDegrees(acos((-centerY * y2) / (d1 * d2))) + } return angle - 90.0 } @@ -299,4 +298,4 @@ private fun Preview() { Spacer(Modifier.weight(1f)) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticBottomBar.kt index a26bc13305..2bd7a3c6a2 100644 --- a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticBottomBar.kt @@ -52,7 +52,13 @@ fun BoxWithConstraintsScope.PieChartStatisticBottomBar( val isIncome = type == TransactionType.INCOME IvyButton( iconStart = R.drawable.ic_plus, - text = if (isIncome) stringResource(id = R.string.add_income) else stringResource(id = R.string.add_expense), + text = if (isIncome) { + stringResource( + id = R.string.add_income + ) + } else { + stringResource(id = R.string.add_expense) + }, backgroundGradient = if (isIncome) GradientGreen else Gradient.solid(UI.colors.pureInverse), textStyle = UI.typo.b2.style( color = if (isIncome) White else UI.colors.pure, @@ -78,4 +84,4 @@ private fun PreviewBottomBar() { onClose = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticScreen.kt b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticScreen.kt index 3387afff02..373a3e158b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticScreen.kt @@ -160,9 +160,15 @@ private fun BoxWithConstraintsScope.UI( modifier = Modifier .padding(start = 32.dp) .testTag("piechart_title"), - text = if (state.transactionType == TransactionType.EXPENSE) stringResource(R.string.expenses) else stringResource( - R.string.income - ), + text = if (state.transactionType == TransactionType.EXPENSE) { + stringResource( + R.string.expenses + ) + } else { + stringResource( + R.string.income + ) + }, style = UI.typo.b1.style( fontWeight = FontWeight.ExtraBold ) @@ -222,7 +228,7 @@ private fun BoxWithConstraintsScope.UI( } item { - Spacer(Modifier.height(160.dp)) //scroll hack + Spacer(Modifier.height(160.dp)) // scroll hack } } @@ -246,7 +252,6 @@ private fun Header( amount: Double, showCloseButtonOnly: Boolean = false, - onShowMonthModal: () -> Unit, onSelectNextMonth: () -> Unit, onSelectPreviousMonth: () -> Unit, @@ -268,7 +273,7 @@ private fun Header( onClose() } - //Balance mini row + // Balance mini row if (percentExpanded < 1f) { Spacer(Modifier.width(12.dp)) @@ -302,8 +307,11 @@ private fun Header( if (percentExpanded > 0f) { Spacer(Modifier.width(12.dp)) - val backgroundGradient = if (transactionType == TransactionType.EXPENSE) - gradientExpenses() else GradientGreen + val backgroundGradient = if (transactionType == TransactionType.EXPENSE) { + gradientExpenses() + } else { + GradientGreen + } CircleButtonFilledGradient( modifier = Modifier .thenIf(percentExpanded == 1f) { @@ -314,8 +322,11 @@ private fun Header( iconPadding = 4.dp, icon = R.drawable.ic_plus, backgroundGradient = backgroundGradient, - tint = if (transactionType == TransactionType.EXPENSE) - UI.colors.pure else White + tint = if (transactionType == TransactionType.EXPENSE) { + UI.colors.pure + } else { + White + } ) { onAdd(transactionType) } @@ -323,7 +334,6 @@ private fun Header( Spacer(Modifier.width(20.dp)) } - } } @@ -340,14 +350,14 @@ private fun CategoryAmountCard( val category = categoryAmount.category val amount = categoryAmount.amount - val categoryColor = category?.color?.toComposeColor() ?: Gray //Unspecified category = Gray + val categoryColor = category?.color?.toComposeColor() ?: Gray // Unspecified category = Gray val selectedState = when { selectedCategory == null -> { - //no selectedCategory + // no selectedCategory false } categoryAmount.category == selectedCategory.category -> { - //selectedCategory && we're selected + // selectedCategory && we're selected true } else -> false @@ -390,8 +400,6 @@ private fun CategoryAmountCard( } ) - - Spacer(Modifier.width(16.dp)) Column( @@ -443,9 +451,11 @@ private fun PercentText( contrastColor: Color ) { Text( - text = if (totalAmount != 0.0) + text = if (totalAmount != 0.0) { stringResource(R.string.percent, ((amount / totalAmount) * 100).format(2)) - else stringResource(R.string.percent, "0"), + } else { + stringResource(R.string.percent, "0") + }, style = UI.typo.nB2.style( color = if (selectedState) contrastColor else UI.colors.pureInverse, fontWeight = FontWeight.Normal @@ -462,7 +472,7 @@ private fun Preview_Expense() { transactionType = TransactionType.EXPENSE, period = TimePeriod.currentMonth( startDayOfMonth = 1 - ), //preview + ), // preview baseCurrency = "BGN", totalAmount = 1828.0, categoryAmounts = listOf( @@ -516,7 +526,7 @@ private fun Preview_Income() { transactionType = TransactionType.INCOME, period = TimePeriod.currentMonth( startDayOfMonth = 1 - ), //preview + ), // preview baseCurrency = "BGN", totalAmount = 1828.0, categoryAmounts = listOf( @@ -560,4 +570,3 @@ private fun Preview_Income() { UI(state = state) } } - diff --git a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticViewModel.kt index 2cca2c51fb..fd555721ca 100644 --- a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/PieChartStatisticViewModel.kt @@ -162,10 +162,11 @@ class PieChartStatisticViewModel @Inject constructor( } private suspend fun configureMonthModal(timePeriod: TimePeriod?) { - val choosePeriodModalData = if (timePeriod != null) + val choosePeriodModalData = if (timePeriod != null) { ChoosePeriodModalData(period = timePeriod) - else + } else { null + } updateState { it.copy(choosePeriodModal = choosePeriodModalData) @@ -173,10 +174,11 @@ class PieChartStatisticViewModel @Inject constructor( } private suspend fun onCategoryClicked(clickedCategory: Category?) { - val selectedCategory = if (clickedCategory == stateVal().selectedCategory?.category) + val selectedCategory = if (clickedCategory == stateVal().selectedCategory?.category) { null - else + } else { SelectedCategory(category = clickedCategory) + } val existingCategoryAmounts = stateVal().categoryAmounts val newCategoryAmounts = if (selectedCategory != null) { @@ -237,4 +239,4 @@ sealed class PieChartStatisticEvent { PieChartStatisticEvent() data class OnShowMonthModal(val timePeriod: TimePeriod?) : PieChartStatisticEvent() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/SelectedCategory.kt b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/SelectedCategory.kt index ca05361aba..2e544c30b2 100644 --- a/app/src/main/java/com/ivy/wallet/ui/statistic/level1/SelectedCategory.kt +++ b/app/src/main/java/com/ivy/wallet/ui/statistic/level1/SelectedCategory.kt @@ -3,5 +3,5 @@ package com.ivy.wallet.ui.statistic.level1 import com.ivy.wallet.domain.data.core.Category data class SelectedCategory( - val category: Category? //null - Unspecified -) \ No newline at end of file + val category: Category? // null - Unspecified +) diff --git a/app/src/main/java/com/ivy/wallet/ui/statistic/level2/ItemStatisticScreen.kt b/app/src/main/java/com/ivy/wallet/ui/statistic/level2/ItemStatisticScreen.kt index 1728244060..69063c81db 100644 --- a/app/src/main/java/com/ivy/wallet/ui/statistic/level2/ItemStatisticScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/statistic/level2/ItemStatisticScreen.kt @@ -96,7 +96,6 @@ import com.ivy.wallet.utils.thenIf import java.math.BigDecimal import java.util.UUID - @Composable fun BoxWithConstraintsScope.ItemStatisticScreen(screen: ItemStatistic) { val viewModel: ItemStatisticViewModel = viewModel() @@ -180,7 +179,6 @@ fun BoxWithConstraintsScope.ItemStatisticScreen(screen: ItemStatistic) { overdueIncome = overdueIncome, overdueExpenses = overdueExpenses, - onSetPeriod = { viewModel.setPeriod( screen = screen, @@ -266,13 +264,11 @@ private fun BoxWithConstraintsScope.UI( var accountModalData: AccountModalData? by remember { mutableStateOf(null) } var choosePeriodModal: ChoosePeriodModalData? by remember { mutableStateOf(null) } - Column( modifier = Modifier .fillMaxSize() .background(itemColor) - .thenIf(!initWithTransactions) - { + .thenIf(!initWithTransactions) { horizontalSwipeListener( sensitivity = 150, onSwipeLeft = { @@ -288,7 +284,6 @@ private fun BoxWithConstraintsScope.UI( val listState = rememberLazyListState() val density = LocalDensity.current - LazyColumn( modifier = Modifier .fillMaxSize() @@ -367,13 +362,13 @@ private fun BoxWithConstraintsScope.UI( } item { - //Rounded corners top effect + // Rounded corners top effect Box { Spacer( Modifier .height(32.dp) .fillMaxWidth() - .background(itemColor) //itemColor is displayed below the clip + .background(itemColor) // itemColor is displayed below the clip .background(UI.colors.pure, UI.shapes.r1Top) ) @@ -383,10 +378,11 @@ private fun BoxWithConstraintsScope.UI( onPreviousMonth = { if (!initWithTransactions) onPreviousMonth() }, onNextMonth = { if (!initWithTransactions) onNextMonth() }, onShowChoosePeriodModal = { - if (!initWithTransactions) + if (!initWithTransactions) { choosePeriodModal = ChoosePeriodModalData( period = period ) + } } ) } @@ -394,7 +390,9 @@ private fun BoxWithConstraintsScope.UI( transactions( baseData = AppBaseData( - baseCurrency, accounts, categories + baseCurrency, + accounts, + categories ), upcoming = DueSection( trns = upcoming, @@ -543,10 +541,14 @@ private fun Header( textColor = contrastColor, currency = currency, balance = balance, - balanceAmountPrefix = if (category != null) balancePrefix( - income = income, - expenses = expenses - ) else null + balanceAmountPrefix = if (category != null) { + balancePrefix( + income = income, + expenses = expenses + ) + } else { + null + } ) if (currency != baseCurrency && balanceBaseCurrency != null) { @@ -559,10 +561,14 @@ private fun Header( textColor = itemColor.dynamicContrast(), currency = baseCurrency, balance = balanceBaseCurrency, - balanceAmountPrefix = if (category != null) balancePrefix( - income = income, - expenses = expenses - ) else null + balanceAmountPrefix = if (category != null) { + balancePrefix( + income = income, + expenses = expenses + ) + } else { + null + } ) } @@ -736,8 +742,11 @@ private fun RowScope.HeaderCard( onHeaderCardClicked: () -> Unit = {}, onAddClick: () -> Unit ) { - val backgroundColor = if (isDarkColor(itemColor)) - MediumBlack.copy(alpha = 0.9f) else MediumWhite.copy(alpha = 0.9f) + val backgroundColor = if (isDarkColor(itemColor)) { + MediumBlack.copy(alpha = 0.9f) + } else { + MediumWhite.copy(alpha = 0.9f) + } val contrastColor = findContrastTextColor(backgroundColor) @@ -902,7 +911,7 @@ private fun Item( ) } else -> { - //Unspecified + // Unspecified ItemIconMDefaultIcon( iconName = null, defaultIcon = R.drawable.ic_custom_category_m, @@ -930,7 +939,7 @@ private fun Preview_empty() { UI( period = TimePeriod.currentMonth( startDayOfMonth = 1 - ), //preview + ), // preview baseCurrency = "BGN", currency = "BGN", @@ -962,7 +971,7 @@ private fun Preview_crypto() { UI( period = TimePeriod.currentMonth( startDayOfMonth = 1 - ), //preview + ), // preview baseCurrency = "BGN", currency = "ADA", @@ -999,7 +1008,7 @@ private fun Preview_empty_upcoming() { UI( period = TimePeriod.currentMonth( startDayOfMonth = 1 - ), //preview + ), // preview baseCurrency = "BGN", currency = "BGN", @@ -1021,8 +1030,8 @@ private fun Preview_empty_upcoming() { onEditAccount = { _, _ -> }, onEditCategory = {}, upcoming = listOf( - Transaction(UUID(1L,2L),TransactionType.EXPENSE, BigDecimal.valueOf(10L)) + Transaction(UUID(1L, 2L), TransactionType.EXPENSE, BigDecimal.valueOf(10L)) ) ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/statistic/level2/ItemStatisticViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/statistic/level2/ItemStatisticViewModel.kt index ff378d9a52..b7aa3071a9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/statistic/level2/ItemStatisticViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/statistic/level2/ItemStatisticViewModel.kt @@ -102,7 +102,7 @@ class ItemStatisticViewModel @Inject constructor( private val _expenses = MutableStateFlow(0.0) val expenses = _expenses.readOnly() - //Upcoming + // Upcoming private val _upcoming = MutableStateFlow>(emptyList()) val upcoming = _upcoming.readOnly() @@ -115,7 +115,7 @@ class ItemStatisticViewModel @Inject constructor( private val _upcomingExpanded = MutableStateFlow(false) val upcomingExpanded = _upcomingExpanded.readOnly() - //Overdue + // Overdue private val _overdue = MutableStateFlow>(emptyList()) val overdue = _overdue.readOnly() @@ -128,7 +128,7 @@ class ItemStatisticViewModel @Inject constructor( private val _overdueExpanded = MutableStateFlow(true) val overdueExpanded = _overdueExpanded.readOnly() - //History + // History private val _history = MutableStateFlow>(emptyList()) val history = _history.readOnly() @@ -176,9 +176,9 @@ class ItemStatisticViewModel @Inject constructor( screen.categoryId != null && screen.transactions.isEmpty() -> { initForCategory(screen.categoryId, screen.accountIdFilterList) } - //unspecifiedCategory==false is explicitly checked to accommodate for a temp AccountTransfers Category during Reports Screen - screen.categoryId != null && screen.transactions.isNotEmpty() - && screen.unspecifiedCategory == false -> { + // unspecifiedCategory==false is explicitly checked to accommodate for a temp AccountTransfers Category during Reports Screen + screen.categoryId != null && screen.transactions.isNotEmpty() && + screen.unspecifiedCategory == false -> { initForCategoryWithTransactions( screen.categoryId, screen.accountIdFilterList, @@ -247,21 +247,23 @@ class ItemStatisticViewModel @Inject constructor( _income.value = incomeExpensePair.income.toDouble() _expenses.value = incomeExpensePair.expense.toDouble() - _history.value = (accTrnsAct then { - trnsWithDateDivsAct( - TrnsWithDateDivsAct.Input( - baseCurrency = baseCurrency.value, - transactions = it + _history.value = ( + accTrnsAct then { + trnsWithDateDivsAct( + TrnsWithDateDivsAct.Input( + baseCurrency = baseCurrency.value, + transactions = it + ) ) - ) - })( + } + )( AccTrnsAct.Input( accountId = account.id, range = range.toCloseTimeRange() ) ) - //Upcoming + // Upcoming _upcomingIncome.value = ioThread { accountLogic.calculateUpcomingIncome(account, range) } @@ -272,7 +274,7 @@ class ItemStatisticViewModel @Inject constructor( _upcoming.value = ioThread { accountLogic.upcoming(account, range) } - //Overdue + // Overdue _overdueIncome.value = ioThread { accountLogic.calculateOverdueIncome(account, range) } @@ -312,8 +314,8 @@ class ItemStatisticViewModel @Inject constructor( ) } - //Upcoming - //TODO: Rework Upcoming to FP + // Upcoming + // TODO: Rework Upcoming to FP _upcomingIncome.value = ioThread { categoryLogic.calculateUpcomingIncomeByCategory(category, range) } @@ -324,8 +326,8 @@ class ItemStatisticViewModel @Inject constructor( _upcoming.value = ioThread { categoryLogic.upcomingByCategory(category, range) } - //Overdue - //TODO: Rework Overdue to FP + // Overdue + // TODO: Rework Overdue to FP _overdueIncome.value = ioThread { categoryLogic.calculateOverdueIncomeByCategory(category, range) } @@ -396,8 +398,8 @@ class ItemStatisticViewModel @Inject constructor( ) } - //Upcoming - //TODO: Rework Upcoming to FP + // Upcoming + // TODO: Rework Upcoming to FP _upcomingIncome.value = ioThread { categoryLogic.calculateUpcomingIncomeByCategory(category, range) } @@ -408,8 +410,8 @@ class ItemStatisticViewModel @Inject constructor( _upcoming.value = ioThread { categoryLogic.upcomingByCategory(category, range) } - //Overdue - //TODO: Rework Overdue to FP + // Overdue + // TODO: Rework Overdue to FP _overdueIncome.value = ioThread { categoryLogic.calculateOverdueIncomeByCategory(category, range) } @@ -441,7 +443,7 @@ class ItemStatisticViewModel @Inject constructor( categoryLogic.historyUnspecified(range) } - //Upcoming + // Upcoming _upcomingIncome.value = ioThread { categoryLogic.calculateUpcomingIncomeUnspecified(range) } @@ -452,7 +454,7 @@ class ItemStatisticViewModel @Inject constructor( _upcoming.value = ioThread { categoryLogic.upcomingUnspecified(range) } - //Overdue + // Overdue _overdueIncome.value = ioThread { categoryLogic.calculateOverdueIncomeUnspecified(range) } @@ -474,9 +476,11 @@ class ItemStatisticViewModel @Inject constructor( Category(stringRes(R.string.account_transfers), RedLight.toArgb(), "transfer") val accountFilterIdSet = accountFilterList.toHashSet() val trans = transactions.filter { - it.categoryId == null && (accountFilterIdSet.contains(it.accountId) || accountFilterIdSet.contains( - it.toAccountId - )) && it.type == TransactionType.TRANSFER + it.categoryId == null && ( + accountFilterIdSet.contains(it.accountId) || accountFilterIdSet.contains( + it.toAccountId + ) + ) && it.type == TransactionType.TRANSFER } val historyIncomeExpense = calcTrnsIncomeExpenseAct( @@ -660,4 +664,4 @@ class ItemStatisticViewModel @Inject constructor( TestIdlingResource.decrement() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/test/TestScreen.kt b/app/src/main/java/com/ivy/wallet/ui/test/TestScreen.kt index ee10c8c204..2a2917b3a6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/test/TestScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/test/TestScreen.kt @@ -84,4 +84,4 @@ private fun Preview() { user = null, ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/test/TestViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/test/TestViewModel.kt index 8756d9568f..52966871b3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/test/TestViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/test/TestViewModel.kt @@ -23,4 +23,4 @@ class TestViewModel @Inject constructor() : ViewModel() { TestIdlingResource.decrement() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/IvyColors.kt b/app/src/main/java/com/ivy/wallet/ui/theme/IvyColors.kt index e13f41772b..3734673b10 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/IvyColors.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/IvyColors.kt @@ -15,11 +15,10 @@ import androidx.core.graphics.ColorUtils import com.ivy.design.l0_system.UI import com.ivy.wallet.utils.densityScope - val White = Color(0xFFFAFAFA) val Black = Color(0xFF111114) -//Primary +// Primary val Ivy = Color(0xFF6B4DFF) val Purple1 = Color(0xFFC34CFF) val Purple2 = Color(0xFFFF4CFF) @@ -43,8 +42,7 @@ val Red = Color(0xFFFF4060) val Red2 = Color(0xFFE62E2E) val Red3 = Color(0xFFFF4CA6) - -//Light +// Light val IvyLight = Color(0xFFD5CCFF) val Purple1Light = Color(0xFFEECCFF) val Purple2Light = Color(0xFFFFBFFF) @@ -68,8 +66,7 @@ val RedLight = Color(0xFFFFCCD5) val Red2Light = Color(0xFFFFB3B3) val Red3Light = Color(0xFFFFCCE6) - -//Dark +// Dark val IvyDark = Color(0xFF352680) val Purple1Dark = Color(0xFF622680) val Purple2Dark = Color(0xFF802680) @@ -92,14 +89,12 @@ val Orange3Dark = Color(0xFF806226) val RedDark = Color(0xFF801919) val Red2Dark = Color(0xFF802030) val Red3Dark = Color(0xFF802653) -//-------------------------------------------------------------------------------------------------- - +// -------------------------------------------------------------------------------------------------- val MediumBlack = Color(0xFF2B2C2D) val Gray = Color(0xFF939199) val MediumWhite = Color(0xFFEFEEF0) - val Transparent = Color(0x00000000) val GradientRed = Gradient(Red, Color(0xFFFF99AB)) @@ -109,7 +104,6 @@ val GradientOrangeDark = Gradient(OrangeDark, Color(0xFFF2CD9E)) val GradientOrangeRevert = Gradient(Color(0xFFF2CD9E), Orange) val GradientIvy = Gradient(Ivy, Color(0xFFAA99FF)) - fun Color.asBrush(): Brush { return Brush.horizontalGradient(colors = listOf(this, this)) } @@ -216,7 +210,7 @@ fun Color.dynamicContrast(): Color { return when { pickedColor.s >= 0.5f && pickedColor.v >= 0.4f -> { - //Primary + // Primary if (isDarkColor(this)) { lighten() } else { @@ -224,11 +218,11 @@ fun Color.dynamicContrast(): Color { } } pickedColor.s <= 0.5f && pickedColor.v >= 0.8f -> { - //Light + // Light darken() } pickedColor.s >= 0.1f && pickedColor.v <= 0.6f -> { - //Dark + // Dark lighten() } else -> { @@ -287,4 +281,4 @@ fun Color.hsv( return Color(android.graphics.Color.HSVToColor(hsv)) } -fun Int.toComposeColor() = Color(this) \ No newline at end of file +fun Int.toComposeColor() = Color(this) diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/PreviewUtils.kt b/app/src/main/java/com/ivy/wallet/ui/theme/PreviewUtils.kt index a7578d3386..bb04657775 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/PreviewUtils.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/PreviewUtils.kt @@ -1,3 +1 @@ package com.ivy.wallet.ui.theme - - diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/AddPrimaryAttributeButton.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/AddPrimaryAttributeButton.kt index 4f40517989..8abb104b34 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/AddPrimaryAttributeButton.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/AddPrimaryAttributeButton.kt @@ -21,7 +21,6 @@ import com.ivy.design.l0_system.style import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletComponentPreview - @Composable fun AddPrimaryAttributeButton( @DrawableRes icon: Int, @@ -62,7 +61,6 @@ private fun PreviewAddPrimaryAttributeButton() { icon = R.drawable.ic_description, text = "Add description" ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/BackBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/BackBottomBar.kt index ccbc335907..7c1fa89637 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/BackBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/BackBottomBar.kt @@ -43,4 +43,4 @@ fun BoxWithConstraintsScope.BackBottomBar( Spacer(Modifier.width(20.dp)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/BalanceRow.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/BalanceRow.kt index 1d373933ac..6195d95c70 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/BalanceRow.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/BalanceRow.kt @@ -168,7 +168,6 @@ fun BalanceRow( ) } - if (!currencyUpfront) { Spacer(Modifier.width(spacerCurrency)) @@ -240,4 +239,4 @@ private fun Preview_Mini() { balanceAmountPrefix = null ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/BudgetBattery.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/BudgetBattery.kt index 28bf02eda7..6a9ecc35dd 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/BudgetBattery.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/BudgetBattery.kt @@ -170,7 +170,6 @@ private fun Preview_budget_0() { currency = "BGN" ) } - } } @@ -191,7 +190,6 @@ private fun Preview_expenses_0() { currency = "BGN" ) } - } } @@ -212,7 +210,6 @@ private fun Preview_spent_very_low() { currency = "BGN" ) } - } } @@ -233,7 +230,6 @@ private fun Preview_buffer_25() { currency = "BGN" ) } - } } @@ -254,7 +250,6 @@ private fun Preview_buffer_50() { currency = "BGN" ) } - } } @@ -275,7 +270,6 @@ private fun Preview_buffer_75() { currency = "BGN" ) } - } } @@ -296,7 +290,6 @@ private fun Preview_buffer_90() { currency = "BGN" ) } - } } @@ -317,7 +310,6 @@ private fun Preview_buffer_100() { currency = "BGN" ) } - } } @@ -338,7 +330,6 @@ private fun Preview_buffer_125() { currency = "BGN" ) } - } } @@ -359,6 +350,5 @@ private fun Preview_expenses_negative() { currency = "BGN" ) } - } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/BufferBattery.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/BufferBattery.kt index 5631574bfd..a4c39cf73f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/BufferBattery.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/BufferBattery.kt @@ -112,8 +112,13 @@ fun BufferBattery( Column { Text( - text = if (bufferExceeded) stringResource(R.string.buffer_exceeded_by) else stringResource( - R.string.left_to_spend), + text = if (bufferExceeded) { + stringResource(R.string.buffer_exceeded_by) + } else { + stringResource( + R.string.left_to_spend + ) + }, style = UI.typo.c.style( color = textColor, fontWeight = FontWeight.ExtraBold @@ -148,7 +153,6 @@ private fun Preview_buffer_0() { currency = "BGN" ) } - } } @@ -169,7 +173,6 @@ private fun Preview_buffer_balance_0() { currency = "BGN" ) } - } } @@ -190,7 +193,6 @@ private fun Preview_buffer_very_low() { currency = "BGN" ) } - } } @@ -211,7 +213,6 @@ private fun Preview_buffer_25() { currency = "BGN" ) } - } } @@ -232,7 +233,6 @@ private fun Preview_buffer_50() { currency = "BGN" ) } - } } @@ -253,7 +253,6 @@ private fun Preview_buffer_75() { currency = "BGN" ) } - } } @@ -274,7 +273,6 @@ private fun Preview_buffer_90() { currency = "BGN" ) } - } } @@ -295,7 +293,6 @@ private fun Preview_buffer_100() { currency = "BGN" ) } - } } @@ -316,6 +313,5 @@ private fun Preview_buffer_125() { currency = "BGN" ) } - } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/ChangeTransactionTypeModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/ChangeTransactionTypeModal.kt index b1a2f41c8b..259181b53b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/ChangeTransactionTypeModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/ChangeTransactionTypeModal.kt @@ -215,7 +215,6 @@ private fun Preview() { initialType = TransactionType.INCOME, dismiss = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/CircleButtons.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/CircleButtons.kt index c1c54974da..c6edbd4792 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/CircleButtons.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/CircleButtons.kt @@ -20,7 +20,6 @@ import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.ui.theme.Gradient - @Composable fun CloseButton( modifier: Modifier = Modifier, @@ -50,7 +49,7 @@ fun CircleButton( .clickable(onClick = onClick) .background(backgroundColor, CircleShape) .border(2.dp, borderColor, CircleShape) - .padding(6.dp), //enlarge click area + .padding(6.dp), // enlarge click area painter = painterResource(id = icon), contentDescription = contentDescription, tint = tint ?: Color.Unspecified @@ -72,7 +71,7 @@ fun CircleButtonFilled( .clip(CircleShape) .clickable(onClick = onClick) .background(backgroundColor, CircleShape) - .padding(clickAreaPadding), //enlarge click area + .padding(clickAreaPadding), // enlarge click area painter = painterResource(id = icon), contentDescription = contentDescription, tint = tint ?: Color.Unspecified @@ -94,7 +93,7 @@ fun CircleButtonFilledGradient( .clip(CircleShape) .clickable(onClick = onClick) .background(backgroundGradient.asHorizontalBrush(), CircleShape) - .padding(iconPadding), //enlarge click area + .padding(iconPadding), // enlarge click area painter = painterResource(id = icon), contentDescription = contentDescription, @@ -120,7 +119,6 @@ fun BackButton( private fun PreviewCloseButton() { IvyWalletComponentPreview { CloseButton { - } } } @@ -130,7 +128,6 @@ private fun PreviewCloseButton() { private fun PreviewBackButton() { IvyWalletComponentPreview { BackButton { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/CurrencyPicker.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/CurrencyPicker.kt index 4f8d97aae8..b5a0a61ed9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/CurrencyPicker.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/CurrencyPicker.kt @@ -121,8 +121,11 @@ fun CurrencyPicker( CurrencyList( searchQueryLowercase = searchTextFieldValue.text.toLowerCase(Locale.getDefault()), selectedCurrency = selectedCurrency, - lastItemSpacer = if (includeKeyboardShownInsetSpacer) - keyboardShownInsetDp + lastItemSpacer else lastItemSpacer, + lastItemSpacer = if (includeKeyboardShownInsetSpacer) { + keyboardShownInsetDp + lastItemSpacer + } else { + lastItemSpacer + }, ) { preselected = false selectedCurrency = it @@ -149,7 +152,6 @@ private fun SearchInput( }, verticalAlignment = Alignment.CenterVertically ) { - Spacer(Modifier.width(16.dp)) IvyIcon( @@ -163,7 +165,7 @@ private fun SearchInput( contentAlignment = Alignment.CenterStart ) { if (searchTextFieldValue.text.isEmpty()) { - //Hint + // Hint Text( text = stringResource(R.string.search_currency), style = UI.typo.c.style( @@ -272,8 +274,8 @@ private fun CurrencyList( val currencies = IvyCurrency.getAvailable() .filter { searchQueryLowercase.isBlank() || - it.code.toLowerCaseLocal().startsWith(searchQueryLowercase) || - it.name.toLowerCaseLocal().startsWith(searchQueryLowercase) + it.code.toLowerCaseLocal().startsWith(searchQueryLowercase) || + it.name.toLowerCaseLocal().startsWith(searchQueryLowercase) } .sortedBy { it.code } .sortedBy { it.isCrypto } @@ -302,7 +304,6 @@ private fun CurrencyList( ) } - LazyColumn( state = listState ) { @@ -410,11 +411,10 @@ private fun Preview() { initialSelectedCurrency = null, includeKeyboardShownInsetSpacer = true ) { - } } } private data class LetterDivider( val letter: String -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/CustomExchangeRateCard.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/CustomExchangeRateCard.kt index 4b271ad991..a732460a1e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/CustomExchangeRateCard.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/CustomExchangeRateCard.kt @@ -26,7 +26,6 @@ import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.ui.theme.Orange import com.ivy.wallet.utils.format - @Composable fun CustomExchangeRateCard( modifier: Modifier = Modifier, @@ -101,7 +100,8 @@ fun CustomExchangeRateCard( .padding(end = 16.dp) .clickable { onRefresh() - }) + } + ) } } @@ -116,4 +116,4 @@ private fun Preview_OneTime() { ) { } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/DeleteButton.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/DeleteButton.kt index b560394d5c..e5e34ef9e9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/DeleteButton.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/DeleteButton.kt @@ -27,4 +27,4 @@ fun DeleteButton( tint = White, onClick = onClick ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/GradientCut.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/GradientCut.kt index 7682cd0da9..77cc66f040 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/GradientCut.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/GradientCut.kt @@ -17,7 +17,6 @@ import com.ivy.wallet.ui.theme.Gradient import com.ivy.wallet.ui.theme.Transparent import com.ivy.wallet.utils.thenIf - @Composable fun BoxWithConstraintsScope.GradientCutBottom( height: Dp = 96.dp, @@ -49,4 +48,4 @@ fun BoxWithConstraintsScope.GradientCutTop( .background(Gradient(UI.colors.pure, Transparent).asVerticalBrush()) .align(Alignment.TopCenter) ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IntervalPickerRow.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IntervalPickerRow.kt index a6d270d68c..f7df8013b5 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IntervalPickerRow.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IntervalPickerRow.kt @@ -57,10 +57,13 @@ fun IntervalPickerRow( IvyNumberTextField( modifier = Modifier .background( - brush = if (validInput) - GradientIvy.asHorizontalBrush() else Gradient - .solid(UI.colors.medium) - .asHorizontalBrush(), + brush = if (validInput) { + GradientIvy.asHorizontalBrush() + } else { + Gradient + .solid(UI.colors.medium) + .asHorizontalBrush() + }, shape = UI.shapes.rFull ) .padding(vertical = 12.dp), @@ -97,7 +100,6 @@ private fun RowScope.IntervalTypeSelector( onSetIntervalType: (IntervalType) -> Unit ) { - Row( modifier = Modifier .weight(1f) @@ -172,4 +174,4 @@ private fun Preview() { ) { } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/ItemIcon.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/ItemIcon.kt index bfc4dcf6fa..4f7d8f6d16 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/ItemIcon.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/ItemIcon.kt @@ -20,7 +20,6 @@ import com.ivy.design.utils.thenWhen import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.utils.toLowerCaseLocal - @Composable fun ItemIconL( modifier: Modifier = Modifier, @@ -143,20 +142,20 @@ private fun ItemIcon( modifier = modifier .thenWhen { if (!iconInfo.newFormat) { - //do nothing for the old format of icons + // do nothing for the old format of icons return@thenWhen this } when (iconInfo.style) { IconStyle.L -> - //64.dp - 48.dp = 16.dp / 4 = 4.dp + // 64.dp - 48.dp = 16.dp / 4 = 4.dp this.padding(all = 4.dp) IconStyle.M -> - //48.dp - 32.dp = 16.dp / 4 = 4.dp + // 48.dp - 32.dp = 16.dp / 4 = 4.dp this.padding(all = 4.dp) IconStyle.S -> - //32.dp - 24.dp = 8.dp / 4 = 2.dp - //2.dp is too small padding + // 32.dp - 24.dp = 8.dp / 4 = 2.dp + // 2.dp is too small padding this.padding(all = 4.dp) IconStyle.UNKNOWN -> this } @@ -164,8 +163,11 @@ private fun ItemIcon( painter = painterResource(id = iconInfo.iconId), colorFilter = ColorFilter.tint(tint), alignment = Alignment.Center, - contentScale = iconContentScale ?: if (iconInfo.newFormat) - ContentScale.Fit else ContentScale.None, + contentScale = iconContentScale ?: if (iconInfo.newFormat) { + ContentScale.Fit + } else { + ContentScale.None + }, contentDescription = iconName ?: "item icon" ) } else { @@ -235,7 +237,7 @@ fun getCustomIconId( .toLowerCaseLocal() val itemId = context.resources.getIdentifier( - "ic_custom_${iconNameNormalized}_${size}", + "ic_custom_${iconNameNormalized}_$size", "drawable", context.packageName ).takeIf { it != 0 } @@ -325,4 +327,4 @@ private fun Preview_S() { IvyWalletComponentPreview { ItemIconS(iconName = "fooddrink") } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyBasicTextField.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyBasicTextField.kt index 1de80ca9f1..8db197014a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyBasicTextField.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyBasicTextField.kt @@ -27,7 +27,6 @@ import com.ivy.wallet.utils.hideKeyboard import com.ivy.wallet.utils.isNotNullOrBlank import com.ivy.wallet.utils.selectEndTextFieldValue - @Composable fun IvyBasicTextField( modifier: Modifier = Modifier, @@ -108,4 +107,4 @@ private fun Preview_Filled() { onValueChanged = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyBorderButton.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyBorderButton.kt index 94b1d0ca92..3564c7f7b0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyBorderButton.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyBorderButton.kt @@ -27,7 +27,6 @@ import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.ui.theme.Gradient - @Composable fun IvyBorderButton( modifier: Modifier = Modifier, @@ -51,14 +50,16 @@ fun IvyBorderButton( .clip(UI.shapes.rFull) .border( width = 2.dp, - brush = if (enabled) - backgroundGradient.asHorizontalBrush() else SolidColor(UI.colors.gray), + brush = if (enabled) { + backgroundGradient.asHorizontalBrush() + } else { + SolidColor(UI.colors.gray) + }, shape = UI.shapes.rFull ) .clickable(onClick = onClick, enabled = enabled), verticalAlignment = Alignment.CenterVertically ) { - when { iconStart != null -> { IconStart( @@ -155,7 +156,6 @@ private fun PreviewIvyBorderButton() { text = "New label", iconStart = R.drawable.ic_label_hashtag ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyButton.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyButton.kt index 28ea9133f4..45122fb246 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyButton.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyButton.kt @@ -69,14 +69,16 @@ fun IvyButton( } .clip(UI.shapes.rFull) .background( - brush = if (enabled) - backgroundGradient.asHorizontalBrush() else SolidColor(UI.colors.gray), + brush = if (enabled) { + backgroundGradient.asHorizontalBrush() + } else { + SolidColor(UI.colors.gray) + }, shape = UI.shapes.rFull ) .clickable(onClick = onClick, enabled = enabled), verticalAlignment = Alignment.CenterVertically ) { - when { iconStart != null -> { IconStart( @@ -189,7 +191,6 @@ private fun PreviewIvyButtonWrapContentWithIconStart() { text = "Add new", wrapContentMode = true ) { - } } } @@ -206,7 +207,6 @@ private fun PreviewIvyButtonFillMaxWidthWithIconStart() { text = "Add new", wrapContentMode = false ) { - } } } @@ -224,7 +224,6 @@ private fun PreviewIvyButtonWrapContentWithIconEnd() { text = "Category 1", wrapContentMode = true ) { - } } } @@ -242,7 +241,6 @@ private fun PreviewIvyButtonFillMaxWidthWithIconEnd() { text = "Category 1", wrapContentMode = false ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyCheckbox.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyCheckbox.kt index 8e2806cf07..aec4d25aa9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyCheckbox.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyCheckbox.kt @@ -24,7 +24,6 @@ import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.utils.clickableNoIndication - @Composable fun IvyCheckbox( modifier: Modifier = Modifier, @@ -87,7 +86,6 @@ private fun PreviewIvyCheckboxWithText() { text = "Default category", checked = false, ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyChecklistTextField.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyChecklistTextField.kt index a40d81f0dd..29c1093d24 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyChecklistTextField.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyChecklistTextField.kt @@ -32,7 +32,6 @@ import com.ivy.wallet.utils.clickableNoIndication import com.ivy.wallet.utils.hideKeyboard import com.ivy.wallet.utils.isNotNullOrBlank - @Composable fun IvyChecklistTextField( modifier: Modifier = Modifier, @@ -118,7 +117,6 @@ fun IvyChecklistTextField( } } - @Preview @Composable private fun PreviewIvyTextField() { @@ -130,7 +128,8 @@ private fun PreviewIvyTextField() { .padding(horizontal = 24.dp), value = TextFieldValue(), hint = "Hint", - onValueChanged = {}) + onValueChanged = {} + ) } } @@ -142,8 +141,11 @@ private fun PreviewIvyTextField_longText() { modifier = Modifier .background(UI.colors.red) .padding(horizontal = 24.dp), - value = TextFieldValue("Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light."), + value = TextFieldValue( + "Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light." + ), hint = "Hint", - onValueChanged = {}) + onValueChanged = {} + ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyCircleButton.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyCircleButton.kt index 9db6a3fa25..f292925cfa 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyCircleButton.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyCircleButton.kt @@ -22,7 +22,6 @@ import com.ivy.wallet.ui.theme.White import com.ivy.wallet.utils.drawColoredShadow import com.ivy.wallet.utils.thenIf - @Composable fun IvyCircleButton( modifier: Modifier = Modifier, @@ -49,8 +48,11 @@ fun IvyCircleButton( .clip(UI.shapes.rFull) .background( brush = if (enabled) { - if (horizontalGradient) - backgroundGradient.asHorizontalBrush() else backgroundGradient.asVerticalBrush() + if (horizontalGradient) { + backgroundGradient.asHorizontalBrush() + } else { + backgroundGradient.asVerticalBrush() + } } else { SolidColor(UI.colors.gray) }, @@ -73,7 +75,6 @@ private fun PreviewIvyCircleButton_Enabled() { backgroundGradient = GradientRed, tint = White ) { - } } } @@ -88,7 +89,6 @@ private fun PreviewIvyCircleButton_Disabled() { enabled = false, tint = White ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyColorPicker.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyColorPicker.kt index 77423d8bd4..52e13e7cf7 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyColorPicker.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyColorPicker.kt @@ -93,19 +93,19 @@ import com.ivy.wallet.utils.thenIf import kotlinx.coroutines.launch val IVY_COLOR_PICKER_COLORS_FREE = listOf( - //Primary + // Primary Ivy, Purple1, Purple2, Blue, Blue2, Blue3, Green, Green2, Green3, Green4, Yellow, Orange, Orange2, Orange3, Red, Red2, Red3, ) val IVY_COLOR_PICKER_COLORS_PREMIUM = listOf( - //Light + // Light IvyLight, Purple1Light, Purple2Light, BlueLight, Blue2Light, Blue3Light, GreenLight, Green2Light, Green3Light, Green4Light, YellowLight, OrangeLight, Orange2Light, Orange3Light, RedLight, Red2Light, Red3Light, - //Dark + // Dark IvyDark, Purple1Dark, Purple2Dark, BlueDark, Blue2Dark, Blue3Dark, GreenDark, Green2Dark, Green3Dark, Green4Dark, YellowDark, OrangeDark, Orange2Dark, Orange3Dark, RedDark, Red2Dark, Red3Dark, @@ -150,14 +150,13 @@ fun ColumnScope.IvyColorPicker( val ivyColors = freeIvyColors + premiumIvyColors - val listState = rememberLazyListState() val coroutineScope = rememberCoroutineScope() densityScope { onScreenStart { - if (TestingContext.inTest) return@onScreenStart //listState.scrollToItem breaks the tests - //java.lang.IllegalStateException: pending composition has not been applied + if (TestingContext.inTest) return@onScreenStart // listState.scrollToItem breaks the tests + // java.lang.IllegalStateException: pending composition has not been applied val selectedColorIndex = ivyColors.indexOfFirst { it.color == selectedColor } if (selectedColorIndex != -1) { @@ -250,8 +249,7 @@ private fun PreviewIvyColorPicker() { IvyWalletComponentPreview { Column { IvyColorPicker(selectedColor = UI.colors.primary) { - } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyComponents.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyComponents.kt index 1cf18dbc98..c033edbbe9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyComponents.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyComponents.kt @@ -12,7 +12,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI - @Composable fun ActionsRow( modifier: Modifier = Modifier, @@ -43,4 +42,4 @@ fun ActionsRow( ) { Content() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDescriptionTextField.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDescriptionTextField.kt index d637d2386f..a4d1ee6fc9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDescriptionTextField.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDescriptionTextField.kt @@ -29,7 +29,6 @@ import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.utils.hideKeyboard import com.ivy.wallet.utils.isNotNullOrBlank - @Composable fun IvyDescriptionTextField( modifier: Modifier = Modifier, @@ -92,7 +91,6 @@ fun IvyDescriptionTextField( } } - @Preview @Composable private fun PreviewIvyTextField() { @@ -104,7 +102,8 @@ private fun PreviewIvyTextField() { .padding(horizontal = 24.dp), value = TextFieldValue(), hint = "Hint", - onValueChanged = {}) + onValueChanged = {} + ) } } @@ -116,8 +115,11 @@ private fun PreviewIvyTextField_longText() { modifier = Modifier .background(UI.colors.red) .padding(horizontal = 24.dp), - value = TextFieldValue("Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light."), + value = TextFieldValue( + "Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light." + ), hint = "Hint", - onValueChanged = {}) + onValueChanged = {} + ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDivider.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDivider.kt index 0e0ea50bb5..a5518dd12b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDivider.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDivider.kt @@ -11,8 +11,6 @@ import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.wallet.ui.IvyWalletComponentPreview - - @Composable fun IvyDividerLine( modifier: Modifier = Modifier @@ -43,4 +41,4 @@ private fun Preview() { IvyWalletComponentPreview { IvyDividerLine() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDividerDot.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDividerDot.kt index d714ce2fbd..dbe169aef6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDividerDot.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyDividerDot.kt @@ -11,7 +11,6 @@ import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.wallet.ui.IvyWalletComponentPreview - @Composable fun IvyDividerDot() { Spacer( @@ -27,4 +26,4 @@ private fun Preview() { IvyWalletComponentPreview { IvyDividerDot() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyIcon.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyIcon.kt index a2df5fe06b..53e0de27d2 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyIcon.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyIcon.kt @@ -8,7 +8,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import com.ivy.design.l0_system.UI - @Composable fun IvyIcon( modifier: Modifier = Modifier, @@ -22,4 +21,4 @@ fun IvyIcon( contentDescription = contentDescription, tint = tint ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyNameTextFieldValue.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyNameTextFieldValue.kt index a818330de1..c7a09e0a1f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyNameTextFieldValue.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyNameTextFieldValue.kt @@ -32,7 +32,6 @@ import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.utils.hideKeyboard import com.ivy.wallet.utils.isNotNullOrBlank - @Composable fun IvyNameTextField( modifier: Modifier = Modifier, @@ -100,7 +99,6 @@ fun IvyNameTextField( } } - @Preview @Composable private fun PreviewIvyNameTextField() { @@ -116,6 +114,5 @@ private fun PreviewIvyNameTextField() { onValueChanged = {} ) } - } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyNumberTextField.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyNumberTextField.kt index 02c15af0ea..13dbdaa23b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyNumberTextField.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyNumberTextField.kt @@ -26,7 +26,6 @@ import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.utils.hideKeyboard import com.ivy.wallet.utils.isNotNullOrBlank - @Composable fun IvyNumberTextField( modifier: Modifier = Modifier, @@ -97,7 +96,6 @@ private fun Preview() { value = TextFieldValue(), hint = "0" ) { - } } } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyOutlinedButton.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyOutlinedButton.kt index 6200b6c0c8..fc87714091 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyOutlinedButton.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyOutlinedButton.kt @@ -26,7 +26,6 @@ import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.ui.theme.Green import com.ivy.wallet.utils.thenIf - @Composable fun IvyOutlinedButton( modifier: Modifier = Modifier, @@ -146,7 +145,6 @@ private fun Preview_FillMaxWidth() { textColor = Green, iconTint = Green ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyOutlinedTextField.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyOutlinedTextField.kt index 08be9754bd..16b2e74bcb 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyOutlinedTextField.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyOutlinedTextField.kt @@ -30,7 +30,6 @@ import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.utils.isNotNullOrBlank import com.ivy.wallet.utils.thenIf - @Composable fun IvyOutlinedTextField( modifier: Modifier = Modifier, @@ -105,7 +104,6 @@ fun IvyOutlinedTextField( } } - @Preview @Composable private fun PreviewOutlineTextField() { @@ -114,6 +112,7 @@ private fun PreviewOutlineTextField() { modifier = Modifier.padding(horizontal = 24.dp), value = TextFieldValue(), hint = "Hint", - onValueChanged = {}) + onValueChanged = {} + ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvySwitch.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvySwitch.kt index 5a86669a3c..27c547ca9a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvySwitch.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvySwitch.kt @@ -19,7 +19,6 @@ import com.ivy.wallet.ui.theme.Gray import com.ivy.wallet.ui.theme.Green import com.ivy.wallet.utils.springBounce - @Composable fun IvySwitch( modifier: Modifier = Modifier, @@ -53,7 +52,7 @@ fun IvySwitch( Spacer(Modifier.weight(weightStart)) } - //Circle + // Circle Spacer( modifier = Modifier .size(16.dp) @@ -81,4 +80,4 @@ private fun PreviewIvySwitch() { enabled = it } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyTitleTextField.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyTitleTextField.kt index 93945c1b35..44038cf9b4 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyTitleTextField.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyTitleTextField.kt @@ -35,7 +35,6 @@ import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.utils.hideKeyboard import com.ivy.wallet.utils.isNotNullOrBlank - @Composable fun ColumnScope.IvyTitleTextField( modifier: Modifier = Modifier, @@ -104,7 +103,6 @@ fun ColumnScope.IvyTitleTextField( ) } - @Preview @Composable private fun PreviewIvyTitleTextField() { @@ -120,6 +118,5 @@ private fun PreviewIvyTitleTextField() { onValueChanged = {} ) } - } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyToolbar.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyToolbar.kt index c547ec8d80..c09963fe19 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyToolbar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyToolbar.kt @@ -49,4 +49,4 @@ fun IvyToolbar( Content() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyViewPager.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyViewPager.kt index f0275d9250..e088c1d3d6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyViewPager.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyViewPager.kt @@ -75,7 +75,7 @@ fun IvyPager( val offset = state.offset.value when { offset > SWIPE_THRESHOLD -> { - //next page + // next page Animatable(offset).animateTo(1f) { state.setOffset(value) if (value == 1f) { @@ -84,7 +84,7 @@ fun IvyPager( } } offset < -SWIPE_THRESHOLD -> { - //previous page + // previous page Animatable(offset).animateTo(-1f) { state.setOffset(value) if (value == -1f) { @@ -99,11 +99,10 @@ fun IvyPager( } } } - } ), content = { - //Pages to pre-load + // Pages to pre-load val firstVisibleIndex = (state.currentPage - 1).coerceAtLeast(state.minPage) val lastVisibleIndex = (state.currentPage + 1).coerceAtMost(state.maxPage) @@ -113,9 +112,11 @@ fun IvyPager( Box( contentAlignment = Alignment.Center, modifier = pageData - .width(densityScope { - screenWidth.toDp() - }) + .width( + densityScope { + screenWidth.toDp() + } + ) .fillMaxHeight() ) { pageContent(index) @@ -124,7 +125,7 @@ fun IvyPager( } }, measurePolicy = { measurables, constraints -> - val offset = state.offset.value //(-1f to 1f) + val offset = state.offset.value // (-1f to 1f) Timber.i("measurePolicy(): offset = $offset") layout(screenWidth, constraints.minHeight) { @@ -137,21 +138,21 @@ fun IvyPager( .forEach { (placeable, page) -> when (page) { state.currentPage -> { - //current page + // current page placeable.place( (screenWidth * -offset).roundToInt(), 0 ) } state.currentPage - 1 -> { - //previous page (offset = -1f) + // previous page (offset = -1f) placeable.place( (-screenWidth - (screenWidth * offset)).roundToInt(), 0 ) } state.currentPage + 1 -> { - //next page (offset = 1f) + // next page (offset = 1f) val x = (screenWidth - (screenWidth * offset)).roundToInt() Timber.i("nextPage: x = $x, (offset = $offset, sw = $screenWidth)") placeable.place( @@ -197,7 +198,6 @@ class IvyPagerState( } } _offset.value = offset.coerceIn(-1f, 1f) - } private var _maxPage by mutableStateOf(maxPage) @@ -216,4 +216,4 @@ class IvyPagerState( _currentPage = page.coerceIn(minPage, maxPage) setOffset(0f) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/OnboardingComponents.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/OnboardingComponents.kt index 4e43bbea00..8bc22699c5 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/OnboardingComponents.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/OnboardingComponents.kt @@ -28,7 +28,6 @@ import com.ivy.wallet.ui.theme.GradientIvy import com.ivy.wallet.utils.drawColoredShadow import com.ivy.wallet.utils.thenIf - @Composable fun OnboardingButton( modifier: Modifier = Modifier, @@ -53,8 +52,11 @@ fun OnboardingButton( } .clip(UI.shapes.rFull) .background( - brush = if (enabled) - backgroundGradient.asHorizontalBrush() else SolidColor(UI.colors.gray), + brush = if (enabled) { + backgroundGradient.asHorizontalBrush() + } else { + SolidColor(UI.colors.gray) + }, shape = UI.shapes.rFull ) .clickable(onClick = onClick, enabled = enabled), @@ -123,4 +125,4 @@ private fun PreviewOnboardingButton() { onClick = { } ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/ProgressBar.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/ProgressBar.kt index e1f51179a8..5656cdf465 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/ProgressBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/ProgressBar.kt @@ -16,7 +16,6 @@ import com.ivy.design.l0_system.UI import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.ui.theme.* - @Composable fun ProgressBar( modifier: Modifier = Modifier, @@ -63,4 +62,4 @@ private fun Preview() { percent = 0.6 ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/ReorderModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/ReorderModal.kt index 665b57b5a8..51f06b80f3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/ReorderModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/ReorderModal.kt @@ -99,7 +99,7 @@ fun BoxScope.ReorderModal( ItemContent: @Composable RowScope.(Int, Any) -> Unit ) { var items by remember(id, initialItems) { mutableStateOf(initialItems) } - var reOrderedList :List? by remember { + var reOrderedList: List? by remember { mutableStateOf(null) } var orderNumUpdates by remember { @@ -253,7 +253,7 @@ private class Adapter( .testTag("reorder_drag_handle"), icon = R.drawable.ic_drag_handle, tint = UI.colors.gray, - contentDescription = "reorder_${position}" + contentDescription = "reorder_$position" ) Spacer(Modifier.width(4.dp)) @@ -266,7 +266,6 @@ private class Adapter( } } - @Suppress("UNCHECKED_CAST") private fun itemTouchHelper( colorMedium: Color, @@ -278,7 +277,6 @@ private fun itemTouchHelper( var movedItem: T? = null var finalTo: Int? = null - override fun onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, @@ -359,7 +357,6 @@ fun ReorderButton( ) } - @Suppress("UNCHECKED_CAST") private fun calculateOrderNum( itemsInNewOrder: List<*>, @@ -376,13 +373,13 @@ private fun calculateOrderNum( ) } itemBefore != null && itemAfter == null -> { - //It's last in it's priority + // It's last in it's priority itemBefore.getItemOrderNum() + 1 } itemBefore == null && itemAfter != null -> { - //It's first in it's priority + // It's first in it's priority itemAfter.getItemOrderNum() - 1 } else -> 0.0 } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/ViewPager.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/ViewPager.kt index 084ea2410d..1194d38f9e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/ViewPager.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/ViewPager.kt @@ -58,29 +58,40 @@ fun Pager( Layout( content = { - //pageOffset <0 when moving forward + // pageOffset <0 when moving forward val currentPageOffset = state.currentPageOffset val movingForward = currentPageOffset < 0 val currentPage = state.currentPage - val minPage = if (!movingForward) - (state.currentPage - 1).coerceAtLeast(state.minPage) else currentPage - val maxPage = if (movingForward) - (state.currentPage + 1).coerceAtMost(state.maxPage) else currentPage + val minPage = if (!movingForward) { + (state.currentPage - 1).coerceAtLeast(state.minPage) + } else { + currentPage + } + val maxPage = if (movingForward) { + (state.currentPage + 1).coerceAtMost(state.maxPage) + } else { + currentPage + } for (page in minPage..maxPage) { val pageData = PageData(page) val scope = PagerScope(state, page) - val alpha = if (page == currentPage) - 1f - abs(currentPageOffset) else abs(currentPageOffset) + val alpha = if (page == currentPage) { + 1f - abs(currentPageOffset) + } else { + abs(currentPageOffset) + } key(pageData) { Box( contentAlignment = Alignment.Center, modifier = pageData - .width(densityScope { - screenWidth.toDp() - }) + .width( + densityScope { + screenWidth.toDp() + } + ) .fillMaxHeight() .alpha(alpha) ) { @@ -98,7 +109,9 @@ fun Pager( // Velocity is in pixels per second, but we deal in percentage offsets, so we // need to scale the velocity to match val finalVelocity = velocity / pageSize - Timber.d("onDragStopped(): velocity = $velocity, finalVelocity = $finalVelocity, currentPageOffset = ${state.currentPageOffset}") + Timber.d( + "onDragStopped(): velocity = $velocity, finalVelocity = $finalVelocity, currentPageOffset = ${state.currentPageOffset}" + ) if (abs(state.currentPageOffset) > 0.1f) { val finalOffset = if (state.currentPageOffset > 0) 1f else -1f @@ -124,7 +137,7 @@ fun Pager( layout(constraints.maxWidth, constraints.maxHeight) { val currentPage = state.currentPage val swipeLeft = state.currentPageOffset < 0 - val offset = abs(state.currentPageOffset) //0f to 1f + val offset = abs(state.currentPageOffset) // 0f to 1f val childConstraints = constraints.copy(minWidth = 0, minHeight = 0) measurables @@ -140,11 +153,11 @@ fun Pager( } val x = if (page == currentPage) { - //page disappears + // page disappears val distance = (screenWidth * offset).roundToInt() xCenterOffset + if (swipeLeft) -distance else distance } else { - //page appears + // page appears val distance = (screenWidth * (1f - offset)).roundToInt() xCenterOffset + if (swipeLeft) distance else -distance } @@ -235,7 +248,7 @@ class PagerState( // } override fun toString(): String = "PagerState{minPage=$minPage, maxPage=$maxPage, " + - "currentPage=$currentPage, currentPageOffset=$currentPageOffset}" + "currentPage=$currentPage, currentPageOffset=$currentPageOffset}" } @Immutable diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/WrapContentRow.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/WrapContentRow.kt index 8f1fab3d02..ee3478cc34 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/WrapContentRow.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/WrapContentRow.kt @@ -21,7 +21,6 @@ import com.ivy.design.l0_system.UI import com.ivy.wallet.domain.data.core.Category import com.ivy.wallet.ui.IvyWalletPreview - @Composable fun WrapContentRow( modifier: Modifier = Modifier, @@ -53,7 +52,7 @@ fun WrapContentRow( for (placeable in placeables) { if (x + placeable.width > constraints.maxWidth) { - //item is overflowing -> move it to a new row + // item is overflowing -> move it to a new row x = 0 height += itemHeight + verticalMarginBetweenRows.roundToPx() x += placeable.width + horizontalMarginBetweenItems.roundToPx() @@ -65,15 +64,14 @@ fun WrapContentRow( height += itemHeight - layout(constraints.maxWidth, height) { - //Reset x + // Reset x x = 0 var y = 0 placeables.forEach { placeable -> if (x + placeable.width > constraints.maxWidth) { - //item is overflowing -> move it to a new row + // item is overflowing -> move it to a new row x = 0 y += itemHeight + verticalMarginBetweenRows.roundToPx() } @@ -121,4 +119,4 @@ private fun PreviewWrapContentRow() { Spacer(modifier = Modifier.width(8.dp)) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/charts/linechart/Grid.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/charts/linechart/Grid.kt index 4c06c4e23f..2be4ab1bf9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/charts/linechart/Grid.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/charts/linechart/Grid.kt @@ -1,2 +1 @@ package com.ivy.wallet.ui.theme.components.charts.linechart - diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/charts/linechart/IvyLineChart.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/charts/linechart/IvyLineChart.kt index d8269559e5..c7e6e0e51d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/charts/linechart/IvyLineChart.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/charts/linechart/IvyLineChart.kt @@ -32,7 +32,6 @@ import java.text.DecimalFormat import kotlin.math.pow import kotlin.math.sqrt - data class Value( val x: Double, val y: Double @@ -80,7 +79,6 @@ private fun yValues( ) } - private fun DrawScope.drawTappedPoint( functions: List, tapEvent: TapEvent?, @@ -110,9 +108,9 @@ private fun DrawScope.drawTappedPoint( min = minY, value = tappedValue.y, chartHeight = chartHeight, - offsetTop = 0f, //TODO: Fix - offsetBottom = 0f //TODO: Fix - ) - 4.dp.toPx() //marginFromX //TODO: FIX + offsetTop = 0f, // TODO: Fix + offsetBottom = 0f // TODO: Fix + ) - 4.dp.toPx() // marginFromX //TODO: FIX ) ) } @@ -134,7 +132,6 @@ private fun DrawScope.drawFunctions( val lineWidth = 3.dp.toPx() val marginFromX = 4.dp.toPx() - return functions.flatMapIndexed { index, function -> drawFunction( function = function, @@ -236,7 +233,6 @@ private fun DrawScope.drawFunction( return points } - private fun calculateXCoordinate( values: List, valueIndex: Int, @@ -248,7 +244,6 @@ private fun calculateXCoordinate( return lineDistance * valueIndex + lineDistance } - private fun calculateYCoordinate( max: Double, min: Double, @@ -257,9 +252,9 @@ private fun calculateYCoordinate( offsetTop: Float, offsetBottom: Float ): Float { - //Lerp: (start + x * (end - start)) = value - //x * (end - start) = value - start - //x = (value - start) / (end - start) + // Lerp: (start + x * (end - start)) = value + // x * (end - start) = value - start + // x = (value - start) / (end - start) val yPercent = (value - min) / (max - min) return lerp( @@ -273,7 +268,6 @@ private fun Offset.distance(point2: Offset): Float { return sqrt((point2.x - x).pow(2) + (point2.y - y).pow(2)) } - @Composable fun IvyLineChart( modifier: Modifier = Modifier, @@ -365,13 +359,10 @@ private fun IvyChart( val totalRecords = functions.first().values.size val xDistance = chartWidth / (totalRecords + offsetCellsLeft + offsetCellsRight) - val cellSize = xDistance val offsetTop = cellSize * 3 val offsetBottom = cellSize - - drawTitle( title = title, cellSize = cellSize, @@ -530,7 +521,7 @@ fun DrawScope.drawText( private fun DrawScope.grid( chartWidth: Float, chartHeight: Float, - cellSize: Float //24.dp + cellSize: Float // 24.dp ) { verticalLineXS( chartWidth = chartWidth, @@ -576,7 +567,7 @@ private fun verticalLineXS( return if (cellSize >= chartWidth || (last != null && last >= chartWidth)) { accumulator } else { - //recurse + // recurse val next = (last ?: 0f) + cellSize verticalLineXS( @@ -596,7 +587,7 @@ private tailrec fun horizontalLineYS( return if (cellSize >= chartHeight || (last != null && last <= 0)) { accumulator } else { - //recurse + // recurse val next = (last ?: chartHeight) - cellSize horizontalLineYS( @@ -607,7 +598,6 @@ private tailrec fun horizontalLineYS( } } - @Preview @Composable private fun Preview_IvyChart() { @@ -683,4 +673,4 @@ private fun Preview_IvyChart() { } ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/AddKeywordModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/AddKeywordModal.kt index 78fd5a33df..709d804df6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/AddKeywordModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/AddKeywordModal.kt @@ -90,7 +90,6 @@ private fun Preview() { keyword = "", dismiss = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/BudgetModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/BudgetModal.kt index d184678236..4d7e159d16 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/BudgetModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/BudgetModal.kt @@ -86,11 +86,9 @@ fun BoxWithConstraintsScope.BudgetModal( mutableStateOf(modal?.budget?.parseAccountIds() ?: emptyList()) } - var amountModalVisible by remember(modal) { mutableStateOf(false) } var deleteModalVisible by remember(modal) { mutableStateOf(false) } - IvyModal( id = modal?.id, visible = modal != null, @@ -130,7 +128,9 @@ fun BoxWithConstraintsScope.BudgetModal( verticalAlignment = Alignment.CenterVertically ) { ModalTitle( - text = if (modal?.budget != null) stringResource(R.string.edit_budget) else stringResource(R.string.create_budget) + text = if (modal?.budget != null) stringResource( + R.string.edit_budget + ) else stringResource(R.string.create_budget) ) if (initialBudget != null) { @@ -144,7 +144,6 @@ fun BoxWithConstraintsScope.BudgetModal( } } - Spacer(Modifier.height(24.dp)) ModalNameInput( @@ -281,10 +280,10 @@ private fun CategoriesRow( } ) { selected -> if (selected) { - //remove category + // remove category onSetBudgetCategoryIds(budgetCategoryIds.filter { it != category.id }) } else { - //add category + // add category onSetBudgetCategoryIds(budgetCategoryIds.plus(category.id)) } } @@ -317,7 +316,6 @@ private fun Preview_create() { onEdit = {}, onDelete = {} ) { - } } } @@ -349,7 +347,6 @@ private fun Preview_edit() { onEdit = {}, onDelete = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/BufferModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/BufferModal.kt index b25710676c..352400c2e5 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/BufferModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/BufferModal.kt @@ -14,7 +14,6 @@ import com.ivy.wallet.ui.theme.components.BufferBattery import com.ivy.wallet.ui.theme.modal.edit.AmountModal import java.util.* - data class BufferModalData( val balance: Double, val buffer: Double, @@ -78,4 +77,4 @@ fun BoxWithConstraintsScope.BufferModal( ) { newBufferAmount = it } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseIconModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseIconModal.kt index 8169e92b48..d086a455ab 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseIconModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseIconModal.kt @@ -119,7 +119,7 @@ private tailrec fun LazyListScope.iconsR( onIconSelected: (String) -> Unit ) { if (icons.isNotEmpty()) { - //recurse + // recurse when (val currentItem = icons.first()) { is IconPickerSection -> { @@ -134,7 +134,7 @@ private tailrec fun LazyListScope.iconsR( Section(title = currentItem.title) } - //RECURSE + // RECURSE iconsR( icons = icons.drop(1), rowAcc = emptyList(), @@ -147,10 +147,10 @@ private tailrec fun LazyListScope.iconsR( ) } is String -> { - //icon + // icon if (rowAcc.size == iconsPerRow) { - //recurse and reset acc + // recurse and reset acc addIconsRowIfNotEmpty( rowAcc = rowAcc, @@ -159,7 +159,7 @@ private tailrec fun LazyListScope.iconsR( onIconSelected = onIconSelected ) - //RECURSE + // RECURSE iconsR( icons = icons.drop(1), rowAcc = emptyList(), @@ -171,9 +171,9 @@ private tailrec fun LazyListScope.iconsR( ) } else { - //recurse by filling acc + // recurse by filling acc - //RECURSE + // RECURSE iconsR( icons = icons.drop(1), rowAcc = rowAcc + currentItem, @@ -188,7 +188,7 @@ private tailrec fun LazyListScope.iconsR( } } } else { - //end recursion + // end recursion addIconsRowIfNotEmpty( rowAcc = rowAcc, selectedIcon = selectedIcon, @@ -313,7 +313,6 @@ private fun ChooseIconModal() { color = Ivy, dismiss = {} ) { - } } } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChoosePeriodModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChoosePeriodModal.kt index f004dea3e4..fbf1767c50 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChoosePeriodModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChoosePeriodModal.kt @@ -237,10 +237,10 @@ data class MonthYear( currentYear: Int ): String { return if (year != currentYear) { - //not current year + // not current year "${month.name}, $year" } else { - //current year + // current year month.name } } @@ -351,14 +351,20 @@ private fun IntervalFromToDate( .border(2.dp, UI.colors.medium, UI.shapes.rFull) .clickable { ivyContext.datePicker( - minDate = if (border == IntervalBorder.TO) + minDate = if (border == IntervalBorder.TO) { otherEndDateTime ?.toLocalDate() - ?.plusDays(1) else null, - maxDate = if (border == IntervalBorder.FROM) + ?.plusDays(1) + } else { + null + }, + maxDate = if (border == IntervalBorder.FROM) { otherEndDateTime ?.toLocalDate() - ?.minusDays(1) else null, + ?.minusDays(1) + } else { + null + }, initialDate = dateTime?.toLocalDate() ) { onSelected(it.atStartOfDay()) @@ -479,7 +485,7 @@ private fun AllTime( onSelected: (FromToTimeRange?) -> Unit, ) { val active = timeRange != null && timeRange.from == null && - timeRange.to != null && timeRange.to.isAfter(timeNowUTC()) + timeRange.to != null && timeRange.to.isAfter(timeNowUTC()) Text( modifier = Modifier @@ -523,7 +529,6 @@ private fun Preview_MonthSelected() { ), dismiss = {} ) { - } } } @@ -543,7 +548,6 @@ private fun Preview_FromTo() { ), dismiss = {} ) { - } } } @@ -563,7 +567,6 @@ private fun Preview_LastN() { ), dismiss = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseStartDateOfMonthModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseStartDateOfMonthModal.kt index 7084093e1c..6d38523807 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseStartDateOfMonthModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseStartDateOfMonthModal.kt @@ -197,16 +197,17 @@ private fun NumberView( selected: Boolean, onClick: (Int) -> Unit ) { - Box(modifier = Modifier - .size(48.dp) - .clip(CircleShape) - .border(2.dp, if (selected) Ivy else UI.colors.medium, CircleShape) - .thenIf(selected) { - background(Ivy, CircleShape) - } - .clickable { - onClick(number) - }, + Box( + modifier = Modifier + .size(48.dp) + .clip(CircleShape) + .border(2.dp, if (selected) Ivy else UI.colors.medium, CircleShape) + .thenIf(selected) { + background(Ivy, CircleShape) + } + .clickable { + onClick(number) + }, contentAlignment = Alignment.Center ) { Text( @@ -229,7 +230,6 @@ private fun Preview() { selectedStartDateOfMonth = 1, dismiss = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/CurrencyModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/CurrencyModal.kt index f7a127db97..34750a14bf 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/CurrencyModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/CurrencyModal.kt @@ -110,7 +110,6 @@ private fun Preview() { visible = true, dismiss = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/DeleteModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/DeleteModal.kt index b8ab5e8c9c..428515dae3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/DeleteModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/DeleteModal.kt @@ -64,4 +64,4 @@ fun BoxWithConstraintsScope.DeleteModal( Spacer(Modifier.height(48.dp)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModal.kt index 2ea4323a62..ca76dad857 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModal.kt @@ -57,7 +57,6 @@ import com.ivy.wallet.utils.thenIf import java.util.UUID import kotlin.math.roundToInt - private const val DURATION_BACKGROUND_BLUR_ANIM = 400 const val DURATION_MODAL_ANIM = 200 @@ -160,7 +159,7 @@ fun BoxScope.IvyModal( Content() - //Bottom padding + // Bottom padding if (includeActionsRowPadding) { Spacer(Modifier.height(densityScope { actionsRowHeight.toDp() })) } @@ -314,7 +313,6 @@ private fun PreviewIvyModal_minimal() { visible = true, PrimaryAction = { ModalSave { - } }, dismiss = {} @@ -337,4 +335,4 @@ fun ModalPreviewActionRowSpacer() { } @Composable -fun modalPreviewActionRowHeight() = 80.dp \ No newline at end of file +fun modalPreviewActionRowHeight() = 80.dp diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalComponents.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalComponents.kt index 6ec05ebbe4..4ca64fdfae 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalComponents.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalComponents.kt @@ -249,4 +249,4 @@ fun ModalSkip( ) { onClick() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalDomainComponents.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalDomainComponents.kt index 7079af66b3..fc0b843fda 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalDomainComponents.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalDomainComponents.kt @@ -63,7 +63,6 @@ fun ModalAmountSection( spacerDecimal = 4.dp, spacerCurrency = 8.dp, - integerFontSize = 40.sp, decimalFontSize = 18.sp, currencyFontSize = 30.sp, diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanModal.kt index 302cc28425..2b85b50e5a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanModal.kt @@ -125,7 +125,6 @@ fun BoxWithConstraintsScope.LoanModal( var accountModalData: AccountModalData? by remember { mutableStateOf(null) } - IvyModal( id = modal?.id, visible = modal != null, @@ -134,12 +133,14 @@ fun BoxWithConstraintsScope.LoanModal( PrimaryAction = { ModalAddSave( item = modal?.loan, - //enabled = nameTextFieldValue.text.isNotNullOrBlank() && amount > 0 && ((createLoanTrans && selectedAcc != null) || !createLoanTrans) + // enabled = nameTextFieldValue.text.isNotNullOrBlank() && amount > 0 && ((createLoanTrans && selectedAcc != null) || !createLoanTrans) enabled = nameTextFieldValue.text.isNotNullOrBlank() && amount > 0 && selectedAcc != null ) { accountChangeModal = - loan != null && modal.selectedAccount != null && currencyCode != (modal.selectedAccount.currency - ?: modal.baseCurrency) + loan != null && modal.selectedAccount != null && currencyCode != ( + modal.selectedAccount.currency + ?: modal.baseCurrency + ) if (!accountChangeModal) { save( @@ -344,10 +345,10 @@ private fun AccountsRow( val selectedIndex = accounts.indexOf(selectedAccount) if (selectedIndex != -1) { launch { - if (TestingContext.inTest) return@launch //breaks UI tests + if (TestingContext.inTest) return@launch // breaks UI tests lazyState.scrollToItem( - index = selectedIndex, //+1 because Spacer width 24.dp + index = selectedIndex, // +1 because Spacer width 24.dp ) } } @@ -584,7 +585,6 @@ private fun save( dismiss() } - @Preview @Composable private fun Preview() { @@ -597,7 +597,6 @@ private fun Preview() { onCreateLoan = { }, onEditLoan = { _, _ -> } ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanRecordModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanRecordModal.kt index 51766ccf6e..8452c2a7b6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanRecordModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanRecordModal.kt @@ -126,13 +126,13 @@ fun BoxWithConstraintsScope.LoanRecordModal( ModalAddSave( item = initialRecord, enabled = amount > 0 && selectedAcc != null - //enabled = amount > 0 && ((createLoanRecordTrans && selectedAcc != null) || !createLoanRecordTrans) + // enabled = amount > 0 && ((createLoanRecordTrans && selectedAcc != null) || !createLoanRecordTrans) ) { accountChangeConformationModal = - initialRecord != null && modal.selectedAccount != null - && modal.baseCurrency != currencyCode && currencyCode != modal.loanAccountCurrencyCode + initialRecord != null && modal.selectedAccount != null && + modal.baseCurrency != currencyCode && currencyCode != modal.loanAccountCurrencyCode - if (!accountChangeConformationModal) + if (!accountChangeConformationModal) { save( loanRecord = initialRecord, noteTextFieldValue = noteTextFieldValue, @@ -147,6 +147,7 @@ fun BoxWithConstraintsScope.LoanRecordModal( onEdit = onEdit, dismiss = dismiss, ) + } } } ) { @@ -162,8 +163,13 @@ fun BoxWithConstraintsScope.LoanRecordModal( verticalAlignment = Alignment.CenterVertically ) { ModalTitle( - text = if (initialRecord != null) stringResource(R.string.edit_record) else stringResource( - R.string.new_record) + text = if (initialRecord != null) { + stringResource(R.string.edit_record) + } else { + stringResource( + R.string.new_record + ) + } ) if (initialRecord != null) { @@ -218,11 +224,10 @@ fun BoxWithConstraintsScope.LoanRecordModal( reCalculateVisible = initialRecord?.convertedAmount != null && selectedAcc != null && currencyCode == modal.baseCurrency - //Unchecks the Recalculate Option if Recalculate Checkbox is not visible + // Unchecks the Recalculate Option if Recalculate Checkbox is not visible reCalculate = !reCalculateVisible selectedAcc = it - }, onAddNewAccount = { accountModalData = AccountModalData( @@ -447,17 +452,17 @@ private fun AccountsRow( val selectedIndex = accounts.indexOf(selectedAccount) if (selectedIndex != -1) { launch { - if (TestingContext.inTest) return@launch //breaks UI tests + if (TestingContext.inTest) return@launch // breaks UI tests lazyState.scrollToItem( - index = selectedIndex, //+1 because Spacer width 24.dp + index = selectedIndex, // +1 because Spacer width 24.dp ) } } } } - if (TestingContext.inTest) return //fix broken tests + if (TestingContext.inTest) return // fix broken tests LazyRow( modifier = modifier.fillMaxWidth(), @@ -574,7 +579,6 @@ private fun AddAccount( Spacer(Modifier.width(8.dp)) } - @Preview @Composable private fun Preview() { @@ -588,7 +592,6 @@ private fun Preview() { onEdit = {}, onDelete = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/MonthPickerModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/MonthPickerModal.kt index 0432a05e50..cd8f83de94 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/MonthPickerModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/MonthPickerModal.kt @@ -108,7 +108,6 @@ private fun MonthPicker( } } - @Composable private fun MonthButton( month: Month, @@ -138,8 +137,11 @@ private fun MonthButton( .padding(horizontal = 40.dp, vertical = 12.dp), text = month.name, style = UI.typo.b2.style( - color = if (selected) - findContrastTextColor(monthColor) else UI.colors.pureInverse, + color = if (selected) { + findContrastTextColor(monthColor) + } else { + UI.colors.pureInverse + }, fontWeight = FontWeight.SemiBold ) ) @@ -154,7 +156,6 @@ private fun Preview() { visible = true, dismiss = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/NameModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/NameModal.kt index a51d64b5f7..a34c8e92a4 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/NameModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/NameModal.kt @@ -79,7 +79,6 @@ private fun Preview() { name = "Iliyan", dismiss = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ProgressModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ProgressModal.kt index b5e6e89a02..e1a1ba20b9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ProgressModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ProgressModal.kt @@ -70,4 +70,4 @@ fun BoxWithConstraintsScope.ProgressModal( Spacer(Modifier.height(48.dp)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/RecurringRuleModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/RecurringRuleModal.kt index 3bc4235f37..b22dc1f2c7 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/RecurringRuleModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/RecurringRuleModal.kt @@ -122,7 +122,7 @@ fun BoxWithConstraintsScope.RecurringRuleModal( Spacer(Modifier.height(16.dp)) - //One-time & Multiple Times + // One-time & Multiple Times TimesSelector(oneTime = oneTime) { oneTime = it } @@ -391,13 +391,11 @@ private fun IvyWalletCtx.pickDate( } } - @Preview @Composable private fun Preview_oneTime() { IvyWalletPreview { BoxWithConstraints(Modifier.padding(bottom = 48.dp)) { - RecurringRuleModal( modal = RecurringRuleModalData( initialStartDate = null, @@ -428,6 +426,5 @@ private fun Preview_multipleTimes() { onRuleChanged = { _, _, _, _ -> } ) } - } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AccountModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AccountModal.kt index e61f0c1bdf..0db693f235 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AccountModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AccountModal.kt @@ -87,7 +87,6 @@ fun BoxWithConstraintsScope.AccountModal( mutableStateOf(account?.includeInBalance ?: true) } - var amountModalVisible by remember { mutableStateOf(false) } var currencyModalVisible by remember { mutableStateOf(false) } var chooseIconModalVisible by remember(modal) { @@ -131,7 +130,13 @@ fun BoxWithConstraintsScope.AccountModal( Spacer(Modifier.height(32.dp)) ModalTitle( - text = if (modal?.account != null) stringResource(R.string.edit_account) else stringResource(R.string.new_account), + text = if (modal?.account != null) { + stringResource( + R.string.edit_account + ) + } else { + stringResource(R.string.new_account) + }, ) Spacer(Modifier.height(24.dp)) @@ -318,7 +323,7 @@ private fun AccountCurrency( val currencyName = IvyCurrency.fromCode(currencyCode)?.name ?: "" Text( - text = "-${currencyName}".toLowerCaseLocal(), + text = "-$currencyName".toLowerCaseLocal(), style = UI.typo.b2.style( fontWeight = FontWeight.SemiBold, color = Gray @@ -340,8 +345,8 @@ private fun Preview() { balance = 0.0 ), onCreateAccount = { }, - onEditAccount = { _, _ -> }) { - + onEditAccount = { _, _ -> } + ) { } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AmountModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AmountModal.kt index 850c30cf91..c172278e5e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AmountModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AmountModal.kt @@ -68,12 +68,13 @@ fun BoxWithConstraintsScope.AmountModal( ) { var amount by remember(id) { mutableStateOf( - if (currency.isNotEmpty()) + if (currency.isNotEmpty()) { initialAmount?.takeIf { it != 0.0 }?.format(currency) ?: "" - else + } else { initialAmount?.takeIf { it != 0.0 }?.format(decimalCountMax) ?: "" + } ) } @@ -91,7 +92,8 @@ fun BoxWithConstraintsScope.AmountModal( size = 52.dp, onClick = { calculatorModalVisible = true - }) + } + ) .testTag("btn_calculator") .padding(all = 4.dp), icon = R.drawable.ic_custom_calculator_m, @@ -195,7 +197,7 @@ fun AmountInput( decimalCountMax: Int = 2, setAmount: (String) -> Unit, - ) { +) { var firstInput by remember { mutableStateOf(true) } AmountKeyboard( @@ -221,13 +223,15 @@ fun AmountInput( setAmount("0${localDecimalSeparator()}") firstInput = false } else { - val newlyEnteredString = if (amount.isEmpty()) - "0${localDecimalSeparator()}" else "$amount${localDecimalSeparator()}" + val newlyEnteredString = if (amount.isEmpty()) { + "0${localDecimalSeparator()}" + } else { + "$amount${localDecimalSeparator()}" + } if (newlyEnteredString.amountToDoubleOrNull() != null) { setAmount(newlyEnteredString) } } - }, onBackspace = { if (firstInput) { @@ -254,8 +258,10 @@ private fun formatNumber(number: String): String? { if (newDecimalCount <= 2 && amountDouble != null) { val intPart = truncate(amountDouble).toInt() val decimalFormatted = if (decimalPartString != null) { - "${localDecimalSeparator()}${decimalPartString}" - } else "" + "${localDecimalSeparator()}$decimalPartString" + } else { + "" + } return formatInt(intPart) + decimalFormatted } @@ -403,8 +409,11 @@ fun AmountKeyboard( ) { KeypadCircleButton( text = localDecimalSeparator(), - testTag = if (forCalculator) - "calc_key_decimal_separator" else "key_decimal_separator" + testTag = if (forCalculator) { + "calc_key_decimal_separator" + } else { + "key_decimal_separator" + } ) { onDecimalPoint() } @@ -443,8 +452,11 @@ fun CircleNumberButton( ) { KeypadCircleButton( text = value, - testTag = if (forCalculator) - "calc_key_${value}" else "key_${value}", + testTag = if (forCalculator) { + "calc_key_$value" + } else { + "key_$value" + }, onClick = { onNumberPressed(value) } @@ -507,7 +519,6 @@ private fun Preview() { initialAmount = null, dismiss = { } ) { - } } } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CalculatorModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CalculatorModal.kt index 6c15fde7ae..3df9c6225f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CalculatorModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CalculatorModal.kt @@ -190,7 +190,7 @@ private fun formatExpression(expression: String, currency: String): String { expression .split("(", ")", "/", "*", "-", "+") .ifEmpty { - //handle only number expression formatting + // handle only number expression formatting listOf(expression) } .forEach { part -> @@ -231,4 +231,4 @@ private fun Preview() { onCalculation = {} ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CategoryModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CategoryModal.kt index 991aa7506b..ea44cc49e9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CategoryModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CategoryModal.kt @@ -67,7 +67,6 @@ fun BoxWithConstraintsScope.CategoryModal( mutableStateOf(initialCategory?.icon) } - var chooseIconModalVisible by remember(modal) { mutableStateOf(false) } @@ -106,10 +105,13 @@ fun BoxWithConstraintsScope.CategoryModal( Spacer(Modifier.height(32.dp)) ModalTitle( - text = if (modal?.category != null) stringResource(R.string.edit_category) - else stringResource( - R.string.create_category - ) + text = if (modal?.category != null) { + stringResource(R.string.edit_category) + } else { + stringResource( + R.string.create_category + ) + } ) Spacer(Modifier.height(24.dp)) @@ -149,7 +151,6 @@ fun BoxWithConstraintsScope.CategoryModal( } } - @Composable fun IconNameRow( hint: String, @@ -224,7 +225,6 @@ private fun PreviewCategoryModal() { onCreateCategory = { }, onEditCategory = { } ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/ChooseCategoryModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/ChooseCategoryModal.kt index 54bf305142..105a1e1e90 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/ChooseCategoryModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/ChooseCategoryModal.kt @@ -225,14 +225,16 @@ private fun CategoryButton( ), text = category.name, style = UI.typo.b2.style( - color = if (selected) - findContrastTextColor(categoryColor) else UI.colors.pureInverse, + color = if (selected) { + findContrastTextColor(categoryColor) + } else { + UI.colors.pureInverse + }, fontWeight = FontWeight.SemiBold ) ) if (selected) { - val deselectBtnBackground = findContrastTextColor(categoryColor) IvyCircleButton( modifier = Modifier @@ -289,7 +291,6 @@ private fun PreviewChooseCategoryModal() { showCategoryModal = { }, onCategoryChanged = { } ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/DescriptionModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/DescriptionModal.kt index 7d44d20ec4..2d07d46a5e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/DescriptionModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/DescriptionModal.kt @@ -143,7 +143,6 @@ private fun PreviewDescriptionModal_emptyText() { description = "", onDescriptionChanged = {} ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/model/Month.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/model/Month.kt index ec5400d688..cd60b13a26 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/model/Month.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/model/Month.kt @@ -35,7 +35,6 @@ data class Month( dateNowUTC() .withMonth(monthValue) - fun incrementMonthPeriod( ivyContext: IvyWalletCtx, increment: Long, @@ -53,4 +52,4 @@ data class Month( fun toTimePeriod(): TimePeriod = TimePeriod( month = this ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/wallet/AmountCurrency.kt b/app/src/main/java/com/ivy/wallet/ui/theme/wallet/AmountCurrency.kt index 104a88a9d4..5329db70bf 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/wallet/AmountCurrency.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/wallet/AmountCurrency.kt @@ -17,7 +17,6 @@ import com.ivy.wallet.utils.format import com.ivy.wallet.utils.shortenAmount import com.ivy.wallet.utils.shouldShortAmount - @Composable fun AmountCurrencyB2Row( amount: Double, @@ -65,7 +64,6 @@ fun AmountCurrencyB1Row( } } - @Composable fun AmountCurrencyB1( amount: Double, @@ -166,4 +164,4 @@ fun AmountCurrencyCaption( color = textColor ) ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/wallet/PeriodSelector.kt b/app/src/main/java/com/ivy/wallet/ui/theme/wallet/PeriodSelector.kt index 7d27e350ad..1468018cc0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/wallet/PeriodSelector.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/wallet/PeriodSelector.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.ui.theme.wallet - import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement @@ -116,11 +115,10 @@ private fun Preview() { PeriodSelector( period = TimePeriod.currentMonth( startDayOfMonth = 1 - ), //preview + ), // preview onPreviousMonth = { }, onNextMonth = { } ) { - } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/transaction/TransactionViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/transaction/TransactionViewModel.kt index 0d149406fa..c2adb5ce96 100644 --- a/app/src/main/java/com/ivy/wallet/ui/transaction/TransactionViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/transaction/TransactionViewModel.kt @@ -65,11 +65,11 @@ class TransactionViewModel @Inject constructor( title = null, description = null, - //TODO: Handle transfers properly + // TODO: Handle transfers properly toAccount = null, toAmount = null, exchangeRate = null, - //TODO: Handle transfers properly + // TODO: Handle transfers properly titleSuggestions = emptyList(), @@ -106,7 +106,7 @@ class TransactionViewModel @Inject constructor( } if (type == TransactionType.TRANSFER && toAccount == null) { - //TRANSFER w/o toAccount + // TRANSFER w/o toAccount return@with Res.Err("Transfers must have \"To\" account.") } @@ -120,7 +120,7 @@ class TransactionViewModel @Inject constructor( title = title, description = description, toAccountId = toAccount?.id, - toAmount = toAmount ?: amount, //TODO: Handle properly transfers exchange rate + toAmount = toAmount ?: amount, // TODO: Handle properly transfers exchange rate dateTime = (date as? TrnDate.ActualDate)?.dateTime, dueDate = (date as? TrnDate.DueDate)?.dueDate?.atTime(12, 0), @@ -133,4 +133,4 @@ class TransactionViewModel @Inject constructor( } private fun isEditMode(): Boolean = stateVal() is TrnState.EditTransaction -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/transaction/TrnEvent.kt b/app/src/main/java/com/ivy/wallet/ui/transaction/TrnEvent.kt index 38a6182e52..c633ce9050 100644 --- a/app/src/main/java/com/ivy/wallet/ui/transaction/TrnEvent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/transaction/TrnEvent.kt @@ -60,9 +60,9 @@ sealed class TrnEvent { val exchangeRate: BigDecimal ) : TrnEvent() - //---------------------------- + // ---------------------------- object Save : TrnEvent() object LoadTitleSuggestions : TrnEvent() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/transaction/TrnState.kt b/app/src/main/java/com/ivy/wallet/ui/transaction/TrnState.kt index 314cb7a8af..61c1059232 100644 --- a/app/src/main/java/com/ivy/wallet/ui/transaction/TrnState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/transaction/TrnState.kt @@ -20,11 +20,11 @@ sealed class TrnState { val title: String?, val description: String?, - //Transfers + // Transfers val toAccount: Account?, val toAmount: BigDecimal?, val exchangeRate: TrnExchangeRate?, - //-------------------------- + // -------------------------- val titleSuggestions: List, @@ -42,4 +42,4 @@ sealed class TrnState { ) : TrnState() data class Invalid(val message: String) : TrnState() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/transaction/data/TrnDate.kt b/app/src/main/java/com/ivy/wallet/ui/transaction/data/TrnDate.kt index 91afcac578..0e9a64742d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/transaction/data/TrnDate.kt +++ b/app/src/main/java/com/ivy/wallet/ui/transaction/data/TrnDate.kt @@ -7,4 +7,4 @@ sealed class TrnDate { data class ActualDate(val dateTime: LocalDateTime) : TrnDate() data class DueDate(val dueDate: LocalDate) : TrnDate() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/transaction/data/TrnExchangeRate.kt b/app/src/main/java/com/ivy/wallet/ui/transaction/data/TrnExchangeRate.kt index e0ed97f02f..99f1b64943 100644 --- a/app/src/main/java/com/ivy/wallet/ui/transaction/data/TrnExchangeRate.kt +++ b/app/src/main/java/com/ivy/wallet/ui/transaction/data/TrnExchangeRate.kt @@ -6,4 +6,4 @@ data class TrnExchangeRate( val fromCurrency: String, val toCurrency: String, val rate: BigDecimal -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidget.kt b/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidget.kt index 903a08923e..884043dc1c 100644 --- a/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidget.kt +++ b/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidget.kt @@ -20,7 +20,7 @@ class AddTransactionWidget : AppWidgetProvider() { updateBroadcast(context) } - //--------------------------- ---------------------------------------------------- + // --------------------------- ---------------------------------------------------- override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, @@ -56,4 +56,4 @@ class AddTransactionWidget : AppWidgetProvider() { val widgetClick = AddTransactionWidgetClick() widgetClick.handleClick(context, intent) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidgetClick.kt b/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidgetClick.kt index 7f39e68790..6c5f5b3144 100644 --- a/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidgetClick.kt +++ b/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidgetClick.kt @@ -16,7 +16,7 @@ class AddTransactionWidgetClick { const val ACTION_ADD_TRANSFER = "com.ivy.wallet.ACTION_ADD_TRANSFER" } - //============================= ======================================================= + // ============================= ======================================================= fun handleClick(context: Context, intent: Intent) { when (intent.action) { ACTION_ADD_INCOME -> { @@ -53,8 +53,8 @@ class AddTransactionWidgetClick { } } - //============================= ======================================================= - //------------------------------ ------------------------------------------------------- + // ============================= ======================================================= + // ------------------------------ ------------------------------------------------------- class Setup( private val context: Context, private val rv: RemoteViews, @@ -80,5 +80,5 @@ class AddTransactionWidgetClick { PendingIntent.FLAG_IMMUTABLE ) } - } //----------------------------- ------------------------------------------------------- -} \ No newline at end of file + } // ----------------------------- ------------------------------------------------------- +} diff --git a/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidgetCompact.kt b/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidgetCompact.kt index 29d36fb239..b60e29fdb0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidgetCompact.kt +++ b/app/src/main/java/com/ivy/wallet/ui/widget/AddTransactionWidgetCompact.kt @@ -20,7 +20,7 @@ class AddTransactionWidgetCompact : AppWidgetProvider() { updateBroadcast(context) } - //--------------------------- ---------------------------------------------------- + // --------------------------- ---------------------------------------------------- override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, @@ -53,4 +53,4 @@ class AddTransactionWidgetCompact : AppWidgetProvider() { val widgetClick = AddTransactionWidgetClick() widgetClick.handleClick(context, intent) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidget.kt b/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidget.kt index 4e527900ee..4f514d8015 100644 --- a/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidget.kt +++ b/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidget.kt @@ -41,7 +41,6 @@ class WalletBalanceWidget : GlanceAppWidget() { WalletBalanceWidgetContent(appLocked, balance, currency, income, expense) } } - } @AndroidEntryPoint @@ -52,7 +51,6 @@ class WalletBalanceWidgetReceiver : GlanceAppWidgetReceiver() { } } - override val glanceAppWidget: GlanceAppWidget = WalletBalanceWidget() private val coroutineScope = MainScope() @@ -118,4 +116,4 @@ class WalletBalanceWidgetReceiver : GlanceAppWidgetReceiver() { } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidgetActions.kt b/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidgetActions.kt index 569e5f4cd3..8316ec18fa 100644 --- a/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidgetActions.kt +++ b/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidgetActions.kt @@ -73,4 +73,4 @@ class WalletBalanceWidgetClickAction : ActionCallback { } } -val walletBtnActParam = ActionParameters.Key("wallet_balance_button_action") \ No newline at end of file +val walletBtnActParam = ActionParameters.Key("wallet_balance_button_action") diff --git a/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidgetContent.kt b/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidgetContent.kt index 0b8c7fb107..64026c813c 100644 --- a/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidgetContent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/widget/WalletBalanceWidgetContent.kt @@ -206,4 +206,4 @@ fun ButtonsSection() { WidgetClickableItem(image = image, text = text) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/ui/widget/WidgetBase.kt b/app/src/main/java/com/ivy/wallet/ui/widget/WidgetBase.kt index db271d1157..d611997f4e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/widget/WidgetBase.kt +++ b/app/src/main/java/com/ivy/wallet/ui/widget/WidgetBase.kt @@ -34,5 +34,4 @@ class WidgetBase { return appWidgetManager.getAppWidgetIds(ivyWidgetComponent) } } - -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/ActivityResultExt.kt b/app/src/main/java/com/ivy/wallet/utils/ActivityResultExt.kt index 3395709bd2..f7d5bf96a5 100644 --- a/app/src/main/java/com/ivy/wallet/utils/ActivityResultExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/ActivityResultExt.kt @@ -72,4 +72,4 @@ private fun activityResultContract( onActivityResult(resultCode, data) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/AmountFormatting.kt b/app/src/main/java/com/ivy/wallet/utils/AmountFormatting.kt index f60d4c9549..fccab7c155 100644 --- a/app/src/main/java/com/ivy/wallet/utils/AmountFormatting.kt +++ b/app/src/main/java/com/ivy/wallet/utils/AmountFormatting.kt @@ -45,7 +45,7 @@ fun localGroupingSeparator(): String { return DecimalFormatSymbols.getInstance().groupingSeparator.toString() } -//Display Formatting +// Display Formatting fun Double.format(digits: Int) = "%.${digits}f".format(this) fun Double.format(currencyCode: String): String { @@ -84,8 +84,11 @@ fun Double.formatCrypto(): String { } } - return if (lastTrailingZeroIndex != null) - numberStringWithZeros.substring(0, lastTrailingZeroIndex) else numberStringWithZeros + return if (lastTrailingZeroIndex != null) { + numberStringWithZeros.substring(0, lastTrailingZeroIndex) + } else { + numberStringWithZeros + } } private fun Double.formatFIAT(): String = DecimalFormat("#,##0.00").format(this) @@ -114,7 +117,7 @@ private fun formatShortenedNumber( } fun hasSignificantDecimalPart(number: Double): Boolean { - //TODO: Review, might cause trouble when integrating crypto + // TODO: Review, might cause trouble when integrating crypto val intPart = number.toInt() return abs(number - intPart) >= 0.009 } @@ -132,8 +135,11 @@ fun decimalPartFormatted(currency: String, value: Double): String { val decimalPartFormatted = value.formatCrypto() .split(localDecimalSeparator()) .getOrNull(1) ?: "null" - if (decimalPartFormatted.isNotBlank()) - "${localDecimalSeparator()}$decimalPartFormatted" else "" + if (decimalPartFormatted.isNotBlank()) { + "${localDecimalSeparator()}$decimalPartFormatted" + } else { + "" + } } else { "${localDecimalSeparator()}${decimalPartFormattedFIAT(value)}" } @@ -158,7 +164,7 @@ fun formatInputAmount( currency: String, amount: String, newSymbol: String, - decimalCountMax:Int = 2, + decimalCountMax: Int = 2, ): String? { val newlyEnteredNumberString = amount + newSymbol @@ -169,16 +175,18 @@ fun formatInputAmount( val amountDouble = newlyEnteredNumberString.amountToDoubleOrNull() - val decimalCountOkay = IvyCurrency.fromCode(currency)?.isCrypto == true - || decimalCount <= decimalCountMax + val decimalCountOkay = IvyCurrency.fromCode(currency)?.isCrypto == true || + decimalCount <= decimalCountMax if (amountDouble != null && decimalCountOkay) { val intPart = truncate(amountDouble).toInt() val decimalPartFormatted = if (decimalPartString != null) { - "${localDecimalSeparator()}${decimalPartString}" - } else "" + "${localDecimalSeparator()}$decimalPartString" + } else { + "" + } return formatInt(intPart) + decimalPartFormatted } return null -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/ComposeExt.kt b/app/src/main/java/com/ivy/wallet/utils/ComposeExt.kt index 1bb587b376..09212d60df 100644 --- a/app/src/main/java/com/ivy/wallet/utils/ComposeExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/ComposeExt.kt @@ -72,13 +72,12 @@ fun navigationBarInsets(): Insets { return windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars()) } - @Composable fun keyboardNavigationWindowInsets(): Insets { val windowInsets = windowInsets() return windowInsets.getInsets( WindowInsetsCompat.Type.ime() - or WindowInsetsCompat.Type.systemBars() + or WindowInsetsCompat.Type.systemBars() ) } @@ -90,7 +89,6 @@ fun keyboardOnlyWindowInsets(): Insets { ) } - @Composable fun densityScope(densityScope: @Composable Density.() -> T): T { return with(LocalDensity.current) { densityScope() } @@ -116,11 +114,12 @@ fun LiveData.observeAsNeverEqualState(initial: R): State { return state } -fun Modifier.thenIf(condition: Boolean, thanModifier: @Composable Modifier.() -> Modifier) - : Modifier = composed { +fun Modifier.thenIf(condition: Boolean, thanModifier: @Composable Modifier.() -> Modifier): Modifier = composed { if (condition) { this.thanModifier() - } else this + } else { + this + } } @SuppressLint("ComposableNaming") @@ -136,7 +135,7 @@ fun onScreenStart( } fun Modifier.consumeClicks() = clickableNoIndication { - //consume click + // consume click } fun Modifier.clickableNoIndication( @@ -198,4 +197,4 @@ fun Float.toDensityDp() = densityScope { toDp() } fun openUrl(uriHandler: UriHandler, url: String) { uriHandler.openUri(url) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/DateExt.kt b/app/src/main/java/com/ivy/wallet/utils/DateExt.kt index 1dc9f776d8..2fdbd1fae7 100644 --- a/app/src/main/java/com/ivy/wallet/utils/DateExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/DateExt.kt @@ -1,6 +1,5 @@ package com.ivy.wallet.utils - import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext import com.ivy.frp.Total @@ -11,7 +10,6 @@ import java.time.format.DateTimeFormatter import java.util.* import java.util.concurrent.TimeUnit - fun timeNowLocal() = LocalDateTime.now() @Total @@ -121,7 +119,6 @@ fun LocalDate.formatDateOnly(): String = this.formatLocal("MMM. dd", ZoneOffset. fun LocalDate.formatDateOnlyWithYear(): String = this.formatLocal("dd MMM, yyyy", ZoneOffset.systemDefault()) - fun LocalDate.formatDateWeekDay(): String = this.formatLocal("EEE, dd MMM", ZoneOffset.systemDefault()) @@ -134,11 +131,14 @@ fun LocalDate.formatNicely( zone: ZoneId = ZoneOffset.systemDefault() ): String { val closeDay = closeDay() - return if (closeDay != null) - "$closeDay, ${this.formatLocal(patternNoWeekDay, zone)}" else this.formatLocal( - pattern, - zone - ) + return if (closeDay != null) { + "$closeDay, ${this.formatLocal(patternNoWeekDay, zone)}" + } else { + this.formatLocal( + pattern, + zone + ) + } } fun LocalDate.closeDay(): String? { @@ -168,7 +168,7 @@ fun LocalDateTime.formatLocal( DateTimeFormatter .ofPattern(pattern) .withLocale(Locale.getDefault()) - .withZone(zone) //this is if you want to display the Zone in the pattern + .withZone(zone) // this is if you want to display the Zone in the pattern ) } @@ -219,7 +219,6 @@ fun getTrueDate(date: LocalDate, time: LocalTime, convert: Boolean = true): Loca .convertLocalToUTC() } - fun LocalDate.formatLocal( pattern: String = "dd MMM yyyy", zone: ZoneId = ZoneOffset.systemDefault() @@ -228,7 +227,7 @@ fun LocalDate.formatLocal( DateTimeFormatter .ofPattern(pattern) .withLocale(Locale.getDefault()) - .withZone(zone) //this is if you want to display the Zone in the pattern + .withZone(zone) // this is if you want to display the Zone in the pattern ) } @@ -291,4 +290,4 @@ fun LocalDate.withDayOfMonthSafe(targetDayOfMonth: Int): LocalDate { return this.withDayOfMonth( if (targetDayOfMonth > maxDayOfMonth) maxDayOfMonth else targetDayOfMonth ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/FileUtil.kt b/app/src/main/java/com/ivy/wallet/utils/FileUtil.kt index 0243acd8d5..73ab02554a 100644 --- a/app/src/main/java/com/ivy/wallet/utils/FileUtil.kt +++ b/app/src/main/java/com/ivy/wallet/utils/FileUtil.kt @@ -17,7 +17,7 @@ fun saveFile( ) { val dirPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) ?: return - val newFile = File("${dirPath}/$fileName") + val newFile = File("$dirPath/$fileName") newFile.createNewFile() newFile.writeText(content) } @@ -95,4 +95,4 @@ private fun Context.getContentFileName(uri: Uri): String? = runCatching { cursor.moveToFirst() return@use cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME).let(cursor::getString) } -}.getOrNull() \ No newline at end of file +}.getOrNull() diff --git a/app/src/main/java/com/ivy/wallet/utils/FirebaseExt.kt b/app/src/main/java/com/ivy/wallet/utils/FirebaseExt.kt index 009e72604e..dcdecd8a6f 100644 --- a/app/src/main/java/com/ivy/wallet/utils/FirebaseExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/FirebaseExt.kt @@ -21,4 +21,4 @@ fun logToCrashlytics(msg: String) { FirebaseCrashlytics.getInstance().log(msg) } -class DeveloperException(msg: String) : Exception(msg) \ No newline at end of file +class DeveloperException(msg: String) : Exception(msg) diff --git a/app/src/main/java/com/ivy/wallet/utils/GesturesExt.kt b/app/src/main/java/com/ivy/wallet/utils/GesturesExt.kt index 48d5b720b7..c7ca01e4e0 100644 --- a/app/src/main/java/com/ivy/wallet/utils/GesturesExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/GesturesExt.kt @@ -32,12 +32,12 @@ fun Modifier.verticalSwipeListener( gestureConsumed = false }, onVerticalDrag = { _, dragAmount -> - //dragAmount: positive when scrolling down; negative when scrolling up + // dragAmount: positive when scrolling down; negative when scrolling up swipeOffset += dragAmount when { swipeOffset > sensitivity -> { - //offset > 0 when swipe down + // offset > 0 when swipe down if (!gestureConsumed) { onSwipeDown() gestureConsumed = true @@ -45,14 +45,13 @@ fun Modifier.verticalSwipeListener( } swipeOffset < -sensitivity -> { - //offset < 0 when swipe up + // offset < 0 when swipe up if (!gestureConsumed) { onSwipeUp() gestureConsumed = true } } } - } ) } @@ -80,12 +79,12 @@ fun Modifier.horizontalSwipeListener( gestureConsumed = false }, onHorizontalDrag = { _, dragAmount -> - //dragAmount: positive when scrolling down; negative when scrolling up + // dragAmount: positive when scrolling down; negative when scrolling up swipeOffset += dragAmount when { swipeOffset > sensitivity -> { - //offset > 0 when swipe right + // offset > 0 when swipe right if (!gestureConsumed) { onSwipeRight() gestureConsumed = true @@ -93,15 +92,14 @@ fun Modifier.horizontalSwipeListener( } swipeOffset < -sensitivity -> { - //offset < 0 when swipe left + // offset < 0 when swipe left if (!gestureConsumed) { onSwipeLeft() gestureConsumed = true } } } - } ) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/InputError.kt b/app/src/main/java/com/ivy/wallet/utils/InputError.kt index 65973da10f..35544904da 100644 --- a/app/src/main/java/com/ivy/wallet/utils/InputError.kt +++ b/app/src/main/java/com/ivy/wallet/utils/InputError.kt @@ -1,3 +1,3 @@ package com.ivy.wallet.utils -open class InputError(msg: String) : Exception(msg) \ No newline at end of file +open class InputError(msg: String) : Exception(msg) diff --git a/app/src/main/java/com/ivy/wallet/utils/IvyAnimation.kt b/app/src/main/java/com/ivy/wallet/utils/IvyAnimation.kt index 8ec6656136..75e19b996e 100644 --- a/app/src/main/java/com/ivy/wallet/utils/IvyAnimation.kt +++ b/app/src/main/java/com/ivy/wallet/utils/IvyAnimation.kt @@ -27,4 +27,4 @@ fun springBounceSlow() = spring( fun springBounceVerySlow() = spring( dampingRatio = 0.75f, stiffness = 20f, -) \ No newline at end of file +) diff --git a/app/src/main/java/com/ivy/wallet/utils/MVVMExt.kt b/app/src/main/java/com/ivy/wallet/utils/MVVMExt.kt index fcfe6f038f..7830e54e21 100644 --- a/app/src/main/java/com/ivy/wallet/utils/MVVMExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/MVVMExt.kt @@ -42,4 +42,4 @@ suspend fun computationThread(action: suspend () -> T): T = withContext(Disp suspend fun uiThread(action: suspend () -> T): T = withContext(Dispatchers.Main) { return@withContext action() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/OpResult.kt b/app/src/main/java/com/ivy/wallet/utils/OpResult.kt index bf2277815f..2a12d30631 100644 --- a/app/src/main/java/com/ivy/wallet/utils/OpResult.kt +++ b/app/src/main/java/com/ivy/wallet/utils/OpResult.kt @@ -13,4 +13,4 @@ sealed class OpResult { fun failure(e: Exception) = Failure(e) fun faliure(errMsg: String) = Failure(Exception(errMsg)) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/UIExt.kt b/app/src/main/java/com/ivy/wallet/utils/UIExt.kt index 0ec41dd627..283fddbe21 100644 --- a/app/src/main/java/com/ivy/wallet/utils/UIExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/UIExt.kt @@ -32,7 +32,6 @@ import androidx.core.view.WindowInsetsCompat import androidx.core.view.doOnLayout import kotlin.math.roundToInt - @Composable fun keyboardVisibleState(): State { val rootView = LocalView.current @@ -52,16 +51,16 @@ fun keyboardVisibleState(): State { fun View.addKeyboardListener(keyboardCallback: (visible: Boolean) -> Unit) { doOnLayout { - //get init state of keyboard + // get init state of keyboard var keyboardVisible = isKeyboardOpen(this) - //callback as soon as the layout is set with whether the keyboard is open or not + // callback as soon as the layout is set with whether the keyboard is open or not keyboardCallback(keyboardVisible) - //whenever the layout resizes/changes, callback with the state of the keyboard. + // whenever the layout resizes/changes, callback with the state of the keyboard. viewTreeObserver.addOnGlobalLayoutListener { val keyboardUpdateCheck = isKeyboardOpen(this) - //since the observer is hit quite often, only callback when there is a change. + // since the observer is hit quite often, only callback when there is a change. if (keyboardUpdateCheck != keyboardVisible) { keyboardCallback(keyboardUpdateCheck) keyboardVisible = keyboardUpdateCheck @@ -70,7 +69,6 @@ fun View.addKeyboardListener(keyboardCallback: (visible: Boolean) -> Unit) { } } - fun isKeyboardOpen(rootView: View): Boolean { return try { WindowInsetsCompat.toWindowInsetsCompat(rootView.rootWindowInsets, rootView) @@ -133,9 +131,8 @@ fun setSystemBarTheme(pActivity: Activity, pIsDark: Boolean) { if (pIsDark) lFlags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv() else lFlags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR } - fun lerp(start: Int, end: Int, @FloatRange(from = 0.0, to = 1.0) fraction: Float): Int { - return ((start + fraction * (end - start)).roundToInt()); + return ((start + fraction * (end - start)).roundToInt()) } fun lerp(start: Float, end: Float, @FloatRange(from = 0.0, to = 1.0) fraction: Float): Float { @@ -152,7 +149,6 @@ fun colorLerp(start: Color, end: Color, fraction: Float): Color { fun hideKeyboard(view: View) { try { - val imm: InputMethodManager = view.context.getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(view.windowToken, 0) @@ -239,4 +235,4 @@ fun View.setMargin( layoutParams = lp requestLayout() invalidate() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/UiText.kt b/app/src/main/java/com/ivy/wallet/utils/UiText.kt index b5b419ff39..04c4c2aa14 100644 --- a/app/src/main/java/com/ivy/wallet/utils/UiText.kt +++ b/app/src/main/java/com/ivy/wallet/utils/UiText.kt @@ -20,10 +20,10 @@ sealed class UiText { } } - fun asString(context:Context): String { + fun asString(context: Context): String { return when (this) { is DynamicString -> value is StringResource -> context.getString(resId, *args) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/UtilExt.kt b/app/src/main/java/com/ivy/wallet/utils/UtilExt.kt index be8395383a..1b94b8aa38 100644 --- a/app/src/main/java/com/ivy/wallet/utils/UtilExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/UtilExt.kt @@ -55,7 +55,7 @@ fun MutableList.swap(fromIndex: Int, toIndex: Int) { } fun numberBetween(min: Double, max: Double): Double { - return Random().nextDouble() * (max - min) + min; + return Random().nextDouble() * (max - min) + min } fun MutableList?.orEmpty(): MutableList { @@ -66,8 +66,8 @@ fun String.nullifyEmpty() = this.ifBlank { null } fun getDefaultFIATCurrency(): Currency = Currency.getInstance(Locale.getDefault()) ?: Currency.getInstance("USD") - ?: Currency.getInstance("usd") ?: Currency.getAvailableCurrencies().firstOrNull() - ?: Currency.getInstance("EUR") + ?: Currency.getInstance("usd") ?: Currency.getAvailableCurrencies().firstOrNull() + ?: Currency.getInstance("EUR") fun String.toUpperCaseLocal() = this.uppercase(Locale.getDefault()) @@ -76,9 +76,13 @@ fun String.toLowerCaseLocal() = this.lowercase(Locale.getDefault()) fun String.uppercaseLocal(): String = this.uppercase(Locale.getDefault()) fun String.capitalizeLocal(): String = this.replaceFirstChar { - if (it.isLowerCase()) it.titlecase( - Locale.getDefault() - ) else it.toString() + if (it.isLowerCase()) { + it.titlecase( + Locale.getDefault() + ) + } else { + it.toString() + } } fun String.capitalizeWords(): String { @@ -88,4 +92,4 @@ fun String.capitalizeWords(): String { fun hasLockScreen(context: Context): Boolean { val keyguardManager = context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager return keyguardManager.isDeviceSecure -} \ No newline at end of file +} diff --git a/app/src/main/java/com/ivy/wallet/utils/WalletUtil.kt b/app/src/main/java/com/ivy/wallet/utils/WalletUtil.kt index 09b1b77820..f52ca42612 100644 --- a/app/src/main/java/com/ivy/wallet/utils/WalletUtil.kt +++ b/app/src/main/java/com/ivy/wallet/utils/WalletUtil.kt @@ -16,4 +16,4 @@ fun balancePrefix( } else -> null } -} \ No newline at end of file +} diff --git a/app/src/test/java/com/ivy/wallet/PropertyTestExample.kt b/app/src/test/java/com/ivy/wallet/PropertyTestExample.kt index bc01355ccc..41f1ddeb95 100644 --- a/app/src/test/java/com/ivy/wallet/PropertyTestExample.kt +++ b/app/src/test/java/com/ivy/wallet/PropertyTestExample.kt @@ -20,4 +20,4 @@ class PropertyTestExample : StringSpec({ a.length + b.length == (a + b).length } } -}) \ No newline at end of file +}) diff --git a/app/src/test/java/com/ivy/wallet/ShortAmountTest.kt b/app/src/test/java/com/ivy/wallet/ShortAmountTest.kt index 30f28c235c..0f6585889f 100644 --- a/app/src/test/java/com/ivy/wallet/ShortAmountTest.kt +++ b/app/src/test/java/com/ivy/wallet/ShortAmountTest.kt @@ -62,4 +62,4 @@ class ShortAmountTest { val number = 10002341.00 assertEquals(false, hasSignificantDecimalPart(number)) } -} \ No newline at end of file +} diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index b35df821d9..8a64ba1703 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -13,15 +13,15 @@ repositories { } dependencies { - //https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google + // https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google implementation(libs.android.gradle.plugin) - //Must match kotlinVersion from Project.kt + // Must match kotlinVersion from Project.kt implementation(libs.kotlin.gradle.plugin) implementation(libs.hilt.gradle.plugin) - //URL: https://developers.google.com/android/guides/google-services-plugin + // URL: https://developers.google.com/android/guides/google-services-plugin implementation(libs.google.services) implementation(libs.firebase.crashlytics.gradle.plugin) diff --git a/buildSrc/src/main/java/com/ivy/wallet/buildsrc/Project.kt b/buildSrc/src/main/java/com/ivy/wallet/buildsrc/Project.kt index a11b4bf8b8..a3e2dd1b2b 100644 --- a/buildSrc/src/main/java/com/ivy/wallet/buildsrc/Project.kt +++ b/buildSrc/src/main/java/com/ivy/wallet/buildsrc/Project.kt @@ -1,15 +1,14 @@ package com.ivy.wallet.buildsrc - object Project { - //Version + // Version const val versionName = "4.4.4" const val versionCode = 144 - //Compile SDK & Build Tools + // Compile SDK & Build Tools const val compileSdkVersion = 34 - //App + // App const val applicationId = "com.ivy.wallet" const val minSdk = 28 const val targetSdk = 34 diff --git a/config/detekt/baseline.yml b/config/detekt/baseline.yml index 4450b9b6cd..700ad42174 100644 --- a/config/detekt/baseline.yml +++ b/config/detekt/baseline.yml @@ -9,96 +9,8 @@ ArgumentListWrapping:Accessorsblypoh2ruc9u3bx9djsfqsntg.kt$("ext") ArgumentListWrapping:Accessorsbtc8iwv8u9b0f38ikfmodj8ns.kt$("reporting") ArgumentListWrapping:Accessorseessl0al0otcsbyqqruvoncpd.kt$("ext") - ArgumentListWrapping:AccountModal.kt$( modal = AccountModalData( account = null, baseCurrency = "BGN", balance = 0.0 ), onCreateAccount = { }, onEditAccount = { _, _ -> }) - ArgumentListWrapping:AccountModal.kt$(R.string.edit_account) - ArgumentListWrapping:AccountModal.kt$(R.string.new_account) - ArgumentListWrapping:AccountsTab.kt$( R.string.total, "BGN", "25.54" ) - ArgumentListWrapping:AccountsViewModel.kt$AccountsViewModel$( R.string.total, baseCurrencyCode, totalBalanceWithExcluded.format( baseCurrencyCode ) ) - ArgumentListWrapping:AmountModal.kt$( size = 52.dp, onClick = { calculatorModalVisible = true }) - ArgumentListWrapping:BackupLogic.kt$BackupLogic$( LocalDateTime::class.java, object : JsonDeserializer<LocalDateTime?> { @Throws(JsonParseException::class) override fun deserialize( json: JsonElement, type: Type?, jsonDeserializationContext: JsonDeserializationContext? ): LocalDateTime? { val instant: Instant = Instant.ofEpochMilli(json.asJsonPrimitive.asLong) return LocalDateTime.ofInstant(instant, ZoneOffset.UTC) } }) - ArgumentListWrapping:BackupLogic.kt$BackupLogic$( LocalDateTime::class.java, object : JsonSerializer<LocalDateTime?> { @Throws(JsonParseException::class) override fun serialize( src: LocalDateTime?, typeOfSrc: Type?, context: JsonSerializationContext? ): JsonElement { return JsonPrimitive(src!!.toEpochMilli().toString()) } }) - ArgumentListWrapping:BalanceViewModel.kt$BalanceViewModel$(ivyContext.startDayOfMonth) - ArgumentListWrapping:BalanceViewModel.kt$BalanceViewModel$(period.toRange(ivyContext.startDayOfMonth)) - ArgumentListWrapping:BudgetModal.kt$(R.string.create_budget) - ArgumentListWrapping:BudgetModal.kt$(R.string.edit_budget) - ArgumentListWrapping:BufferBattery.kt$( R.string.left_to_spend) - ArgumentListWrapping:CSVScreen.kt$( modifier = Modifier.horizontalScroll(rememberScrollState()), row = CSVRow(status.sampleValues), header = false, even = true ) - ArgumentListWrapping:CSVViewModel.kt$CSVViewModel$( initialValue = null, sampleCSV, amount, type, date, account, accountCurrency, ) - ArgumentListWrapping:CSVViewModel.kt$CSVViewModel$( initialValue = null, sampleCSV, category, title, description, ) - ArgumentListWrapping:CSVViewModel.kt$CSVViewModel$( initialValue = null, sampleCSV, toAccount, toAccountCurrency, toAmount, ) - ArgumentListWrapping:ChooseStartDateOfMonthModal.kt$(modifier = Modifier .size(48.dp) .clip(CircleShape) .border(2.dp, if (selected) Ivy else UI.colors.medium, CircleShape) .thenIf(selected) { background(Ivy, CircleShape) } .clickable { onClick(number) }, contentAlignment = Alignment.Center ) - ArgumentListWrapping:CustomExchangeRateCard.kt$( icon = R.drawable.ic_refresh, modifier = Modifier .padding(end = 16.dp) .clickable { onRefresh() }) ArgumentListWrapping:DetektConfigurationAccessors.kt$( this, "detekt", dependencyNotation, dependencyConfiguration ) ArgumentListWrapping:DetektPluginsConfigurationAccessors.kt$( this, "detektPlugins", dependencyNotation, dependencyConfiguration ) - ArgumentListWrapping:Exchange.kt$( baseCurrency, toCurrency ) - ArgumentListWrapping:FilterOverlay.kt$( acc1, acc2 ) - ArgumentListWrapping:FilterOverlay.kt$( placeable.width, placeable.height ) - ArgumentListWrapping:GitHubAutoBackupManager.kt$GitHubAutoBackupManager$( 6, TimeUnit.HOURS ) - ArgumentListWrapping:HomeHeader.kt$(R.string.cashflow, (if (cashflow > 0) "+" else ""), cashflow.format(currency), currency) - ArgumentListWrapping:HomeHeader.kt$(R.string.hi) - ArgumentListWrapping:HomeHeader.kt$(R.string.hi_name, name) - ArgumentListWrapping:HomeHeader.kt$(currency) - ArgumentListWrapping:ItemStatisticScreen.kt$( baseCurrency, accounts, categories ) - ArgumentListWrapping:IvyBilling.kt$IvyBilling$("Acknowledge purchase result, code=${acknowledgeResult.responseCode}: ${acknowledgeResult.debugMessage}") - ArgumentListWrapping:IvyChecklistTextField.kt$( modifier = Modifier .align(Alignment.CenterStart) .background(UI.colors.red) .padding(horizontal = 24.dp), value = TextFieldValue(), hint = "Hint", onValueChanged = {}) - ArgumentListWrapping:IvyChecklistTextField.kt$( modifier = Modifier .background(UI.colors.red) .padding(horizontal = 24.dp), value = TextFieldValue("Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light."), hint = "Hint", onValueChanged = {}) - ArgumentListWrapping:IvyChecklistTextField.kt$("Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light.") - ArgumentListWrapping:IvyDescriptionTextField.kt$( modifier = Modifier .align(Alignment.CenterStart) .background(UI.colors.red) .padding(horizontal = 24.dp), value = TextFieldValue(), hint = "Hint", onValueChanged = {}) - ArgumentListWrapping:IvyDescriptionTextField.kt$( modifier = Modifier .background(UI.colors.red) .padding(horizontal = 24.dp), value = TextFieldValue("Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light."), hint = "Hint", onValueChanged = {}) - ArgumentListWrapping:IvyDescriptionTextField.kt$("Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light.") - ArgumentListWrapping:IvyOutlinedTextField.kt$( modifier = Modifier.padding(horizontal = 24.dp), value = TextFieldValue(), hint = "Hint", onValueChanged = {}) - ArgumentListWrapping:IvyRoomDatabase.kt$IvyRoomDatabase.Companion$( applicationContext, IvyRoomDatabase::class.java, DB_NAME ) - ArgumentListWrapping:Loan.kt$Loan$( R.string.lent_uppercase) - ArgumentListWrapping:LoanRecordModal.kt$( R.string.new_record) - ArgumentListWrapping:Migration106to107_Wishlist.kt$Migration106to107_Wishlist$("CREATE TABLE IF NOT EXISTS `wishlist_items` (`name` TEXT NOT NULL, `price` REAL NOT NULL, `accountId` TEXT NOT NULL, `categoryId` TEXT, `description` TEXT, `plannedDateTime` INTEGER, `orderNum` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - ArgumentListWrapping:Migration108to109_Users.kt$Migration108to109_Users$("CREATE TABLE IF NOT EXISTS `users` (`email` TEXT NOT NULL, `authProviderType` TEXT NOT NULL, `firstName` TEXT NOT NULL, `lastName` TEXT, `profilePicture` TEXT, `color` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - ArgumentListWrapping:Migration109to110_PlannedPayments.kt$Migration109to110_PlannedPayments$("CREATE TABLE IF NOT EXISTS `transaction_recurring_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - ArgumentListWrapping:Migration110to111_PlannedPaymentRule.kt$Migration110to111_PlannedPaymentRule$("CREATE TABLE IF NOT EXISTS `planned_payment_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - ArgumentListWrapping:Migration112to113_ExchangeRates.kt$Migration112to113_ExchangeRates$("CREATE TABLE IF NOT EXISTS `exchange_rates` (`baseCurrency` TEXT NOT NULL, `currency` TEXT NOT NULL, `rate` REAL NOT NULL, PRIMARY KEY(`baseCurrency`, `currency`))") - ArgumentListWrapping:Migration117to118_Budgets.kt$Migration117to118_Budgets$("CREATE TABLE IF NOT EXISTS `${tableName}` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryIdsSerialized` TEXT, `accountIdsSerialized` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `orderId` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - ArgumentListWrapping:Migration118to119_Loans.kt$Migration118to119_Loans$("CREATE TABLE IF NOT EXISTS `$LOANS_TABLE` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `type` TEXT NOT NULL, `color` INTEGER NOT NULL, `icon` TEXT, `orderNum` REAL NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - ArgumentListWrapping:Migration118to119_Loans.kt$Migration118to119_Loans$("CREATE TABLE IF NOT EXISTS `$LOAN_RECORDS_TABLE` (`loanId` TEXT NOT NULL, `amount` REAL NOT NULL, `note` TEXT, `dateTime` INTEGER NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - ArgumentListWrapping:OnboardingPrivacyTC.kt$("dragAmount=$dragAmount, offsetX=$offsetX, newOffsetX=$newOffsetX, maxOffset=$maxOffsetX") - ArgumentListWrapping:OnboardingToolbar.kt$( hasSkip = true, onBack = {} ) - ArgumentListWrapping:PieChart.kt$PieChartView$( 0f, 0f, convertDpToPixel(context, 2 * RADIUS_DP), convertDpToPixel(context, 2 * RADIUS_DP) ) - ArgumentListWrapping:PieChartStatisticBottomBar.kt$(id = R.string.add_expense) - ArgumentListWrapping:PieChartStatisticBottomBar.kt$(id = R.string.add_income) - ArgumentListWrapping:PieChartStatisticScreen.kt$(R.string.expenses) - ArgumentListWrapping:PlannedPaymentRuleDao.kt$PlannedPaymentRuleDao$("SELECT * FROM planned_payment_rules WHERE isDeleted = 0 AND oneTime = :oneTime ORDER BY amount DESC, startDate ASC") - ArgumentListWrapping:RootActivity.kt$RootActivity$( Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_STREAM, fileUri) type = "application/zip" }, null ) - ArgumentListWrapping:RootActivity.kt$RootActivity$( Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_STREAM, fileUri) type = "text/csv" }, null ) - ArgumentListWrapping:RootActivity.kt$RootActivity$( Intent.EXTRA_SUBJECT, "Ivy Wallet Support Request #" + caseNumber + "0" + BuildConfig.VERSION_CODE ) - ArgumentListWrapping:RootActivity.kt$RootActivity$( this, executor, biometricPromptCallback ) - ArgumentListWrapping:SettingsScreen.kt$( R.string.confirm_all_userd_data_deletion, user?.email ?: stringResource( R.string.all_of_your_data ) ) - ArgumentListWrapping:SettingsScreen.kt$( R.string.delete_all_user_cloud_data_warning, user?.email ?: stringResource( R.string.your_account ) ) - ArgumentListWrapping:SettingsScreen.kt$( R.string.delete_all_user_data_warning, user?.email ?: stringResource( R.string.your_account ) ) - ArgumentListWrapping:SettingsViewModel.kt$SettingsViewModel$("Settings - GOOGLE_SIGN_IN ERROR: generic exception when logging with GOOGLE") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND accountId = :accountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND type = :type ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId = :categoryId) ORDER BY dateTime DESC, dueDate ASC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId IS NULL) ORDER BY dateTime DESC, dueDate ASC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND accountId = :accountId ORDER BY dateTime DESC, dueDate ASC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate ORDER BY dueDate ASC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND toAccountId = :toAccountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - ArgumentListWrapping:TransactionDao.kt$TransactionDao$("UPDATE transactions SET isDeleted = 1, isSynced = 0 WHERE recurringRuleId = :recurringRuleId AND dateTime IS NULL") - ArgumentListWrapping:ViewPager.kt$("onDragStopped(): velocity = $velocity, finalVelocity = $finalVelocity, currentPageOffset = ${state.currentPageOffset}") - ChainWrapping:AmountFormatting.kt$|| - ChainWrapping:EditTransactionViewModel.kt$EditTransactionViewModel$&& - ChainWrapping:ItemStatisticViewModel.kt$ItemStatisticViewModel$&& - ChainWrapping:LoanRecordModal.kt$&& - ChainWrapping:LoanTransactionsCore.kt$LoanTransactionsCore$|| - ChainWrapping:Screens.kt$EditPlanned$&& ClassNaming:Ivy_lintPlugin.kt$Ivy_lintPlugin : Plugin ClassNaming:Migration105to106_TrnRecurringRules.kt$Migration105to106_TrnRecurringRules : Migration ClassNaming:Migration106to107_Wishlist.kt$Migration106to107_Wishlist : Migration @@ -117,373 +29,9 @@ ClassNaming:Migration119to120_LoanTransactions.kt$Migration119to120_LoanTransactions : Migration ClassNaming:Migration120to121_DropWishlistItem.kt$Migration120to121_DropWishlistItem : Migration ClassNaming:Migration122to123_ExchangeRates.kt$Migration122to123_ExchangeRates : Migration - CommentSpacing:AccValueFunctions.kt$AccountValueFunctions$//Account's transactions - CommentSpacing:AccValueFunctions.kt$AccountValueFunctions$//potential transfer to account? - CommentSpacing:AccValueFunctions.kt$AccountValueFunctions$//transfer to another account - CommentSpacing:AccValueFunctions.kt$AccountValueFunctions$//transfer to self - CommentSpacing:AccountByIdAct.kt$AccountByIdAct$//accountId - CommentSpacing:AccountsTab.kt$//scroll hack - CommentSpacing:AccountsViewModel.kt$AccountsViewModel$//this must be monthly - CommentSpacing:AddTransactionWidget.kt$AddTransactionWidget$//--------------------------- </BROADCASTS> ---------------------------------------------------- - CommentSpacing:AddTransactionWidgetClick.kt$AddTransactionWidgetClick$//============================= <HANDLE> ======================================================= - CommentSpacing:AddTransactionWidgetClick.kt$AddTransactionWidgetClick.Setup$//----------------------------- </SETUP> ------------------------------------------------------- - CommentSpacing:AddTransactionWidgetClick.kt$AddTransactionWidgetClick.Setup$//------------------------------ <SETUP> ------------------------------------------------------- - CommentSpacing:AddTransactionWidgetClick.kt$AddTransactionWidgetClick.Setup$//============================= <HANDLE> ======================================================= - CommentSpacing:AddTransactionWidgetCompact.kt$AddTransactionWidgetCompact$//--------------------------- </BROADCASTS> ---------------------------------------------------- - CommentSpacing:AmountFormatting.kt$//Display Formatting - CommentSpacing:AmountFormatting.kt$//TODO: Review, might cause trouble when integrating crypto - CommentSpacing:AppLockedScreen.kt$//To automatically launch the biometric screen on load of this composable - CommentSpacing:BalanceScreen.kt$//preview - CommentSpacing:BalanceViewModel.kt$BalanceViewModel$//+ positive if Income > Expenses else - negative - CommentSpacing:BudgetModal.kt$//add category - CommentSpacing:BudgetModal.kt$//remove category - CommentSpacing:BudgetScreen.kt$//preview - CommentSpacing:BudgetScreen.kt$//scroll hack - CommentSpacing:BudgetViewModel.kt$BudgetViewModel$//TODO: Re-work this by creating an FPAction for it - CommentSpacing:BudgetViewModel.kt$BudgetViewModel$//decrement spent amount if it's not global budget - CommentSpacing:BudgetViewModel.kt$BudgetViewModel$//ignore income - CommentSpacing:BudgetViewModel.kt$BudgetViewModel$//ignore transfers for simplicity - CommentSpacing:BudgetViewModel.kt$BudgetViewModel$//increment spent amount - CommentSpacing:CSVImporter.kt$CSVImporter$//+ 1 because we skip Header and +1 because they don't start from zero - CommentSpacing:CSVImporter.kt$CSVImporter$//As a fallback set all transactions 1 year before now - CommentSpacing:CSVImporter.kt$CSVImporter$//Cannot save transactions with zero amount - CommentSpacing:CSVImporter.kt$CSVImporter$//Cannot save transactions without any date - CommentSpacing:CSVImporter.kt$CSVImporter$//Example: Fortune City - CommentSpacing:CSVImporter.kt$CSVImporter$//Fortune City Date variations with 12-h (am/pm) - CommentSpacing:CSVImporter.kt$CSVImporter$//Fortune City Date variations with 24-h - CommentSpacing:CSVImporter.kt$CSVImporter$//Fortune City Date with "-" variations with 12-h (am/pm) - CommentSpacing:CSVImporter.kt$CSVImporter$//Fortune City Date with "-" variations with 24-h - CommentSpacing:CSVImporter.kt$CSVImporter$//More Fortune City Date formats - CommentSpacing:CSVImporter.kt$CSVImporter$//Return Expense for intentionally set Type mapping to null - CommentSpacing:CSVImporter.kt$CSVImporter$//create new account - CommentSpacing:CSVImporter.kt$CSVImporter$//create new category - CommentSpacing:CSVImporter.kt$CSVImporter.<no name provided>$//do nothing - CommentSpacing:CSVImporterV2.kt$CSVImporterV2$//+ 1 because we skip Header and +1 because they don't start from zero - CommentSpacing:CSVImporterV2.kt$CSVImporterV2$//Cannot save transactions with zero amount - CommentSpacing:CSVImporterV2.kt$CSVImporterV2$//create new account - CommentSpacing:CSVImporterV2.kt$CSVImporterV2$//create new category - CommentSpacing:CSVMapper.kt$CSVMapper$//14 - Don't map because it fcks up the sync with Insufficient Permission error - CommentSpacing:CSVMapper.kt$CSVMapper$//Don't map because it fcks up the sync with Insufficient Permission error - CommentSpacing:CSVMapper.kt$CSVMapper$//Monefy doesn't have transaction type, it uses amount +/- sign - CommentSpacing:CSVMapper.kt$CSVMapper$//Monefy doesn't have transaction type, it uses amount +/- sign, - CommentSpacing:CSVMapper.kt$CSVMapper$//Praseto - https://play.google.com/store/apps/details?id=com.realbyteapps.moneymanagerfree&hl=en&gl=US - CommentSpacing:CSVMapper.kt$CSVMapper$//Transfer Currency - 8 - CommentSpacing:CSVMapper.kt$CSVMapper$//Wallet By BudgetBakers - https://play.google.com/store/apps/details?id=com.droid4you.application.wallet&hl=en&gl=US - CommentSpacing:CSVMapper.kt$CSVMapper$//category group = 7 - CommentSpacing:CSVMapper.kt$CSVMapper$//converted amount = 5 - CommentSpacing:CSVMapper.kt$CSVMapper$//currency = 6 - CommentSpacing:CSVMapper.kt$CSVMapper$//exchangeRate = 6 - CommentSpacing:CSVMapper.kt$CSVMapper$//set time = 2 - CommentSpacing:CSVMapper.kt$CSVMapper$//skip "Receive Currency" - CommentSpacing:CSVViewModel.kt$CSVViewModel.<no name provided>$//do nothing - CommentSpacing:CalculatorModal.kt$//handle only number expression formatting - CommentSpacing:Card.kt$//Transaction history card - CommentSpacing:CategoriesScreen.kt$//Divider - CommentSpacing:CategoriesScreen.kt$//scroll hack - CommentSpacing:CategoriesViewModel.kt$CategoriesViewModel$//this must be monthly - CommentSpacing:CategoryCharts.kt$//add category - CommentSpacing:CategoryCharts.kt$//remove category - CommentSpacing:CategoryCharts.kt$//scroll hack - CommentSpacing:ChartPeriod.kt$ChartPeriod$//end recursion - CommentSpacing:ChartPeriod.kt$ChartPeriod$//not sure if this line is needed - CommentSpacing:ChartPeriod.kt$ChartPeriod$//recurse - CommentSpacing:ChartsViewModel.kt$ChartsViewModel$//Re-load categories - CommentSpacing:ChartsViewModel.kt$ChartsViewModel$//TODO: Implement - CommentSpacing:ChooseIconModal.kt$//RECURSE - CommentSpacing:ChooseIconModal.kt$//end recursion - CommentSpacing:ChooseIconModal.kt$//icon - CommentSpacing:ChooseIconModal.kt$//recurse - CommentSpacing:ChooseIconModal.kt$//recurse and reset acc - CommentSpacing:ChooseIconModal.kt$//recurse by filling acc - CommentSpacing:ChoosePeriodModal.kt$MonthYear$//current year - CommentSpacing:ChoosePeriodModal.kt$MonthYear$//not current year - CommentSpacing:CircleButtons.kt$//enlarge click area - CommentSpacing:ColoredItemCard.kt$//Ivy Wallet's account + loans cards - CommentSpacing:Colors.kt$//-------------------------------------------------------------------------------------------------- - CommentSpacing:Colors.kt$//Dark - CommentSpacing:Colors.kt$//Light - CommentSpacing:Colors.kt$//Primary - CommentSpacing:Compose.kt$//Cannot use Modifier#then() because it stacks the previous modifiers multiple times - CommentSpacing:Compose.kt$//consume click - CommentSpacing:ComposeExt.kt$//consume click - CommentSpacing:Constants.kt$Constants$//Time in seconds - CommentSpacing:CurrencyPicker.kt$//Hint - CommentSpacing:CustomerJourney.kt$//enlarge click area - CommentSpacing:DateExt.kt$//this is if you want to display the Zone in the pattern - CommentSpacing:DeleteAllData.kt$//Delete Button + Delete Confirmation Modal + Delete type - CommentSpacing:DeleteItem.kt$//Delete Button + Delete Confirmation Modal - CommentSpacing:DonateScreen.kt$//scroll hack - CommentSpacing:DueTrnsInfoAct.kt$DueTrnsInfoAct$//We have due transactions in different currencies - CommentSpacing:EditBottomSheet.kt$//+1 because Spacer width 24.dp - CommentSpacing:EditBottomSheet.kt$//Accounts label - CommentSpacing:EditBottomSheet.kt$//breaks UI tests - CommentSpacing:EditBottomSheet.kt$//system stuff + keyboard padding - CommentSpacing:EditContentCard.kt$//Ivy Wallet's "Edit" screen description card, created on, etc - CommentSpacing:EditPlannedScreen.kt$//Create mode - CommentSpacing:EditPlannedScreen.kt$//DO NOT display title suggestions for "Planned Payments" - CommentSpacing:EditPlannedScreen.kt$//Flow Convert (Amount, Account, Category) - CommentSpacing:EditPlannedScreen.kt$//Flow Empty - CommentSpacing:EditPlannedScreen.kt$//Modals - CommentSpacing:EditPlannedScreen.kt$//scroll hack - CommentSpacing:EditTransactionScreen.kt$//Edit mode - CommentSpacing:EditTransactionScreen.kt$//Modals - CommentSpacing:EditTransactionScreen.kt$//Set exchangeRate to null to reset - CommentSpacing:EditTransactionScreen.kt$//Setting the transaction type to TransactionType.TRANSFER for transactions associated - CommentSpacing:EditTransactionScreen.kt$//This is to scroll the column to the customExchangeCard composable when it is shown - CommentSpacing:EditTransactionScreen.kt$//create new mode - CommentSpacing:EditTransactionScreen.kt$//due date stuff - CommentSpacing:EditTransactionScreen.kt$//has changes - CommentSpacing:EditTransactionScreen.kt$//no changes, pay - CommentSpacing:EditTransactionScreen.kt$//normal transaction - CommentSpacing:EditTransactionScreen.kt$//scroll hack - CommentSpacing:EditTransactionViewModel.kt$EditTransactionViewModel$//Reset Counter - CommentSpacing:EditTransactionViewModel.kt$EditTransactionViewModel$//Select the newly created category - CommentSpacing:EditTransactionViewModel.kt$EditTransactionViewModel$//This is used to when the transaction is associated with a loan/loan record, - CommentSpacing:EditTransactionViewModel.kt$EditTransactionViewModel$//Used for optimising in updating all loan/loanRecords - CommentSpacing:EditTransactionViewModel.kt$EditTransactionViewModel$//update last selected account - CommentSpacing:EditTransactionViewModel.kt$EditTransactionViewModel$//use last selected account - CommentSpacing:Exchange.kt$//Convert: toBaseCurrency -> toToCurrency - CommentSpacing:Exchange.kt$//exchange from base currency to other currency - CommentSpacing:Exchange.kt$//exchange from other currency to base currency - CommentSpacing:Exchange.kt$//exchange from other currency to other currency - CommentSpacing:Exchange.kt$//exchange rate which <= 0 is invalid! - CommentSpacing:Exchange.kt$//fromCurrency = baseCurrency - CommentSpacing:Exchange.kt$//that's the only possible case left because we already checked "fromCurrency == toCurrency" - CommentSpacing:Exchange.kt$//toAmount = fromAmount * rateFromTo - CommentSpacing:Exchange.kt$//toCurrency = baseCurrency - CommentSpacing:Exchange.kt$//we need the rate from baseCurrency to toCurrency - CommentSpacing:Exchange.kt$//we'll get the rate to - CommentSpacing:ExchangeRatesLogic.kt$ExchangeRatesLogic$//convert to base currency - CommentSpacing:ExchangeRatesLogic.kt$ExchangeRatesLogic$//helper - CommentSpacing:ExchangeRatesLogic.kt$ExchangeRatesLogic$//no conversion - CommentSpacing:ExchangeRatesLogic.kt$ExchangeRatesLogic$//no conversion needed, return amount - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Account - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Account Color - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Account Icon - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Account orderNum - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Amount - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Category - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Category Color - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Category Icon - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Currency - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Date - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Description - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Due Date - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//ID - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Receive Amount - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Receive Currency - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Title - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//To Account - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//To Account Color - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//To Account Icon - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//To Account orderNum - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Transfer Amount - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Transfer Currency - CommentSpacing:ExportCSVLogic.kt$ExportCSVLogic$//Type - CommentSpacing:FAB.kt$//Floating action button - CommentSpacing:FilterOverlay.kt$//Remove keyword - CommentSpacing:FilterOverlay.kt$//add account - CommentSpacing:FilterOverlay.kt$//add category - CommentSpacing:FilterOverlay.kt$//add trn type - CommentSpacing:FilterOverlay.kt$//expand click area - CommentSpacing:FilterOverlay.kt$//filter duplicated - CommentSpacing:FilterOverlay.kt$//remove account - CommentSpacing:FilterOverlay.kt$//remove category - CommentSpacing:FilterOverlay.kt$//remove trn type - CommentSpacing:FromToTimeRange.kt$//make sure that it's in the future - CommentSpacing:FromToTimeRange.kt$//make sure that it's in the past - CommentSpacing:FromToTimeRange.kt$FromToTimeRange$//+1 day to ensure that everything is included - CommentSpacing:FromToTimeRange.kt$FromToTimeRange$//-1 day to ensure that everything is included - CommentSpacing:GesturesExt.kt$//dragAmount: positive when scrolling down; negative when scrolling up - CommentSpacing:GesturesExt.kt$//offset < 0 when swipe left - CommentSpacing:GesturesExt.kt$//offset < 0 when swipe up - CommentSpacing:GesturesExt.kt$//offset > 0 when swipe down - CommentSpacing:GesturesExt.kt$//offset > 0 when swipe right - CommentSpacing:HomeHeader.kt$//Balance mini row - CommentSpacing:HomeHeader.kt$//settings menu button spacer - CommentSpacing:HomeMoreMenu.kt$//Background - CommentSpacing:HomeMoreMenu.kt$//Second Row - CommentSpacing:HomeMoreMenu.kt$//do nothing - CommentSpacing:HomeTab.kt$<no name provided>$//To prevent unnecessary updates - CommentSpacing:HomeViewModel.kt$HomeViewModel$//----------------------------------------------------------------- - CommentSpacing:HomeViewModel.kt$HomeViewModel$//----------------------------------------------------------------------------------- - CommentSpacing:HomeViewModel.kt$HomeViewModel$//Showing Balance fow 5s - CommentSpacing:HomeViewModel.kt$HomeViewModel$//TODO: Refactor - CommentSpacing:HomeViewModel.kt$HomeViewModel$//This method is used to restore the theme when user imports locally backed up data - CommentSpacing:HomeViewModel.kt$HomeViewModel$//doesn't have transactions lead him to adjust balance - CommentSpacing:HomeViewModel.kt$HomeViewModel$//has transactions show him "Balance" screen - CommentSpacing:HomeViewModel.kt$HomeViewModel$//transactions.forEach { - CommentSpacing:HomeViewModel.kt$HomeViewModel$//update exchange rates from POV of the new base currency - CommentSpacing:HomeViewModel.kt$HomeViewModel$//} - CommentSpacing:ImportFrom.kt$//last spacer - CommentSpacing:ImportFrom.kt$//onboarding toolbar include paddingBottom 16.dp - CommentSpacing:ImportInstructions.kt$//last spacer - CommentSpacing:ImportInstructions.kt$//onboarding toolbar include paddingBottom 16.dp - CommentSpacing:ImportResultUI.kt$//TODO: Implement "See failed imports" - CommentSpacing:ImportViewModel.kt$ImportViewModel$//do nothing, disable back - CommentSpacing:IncomeExpensesRow.kt$//Divider - CommentSpacing:InputField.kt$//Log focus.triggerRecomposition so recomposition can be triggered - CommentSpacing:InputField.kt$//Make sure we don't break the default new line action - CommentSpacing:InputField.kt$//TODO: Fix bug where cursor color isn't updated after theme switch - CommentSpacing:InputField.kt$//do nothing - CommentSpacing:InputField.kt$//do nothing, no need to set input type - CommentSpacing:InputField.kt$//ensure that the EditText is initialized - CommentSpacing:InputField.kt$//hint text alignment cannot be set to EditText - CommentSpacing:InputField.kt$//hint text size cannot be set to EditText - CommentSpacing:InputField.kt$//restore original selection - CommentSpacing:ItemDetailsScreen.kt$//Ivy Wallet's ItemStatisticsScreen() - CommentSpacing:ItemIcon.kt$//2.dp is too small padding - CommentSpacing:ItemIcon.kt$//32.dp - 24.dp = 8.dp / 4 = 2.dp - CommentSpacing:ItemIcon.kt$//48.dp - 32.dp = 16.dp / 4 = 4.dp - CommentSpacing:ItemIcon.kt$//64.dp - 48.dp = 16.dp / 4 = 4.dp - CommentSpacing:ItemIcon.kt$//do nothing for the old format of icons - CommentSpacing:ItemStatisticScreen.kt$//Rounded corners top effect - CommentSpacing:ItemStatisticScreen.kt$//Unspecified - CommentSpacing:ItemStatisticScreen.kt$//itemColor is displayed below the clip - CommentSpacing:ItemStatisticScreen.kt$//preview - CommentSpacing:ItemStatisticViewModel.kt$ItemStatisticViewModel$//History - CommentSpacing:ItemStatisticViewModel.kt$ItemStatisticViewModel$//Overdue - CommentSpacing:ItemStatisticViewModel.kt$ItemStatisticViewModel$//TODO: Rework Overdue to FP - CommentSpacing:ItemStatisticViewModel.kt$ItemStatisticViewModel$//TODO: Rework Upcoming to FP - CommentSpacing:ItemStatisticViewModel.kt$ItemStatisticViewModel$//Upcoming - CommentSpacing:ItemStatisticViewModel.kt$ItemStatisticViewModel$//unspecifiedCategory==false is explicitly checked to accommodate for a temp AccountTransfers Category during Reports Screen - CommentSpacing:IvyAndroidApp.kt$//I don't want strings.xml to handle something different than String at this point - CommentSpacing:IvyColorPicker.kt$//Dark - CommentSpacing:IvyColorPicker.kt$//Light - CommentSpacing:IvyColorPicker.kt$//Primary - CommentSpacing:IvyColorPicker.kt$//java.lang.IllegalStateException: pending composition has not been applied - CommentSpacing:IvyColorPicker.kt$//listState.scrollToItem breaks the tests - CommentSpacing:IvyColors.kt$//-------------------------------------------------------------------------------------------------- - CommentSpacing:IvyColors.kt$//Dark - CommentSpacing:IvyColors.kt$//Light - CommentSpacing:IvyColors.kt$//Primary - CommentSpacing:IvyLineChart.kt$//24.dp - CommentSpacing:IvyLineChart.kt$//Lerp: (start + x * (end - start)) = value - CommentSpacing:IvyLineChart.kt$//TODO: Fix - CommentSpacing:IvyLineChart.kt$//marginFromX //TODO: FIX - CommentSpacing:IvyLineChart.kt$//recurse - CommentSpacing:IvyLineChart.kt$//x * (end - start) = value - start - CommentSpacing:IvyLineChart.kt$//x = (value - start) / (end - start) - CommentSpacing:IvyModal.kt$//Bottom padding - CommentSpacing:IvySwitch.kt$//Circle - CommentSpacing:IvyViewPager.kt$//(-1f to 1f) - CommentSpacing:IvyViewPager.kt$//Pages to pre-load - CommentSpacing:IvyViewPager.kt$//current page - CommentSpacing:IvyViewPager.kt$//next page - CommentSpacing:IvyViewPager.kt$//next page (offset = 1f) - CommentSpacing:IvyViewPager.kt$//previous page - CommentSpacing:IvyViewPager.kt$//previous page (offset = -1f) - CommentSpacing:IvyWalletCtx.kt$IvyWalletCtx$//---------------------- Optimization ---------------------------- - CommentSpacing:IvyWalletCtx.kt$IvyWalletCtx$//------------------------------------------ State --------------------------------------------- - CommentSpacing:IvyWalletCtx.kt$IvyWalletCtx$//------------------------------------------- Navigation ---------------------------------------- - CommentSpacing:IvyWalletCtx.kt$IvyWalletCtx$//Activity help ------------------------------------------------------------------------------- - CommentSpacing:IvyWalletCtx.kt$IvyWalletCtx$//Testing -------------------------------------------------------------------------------------- - CommentSpacing:IvyWalletCtx.kt$IvyWalletCtx$//if (BuildConfig.DEBUG) Constants.PREMIUM_INITIAL_VALUE_DEBUG else false - CommentSpacing:IvyWalletCtx.kt$IvyWalletCtx$//this is default value - CommentSpacing:Keyboard.kt$//callback as soon as the layout is set with whether the keyboard is open or not - CommentSpacing:Keyboard.kt$//get init state of keyboard - CommentSpacing:Keyboard.kt$//since the observer is hit quite often, only callback when there is a change. - CommentSpacing:Keyboard.kt$//whenever the layout resizes/changes, callback with the state of the keyboard. - CommentSpacing:LoanDetailsScreen.kt$//Rounded corners top effect - CommentSpacing:LoanDetailsScreen.kt$//Spacer(modifier = Modifier.width(8.dp)) - CommentSpacing:LoanDetailsScreen.kt$//Support UI for Old Versions where - CommentSpacing:LoanDetailsScreen.kt$//do Nothing - CommentSpacing:LoanDetailsScreen.kt$//do nothing - CommentSpacing:LoanDetailsScreen.kt$//itemColor is displayed below the clip - CommentSpacing:LoanDetailsScreen.kt$//scroll hack - CommentSpacing:LoanDetailsViewModel.kt$LoanDetailsViewModel$//Using a local variable to calculate the amount and then reassigning to - CommentSpacing:LoanDetailsViewModel.kt$LoanDetailsViewModel$//close screen - CommentSpacing:LoanModal.kt$//+1 because Spacer width 24.dp - CommentSpacing:LoanModal.kt$//breaks UI tests - CommentSpacing:LoanModal.kt$//enabled = nameTextFieldValue.text.isNotNullOrBlank() && amount > 0 && ((createLoanTrans && selectedAcc != null) || !createLoanTrans) - CommentSpacing:LoanRecord.kt$LoanRecord$//This is used store the converted amount for currencies which are different from the loan account currency - CommentSpacing:LoanRecordEntity.kt$LoanRecordEntity$//This is used store the converted amount for currencies which are different from the loan account currency - CommentSpacing:LoanRecordModal.kt$//+1 because Spacer width 24.dp - CommentSpacing:LoanRecordModal.kt$//Unchecks the Recalculate Option if Recalculate Checkbox is not visible - CommentSpacing:LoanRecordModal.kt$//breaks UI tests - CommentSpacing:LoanRecordModal.kt$//enabled = amount > 0 && ((createLoanRecordTrans && selectedAcc != null) || !createLoanRecordTrans) - CommentSpacing:LoanRecordModal.kt$//fix broken tests - CommentSpacing:LoansScreen.kt$//scroll hack - CommentSpacing:MainBottomBar.kt$//+ & x button - CommentSpacing:MainBottomBar.kt$//24.dp - CommentSpacing:MainBottomBar.kt$//80.dp - CommentSpacing:MainBottomBar.kt$//Add EXPENSE ------------------------------------------------------------------------------ - CommentSpacing:MainBottomBar.kt$//Add TRANSFER ---------------------------------------------------------------------------- - CommentSpacing:MainBottomBar.kt$//Click area - CommentSpacing:MainBottomBar.kt$//consume click - CommentSpacing:MainBottomBar.kt$//consume click, do nothing - CommentSpacing:MainBottomBar.kt$//prevent double open of the screen - CommentSpacing:MainBottomBar.kt$//swipe up - CommentSpacing:MainBottomBar.kt$//swipe up left - CommentSpacing:MainBottomBar.kt$//swipe up right - CommentSpacing:MainViewModel.kt$MainViewModel$//Exiting (the backstack will close the app) - CommentSpacing:MainViewModel.kt$MainViewModel$//Sync exchange rates - CommentSpacing:MoreInfo.kt$//More Info Button + Info Modal - CommentSpacing:MoreMenu.kt$//Ivy Wallet's Home More menu - CommentSpacing:OnboardingPrivacyTC.kt$//24+8=32.dp - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 0 - Splash ---------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 0 ------------------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 1 - Login ----------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 1 ------------------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 2 - Choose path ----------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 2 ------------------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 3 - Currency -------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 3 ------------------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 4 - Accounts -------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 4 ------------------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 5 - Categories ------------------------------------ - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//------------------------------------- Step 5 ------------------------------------------------- - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//-------------------------------------- Routes ------------------------------------------------ - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//Route logged user - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//Route new user - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//do nothing, consume back - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//fresh user - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//let the user exit the app - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//the rest below is not UI stuff so I don't care - CommentSpacing:OnboardingRouter.kt$OnboardingRouter$//user with Ivy account - CommentSpacing:OnboardingToolbar.kt$//enlarge click area - CommentSpacing:OnboardingViewModel.kt$OnboardingViewModel$//--------------------- Accounts --------------------------------------------------------------- - CommentSpacing:OnboardingViewModel.kt$OnboardingViewModel$//---------------------------- Categories ------------------------------------------------------ - CommentSpacing:OnboardingViewModel.kt$OnboardingViewModel$//Only OnboardingRouter stuff - CommentSpacing:OnboardingViewModel.kt$OnboardingViewModel$//Step 1 --------------------------------------------------------------------------------------- - CommentSpacing:OnboardingViewModel.kt$OnboardingViewModel$//Step 2 --------------------------------------------------------------------------------------- - CommentSpacing:OnboardingViewModel.kt$OnboardingViewModel$//reset login with Google operation state - CommentSpacing:PaywallLogic.kt$PaywallLogic$//+1 for the account being added - CommentSpacing:PaywallLogic.kt$PaywallLogic$//+1 for the category being added - CommentSpacing:PaywallLogic.kt$PaywallLogic$//+1 for the item being added - CommentSpacing:PaywallScreen.kt$//16.dp padding from IvyToolbar already => 24.dp - 16.dp = 8.dp - CommentSpacing:PaywallScreen.kt$//last item spacer - CommentSpacing:PeriodSelector.kt$//preview - CommentSpacing:PieChart.kt$PieChartView$//draw - CommentSpacing:PieChartAct.kt$PieChartAct$//for unspecified - CommentSpacing:PieChartStatisticScreen.kt$//Balance mini row - CommentSpacing:PieChartStatisticScreen.kt$//Unspecified category = Gray - CommentSpacing:PieChartStatisticScreen.kt$//no selectedCategory - CommentSpacing:PieChartStatisticScreen.kt$//preview - CommentSpacing:PieChartStatisticScreen.kt$//scroll hack - CommentSpacing:PieChartStatisticScreen.kt$//selectedCategory && we're selected - CommentSpacing:PlannedPaymentsGenerator.kt$PlannedPaymentsGenerator$//delete all not happened transactions - CommentSpacing:PlannedPaymentsGenerator.kt$PlannedPaymentsGenerator$//generate transaction - CommentSpacing:PlannedPaymentsGenerator.kt$PlannedPaymentsGenerator$//skip first N happened transactions - CommentSpacing:PlannedPaymentsLazyColumn.kt$//last spacer - scroll hack CommentSpacing:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$//0.03% CommentSpacing:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$//0.22% CommentSpacing:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$//delete paid oneTime planned payment rules - CommentSpacing:PlannedPaymentsViewModel.kt$PlannedPaymentsViewModel$//One Time - CommentSpacing:PlannedPaymentsViewModel.kt$PlannedPaymentsViewModel$//Recurring - CommentSpacing:PlansSheet.kt$//Lifetime plan - CommentSpacing:PlansSheet.kt$//Subscription - CommentSpacing:PreloadDataLogic.kt$PreloadDataLogic$//Preload data only if the user has less than 2 accounts - CommentSpacing:Project.kt$Project$//App - CommentSpacing:Project.kt$Project$//Compile SDK & Build Tools - CommentSpacing:Project.kt$Project$//Version - CommentSpacing:RecurringRuleModal.kt$//One-time & Multiple Times - CommentSpacing:ReorderModal.kt$//It's first in it's priority - CommentSpacing:ReorderModal.kt$//It's last in it's priority - CommentSpacing:ReorderModal.kt$//Ivy Wallet's reorder modal - CommentSpacing:ReportScreen.kt$//Export CSV - CommentSpacing:ReportScreen.kt$//Filter - CommentSpacing:ReportScreen.kt$//consume clicks CommentSpacing:ReportViewModel.kt$ReportViewModel$//!NOTE: Amount must be converted to baseCurrency amount CommentSpacing:ReportViewModel.kt$ReportViewModel$//Filter by Accounts CommentSpacing:ReportViewModel.kt$ReportViewModel$//Filter by Amount @@ -497,100 +45,6 @@ CommentSpacing:ReportViewModel.kt$ReportViewModel$//Transfers Out CommentSpacing:ReportViewModel.kt$ReportViewModel$//Upcoming CommentSpacing:ReportViewModel.kt$ReportViewModel$//clear filter - CommentSpacing:RootActivity.kt$RootActivity$//Helpers for Compose UI - CommentSpacing:RootActivity.kt$RootActivity$//display nothing - CommentSpacing:RootActivity.kt$RootActivity$//month-1 because LocalDate start from 1 and date picker starts from 0 - CommentSpacing:RootViewModel.kt$RootViewModel$//App Lock & UserInactivity -------------------------------------------------------------------- - CommentSpacing:RootViewModel.kt$RootViewModel$//by default we assume that the app is locked - CommentSpacing:RootViewModel.kt$RootViewModel$//initial app locked state - CommentSpacing:Screens.kt$EditTransaction$//extras - CommentSpacing:SearchScreen.kt$//add keyboard height margin at bototm so the list can scroll to bottom - CommentSpacing:SearchScreen.kt$//enlarge click area - CommentSpacing:SearchScreen.kt$//scroll to top when transactions are changed - CommentSpacing:SelectedCategory.kt$SelectedCategory$//null - Unspecified - CommentSpacing:SettingsScreen.kt$//Spacer(Modifier.weight(1f)) - CommentSpacing:SettingsScreen.kt$//last item spacer - CommentSpacing:SettingsScreen.kt$//not synced - CommentSpacing:SettingsScreen.kt$//onboarding toolbar include paddingBottom 16.dp - CommentSpacing:SettingsScreen.kt$//synced - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//----------------------------- App Settings ----------------------------------------------- - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//----------------------------- Others ----------------------------------------------- - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//-------------------------------- Bank Integrations temp ---------------------------------- - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//-------------------------------- Customer Journey ---------------------------------------- - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//-------------------------------------- UX ------------------------------------------------ - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//----------------------------------------------------------------------------- - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//------------------------------------------------------------------------------------------ - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//Analytics - CommentSpacing:SharedPrefs.kt$SharedPrefs.Companion$//Sync - CommentSpacing:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$//all titles used for the specific account - CommentSpacing:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$//all titles used for the specific category - CommentSpacing:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$//exclude already suggested suggestions so they're ordered by priority at the end - CommentSpacing:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$//last resort, suggest by account - CommentSpacing:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$//ordered by N times used - CommentSpacing:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$//suggest by category - CommentSpacing:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$//suggest by title - CommentSpacing:Switch.kt$//Circle - CommentSpacing:TimePeriod.kt$TimePeriod$//e.g. Correct: 14.10-13.11 (Incorrect: 14.10-14.11) - CommentSpacing:TimePeriod.kt$TimePeriod$//not this year - CommentSpacing:TimePeriod.kt$TimePeriod$//startDayOfMonth != 1 just shift N day the month forward so to should +1 month - CommentSpacing:TimePeriod.kt$TimePeriod$//this year - CommentSpacing:TimePeriod.kt$TimePeriod.Companion$//Examples month = Nov. startDate = 7; Period = from Nov (7) till Dec (6) - CommentSpacing:TimePeriod.kt$TimePeriod.Companion$//new monthly period has already started then observe it => current month - CommentSpacing:TimePeriod.kt$TimePeriod.Companion$//new monthly period hasn't yet started then observe the ongoing one => previous month - CommentSpacing:Title.kt$//scroll to top for better UX - CommentSpacing:Toolbar.kt$//show nothing - CommentSpacing:Transaction.kt$Transaction$//TODO: Remove default values & introduce Transaction#dummy() method - CommentSpacing:Transaction.kt$Transaction$//This refers to the loan id that is linked with a transaction - CommentSpacing:Transaction.kt$Transaction$//This refers to the loan record id that is linked with a transaction - CommentSpacing:TransactionCard.kt$//Normal Expense - CommentSpacing:TransactionCard.kt$//Overdue Expense - CommentSpacing:TransactionCard.kt$//Pay/Get button - CommentSpacing:TransactionCard.kt$//TODO: Optimize this - CommentSpacing:TransactionCard.kt$//Transfer - CommentSpacing:TransactionCard.kt$//Upcoming Expense - CommentSpacing:TransactionDao.kt$TransactionDao$//Smart Title Suggestions - CommentSpacing:TransactionEntity.kt$TransactionEntity$//Set isSynced && isDeleted to false so they aren't accounted in the equals check - CommentSpacing:TransactionEntity.kt$TransactionEntity$//This refers to the loan id that is linked with a transaction - CommentSpacing:TransactionEntity.kt$TransactionEntity$//This refers to the loan record id that is linked with a transaction - CommentSpacing:TransactionReminderLogic.kt$TransactionReminderLogic$//8 PM has passed, we'll start reminding from tomorrow - CommentSpacing:TransactionReminderLogic.kt$TransactionReminderLogic$//8 PM is in the future, we can start reminder today - CommentSpacing:TransactionReminderWorker.kt$TransactionReminderWorker$//Double check is needed because the user can switch off notifications in settings after it has been scheduled to show notifications for the next day - CommentSpacing:TransactionReminderWorker.kt$TransactionReminderWorker$//Have less than 1 two transactions today, remind them - CommentSpacing:TransactionViewModel.kt$TransactionViewModel$//TODO: Handle properly transfers exchange rate - CommentSpacing:TransactionViewModel.kt$TransactionViewModel$//TODO: Handle transfers properly - CommentSpacing:TransactionViewModel.kt$TransactionViewModel$//TRANSFER w/o toAccount - CommentSpacing:Transactions.kt$//guard - CommentSpacing:Transactions.kt$//last spacer - scroll hack - CommentSpacing:TrnByIdAct.kt$TrnByIdAct$//transactionId - CommentSpacing:TrnDateDividers.kt$//this case shouldn't happen - CommentSpacing:TrnEvent.kt$TrnEvent$//---------------------------- - CommentSpacing:TrnState.kt$TrnState.NewTransaction$//-------------------------- - CommentSpacing:TrnState.kt$TrnState.NewTransaction$//Transfers - CommentSpacing:UIExt.kt$//callback as soon as the layout is set with whether the keyboard is open or not - CommentSpacing:UIExt.kt$//get init state of keyboard - CommentSpacing:UIExt.kt$//since the observer is hit quite often, only callback when there is a change. - CommentSpacing:UIExt.kt$//whenever the layout resizes/changes, callback with the state of the keyboard. - CommentSpacing:ViewPager.kt$//0f to 1f - CommentSpacing:ViewPager.kt$//page appears - CommentSpacing:ViewPager.kt$//page disappears - CommentSpacing:ViewPager.kt$//pageOffset <0 when moving forward - CommentSpacing:WalletAccountLogic.kt$WalletAccountLogic$//TODO: Remove this once Bank Integration trn sync is properly implemented - CommentSpacing:WalletAccountLogic.kt$WalletAccountLogic$//add expense - CommentSpacing:WalletAccountLogic.kt$WalletAccountLogic$//add income - CommentSpacing:WalletAccountLogic.kt$WalletAccountLogic$//transfer out - CommentSpacing:WalletAccountLogic.kt$WalletAccountLogic$//transfers in - CommentSpacing:WalletCategoryLogic.kt$WalletCategoryLogic$//TODO: Transfer zero operation - CommentSpacing:WalletCharts.kt$//recurse - CommentSpacing:WalletCharts.kt$//scroll hack - CommentSpacing:WalletValueFunctions.kt$WalletValueFunctions$//Do not remove copy() - CommentSpacing:WrapContentRow.kt$//Reset x - CommentSpacing:WrapContentRow.kt$//item is overflowing -> move it to a new row - CommentSpacing:build.gradle.kts$//------------------------------------------------------- - CommentSpacing:build.gradle.kts$//Exclude this files so Jetpack Compose UI tests can build - CommentSpacing:build.gradle.kts$//Must match kotlinVersion from Project.kt - CommentSpacing:build.gradle.kts$//Required by Kotest - CommentSpacing:build.gradle.kts$//URL: https://developers.google.com/android/guides/google-services-plugin - CommentSpacing:build.gradle.kts$//https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google ComplexCondition:EditTransactionViewModel.kt$EditTransactionViewModel$customExchangeRateState.value.showCard && toAccCurrencyCode == customExchangeRateState.value.toCurrencyCode && fromAccCurrencyCode == customExchangeRateState.value.fromCurrencyCode && !resetRate ComplexCondition:Transactions.kt$(upcoming == null || upcoming.trns.isEmpty()) && (overdue == null || overdue.trns.isEmpty()) && history.isEmpty() ComposableNaming:Compose.kt$onEvent @@ -741,481 +195,29 @@ EmptyCatchBlock:CSVImporter.kt$CSVImporter${ } EmptyCatchBlock:ComposeExt.kt${ } EmptyCatchBlock:IntervalPickerRow.kt${ } - EmptyClassBlock:AccountsUpdatedEvent.kt$AccountsUpdatedEvent${ } EmptyFunctionBlock:AccountCharts.kt${ } EmptyFunctionBlock:PaywallViewModel.kt$PaywallViewModel${ } EmptyFunctionBlock:RootViewModel.kt$RootViewModel.<no name provided>${ } EmptyTryBlock:SettingsViewModel.kt$SettingsViewModel${ } ExplicitItLambdaParameter:TimeValue.kt${ index, it -> Value( x = index.toDouble(), y = it.value ) } ExplicitItLambdaParameter:TimeValue.kt${ index, it -> Value( x = index.toDouble(), y = it.value.toDouble() ) } - FinalNewline:AccValueFunctions.kt$com.ivy.wallet.domain.pure.transaction.AccValueFunctions.kt - FinalNewline:Account.kt$com.ivy.wallet.domain.data.core.Account.kt - FinalNewline:AccountBalance.kt$com.ivy.wallet.ui.onboarding.model.AccountBalance.kt - FinalNewline:AccountByIdAct.kt$com.ivy.wallet.domain.action.account.AccountByIdAct.kt - FinalNewline:AccountCharts.kt$com.ivy.wallet.ui.charts.charts.AccountCharts.kt - FinalNewline:AccountCreator.kt$com.ivy.wallet.domain.deprecated.logic.AccountCreator.kt - FinalNewline:AccountDao.kt$com.ivy.wallet.io.persistence.dao.AccountDao.kt - FinalNewline:AccountData.kt$com.ivy.wallet.ui.accounts.AccountData.kt - FinalNewline:AccountDataAct.kt$com.ivy.wallet.domain.action.viewmodel.account.AccountDataAct.kt - FinalNewline:AccountEntity.kt$com.ivy.wallet.io.persistence.data.AccountEntity.kt - FinalNewline:AccountFunctions.kt$com.ivy.wallet.domain.pure.account.AccountFunctions.kt - FinalNewline:AccountModal.kt$com.ivy.wallet.ui.theme.modal.edit.AccountModal.kt - FinalNewline:AccountState.kt$com.ivy.wallet.ui.accounts.AccountState.kt - FinalNewline:AccountsAct.kt$com.ivy.wallet.domain.action.account.AccountsAct.kt - FinalNewline:AccountsEvent.kt$com.ivy.wallet.ui.accounts.AccountsEvent.kt - FinalNewline:AccountsUpdatedEvent.kt$com.ivy.wallet.domain.event.AccountsUpdatedEvent.kt - FinalNewline:AccountsViewModel.kt$com.ivy.wallet.ui.accounts.AccountsViewModel.kt - FinalNewline:ActivityResultExt.kt$com.ivy.wallet.utils.ActivityResultExt.kt - FinalNewline:AddKeywordModal.kt$com.ivy.wallet.ui.theme.modal.AddKeywordModal.kt - FinalNewline:AddPrimaryAttributeButton.kt$com.ivy.wallet.ui.theme.components.AddPrimaryAttributeButton.kt - FinalNewline:AddRateModal.kt$com.ivy.wallet.ui.exchangerates.modal.AddRateModal.kt - FinalNewline:AddTransactionWidget.kt$com.ivy.wallet.ui.widget.AddTransactionWidget.kt - FinalNewline:AddTransactionWidgetClick.kt$com.ivy.wallet.ui.widget.AddTransactionWidgetClick.kt - FinalNewline:AddTransactionWidgetCompact.kt$com.ivy.wallet.ui.widget.AddTransactionWidgetCompact.kt - FinalNewline:AllTrnsAct.kt$com.ivy.wallet.domain.action.transaction.AllTrnsAct.kt - FinalNewline:AmountCurrency.kt$com.ivy.wallet.ui.theme.wallet.AmountCurrency.kt - FinalNewline:AmountFormatting.kt$com.ivy.wallet.utils.AmountFormatting.kt - FinalNewline:AnalyticsEvent.kt$com.ivy.wallet.domain.data.analytics.AnalyticsEvent.kt - FinalNewline:Android.kt$com.ivy.design.utils.Android.kt - FinalNewline:Animation.kt$com.ivy.design.utils.Animation.kt - FinalNewline:AppBaseData.kt$com.ivy.wallet.ui.data.AppBaseData.kt - FinalNewline:AppModuleDI.kt$com.ivy.wallet.AppModuleDI.kt - FinalNewline:AuthProviderType.kt$com.ivy.wallet.domain.data.AuthProviderType.kt - FinalNewline:BackBottomBar.kt$com.ivy.wallet.ui.theme.components.BackBottomBar.kt - FinalNewline:Background.kt$com.ivy.design.l1_buildingBlocks.data.Background.kt - FinalNewline:BackupLogic.kt$com.ivy.wallet.domain.deprecated.logic.zip.BackupLogic.kt - FinalNewline:BalanceChartAct.kt$com.ivy.wallet.domain.action.charts.BalanceChartAct.kt - FinalNewline:BalanceRow.kt$com.ivy.wallet.ui.theme.components.BalanceRow.kt - FinalNewline:BalanceViewModel.kt$com.ivy.wallet.ui.balance.BalanceViewModel.kt - FinalNewline:BaseCurrencyAct.kt$com.ivy.wallet.domain.action.settings.BaseCurrencyAct.kt - FinalNewline:Budget.kt$com.ivy.wallet.domain.data.core.Budget.kt - FinalNewline:BudgetBattery.kt$com.ivy.wallet.ui.theme.components.BudgetBattery.kt - FinalNewline:BudgetCreator.kt$com.ivy.wallet.domain.deprecated.logic.BudgetCreator.kt - FinalNewline:BudgetDao.kt$com.ivy.wallet.io.persistence.dao.BudgetDao.kt - FinalNewline:BudgetEntity.kt$com.ivy.wallet.io.persistence.data.BudgetEntity.kt - FinalNewline:BudgetModal.kt$com.ivy.wallet.ui.theme.modal.BudgetModal.kt - FinalNewline:BudgetViewModel.kt$com.ivy.wallet.ui.budget.BudgetViewModel.kt - FinalNewline:BudgetsAct.kt$com.ivy.wallet.domain.action.budget.BudgetsAct.kt - FinalNewline:BufferBattery.kt$com.ivy.wallet.ui.theme.components.BufferBattery.kt - FinalNewline:BufferInfo.kt$com.ivy.wallet.ui.data.BufferInfo.kt - FinalNewline:BufferModal.kt$com.ivy.wallet.ui.theme.modal.BufferModal.kt - FinalNewline:ButtonWithIcon.kt$com.ivy.design.l2_components.ButtonWithIcon.kt - FinalNewline:CSVEvent.kt$com.ivy.wallet.ui.csv.CSVEvent.kt - FinalNewline:CSVImporter.kt$com.ivy.wallet.domain.deprecated.logic.csv.CSVImporter.kt - FinalNewline:CSVImporterV2.kt$com.ivy.wallet.ui.csv.domain.CSVImporterV2.kt - FinalNewline:CSVMapper.kt$com.ivy.wallet.domain.deprecated.logic.csv.CSVMapper.kt - FinalNewline:CSVNormalizer.kt$com.ivy.wallet.domain.deprecated.logic.csv.CSVNormalizer.kt - FinalNewline:CSVRow.kt$com.ivy.wallet.domain.deprecated.logic.csv.model.CSVRow.kt - FinalNewline:CSVState.kt$com.ivy.wallet.ui.csv.CSVState.kt - FinalNewline:CSVViewModel.kt$com.ivy.wallet.ui.csv.CSVViewModel.kt - FinalNewline:CalcAccBalanceAct.kt$com.ivy.wallet.domain.action.account.CalcAccBalanceAct.kt - FinalNewline:CalcAccIncomeExpenseAct.kt$com.ivy.wallet.domain.action.account.CalcAccIncomeExpenseAct.kt - FinalNewline:CalcBufferDiffAct.kt$com.ivy.wallet.domain.action.settings.CalcBufferDiffAct.kt - FinalNewline:CalcIncomeExpenseAct.kt$com.ivy.wallet.domain.action.wallet.CalcIncomeExpenseAct.kt - FinalNewline:CalcTrnsIncomeExpenseAct.kt$com.ivy.wallet.domain.action.transaction.CalcTrnsIncomeExpenseAct.kt - FinalNewline:CalculatorModal.kt$com.ivy.wallet.ui.theme.modal.edit.CalculatorModal.kt - FinalNewline:Card.kt$com.ivy.design.l3_ivyComponents.Card.kt - FinalNewline:CatValueFunctions.kt$com.ivy.wallet.domain.pure.transaction.CatValueFunctions.kt - FinalNewline:CategoriesAct.kt$com.ivy.wallet.domain.action.category.CategoriesAct.kt - FinalNewline:CategoriesScreen.kt$com.ivy.wallet.ui.category.CategoriesScreen.kt - FinalNewline:Category.kt$com.ivy.wallet.domain.data.core.Category.kt - FinalNewline:Category.kt$com.ivy.wallet.ui.edit.core.Category.kt - FinalNewline:CategoryAmount.kt$com.ivy.wallet.ui.statistic.level1.CategoryAmount.kt - FinalNewline:CategoryByIdAct.kt$com.ivy.wallet.domain.action.category.CategoryByIdAct.kt - FinalNewline:CategoryCreator.kt$com.ivy.wallet.domain.deprecated.logic.CategoryCreator.kt - FinalNewline:CategoryDao.kt$com.ivy.wallet.io.persistence.dao.CategoryDao.kt - FinalNewline:CategoryData.kt$com.ivy.wallet.ui.category.CategoryData.kt - FinalNewline:CategoryEntity.kt$com.ivy.wallet.io.persistence.data.CategoryEntity.kt - FinalNewline:CategoryIncomeWithAccountFiltersAct.kt$com.ivy.wallet.domain.action.category.CategoryIncomeWithAccountFiltersAct.kt - FinalNewline:CategoryModal.kt$com.ivy.wallet.ui.theme.modal.edit.CategoryModal.kt - FinalNewline:CategoryTrnsBetweenAct.kt$com.ivy.wallet.domain.action.category.CategoryTrnsBetweenAct.kt - FinalNewline:CategoryValues.kt$com.ivy.wallet.ui.charts.CategoryValues.kt - FinalNewline:ChangeTransactionTypeModal.kt$com.ivy.wallet.ui.theme.components.ChangeTransactionTypeModal.kt - FinalNewline:ChartPeriod.kt$com.ivy.wallet.domain.pure.charts.ChartPeriod.kt - FinalNewline:ChartType.kt$com.ivy.wallet.ui.charts.ChartType.kt - FinalNewline:ChartsCore.kt$com.ivy.wallet.domain.pure.charts.ChartsCore.kt - FinalNewline:Checkbox.kt$com.ivy.design.l2_components.Checkbox.kt - FinalNewline:ChooseCategoryModal.kt$com.ivy.wallet.ui.theme.modal.edit.ChooseCategoryModal.kt - FinalNewline:ChoosePeriodModal.kt$com.ivy.wallet.ui.theme.modal.ChoosePeriodModal.kt - FinalNewline:ChooseStartDateOfMonthModal.kt$com.ivy.wallet.ui.theme.modal.ChooseStartDateOfMonthModal.kt - FinalNewline:CircleButtons.kt$com.ivy.wallet.ui.theme.components.CircleButtons.kt - FinalNewline:ClosedTimeRange.kt$com.ivy.wallet.domain.pure.data.ClosedTimeRange.kt - FinalNewline:ColoredItemCard.kt$com.ivy.design.l4_patterns.ColoredItemCard.kt - FinalNewline:Colors.kt$com.ivy.design.l0_system.Colors.kt - FinalNewline:ColumnRoot.kt$com.ivy.design.l1_buildingBlocks.ColumnRoot.kt - FinalNewline:Compose.kt$com.ivy.design.utils.Compose.kt - FinalNewline:ComposeExt.kt$com.ivy.wallet.utils.ComposeExt.kt - FinalNewline:Constants.kt$com.ivy.wallet.Constants.kt - FinalNewline:CreateAccountData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateAccountData.kt - FinalNewline:CreateBudgetData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateBudgetData.kt - FinalNewline:CreateCategoryData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateCategoryData.kt - FinalNewline:CreateLoanData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateLoanData.kt - FinalNewline:CreateLoanRecordData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateLoanRecordData.kt - FinalNewline:CurrencyModal.kt$com.ivy.wallet.ui.theme.modal.CurrencyModal.kt - FinalNewline:CurrencyPicker.kt$com.ivy.wallet.ui.theme.components.CurrencyPicker.kt - FinalNewline:CustomExchangeRateCard.kt$com.ivy.wallet.ui.theme.components.CustomExchangeRateCard.kt - FinalNewline:CustomExchangeRateState.kt$com.ivy.wallet.domain.data.CustomExchangeRateState.kt - FinalNewline:CustomerJourney.kt$com.ivy.wallet.ui.home.CustomerJourney.kt - FinalNewline:CustomerJourneyCardData.kt$com.ivy.wallet.domain.deprecated.logic.model.CustomerJourneyCardData.kt - FinalNewline:DateExt.kt$com.ivy.wallet.utils.DateExt.kt - FinalNewline:DefaultImportSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.DefaultImportSteps.kt - FinalNewline:DeleteAllData.kt$com.ivy.design.l4_patterns.delete.DeleteAllData.kt - FinalNewline:DeleteButton.kt$com.ivy.wallet.ui.theme.components.DeleteButton.kt - FinalNewline:DeleteItem.kt$com.ivy.design.l4_patterns.delete.DeleteItem.kt - FinalNewline:DeleteModal.kt$com.ivy.wallet.ui.theme.modal.DeleteModal.kt - FinalNewline:Description.kt$com.ivy.wallet.ui.edit.core.Description.kt - FinalNewline:DescriptionModal.kt$com.ivy.wallet.ui.theme.modal.edit.DescriptionModal.kt - FinalNewline:DisplayBudget.kt$com.ivy.wallet.ui.budget.model.DisplayBudget.kt - FinalNewline:DisplayLoan.kt$com.ivy.wallet.ui.loan.data.DisplayLoan.kt - FinalNewline:Dividers.kt$com.ivy.design.l1_buildingBlocks.Dividers.kt - FinalNewline:DonateEvent.kt$com.ivy.wallet.ui.donate.DonateEvent.kt - FinalNewline:DonateModal.kt$com.ivy.wallet.ui.donate.DonateModal.kt - FinalNewline:DonateOption.kt$com.ivy.wallet.ui.donate.data.DonateOption.kt - FinalNewline:DonateScreen.kt$com.ivy.wallet.ui.donate.DonateScreen.kt - FinalNewline:DonateState.kt$com.ivy.wallet.ui.donate.DonateState.kt - FinalNewline:DonateViewModel.kt$com.ivy.wallet.ui.donate.DonateViewModel.kt - FinalNewline:DueDate.kt$com.ivy.wallet.ui.edit.core.DueDate.kt - FinalNewline:DueSection.kt$com.ivy.wallet.ui.data.DueSection.kt - FinalNewline:DueTrnsAct.kt$com.ivy.wallet.domain.action.transaction.DueTrnsAct.kt - FinalNewline:DueTrnsInfoAct.kt$com.ivy.wallet.domain.action.viewmodel.home.DueTrnsInfoAct.kt - FinalNewline:EditBottomSheet.kt$com.ivy.wallet.ui.edit.core.EditBottomSheet.kt - FinalNewline:EditContentCard.kt$com.ivy.design.l4_patterns.EditContentCard.kt - FinalNewline:EditLoanRecordData.kt$com.ivy.wallet.domain.deprecated.logic.model.EditLoanRecordData.kt - FinalNewline:EditPlannedScreen.kt$com.ivy.wallet.ui.planned.edit.EditPlannedScreen.kt - FinalNewline:EditPlannedViewModel.kt$com.ivy.wallet.ui.planned.edit.EditPlannedViewModel.kt - FinalNewline:EditTransactionScreen.kt$com.ivy.wallet.ui.edit.EditTransactionScreen.kt - FinalNewline:EditTransactionViewModel.kt$com.ivy.wallet.ui.edit.EditTransactionViewModel.kt - FinalNewline:EmailState.kt$com.ivy.wallet.domain.data.EmailState.kt - FinalNewline:EncryptedSharedPrefs.kt$com.ivy.wallet.data.EncryptedSharedPrefs.kt - FinalNewline:ExampleInstrumentedTest.kt$com.ivy.design.ExampleInstrumentedTest.kt - FinalNewline:Exchange.kt$com.ivy.wallet.domain.pure.exchange.Exchange.kt - FinalNewline:ExchangeRate.kt$com.ivy.wallet.domain.data.core.ExchangeRate.kt - FinalNewline:ExchangeRateDao.kt$com.ivy.wallet.io.persistence.dao.ExchangeRateDao.kt - FinalNewline:ExchangeRateEntity.kt$com.ivy.wallet.io.persistence.data.ExchangeRateEntity.kt - FinalNewline:ExchangeRatesLogic.kt$com.ivy.wallet.domain.deprecated.logic.currency.ExchangeRatesLogic.kt - FinalNewline:ExchangeRatesScreen.kt$com.ivy.wallet.ui.exchangerates.ExchangeRatesScreen.kt - FinalNewline:ExchangeRatesViewModel.kt$com.ivy.wallet.ui.exchangerates.ExchangeRatesViewModel.kt - FinalNewline:ExchangeTrns.kt$com.ivy.wallet.domain.pure.exchange.ExchangeTrns.kt - FinalNewline:ExportCSVLogic.kt$com.ivy.wallet.domain.deprecated.logic.csv.ExportCSVLogic.kt - FinalNewline:FAB.kt$com.ivy.design.l3_ivyComponents.button.FAB.kt - FinalNewline:FileUtil.kt$com.ivy.wallet.utils.FileUtil.kt - FinalNewline:FilterOverlay.kt$com.ivy.wallet.ui.reports.FilterOverlay.kt - FinalNewline:FinancistoSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.FinancistoSteps.kt - FinalNewline:FirebaseExt.kt$com.ivy.wallet.utils.FirebaseExt.kt - FinalNewline:FoldTransactions.kt$com.ivy.wallet.domain.pure.transaction.FoldTransactions.kt - FinalNewline:FortuneCitySteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.FortuneCitySteps.kt - FinalNewline:FromToTimeRange.kt$com.ivy.wallet.ui.onboarding.model.FromToTimeRange.kt - FinalNewline:GesturesExt.kt$com.ivy.wallet.utils.GesturesExt.kt - FinalNewline:GitHubBackup.kt$com.ivy.wallet.backup.github.GitHubBackup.kt - FinalNewline:GitHubBackupCard.kt$com.ivy.wallet.backup.github.ui.GitHubBackupCard.kt - FinalNewline:GitHubBackupScreen.kt$com.ivy.wallet.backup.github.ui.GitHubBackupScreen.kt - FinalNewline:GitHubBackupStatus.kt$com.ivy.wallet.backup.github.ui.GitHubBackupStatus.kt - FinalNewline:GitHubBackupViewModel.kt$com.ivy.wallet.backup.github.ui.GitHubBackupViewModel.kt - FinalNewline:GitHubBackupViewState.kt$com.ivy.wallet.backup.github.ui.GitHubBackupViewState.kt - FinalNewline:GitHubClient.kt$com.ivy.wallet.backup.github.GitHubClient.kt - FinalNewline:GitHubCredentials.kt$com.ivy.wallet.backup.github.GitHubCredentials.kt - FinalNewline:GitHubPATMigration.kt$com.ivy.wallet.migrations.impl.GitHubPATMigration.kt - FinalNewline:GitHubWorkerMigration.kt$com.ivy.wallet.migrations.impl.GitHubWorkerMigration.kt - FinalNewline:GradientCut.kt$com.ivy.wallet.ui.theme.components.GradientCut.kt - FinalNewline:HasTrnsAct.kt$com.ivy.wallet.domain.action.viewmodel.home.HasTrnsAct.kt - FinalNewline:HistoryDateDivider.kt$com.ivy.wallet.ui.component.transaction.HistoryDateDivider.kt - FinalNewline:HistoryTrnsAct.kt$com.ivy.wallet.domain.action.transaction.HistoryTrnsAct.kt - FinalNewline:HistoryWithDateDivsAct.kt$com.ivy.wallet.domain.action.transaction.HistoryWithDateDivsAct.kt - FinalNewline:HomeEvent.kt$com.ivy.wallet.ui.home.HomeEvent.kt - FinalNewline:HomeHeader.kt$com.ivy.wallet.ui.home.HomeHeader.kt - FinalNewline:HomeMoreMenu.kt$com.ivy.wallet.ui.home.HomeMoreMenu.kt - FinalNewline:HomeState.kt$com.ivy.wallet.ui.home.HomeState.kt - FinalNewline:HomeTab.kt$com.ivy.wallet.ui.home.HomeTab.kt - FinalNewline:HomeViewModel.kt$com.ivy.wallet.ui.home.HomeViewModel.kt - FinalNewline:IconButton.kt$com.ivy.design.l2_components.IconButton.kt - FinalNewline:ImportFrom.kt$com.ivy.wallet.ui.csvimport.flow.ImportFrom.kt - FinalNewline:ImportProcessing.kt$com.ivy.wallet.ui.csvimport.flow.ImportProcessing.kt - FinalNewline:ImportResult.kt$com.ivy.wallet.domain.deprecated.logic.csv.model.ImportResult.kt - FinalNewline:ImportResultUI.kt$com.ivy.wallet.ui.csvimport.flow.ImportResultUI.kt - FinalNewline:ImportStep.kt$com.ivy.wallet.ui.csvimport.ImportStep.kt - FinalNewline:ImportType.kt$com.ivy.wallet.domain.deprecated.logic.csv.model.ImportType.kt - FinalNewline:ImportViewModel.kt$com.ivy.wallet.ui.csvimport.ImportViewModel.kt - FinalNewline:IncomeExpensePair.kt$com.ivy.wallet.domain.pure.data.IncomeExpensePair.kt - FinalNewline:InputError.kt$com.ivy.wallet.utils.InputError.kt - FinalNewline:InputField.kt$com.ivy.design.l2_components.InputField.kt - FinalNewline:Insets.kt$com.ivy.design.utils.Insets.kt - FinalNewline:IntervalPickerRow.kt$com.ivy.wallet.ui.theme.components.IntervalPickerRow.kt - FinalNewline:IntervalType.kt$com.ivy.wallet.domain.data.IntervalType.kt - FinalNewline:ItemDetailsScreen.kt$com.ivy.design.l5_concept.ItemDetailsScreen.kt - FinalNewline:ItemIcon.kt$com.ivy.wallet.ui.theme.components.ItemIcon.kt - FinalNewline:ItemStatisticScreen.kt$com.ivy.wallet.ui.statistic.level2.ItemStatisticScreen.kt - FinalNewline:ItemStatisticViewModel.kt$com.ivy.wallet.ui.statistic.level2.ItemStatisticViewModel.kt - FinalNewline:IvyAndroidApp.kt$com.ivy.wallet.IvyAndroidApp.kt - FinalNewline:IvyAnimation.kt$com.ivy.wallet.utils.IvyAnimation.kt - FinalNewline:IvyBasicTextField.kt$com.ivy.wallet.ui.theme.components.IvyBasicTextField.kt - FinalNewline:IvyBilling.kt$com.ivy.wallet.android.billing.IvyBilling.kt - FinalNewline:IvyBorderButton.kt$com.ivy.wallet.ui.theme.components.IvyBorderButton.kt - FinalNewline:IvyButton.kt$com.ivy.wallet.ui.theme.components.IvyButton.kt - FinalNewline:IvyCheckbox.kt$com.ivy.wallet.ui.theme.components.IvyCheckbox.kt - FinalNewline:IvyChecklistTextField.kt$com.ivy.wallet.ui.theme.components.IvyChecklistTextField.kt - FinalNewline:IvyCircleButton.kt$com.ivy.wallet.ui.theme.components.IvyCircleButton.kt - FinalNewline:IvyColorPicker.kt$com.ivy.wallet.ui.theme.components.IvyColorPicker.kt - FinalNewline:IvyColors.kt$com.ivy.design.l0_system.IvyColors.kt - FinalNewline:IvyColors.kt$com.ivy.wallet.ui.theme.IvyColors.kt - FinalNewline:IvyComponents.kt$com.ivy.wallet.ui.theme.components.IvyComponents.kt - FinalNewline:IvyContext.kt$com.ivy.design.IvyContext.kt - FinalNewline:IvyDataStore.kt$com.ivy.wallet.io.persistence.datastore.IvyDataStore.kt - FinalNewline:IvyDescriptionTextField.kt$com.ivy.wallet.ui.theme.components.IvyDescriptionTextField.kt - FinalNewline:IvyDesign.kt$com.ivy.design.api.IvyDesign.kt - FinalNewline:IvyDivider.kt$com.ivy.wallet.ui.theme.components.IvyDivider.kt - FinalNewline:IvyDividerDot.kt$com.ivy.wallet.ui.theme.components.IvyDividerDot.kt - FinalNewline:IvyDomainUtils.kt$com.ivy.wallet.domain.pure.util.IvyDomainUtils.kt - FinalNewline:IvyFileReader.kt$com.ivy.wallet.domain.deprecated.logic.csv.IvyFileReader.kt - FinalNewline:IvyIcon.kt$com.ivy.design.l1_buildingBlocks.IvyIcon.kt - FinalNewline:IvyIcon.kt$com.ivy.wallet.ui.theme.components.IvyIcon.kt - FinalNewline:IvyLineChart.kt$com.ivy.wallet.ui.theme.components.charts.linechart.IvyLineChart.kt - FinalNewline:IvyModal.kt$com.ivy.wallet.ui.theme.modal.IvyModal.kt - FinalNewline:IvyModalComponents.kt$com.ivy.wallet.ui.theme.modal.IvyModalComponents.kt - FinalNewline:IvyNameTextFieldValue.kt$com.ivy.wallet.ui.theme.components.IvyNameTextFieldValue.kt - FinalNewline:IvyNotification.kt$com.ivy.wallet.android.notification.IvyNotification.kt - FinalNewline:IvyNotificationChannel.kt$com.ivy.wallet.android.notification.IvyNotificationChannel.kt - FinalNewline:IvyOutlinedButton.kt$com.ivy.wallet.ui.theme.components.IvyOutlinedButton.kt - FinalNewline:IvyOutlinedTextField.kt$com.ivy.wallet.ui.theme.components.IvyOutlinedTextField.kt - FinalNewline:IvyPadding.kt$com.ivy.design.l1_buildingBlocks.data.IvyPadding.kt - FinalNewline:IvyRoomDatabase.kt$com.ivy.wallet.io.persistence.IvyRoomDatabase.kt - FinalNewline:IvyShapes.kt$com.ivy.design.l0_system.IvyShapes.kt - FinalNewline:IvySwitch.kt$com.ivy.wallet.ui.theme.components.IvySwitch.kt - FinalNewline:IvyText.kt$com.ivy.design.l1_buildingBlocks.IvyText.kt - FinalNewline:IvyTitleTextField.kt$com.ivy.wallet.ui.theme.components.IvyTitleTextField.kt - FinalNewline:IvyToolbar.kt$com.ivy.wallet.ui.theme.components.IvyToolbar.kt - FinalNewline:IvyTypography.kt$com.ivy.design.l0_system.IvyTypography.kt - FinalNewline:IvyUI.kt$com.ivy.design.api.IvyUI.kt - FinalNewline:IvyViewPager.kt$com.ivy.wallet.ui.theme.components.IvyViewPager.kt - FinalNewline:IvyWalletCompleteData.kt$com.ivy.wallet.domain.data.IvyWalletCompleteData.kt - FinalNewline:IvyWalletDatastore.kt$com.ivy.wallet.data.IvyWalletDatastore.kt - FinalNewline:IvyWalletDesign.kt$com.ivy.design.api.systems.IvyWalletDesign.kt - FinalNewline:IvyWalletSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.IvyWalletSteps.kt - FinalNewline:KTWMoneyMangerSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.KTWMoneyMangerSteps.kt - FinalNewline:Keyboard.kt$com.ivy.design.utils.Keyboard.kt - FinalNewline:KtorClient.kt$com.ivy.wallet.ktor.KtorClient.kt - FinalNewline:KtorClientModule.kt$com.ivy.wallet.ktor.KtorClientModule.kt - FinalNewline:LTLoanRecordMapper.kt$com.ivy.wallet.domain.deprecated.logic.loantrasactions.LTLoanRecordMapper.kt - FinalNewline:LastNTimeRange.kt$com.ivy.wallet.ui.onboarding.model.LastNTimeRange.kt - FinalNewline:Loan.kt$com.ivy.wallet.domain.data.core.Loan.kt - FinalNewline:LoanBottomBar.kt$com.ivy.wallet.ui.loan.LoanBottomBar.kt - FinalNewline:LoanByIdAct.kt$com.ivy.wallet.domain.action.loan.LoanByIdAct.kt - FinalNewline:LoanCreator.kt$com.ivy.wallet.domain.deprecated.logic.LoanCreator.kt - FinalNewline:LoanDao.kt$com.ivy.wallet.io.persistence.dao.LoanDao.kt - FinalNewline:LoanDetailsScreen.kt$com.ivy.wallet.ui.loandetails.LoanDetailsScreen.kt - FinalNewline:LoanDetailsViewModel.kt$com.ivy.wallet.ui.loandetails.LoanDetailsViewModel.kt - FinalNewline:LoanEntity.kt$com.ivy.wallet.io.persistence.data.LoanEntity.kt - FinalNewline:LoanModal.kt$com.ivy.wallet.ui.theme.modal.LoanModal.kt - FinalNewline:LoanRecord.kt$com.ivy.wallet.domain.data.core.LoanRecord.kt - FinalNewline:LoanRecordCreator.kt$com.ivy.wallet.domain.deprecated.logic.LoanRecordCreator.kt - FinalNewline:LoanRecordDao.kt$com.ivy.wallet.io.persistence.dao.LoanRecordDao.kt - FinalNewline:LoanRecordEntity.kt$com.ivy.wallet.io.persistence.data.LoanRecordEntity.kt - FinalNewline:LoanRecordModal.kt$com.ivy.wallet.ui.theme.modal.LoanRecordModal.kt - FinalNewline:LoanTransactionsCore.kt$com.ivy.wallet.domain.deprecated.logic.loantrasactions.LoanTransactionsCore.kt - FinalNewline:LoanType.kt$com.ivy.wallet.domain.data.LoanType.kt - FinalNewline:LoanViewModel.kt$com.ivy.wallet.ui.loan.LoanViewModel.kt - FinalNewline:LoansAct.kt$com.ivy.wallet.domain.action.loan.LoansAct.kt - FinalNewline:LoansScreen.kt$com.ivy.wallet.ui.loan.LoansScreen.kt - FinalNewline:LogoutLogic.kt$com.ivy.wallet.domain.deprecated.logic.LogoutLogic.kt - FinalNewline:MVVMExt.kt$com.ivy.wallet.utils.MVVMExt.kt - FinalNewline:MainBottomBar.kt$com.ivy.wallet.ui.main.MainBottomBar.kt - FinalNewline:MainScreen.kt$com.ivy.wallet.ui.main.MainScreen.kt - FinalNewline:MainTab.kt$com.ivy.wallet.ui.main.MainTab.kt - FinalNewline:MainViewModel.kt$com.ivy.wallet.ui.main.MainViewModel.kt - FinalNewline:Migration.kt$com.ivy.wallet.migrations.Migration.kt - FinalNewline:Migration105to106_TrnRecurringRules.kt$com.ivy.wallet.io.persistence.migration.Migration105to106_TrnRecurringRules.kt - FinalNewline:Migration106to107_Wishlist.kt$com.ivy.wallet.io.persistence.migration.Migration106to107_Wishlist.kt - FinalNewline:Migration107to108_Sync.kt$com.ivy.wallet.io.persistence.migration.Migration107to108_Sync.kt - FinalNewline:Migration108to109_Users.kt$com.ivy.wallet.io.persistence.migration.Migration108to109_Users.kt - FinalNewline:Migration109to110_PlannedPayments.kt$com.ivy.wallet.io.persistence.migration.Migration109to110_PlannedPayments.kt - FinalNewline:Migration110to111_PlannedPaymentRule.kt$com.ivy.wallet.io.persistence.migration.Migration110to111_PlannedPaymentRule.kt - FinalNewline:Migration111to112_User_testUser.kt$com.ivy.wallet.io.persistence.migration.Migration111to112_User_testUser.kt - FinalNewline:Migration112to113_ExchangeRates.kt$com.ivy.wallet.io.persistence.migration.Migration112to113_ExchangeRates.kt - FinalNewline:Migration113to114_Multi_Currency.kt$com.ivy.wallet.io.persistence.migration.Migration113to114_Multi_Currency.kt - FinalNewline:Migration114to115_Category_Account_Icons.kt$com.ivy.wallet.io.persistence.migration.Migration114to115_Category_Account_Icons.kt - FinalNewline:Migration115to116_Account_Include_In_Balance.kt$com.ivy.wallet.io.persistence.migration.Migration115to116_Account_Include_In_Balance.kt - FinalNewline:Migration116to117_SalteEdgeIntgration.kt$com.ivy.wallet.io.persistence.migration.Migration116to117_SalteEdgeIntgration.kt - FinalNewline:Migration117to118_Budgets.kt$com.ivy.wallet.io.persistence.migration.Migration117to118_Budgets.kt - FinalNewline:Migration118to119_Loans.kt$com.ivy.wallet.io.persistence.migration.Migration118to119_Loans.kt - FinalNewline:Migration119to120_LoanTransactions.kt$com.ivy.wallet.io.persistence.migration.Migration119to120_LoanTransactions.kt - FinalNewline:Migration120to121_DropWishlistItem.kt$com.ivy.wallet.io.persistence.migration.Migration120to121_DropWishlistItem.kt - FinalNewline:Migration122to123_ExchangeRates.kt$com.ivy.wallet.io.persistence.migration.Migration122to123_ExchangeRates.kt - FinalNewline:MigrationsManager.kt$com.ivy.wallet.migrations.MigrationsManager.kt - FinalNewline:MonefySteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.MonefySteps.kt - FinalNewline:MoneyManagerPraseSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.MoneyManagerPraseSteps.kt - FinalNewline:Month.kt$com.ivy.wallet.ui.theme.modal.model.Month.kt - FinalNewline:MonthPickerModal.kt$com.ivy.wallet.ui.theme.modal.MonthPickerModal.kt - FinalNewline:MoreInfo.kt$com.ivy.design.l4_patterns.MoreInfo.kt - FinalNewline:MoreMenu.kt$com.ivy.design.l4_patterns.MoreMenu.kt - FinalNewline:NameModal.kt$com.ivy.wallet.ui.theme.modal.NameModal.kt - FinalNewline:NewEditScreenPref.kt$com.ivy.wallet.domain.data.preference.NewEditScreenPref.kt - FinalNewline:NotificationService.kt$com.ivy.wallet.android.notification.NotificationService.kt - FinalNewline:OnboardingAccounts.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingAccounts.kt - FinalNewline:OnboardingCategories.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingCategories.kt - FinalNewline:OnboardingComponents.kt$com.ivy.wallet.ui.theme.components.OnboardingComponents.kt - FinalNewline:OnboardingPrivacyTC.kt$com.ivy.wallet.ui.onboarding.steps.archived.OnboardingPrivacyTC.kt - FinalNewline:OnboardingProgressSlider.kt$com.ivy.wallet.ui.onboarding.components.OnboardingProgressSlider.kt - FinalNewline:OnboardingRouter.kt$com.ivy.wallet.ui.onboarding.viewmodel.OnboardingRouter.kt - FinalNewline:OnboardingScreen.kt$com.ivy.wallet.ui.onboarding.OnboardingScreen.kt - FinalNewline:OnboardingSetCurrency.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingSetCurrency.kt - FinalNewline:OnboardingSetName.kt$com.ivy.wallet.ui.onboarding.steps.archived.OnboardingSetName.kt - FinalNewline:OnboardingSplashLogin.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingSplashLogin.kt - FinalNewline:OnboardingState.kt$com.ivy.wallet.ui.onboarding.OnboardingState.kt - FinalNewline:OnboardingToolbar.kt$com.ivy.wallet.ui.onboarding.components.OnboardingToolbar.kt - FinalNewline:OnboardingType.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingType.kt - FinalNewline:OnboardingViewModel.kt$com.ivy.wallet.ui.onboarding.viewmodel.OnboardingViewModel.kt - FinalNewline:OneMoneySteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.OneMoneySteps.kt - FinalNewline:OpResult.kt$com.ivy.wallet.utils.OpResult.kt - FinalNewline:OverdueAct.kt$com.ivy.wallet.domain.action.viewmodel.home.OverdueAct.kt - FinalNewline:ParseFields.kt$com.ivy.wallet.ui.csv.domain.ParseFields.kt - FinalNewline:ParseStatus.kt$com.ivy.wallet.ui.csv.domain.ParseStatus.kt - FinalNewline:PaywallLogic.kt$com.ivy.wallet.domain.deprecated.logic.PaywallLogic.kt - FinalNewline:PaywallReason.kt$com.ivy.wallet.ui.paywall.PaywallReason.kt - FinalNewline:PaywallViewModel.kt$com.ivy.wallet.ui.paywall.PaywallViewModel.kt - FinalNewline:PeriodSelector.kt$com.ivy.wallet.ui.theme.wallet.PeriodSelector.kt - FinalNewline:PieChart.kt$com.ivy.wallet.ui.statistic.level1.PieChart.kt - FinalNewline:PieChartAct.kt$com.ivy.wallet.domain.action.charts.PieChartAct.kt - FinalNewline:PieChartStatisticBottomBar.kt$com.ivy.wallet.ui.statistic.level1.PieChartStatisticBottomBar.kt - FinalNewline:PieChartStatisticViewModel.kt$com.ivy.wallet.ui.statistic.level1.PieChartStatisticViewModel.kt - FinalNewline:Plan.kt$com.ivy.wallet.android.billing.Plan.kt - FinalNewline:PlanType.kt$com.ivy.wallet.android.billing.PlanType.kt - FinalNewline:PlannedPaymentRule.kt$com.ivy.wallet.domain.data.core.PlannedPaymentRule.kt - FinalNewline:PlannedPaymentRuleDao.kt$com.ivy.wallet.io.persistence.dao.PlannedPaymentRuleDao.kt - FinalNewline:PlannedPaymentRuleEntity.kt$com.ivy.wallet.io.persistence.data.PlannedPaymentRuleEntity.kt - FinalNewline:PlannedPaymentsBottomBar.kt$com.ivy.wallet.ui.planned.list.PlannedPaymentsBottomBar.kt - FinalNewline:PlannedPaymentsGenerator.kt$com.ivy.wallet.domain.deprecated.logic.PlannedPaymentsGenerator.kt - FinalNewline:PlannedPaymentsLazyColumn.kt$com.ivy.wallet.ui.planned.list.PlannedPaymentsLazyColumn.kt - FinalNewline:PlannedPaymentsLogic.kt$com.ivy.wallet.domain.deprecated.logic.PlannedPaymentsLogic.kt - FinalNewline:PlannedPaymentsScreen.kt$com.ivy.wallet.ui.planned.list.PlannedPaymentsScreen.kt - FinalNewline:PlannedPaymentsViewModel.kt$com.ivy.wallet.ui.planned.list.PlannedPaymentsViewModel.kt - FinalNewline:PlansSheet.kt$com.ivy.wallet.ui.paywall.PlansSheet.kt - FinalNewline:Preference.kt$com.ivy.wallet.domain.data.preference.Preference.kt - FinalNewline:PreferenceAct.kt$com.ivy.wallet.domain.action.settings.preference.PreferenceAct.kt - FinalNewline:Preview.kt$com.ivy.design.utils.Preview.kt - FinalNewline:PrimaryAttributeColumn.kt$com.ivy.wallet.ui.edit.PrimaryAttributeColumn.kt - FinalNewline:ProgressBar.kt$com.ivy.wallet.ui.theme.components.ProgressBar.kt - FinalNewline:ProgressModal.kt$com.ivy.wallet.ui.theme.modal.ProgressModal.kt - FinalNewline:PropertyTestExample.kt$com.ivy.wallet.PropertyTestExample.kt - FinalNewline:RateItem.kt$com.ivy.wallet.ui.exchangerates.component.RateItem.kt - FinalNewline:RateUi.kt$com.ivy.wallet.ui.exchangerates.data.RateUi.kt - FinalNewline:RatesEvent.kt$com.ivy.wallet.ui.exchangerates.RatesEvent.kt - FinalNewline:RatesState.kt$com.ivy.wallet.ui.exchangerates.RatesState.kt - FinalNewline:RecurringRule.kt$com.ivy.wallet.ui.planned.edit.RecurringRule.kt - FinalNewline:RecurringRuleModal.kt$com.ivy.wallet.ui.theme.modal.RecurringRuleModal.kt - FinalNewline:ReorderModal.kt$com.ivy.design.l4_patterns.ReorderModal.kt - FinalNewline:ReorderModal.kt$com.ivy.wallet.ui.theme.components.ReorderModal.kt - FinalNewline:Reorderable.kt$com.ivy.wallet.domain.data.Reorderable.kt - FinalNewline:ReportFilter.kt$com.ivy.wallet.ui.reports.ReportFilter.kt - FinalNewline:ReportScreen.kt$com.ivy.wallet.ui.reports.ReportScreen.kt - FinalNewline:ReportScreenEvent.kt$com.ivy.wallet.ui.reports.ReportScreenEvent.kt - FinalNewline:ReportScreenState.kt$com.ivy.wallet.ui.reports.ReportScreenState.kt - FinalNewline:ReportViewModel.kt$com.ivy.wallet.ui.reports.ReportViewModel.kt - FinalNewline:RoomTypeConverters.kt$com.ivy.wallet.io.persistence.RoomTypeConverters.kt - FinalNewline:RootActivity.kt$com.ivy.wallet.ui.RootActivity.kt - FinalNewline:RootViewModel.kt$com.ivy.wallet.ui.RootViewModel.kt - FinalNewline:RowMapping.kt$com.ivy.wallet.domain.deprecated.logic.csv.model.RowMapping.kt - FinalNewline:SaveTrnLocallyAct.kt$com.ivy.wallet.domain.action.viewmodel.transaction.SaveTrnLocallyAct.kt - FinalNewline:ScreenTitle.kt$com.ivy.design.l3_ivyComponents.ScreenTitle.kt - FinalNewline:SearchScreen.kt$com.ivy.wallet.ui.search.SearchScreen.kt - FinalNewline:SearchViewModel.kt$com.ivy.wallet.ui.search.SearchViewModel.kt - FinalNewline:SelectedCategory.kt$com.ivy.wallet.ui.statistic.level1.SelectedCategory.kt - FinalNewline:ServerStopScreen.kt$com.ivy.wallet.ui.serverstop.ServerStopScreen.kt - FinalNewline:ServerStopState.kt$com.ivy.wallet.ui.serverstop.ServerStopState.kt - FinalNewline:ServerStopViewModel.kt$com.ivy.wallet.ui.serverstop.ServerStopViewModel.kt - FinalNewline:SetPreferenceAct.kt$com.ivy.wallet.domain.action.settings.preference.SetPreferenceAct.kt - FinalNewline:Settings.kt$com.ivy.wallet.domain.data.core.Settings.kt - FinalNewline:SettingsAct.kt$com.ivy.wallet.domain.action.settings.SettingsAct.kt - FinalNewline:SettingsDao.kt$com.ivy.wallet.io.persistence.dao.SettingsDao.kt - FinalNewline:SettingsEntity.kt$com.ivy.wallet.io.persistence.data.SettingsEntity.kt - FinalNewline:SettingsScreen.kt$com.ivy.wallet.ui.settings.SettingsScreen.kt - FinalNewline:SettingsViewModel.kt$com.ivy.wallet.ui.settings.SettingsViewModel.kt - FinalNewline:Shapes.kt$com.ivy.design.l1_buildingBlocks.Shapes.kt - FinalNewline:SharedPrefs.kt$com.ivy.wallet.io.persistence.SharedPrefs.kt - FinalNewline:ShortAmountTest.kt$com.ivy.wallet.ShortAmountTest.kt - FinalNewline:ShouldHideBalanceAct.kt$com.ivy.wallet.domain.action.viewmodel.home.ShouldHideBalanceAct.kt - FinalNewline:SmallTrnsPref.kt$com.ivy.wallet.domain.data.preference.SmallTrnsPref.kt - FinalNewline:SmartTitleSuggestionsLogic.kt$com.ivy.wallet.domain.deprecated.logic.SmartTitleSuggestionsLogic.kt - FinalNewline:SortOrder.kt$com.ivy.wallet.domain.data.SortOrder.kt - FinalNewline:Spacers.kt$com.ivy.design.l1_buildingBlocks.Spacers.kt - FinalNewline:SpendeeSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.SpendeeSteps.kt - FinalNewline:StartDayOfMonthAct.kt$com.ivy.wallet.domain.action.global.StartDayOfMonthAct.kt - FinalNewline:Suggestions.kt$com.ivy.wallet.ui.onboarding.components.Suggestions.kt - FinalNewline:Switch.kt$com.ivy.design.l2_components.Switch.kt - FinalNewline:SyncExchangeRatesAct.kt$com.ivy.wallet.domain.action.exchange.SyncExchangeRatesAct.kt - FinalNewline:TestScreen.kt$com.ivy.wallet.ui.test.TestScreen.kt - FinalNewline:TestViewModel.kt$com.ivy.wallet.ui.test.TestViewModel.kt - FinalNewline:Theme.kt$com.ivy.design.l0_system.Theme.kt - FinalNewline:TimePeriod.kt$com.ivy.wallet.ui.onboarding.model.TimePeriod.kt - FinalNewline:TimeValue.kt$com.ivy.wallet.ui.charts.TimeValue.kt - FinalNewline:Title.kt$com.ivy.wallet.ui.edit.core.Title.kt - FinalNewline:Transaction.kt$com.ivy.wallet.domain.data.core.Transaction.kt - FinalNewline:TransactionCard.kt$com.ivy.wallet.ui.component.transaction.TransactionCard.kt - FinalNewline:TransactionDao.kt$com.ivy.wallet.io.persistence.dao.TransactionDao.kt - FinalNewline:TransactionDateTime.kt$com.ivy.wallet.ui.edit.TransactionDateTime.kt - FinalNewline:TransactionEntity.kt$com.ivy.wallet.io.persistence.data.TransactionEntity.kt - FinalNewline:TransactionHistoryDateDivider.kt$com.ivy.wallet.domain.data.TransactionHistoryDateDivider.kt - FinalNewline:TransactionHistoryItem.kt$com.ivy.wallet.domain.data.TransactionHistoryItem.kt - FinalNewline:TransactionReminderLogic.kt$com.ivy.wallet.domain.deprecated.logic.notification.TransactionReminderLogic.kt - FinalNewline:TransactionReminderWorker.kt$com.ivy.wallet.domain.deprecated.logic.notification.TransactionReminderWorker.kt - FinalNewline:TransactionSectionDivider.kt$com.ivy.wallet.ui.component.transaction.TransactionSectionDivider.kt - FinalNewline:TransactionType.kt$com.ivy.wallet.domain.data.TransactionType.kt - FinalNewline:TransactionViewModel.kt$com.ivy.wallet.ui.transaction.TransactionViewModel.kt - FinalNewline:TransactionsDividerLine.kt$com.ivy.wallet.ui.component.transaction.TransactionsDividerLine.kt - FinalNewline:TrnByIdAct.kt$com.ivy.wallet.domain.action.transaction.TrnByIdAct.kt - FinalNewline:TrnDate.kt$com.ivy.wallet.ui.transaction.data.TrnDate.kt - FinalNewline:TrnDateDividers.kt$com.ivy.wallet.domain.pure.transaction.TrnDateDividers.kt - FinalNewline:TrnEvent.kt$com.ivy.wallet.ui.transaction.TrnEvent.kt - FinalNewline:TrnExchangeRate.kt$com.ivy.wallet.ui.transaction.data.TrnExchangeRate.kt - FinalNewline:TrnFunctions.kt$com.ivy.wallet.domain.pure.transaction.TrnFunctions.kt - FinalNewline:TrnState.kt$com.ivy.wallet.ui.transaction.TrnState.kt - FinalNewline:TrnsWithDateDivsAct.kt$com.ivy.wallet.domain.action.transaction.TrnsWithDateDivsAct.kt - FinalNewline:TrnsWithRangeAndAccFiltersAct.kt$com.ivy.wallet.domain.action.transaction.TrnsWithRangeAndAccFiltersAct.kt - FinalNewline:TypographyExt.kt$com.ivy.design.l0_system.TypographyExt.kt - FinalNewline:UIExt.kt$com.ivy.wallet.utils.UIExt.kt - FinalNewline:UUIDSerializer.kt$com.ivy.wallet.ktor.kotlinxserilzation.UUIDSerializer.kt - FinalNewline:UiText.kt$com.ivy.wallet.utils.UiText.kt - FinalNewline:UpcomingAct.kt$com.ivy.wallet.domain.action.viewmodel.home.UpcomingAct.kt - FinalNewline:UpdateAccCacheAct.kt$com.ivy.wallet.domain.action.viewmodel.home.UpdateAccCacheAct.kt - FinalNewline:UpdateCategoriesCacheAct.kt$com.ivy.wallet.domain.action.viewmodel.home.UpdateCategoriesCacheAct.kt - FinalNewline:UpdateSettingsAct.kt$com.ivy.wallet.domain.action.settings.UpdateSettingsAct.kt - FinalNewline:UpdateStartDayOfMonthAct.kt$com.ivy.wallet.domain.action.global.UpdateStartDayOfMonthAct.kt - FinalNewline:User.kt$com.ivy.wallet.domain.data.core.User.kt - FinalNewline:UserDao.kt$com.ivy.wallet.io.persistence.dao.UserDao.kt - FinalNewline:UserEntity.kt$com.ivy.wallet.io.persistence.data.UserEntity.kt - FinalNewline:UtilExt.kt$com.ivy.wallet.utils.UtilExt.kt - FinalNewline:Utils.kt$com.ivy.wallet.domain.pure.util.Utils.kt - FinalNewline:Utils.kt$com.ivy.wallet.ui.component.transaction.Utils.kt - FinalNewline:View.kt$com.ivy.design.utils.View.kt - FinalNewline:WalletAccountLogic.kt$com.ivy.wallet.domain.deprecated.logic.WalletAccountLogic.kt - FinalNewline:WalletBalanceWidget.kt$com.ivy.wallet.ui.widget.WalletBalanceWidget.kt - FinalNewline:WalletBalanceWidgetActions.kt$com.ivy.wallet.ui.widget.WalletBalanceWidgetActions.kt - FinalNewline:WalletBalanceWidgetContent.kt$com.ivy.wallet.ui.widget.WalletBalanceWidgetContent.kt - FinalNewline:WalletByBudgetBakersSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.WalletByBudgetBakersSteps.kt - FinalNewline:WalletCategoryLogic.kt$com.ivy.wallet.domain.deprecated.logic.WalletCategoryLogic.kt - FinalNewline:WalletCharts.kt$com.ivy.wallet.domain.pure.charts.WalletCharts.kt - FinalNewline:WalletDAOs.kt$com.ivy.wallet.domain.pure.data.WalletDAOs.kt - FinalNewline:WalletUtil.kt$com.ivy.wallet.utils.WalletUtil.kt - FinalNewline:WalletValueFunctions.kt$com.ivy.wallet.domain.pure.transaction.WalletValueFunctions.kt - FinalNewline:WidgetBase.kt$com.ivy.wallet.ui.widget.WidgetBase.kt - FinalNewline:WrapContentRow.kt$com.ivy.wallet.ui.theme.components.WrapContentRow.kt - FinalNewline:ZipUtils.kt$com.ivy.wallet.domain.deprecated.logic.zip.ZipUtils.kt FinalNewline:ivy.lint.gradle.kts$.ivy.lint.gradle.kts - FinalNewline:settings.gradle.kts$.settings.gradle.kts - ForbiddenComment:AmountFormatting.kt$//TODO: Review, might cause trouble when integrating crypto - ForbiddenComment:BudgetViewModel.kt$BudgetViewModel$//TODO: Re-work this by creating an FPAction for it - ForbiddenComment:ChartsViewModel.kt$ChartsViewModel$//TODO: Implement - ForbiddenComment:HomeViewModel.kt$HomeViewModel$//TODO: Refactor - ForbiddenComment:ImportResultUI.kt$//TODO: Implement "See failed imports" - ForbiddenComment:InputField.kt$//TODO: Fix bug where cursor color isn't updated after theme switch - ForbiddenComment:ItemStatisticViewModel.kt$ItemStatisticViewModel$//TODO: Rework Overdue to FP - ForbiddenComment:ItemStatisticViewModel.kt$ItemStatisticViewModel$//TODO: Rework Upcoming to FP - ForbiddenComment:IvyLineChart.kt$//TODO: Fix - ForbiddenComment:IvyLineChart.kt$//marginFromX //TODO: FIX - ForbiddenComment:Transaction.kt$Transaction$//TODO: Remove default values & introduce Transaction#dummy() method - ForbiddenComment:TransactionCard.kt$//TODO: Optimize this - ForbiddenComment:TransactionViewModel.kt$TransactionViewModel$//TODO: Handle properly transfers exchange rate - ForbiddenComment:TransactionViewModel.kt$TransactionViewModel$//TODO: Handle transfers properly - ForbiddenComment:WalletAccountLogic.kt$WalletAccountLogic$//TODO: Remove this once Bank Integration trn sync is properly implemented - ForbiddenComment:WalletCategoryLogic.kt$WalletCategoryLogic$//TODO: Transfer zero operation + ForbiddenComment:AmountFormatting.kt$// TODO: Review, might cause trouble when integrating crypto + ForbiddenComment:BudgetViewModel.kt$BudgetViewModel$// TODO: Re-work this by creating an FPAction for it + ForbiddenComment:ChartsViewModel.kt$ChartsViewModel$// TODO: Implement + ForbiddenComment:HomeViewModel.kt$HomeViewModel$// TODO: Refactor + ForbiddenComment:ImportResultUI.kt$// TODO: Implement "See failed imports" + ForbiddenComment:InputField.kt$// TODO: Fix bug where cursor color isn't updated after theme switch + ForbiddenComment:ItemStatisticViewModel.kt$ItemStatisticViewModel$// TODO: Rework Overdue to FP + ForbiddenComment:ItemStatisticViewModel.kt$ItemStatisticViewModel$// TODO: Rework Upcoming to FP + ForbiddenComment:IvyLineChart.kt$// TODO: Fix + ForbiddenComment:IvyLineChart.kt$// marginFromX //TODO: FIX + ForbiddenComment:Transaction.kt$Transaction$// TODO: Remove default values & introduce Transaction#dummy() method + ForbiddenComment:TransactionCard.kt$// TODO: Optimize this + ForbiddenComment:TransactionViewModel.kt$TransactionViewModel$// TODO: Handle properly transfers exchange rate + ForbiddenComment:TransactionViewModel.kt$TransactionViewModel$// TODO: Handle transfers properly + ForbiddenComment:WalletAccountLogic.kt$WalletAccountLogic$// TODO: Remove this once Bank Integration trn sync is properly implemented + ForbiddenComment:WalletCategoryLogic.kt$WalletCategoryLogic$// TODO: Transfer zero operation FunctionNaming:Accessors32ikgp1isdd8mwexzgbe6rirl.kt$internal fun io.gitlab.arturbosch.detekt.extensions.DetektExtension.`ext`(configure: Action<org.gradle.api.plugins.ExtraPropertiesExtension>): Unit FunctionNaming:Accessors46nwrg1rs44ofdqpi7vyy3pfc.kt$internal fun org.gradle.api.artifacts.dsl.RepositoryHandler.`ext`(configure: Action<org.gradle.api.plugins.ExtraPropertiesExtension>): Unit FunctionNaming:Accessors4ymijgaek646mzru18sdmblu7.kt$internal fun org.gradle.api.Project.`detekt`(configure: Action<io.gitlab.arturbosch.detekt.extensions.DetektExtension>): Unit @@ -1278,7 +280,6 @@ FunctionParameterNaming:ReorderModal.kt$TitleContent: @Composable ColumnScope.() -> Unit = { Text( modifier = Modifier.padding(start = 32.dp), text = stringResource(R.string.reorder), style = UI.typo.b1.style( UI.colors.pureInverse, FontWeight.ExtraBold ) ) } FunctionParameterNaming:SettingsScreen.kt$Content: @Composable RowScope.() -> Unit FunctionParameterNaming:WrapContentRow.kt$ItemContent: @Composable (item: T) -> Unit - FunctionReturnTypeSpacing:ComposeExt.kt$fun Modifier.thenIf(condition: Boolean, thanModifier: @Composable Modifier.() -> Modifier) : Modifier FunctionReturnTypeSpacing:ReportViewModel.kt$ReportViewModel$private fun calculateBalance(incomeExpenseTransferPair: IncomeExpenseTransferPair) : BigDecimal FunctionStartOfBodySpacing:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$suspend fun payOrGet( transactions: List<Transaction>, syncTransaction: Boolean = true, skipTransaction: Boolean = false, onUpdateUI: suspend (paidTransactions: List<Transaction>) -> Unit ) FunctionStartOfBodySpacing:ReportViewModel.kt$ReportViewModel$private fun calculateBalance(incomeExpenseTransferPair: IncomeExpenseTransferPair) : BigDecimal @@ -1294,52 +295,10 @@ ImportOrdering:Accessorsblypoh2ruc9u3bx9djsfqsntg.kt$import org.gradle.api.Action import org.gradle.api.Incubating import org.gradle.api.NamedDomainObjectProvider import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurablePublishArtifact import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.DependencyConstraint import org.gradle.api.artifacts.ExternalModuleDependency import org.gradle.api.artifacts.ModuleDependency import org.gradle.api.artifacts.PublishArtifact import org.gradle.api.artifacts.dsl.ArtifactHandler import org.gradle.api.artifacts.dsl.DependencyConstraintHandler import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderConvertible import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.accessors.runtime.* ImportOrdering:Accessorsbtc8iwv8u9b0f38ikfmodj8ns.kt$import org.gradle.api.Action import org.gradle.api.Incubating import org.gradle.api.NamedDomainObjectProvider import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurablePublishArtifact import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.DependencyConstraint import org.gradle.api.artifacts.ExternalModuleDependency import org.gradle.api.artifacts.ModuleDependency import org.gradle.api.artifacts.PublishArtifact import org.gradle.api.artifacts.dsl.ArtifactHandler import org.gradle.api.artifacts.dsl.DependencyConstraintHandler import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderConvertible import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.accessors.runtime.* ImportOrdering:Accessorseessl0al0otcsbyqqruvoncpd.kt$import org.gradle.api.Action import org.gradle.api.Incubating import org.gradle.api.NamedDomainObjectProvider import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurablePublishArtifact import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.DependencyConstraint import org.gradle.api.artifacts.ExternalModuleDependency import org.gradle.api.artifacts.ModuleDependency import org.gradle.api.artifacts.PublishArtifact import org.gradle.api.artifacts.dsl.ArtifactHandler import org.gradle.api.artifacts.dsl.DependencyConstraintHandler import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderConvertible import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.accessors.runtime.* - ImportOrdering:Category.kt$import androidx.compose.foundation.layout.padding import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style import com.ivy.wallet.R import com.ivy.wallet.domain.data.core.Category import com.ivy.wallet.ui.theme.Gradient import com.ivy.wallet.ui.theme.components.IvyBorderButton import com.ivy.wallet.ui.theme.components.IvyButton import com.ivy.wallet.ui.theme.components.getCustomIconIdS import com.ivy.wallet.ui.theme.findContrastTextColor import com.ivy.wallet.ui.theme.toComposeColor ImportOrdering:DetektConfigurationAccessors.kt$import org.gradle.api.Action import org.gradle.api.Incubating import org.gradle.api.NamedDomainObjectProvider import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurablePublishArtifact import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.DependencyConstraint import org.gradle.api.artifacts.ExternalModuleDependency import org.gradle.api.artifacts.ModuleDependency import org.gradle.api.artifacts.PublishArtifact import org.gradle.api.artifacts.dsl.ArtifactHandler import org.gradle.api.artifacts.dsl.DependencyConstraintHandler import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderConvertible import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.accessors.runtime.* ImportOrdering:DetektPluginsConfigurationAccessors.kt$import org.gradle.api.Action import org.gradle.api.Incubating import org.gradle.api.NamedDomainObjectProvider import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ConfigurablePublishArtifact import org.gradle.api.artifacts.ConfigurationContainer import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.DependencyConstraint import org.gradle.api.artifacts.ExternalModuleDependency import org.gradle.api.artifacts.ModuleDependency import org.gradle.api.artifacts.PublishArtifact import org.gradle.api.artifacts.dsl.ArtifactHandler import org.gradle.api.artifacts.dsl.DependencyConstraintHandler import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderConvertible import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskProvider import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.accessors.runtime.* - ImportOrdering:DueTrnsInfoAct.kt$import com.ivy.frp.action.FPAction import com.ivy.frp.lambda import com.ivy.frp.then import com.ivy.wallet.domain.action.account.AccountByIdAct import com.ivy.wallet.domain.action.exchange.ExchangeAct import com.ivy.wallet.domain.action.exchange.actInput import com.ivy.wallet.domain.action.transaction.DueTrnsAct import com.ivy.wallet.domain.data.core.Transaction import com.ivy.wallet.domain.pure.data.ClosedTimeRange import com.ivy.wallet.domain.pure.data.IncomeExpensePair import com.ivy.wallet.domain.pure.exchange.ExchangeTrnArgument import com.ivy.wallet.domain.pure.exchange.exchangeInBaseCurrency import com.ivy.wallet.domain.pure.transaction.expenses import com.ivy.wallet.domain.pure.transaction.incomes import com.ivy.wallet.domain.pure.transaction.sumTrns import com.ivy.wallet.utils.dateNowUTC import java.time.LocalDate import javax.inject.Inject - Indentation:AmountFormatting.kt$ - Indentation:AmountModal.kt$ - Indentation:BufferBattery.kt$ - Indentation:CSVScreen.kt$ - Indentation:CSVViewModel.kt$CSVViewModel$ - Indentation:CategoriesScreen.kt$ - Indentation:CategoriesViewModel.kt$CategoriesViewModel$ - Indentation:ChoosePeriodModal.kt$ - Indentation:ComposeExt.kt$ - Indentation:CurrencyPicker.kt$ - Indentation:CustomerJourneyLogic.kt$CustomerJourneyLogic.Companion$ - Indentation:DonateModal.kt$ - Indentation:EditPlannedViewModel.kt$EditPlannedViewModel$ - Indentation:EditTransactionViewModel.kt$EditTransactionViewModel$ - Indentation:ExportCSVLogic.kt$ExportCSVLogic$ - Indentation:GitHubBackupRequirementsCard.kt$ - Indentation:HomeViewModel.kt$HomeViewModel$ - Indentation:ImportResultUI.kt$ - Indentation:InputField.kt$ - Indentation:Insets.kt$ - Indentation:ItemStatisticViewModel.kt$ItemStatisticViewModel$ - Indentation:LastNTimeRange.kt$LastNTimeRange$ - Indentation:LoanRecordModal.kt$ - Indentation:LoanTransactionsCore.kt$LoanTransactionsCore$ - Indentation:MainBottomBar.kt$ - Indentation:OnboardingSplashLogin.kt$ - Indentation:ParseFields.kt$ - Indentation:PieChartAct.kt$PieChartAct$ Indentation:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$ - Indentation:PlansSheet.kt$ - Indentation:PrimaryAttributeColumn.kt$ - Indentation:RecurringRule.kt$ Indentation:ReportViewModel.kt$ReportViewModel$ - Indentation:RootActivity.kt$RootActivity$ - Indentation:Screens.kt$EditPlanned$ - Indentation:SearchViewModel.kt$SearchViewModel$ - Indentation:ServerStopScreen.kt$ - Indentation:SettingsScreen.kt$ - Indentation:TransactionReminderWorker.kt$TransactionReminderWorker$ - Indentation:UtilExt.kt$ - Indentation:ViewPager.kt$PagerState$ - Indentation:WalletAccountLogic.kt$WalletAccountLogic$ LongMethod:AccountModal.kt$@Composable fun BoxWithConstraintsScope.AccountModal( modal: AccountModalData?, onCreateAccount: (CreateAccountData) -> Unit, onEditAccount: (Account, balance: Double) -> Unit, dismiss: () -> Unit, ) LongMethod:AccountsTab.kt$@Composable private fun AccountHeader( accountData: AccountData, currency: String, baseCurrency: String, contrastColor: Color, onBalanceClick: () -> Unit ) LongMethod:AccountsTab.kt$@Composable private fun BoxWithConstraintsScope.UI( state: AccountState = AccountState(), onEventHandler: (AccountsEvent) -> Unit = {} ) @@ -1355,6 +314,7 @@ LongMethod:BufferBattery.kt$@Composable fun BufferBattery( modifier: Modifier = Modifier, buffer: Double, balance: Double, currency: String, backgroundNotFilled: Color = UI.colors.pure, onClick: (() -> Unit)? = null, ) LongMethod:CSVImporter.kt$CSVImporter$private fun mapDate( rowMapping: RowMapping, dateString: String? ): LocalDateTime? LongMethod:CSVImporter.kt$CSVImporter$private suspend fun mapToTransaction( baseCurrency: String, row: List<String>, rowMapping: RowMapping ): Transaction? + LongMethod:CSVImporter.kt$CSVImporter$suspend fun import( csv: String, rowMapping: RowMapping, onProgress: suspend (progressPercent: Double) -> Unit, ): ImportResult LongMethod:CSVImporterV2.kt$CSVImporterV2$private suspend fun mapToTransaction( baseCurrency: String, row: CSVRowNew, importantFields: ImportantFields, transferFields: TransferFields, optionalFields: OptionalFields, ): Transaction? LongMethod:CSVViewModel.kt$CSVViewModel$private suspend fun handleEvent(event: CSVEvent) LongMethod:CalculatorModal.kt$@Composable fun BoxWithConstraintsScope.CalculatorModal( id: UUID = UUID.randomUUID(), initialAmount: Double?, visible: Boolean, currency: String, dismiss: () -> Unit, onCalculation: (Double) -> Unit ) @@ -1385,6 +345,7 @@ LongMethod:FilterOverlay.kt$@Composable private fun KeywordsFilter( filter: ReportFilter?, nonNullFilter: (ReportFilter?) -> ReportFilter, onSetFilter: (ReportFilter) -> Unit, onShowIncludeKeywordModal: () -> Unit, onShowExcludeKeywordModal: () -> Unit, ) LongMethod:GitHubBackupCard.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable private fun BackupEnabled( viewModel: GitHubBackupViewModel, modifier: Modifier = Modifier, ) LongMethod:GitHubBackupScreen.kt$@Composable private fun Content( modifier: Modifier = Modifier, ) + LongMethod:HomeHeader.kt$@Composable private fun HeaderStickyRow( percentExpanded: Float, name: String, period: TimePeriod, currency: String, balance: Double, hideCurrentBalance: Boolean = false, onShowMonthModal: () -> Unit, onBalanceClick: () -> Unit, onHiddenBalanceClick: () -> Unit = {}, onSelectNextMonth: () -> Unit, onSelectPreviousMonth: () -> Unit, ) LongMethod:HomeMoreMenu.kt$@Composable fun BoxWithConstraintsScope.MoreMenu( expanded: Boolean, balance: Double, buffer: Double, currency: String, theme: Theme, setExpanded: (Boolean) -> Unit, onSwitchTheme: () -> Unit, onBufferClick: () -> Unit, onCurrencyClick: () -> Unit ) LongMethod:HomeMoreMenu.kt$@Composable private fun QuickAccess( theme: Theme, onSwitchTheme: () -> Unit ) LongMethod:HomeTab.kt$@ExperimentalAnimationApi @ExperimentalFoundationApi @Composable private fun BoxWithConstraintsScope.UI( state: HomeState, onEvent: (HomeEvent) -> Unit ) @@ -1510,7 +471,7 @@ LongParameterList:OnboardingRouter.kt$OnboardingRouter$( private val _opGoogleSignIn: MutableLiveData<OpResult<Unit>?>, private val _state: MutableLiveData<OnboardingState>, private val _accounts: MutableLiveData<List<AccountBalance>>, private val _accountSuggestions: MutableLiveData<List<CreateAccountData>>, private val _categories: MutableLiveData<List<Category>>, private val _categorySuggestions: MutableLiveData<List<CreateCategoryData>>, private val nav: Navigation, private val accountDao: AccountDao, private val sharedPrefs: SharedPrefs, private val transactionReminderLogic: TransactionReminderLogic, private val preloadDataLogic: PreloadDataLogic, private val categoryDao: CategoryDao, private val logoutLogic: LogoutLogic, private val syncExchangeRatesAct: SyncExchangeRatesAct, ) LongParameterList:OnboardingScreen.kt$( onboardingState: OnboardingState, currency: IvyCurrency, opGoogleSignIn: OpResult<Unit>?, accountSuggestions: List<CreateAccountData>, accounts: List<AccountBalance>, categorySuggestions: List<CreateCategoryData>, categories: List<Category>, onLoginWithGoogle: () -> Unit = {}, onSkip: () -> Unit = {}, onStartImport: () -> Unit = {}, onStartFresh: () -> Unit = {}, onSetCurrency: (IvyCurrency) -> Unit = {}, onCreateAccount: (CreateAccountData) -> Unit = { }, onEditAccount: (Account, Double) -> Unit = { _, _ -> }, onAddAccountsDone: () -> Unit = {}, onAddAccountsSkip: () -> Unit = {}, onCreateCategory: (CreateCategoryData) -> Unit = {}, onEditCategory: (Category) -> Unit = {}, onAddCategoryDone: () -> Unit = {}, onAddCategorySkip: () -> Unit = {}, ) LongParameterList:OnboardingSplashLogin.kt$( @DrawableRes icon: Int, text: String, textColor: Color, backgroundGradient: Gradient, hasShadow: Boolean, onClick: () -> Unit ) - LongParameterList:OnboardingViewModel.kt$OnboardingViewModel$( private val ivyContext: IvyWalletCtx, private val nav: Navigation, private val accountDao: AccountDao, private val settingsDao: SettingsDao, private val accountLogic: WalletAccountLogic, private val categoryCreator: CategoryCreator, private val categoryDao: CategoryDao, private val accountCreator: AccountCreator, private val accountsAct: AccountsAct, private val categoriesAct: CategoriesAct, private val syncExchangeRatesAct: SyncExchangeRatesAct, //Only OnboardingRouter stuff sharedPrefs: SharedPrefs, transactionReminderLogic: TransactionReminderLogic, preloadDataLogic: PreloadDataLogic, exchangeRatesLogic: ExchangeRatesLogic, logoutLogic: LogoutLogic, ) + LongParameterList:OnboardingViewModel.kt$OnboardingViewModel$( private val ivyContext: IvyWalletCtx, private val nav: Navigation, private val accountDao: AccountDao, private val settingsDao: SettingsDao, private val accountLogic: WalletAccountLogic, private val categoryCreator: CategoryCreator, private val categoryDao: CategoryDao, private val accountCreator: AccountCreator, private val accountsAct: AccountsAct, private val categoriesAct: CategoriesAct, private val syncExchangeRatesAct: SyncExchangeRatesAct, // Only OnboardingRouter stuff sharedPrefs: SharedPrefs, transactionReminderLogic: TransactionReminderLogic, preloadDataLogic: PreloadDataLogic, exchangeRatesLogic: ExchangeRatesLogic, logoutLogic: LogoutLogic, ) LongParameterList:PaywallLogic.kt$PaywallLogic$( private val ivyBilling: IvyBilling, private val ivyContext: IvyWalletCtx, private val navigation: Navigation, private val accountDao: AccountDao, private val categoryDao: CategoryDao, private val budgetDao: BudgetDao, private val loanDao: LoanDao ) LongParameterList:PaywallScreen.kt$( plans: List<Plan>, purchasedSkus: List<String>, paywallReason: PaywallReason?, accounts: List<Account>, categories: List<Category>, budgets: List<Budget>, loans: List<Loan>, onPlanSelected: (Plan?) -> Unit = {}, onBuy: (Plan) -> Unit, ) LongParameterList:PieChartAct.kt$PieChartAct$( showAccountTransfersCategory: Boolean, type: TransactionType, accountTransfersCategory: Category, accountIdFilterSet: Set<UUID>, @SideEffect transactions: suspend () -> List<Transaction>, @SideEffect incomeExpenseTransfer: suspend () -> IncomeExpenseTransferPair, @SideEffect categoryAmounts: suspend () -> List<CategoryAmount> ) @@ -1765,10 +726,6 @@ MaxLineLength:Accessorsbtc8iwv8u9b0f38ikfmodj8ns.kt$(this as org.gradle.api.plugins.ExtensionAware).extensions.getByName("reporting") as org.gradle.api.reporting.ReportingExtension MaxLineLength:Accessorseessl0al0otcsbyqqruvoncpd.kt$(this as org.gradle.api.plugins.ExtensionAware).extensions.getByName("ext") as org.gradle.api.plugins.ExtraPropertiesExtension MaxLineLength:Accessorseessl0al0otcsbyqqruvoncpd.kt$fun - MaxLineLength:AccountModal.kt$text = if (modal?.account != null) stringResource(R.string.edit_account) else stringResource(R.string.new_account) - MaxLineLength:BalanceViewModel.kt$BalanceViewModel$plannedPaymentsLogic.plannedPaymentsAmountFor(period.toRange(ivyContext.startDayOfMonth)) //+ positive if Income > Expenses else - negative - MaxLineLength:BudgetModal.kt$text = if (modal?.budget != null) stringResource(R.string.edit_budget) else stringResource(R.string.create_budget) - MaxLineLength:CustomerJourneyLogic.kt$CustomerJourneyLogic.Companion$"If you haven't yet, feel free join our invite-only Ivy Telegram Community and make our app better :)" MaxLineLength:CustomerJourneyLogic.kt$CustomerJourneyLogic.Companion$description = "It looks like that you're enjoying Ivy Wallet! Feel free join our invite-only Ivy Telegram Community and make our app better :)" MaxLineLength:DetektConfigurationAccessors.kt$fun MaxLineLength:DetektPluginsConfigurationAccessors.kt$fun @@ -1779,29 +736,24 @@ MaxLineLength:EditTransactionViewModel.kt$EditTransactionViewModel$?: MaxLineLength:FortuneCitySteps.kt$articleUrl = "https://fourdesire.helpshift.com/hc/en/5-fortune-city/faq/242-can-i-export-my-fortune-city-records/" MaxLineLength:GitHubBackupScreen.kt$"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token" - MaxLineLength:HomeHeader.kt$text = if (name.isNotNullOrBlank()) stringResource(R.string.hi_name, name) else stringResource(R.string.hi) - MaxLineLength:HomeHeader.kt$text = stringResource(R.string.cashflow, (if (cashflow > 0) "+" else ""), cashflow.format(currency), currency) - MaxLineLength:ItemStatisticViewModel.kt$ItemStatisticViewModel$//unspecifiedCategory==false is explicitly checked to accommodate for a temp AccountTransfers Category during Reports Screen - MaxLineLength:IvyBilling.kt$IvyBilling$Timber.i("Acknowledge purchase result, code=${acknowledgeResult.responseCode}: ${acknowledgeResult.debugMessage}") - MaxLineLength:IvyChecklistTextField.kt$value = TextFieldValue("Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light.") - MaxLineLength:IvyDescriptionTextField.kt$value = TextFieldValue("Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light.") - MaxLineLength:LoanModal.kt$//enabled = nameTextFieldValue.text.isNotNullOrBlank() && amount > 0 && ((createLoanTrans && selectedAcc != null) || !createLoanTrans) + MaxLineLength:ItemStatisticViewModel.kt$ItemStatisticViewModel$// unspecifiedCategory==false is explicitly checked to accommodate for a temp AccountTransfers Category during Reports Screen + MaxLineLength:IvyBilling.kt$IvyBilling$"Acknowledge purchase result, code=${acknowledgeResult.responseCode}: ${acknowledgeResult.debugMessage}" + MaxLineLength:IvyChecklistTextField.kt$"Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light." + MaxLineLength:IvyDescriptionTextField.kt$"Cur habitio favere? Sunt navises promissio grandis, primus accolaes. Yes, there is chaos, it contacts with light." + MaxLineLength:LoanModal.kt$// enabled = nameTextFieldValue.text.isNotNullOrBlank() && amount > 0 && ((createLoanTrans && selectedAcc != null) || !createLoanTrans) MaxLineLength:MainBottomBar.kt$y = buttonCenterY.roundToInt() - 48.dp.roundToPx() - placealbe.height - FAB_BUTTON_SIZE.roundToPx() MaxLineLength:Migration105to106_TrnRecurringRules.kt$Migration105to106_TrnRecurringRules$"CREATE TABLE IF NOT EXISTS `transaction_recurring_rules` (`startDate` INTEGER NOT NULL, `intervalSeconds` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" - MaxLineLength:Migration106to107_Wishlist.kt$Migration106to107_Wishlist$database.execSQL("CREATE TABLE IF NOT EXISTS `wishlist_items` (`name` TEXT NOT NULL, `price` REAL NOT NULL, `accountId` TEXT NOT NULL, `categoryId` TEXT, `description` TEXT, `plannedDateTime` INTEGER, `orderNum` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - MaxLineLength:Migration108to109_Users.kt$Migration108to109_Users$database.execSQL("CREATE TABLE IF NOT EXISTS `users` (`email` TEXT NOT NULL, `authProviderType` TEXT NOT NULL, `firstName` TEXT NOT NULL, `lastName` TEXT, `profilePicture` TEXT, `color` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - MaxLineLength:Migration109to110_PlannedPayments.kt$Migration109to110_PlannedPayments$database.execSQL("CREATE TABLE IF NOT EXISTS `transaction_recurring_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - MaxLineLength:Migration110to111_PlannedPaymentRule.kt$Migration110to111_PlannedPaymentRule$database.execSQL("CREATE TABLE IF NOT EXISTS `planned_payment_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - MaxLineLength:Migration112to113_ExchangeRates.kt$Migration112to113_ExchangeRates$database.execSQL("CREATE TABLE IF NOT EXISTS `exchange_rates` (`baseCurrency` TEXT NOT NULL, `currency` TEXT NOT NULL, `rate` REAL NOT NULL, PRIMARY KEY(`baseCurrency`, `currency`))") - MaxLineLength:Migration117to118_Budgets.kt$Migration117to118_Budgets$database.execSQL("CREATE TABLE IF NOT EXISTS `${tableName}` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryIdsSerialized` TEXT, `accountIdsSerialized` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `orderId` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - MaxLineLength:Migration118to119_Loans.kt$Migration118to119_Loans$database.execSQL("CREATE TABLE IF NOT EXISTS `$LOANS_TABLE` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `type` TEXT NOT NULL, `color` INTEGER NOT NULL, `icon` TEXT, `orderNum` REAL NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") - MaxLineLength:Migration118to119_Loans.kt$Migration118to119_Loans$database.execSQL("CREATE TABLE IF NOT EXISTS `$LOAN_RECORDS_TABLE` (`loanId` TEXT NOT NULL, `amount` REAL NOT NULL, `note` TEXT, `dateTime` INTEGER NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))") + MaxLineLength:Migration106to107_Wishlist.kt$Migration106to107_Wishlist$"CREATE TABLE IF NOT EXISTS `wishlist_items` (`name` TEXT NOT NULL, `price` REAL NOT NULL, `accountId` TEXT NOT NULL, `categoryId` TEXT, `description` TEXT, `plannedDateTime` INTEGER, `orderNum` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + MaxLineLength:Migration108to109_Users.kt$Migration108to109_Users$"CREATE TABLE IF NOT EXISTS `users` (`email` TEXT NOT NULL, `authProviderType` TEXT NOT NULL, `firstName` TEXT NOT NULL, `lastName` TEXT, `profilePicture` TEXT, `color` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + MaxLineLength:Migration109to110_PlannedPayments.kt$Migration109to110_PlannedPayments$"CREATE TABLE IF NOT EXISTS `transaction_recurring_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + MaxLineLength:Migration110to111_PlannedPaymentRule.kt$Migration110to111_PlannedPaymentRule$"CREATE TABLE IF NOT EXISTS `planned_payment_rules` (`startDate` INTEGER, `intervalN` INTEGER, `intervalType` TEXT, `oneTime` INTEGER NOT NULL, `type` TEXT NOT NULL, `accountId` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryId` TEXT, `title` TEXT, `description` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + MaxLineLength:Migration112to113_ExchangeRates.kt$Migration112to113_ExchangeRates$"CREATE TABLE IF NOT EXISTS `exchange_rates` (`baseCurrency` TEXT NOT NULL, `currency` TEXT NOT NULL, `rate` REAL NOT NULL, PRIMARY KEY(`baseCurrency`, `currency`))" + MaxLineLength:Migration117to118_Budgets.kt$Migration117to118_Budgets$"CREATE TABLE IF NOT EXISTS `$tableName` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `categoryIdsSerialized` TEXT, `accountIdsSerialized` TEXT, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `orderId` REAL NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + MaxLineLength:Migration118to119_Loans.kt$Migration118to119_Loans$"CREATE TABLE IF NOT EXISTS `$LOANS_TABLE` (`name` TEXT NOT NULL, `amount` REAL NOT NULL, `type` TEXT NOT NULL, `color` INTEGER NOT NULL, `icon` TEXT, `orderNum` REAL NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" + MaxLineLength:Migration118to119_Loans.kt$Migration118to119_Loans$"CREATE TABLE IF NOT EXISTS `$LOAN_RECORDS_TABLE` (`loanId` TEXT NOT NULL, `amount` REAL NOT NULL, `note` TEXT, `dateTime` INTEGER NOT NULL, `isSynced` INTEGER NOT NULL, `isDeleted` INTEGER NOT NULL, `id` TEXT NOT NULL, PRIMARY KEY(`id`))" MaxLineLength:OnboardingAccounts.kt$text = if (itemsCount == 0) "Up to $freeItemsCount free $itemLabelPlural" else "$freeItemsLeft $itemLabelPlural left" - MaxLineLength:OnboardingPrivacyTC.kt$Timber.i("dragAmount=$dragAmount, offsetX=$offsetX, newOffsetX=$newOffsetX, maxOffset=$maxOffsetX") MaxLineLength:PieChartAct.kt$PieChartAct$if - MaxLineLength:PieChartStatisticBottomBar.kt$text = if (isIncome) stringResource(id = R.string.add_income) else stringResource(id = R.string.add_expense) - MaxLineLength:PieChartStatisticScreen.kt$text - MaxLineLength:PlannedPaymentRuleDao.kt$PlannedPaymentRuleDao$@Query("SELECT * FROM planned_payment_rules WHERE isDeleted = 0 AND oneTime = :oneTime ORDER BY amount DESC, startDate ASC") + MaxLineLength:PlannedPaymentRuleDao.kt$PlannedPaymentRuleDao$"SELECT * FROM planned_payment_rules WHERE isDeleted = 0 AND oneTime = :oneTime ORDER BY amount DESC, startDate ASC" MaxLineLength:PlansSheet.kt$} MaxLineLength:PluginSpecBuilders.kt$* The `com.android.internal.asset-pack-bundle` plugin implemented by [com.android.build.gradle.internal.plugins.AssetPackBundlePlugin]. MaxLineLength:PluginSpecBuilders.kt$* The `com.android.internal.asset-pack` plugin implemented by [com.android.build.gradle.internal.plugins.AssetPackPlugin]. @@ -1843,33 +795,30 @@ MaxLineLength:PluginSpecBuilders.kt$* The `org.jetbrains.kotlin.platform.jvm` plugin implemented by [org.jetbrains.kotlin.gradle.plugin.KotlinPlatformJvmPlugin]. MaxLineLength:PluginSpecBuilders.kt$* The `org.jetbrains.kotlin.plugin.parcelize` plugin implemented by [org.jetbrains.kotlin.gradle.internal.ParcelizeSubplugin]. MaxLineLength:PluginSpecBuilders.kt$* The `org.jetbrains.kotlin.plugin.scripting` plugin implemented by [org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin]. - MaxLineLength:PrimaryAttributeColumn.kt$"Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.\n" MaxLineLength:PrimaryAttributeColumn.kt$"See https://docs.gradle.org/7.0-rc-1/userguide/command_line_interface.html#sec:command_line_warnings" MaxLineLength:ReportViewModel.kt$ReportViewModel$if (stateVal().treatTransfersAsIncExp) historyIncomeExpense.value.transferExpense.toDouble() else 0.0 MaxLineLength:ReportViewModel.kt$ReportViewModel$return incomeExpenseTransferPair.income + incomeExpenseTransferPair.transferIncome - incomeExpenseTransferPair.expense - incomeExpenseTransferPair.transferExpense - MaxLineLength:SettingsViewModel.kt$SettingsViewModel$e.sendToCrashlytics("Settings - GOOGLE_SIGN_IN ERROR: generic exception when logging with GOOGLE") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND accountId = :accountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND type = :type ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId = :categoryId) ORDER BY dateTime DESC, dueDate ASC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId IS NULL) ORDER BY dateTime DESC, dueDate ASC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND accountId = :accountId ORDER BY dateTime DESC, dueDate ASC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate ORDER BY dueDate ASC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND toAccountId = :toAccountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC") - MaxLineLength:TransactionDao.kt$TransactionDao$@Query("UPDATE transactions SET isDeleted = 1, isSynced = 0 WHERE recurringRuleId = :recurringRuleId AND dateTime IS NULL") - MaxLineLength:TransactionReminderWorker.kt$TransactionReminderWorker$//Double check is needed because the user can switch off notifications in settings after it has been scheduled to show notifications for the next day + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId = :categoryId) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND (categoryId IS NULL) AND type = :type AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND accountId = :accountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND recurringRuleId = :recurringRuleId ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate AND type = :type ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId = :categoryId) ORDER BY dateTime DESC, dueDate ASC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND (categoryId IS NULL) ORDER BY dateTime DESC, dueDate ASC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate AND accountId = :accountId ORDER BY dateTime DESC, dueDate ASC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND dueDate >= :startDate AND dueDate <= :endDate ORDER BY dueDate ASC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND toAccountId = :toAccountId AND dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and accountId = :accountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"SELECT * FROM transactions WHERE isDeleted = 0 AND type = :type and toAccountId = :toAccountId and dateTime >= :startDate AND dateTime <= :endDate ORDER BY dateTime DESC" + MaxLineLength:TransactionDao.kt$TransactionDao$"UPDATE transactions SET isDeleted = 1, isSynced = 0 WHERE recurringRuleId = :recurringRuleId AND dateTime IS NULL" + MaxLineLength:TransactionReminderWorker.kt$TransactionReminderWorker$// Double check is needed because the user can switch off notifications in settings after it has been scheduled to show notifications for the next day MaxLineLength:UIExt.kt$if (pIsDark) lFlags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv() else lFlags or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR - MaxLineLength:ViewPager.kt$Timber.d("onDragStopped(): velocity = $velocity, finalVelocity = $finalVelocity, currentPageOffset = ${state.currentPageOffset}") + MaxLineLength:ViewPager.kt$"onDragStopped(): velocity = $velocity, finalVelocity = $finalVelocity, currentPageOffset = ${state.currentPageOffset}" MaxLineLength:WalletByBudgetBakersSteps.kt$articleUrl = "https://support.budgetbakers.com/hc/en-us/articles/209753325-How-to-EXPORT-transactions-from-Wallet" MaximumLineLength:Accessors32ikgp1isdd8mwexzgbe6rirl.kt$ MaximumLineLength:Accessors32ikgp1isdd8mwexzgbe6rirl.kt$fun @@ -1885,9 +834,6 @@ MaximumLineLength:Accessorsbtc8iwv8u9b0f38ikfmodj8ns.kt$ MaximumLineLength:Accessorseessl0al0otcsbyqqruvoncpd.kt$ MaximumLineLength:Accessorseessl0al0otcsbyqqruvoncpd.kt$fun - MaximumLineLength:AccountModal.kt$ - MaximumLineLength:BalanceViewModel.kt$BalanceViewModel$ - MaximumLineLength:BudgetModal.kt$ MaximumLineLength:CustomerJourneyLogic.kt$CustomerJourneyLogic.Companion$ MaximumLineLength:DetektConfigurationAccessors.kt$fun MaximumLineLength:DetektPluginsConfigurationAccessors.kt$fun @@ -1896,7 +842,6 @@ MaximumLineLength:EditTransactionViewModel.kt$EditTransactionViewModel$ MaximumLineLength:FortuneCitySteps.kt$ MaximumLineLength:GitHubBackupScreen.kt$ - MaximumLineLength:HomeHeader.kt$ MaximumLineLength:IvyBilling.kt$IvyBilling$ MaximumLineLength:IvyChecklistTextField.kt$ MaximumLineLength:IvyDescriptionTextField.kt$ @@ -1910,15 +855,11 @@ MaximumLineLength:Migration117to118_Budgets.kt$Migration117to118_Budgets$ MaximumLineLength:Migration118to119_Loans.kt$Migration118to119_Loans$ MaximumLineLength:OnboardingAccounts.kt$ - MaximumLineLength:OnboardingPrivacyTC.kt$ MaximumLineLength:PieChartAct.kt$PieChartAct$ - MaximumLineLength:PieChartStatisticBottomBar.kt$ - MaximumLineLength:PieChartStatisticScreen.kt$ MaximumLineLength:PlannedPaymentRuleDao.kt$PlannedPaymentRuleDao$ MaximumLineLength:PlansSheet.kt$ MaximumLineLength:PrimaryAttributeColumn.kt$ MaximumLineLength:ReportViewModel.kt$ReportViewModel$ - MaximumLineLength:SettingsViewModel.kt$SettingsViewModel$ MaximumLineLength:TransactionDao.kt$TransactionDao$ MaximumLineLength:UIExt.kt$ MaximumLineLength:ViewPager.kt$ @@ -2101,185 +1042,12 @@ ModifierReused:ItemIcon.kt$ItemIconM( modifier = modifier, iconName = iconName, tint = tint, Default = { Image( modifier = modifier, painter = painterResource(id = defaultIcon), colorFilter = ColorFilter.tint(tint), contentDescription = "item icon" ) } ) ModifierReused:ItemIcon.kt$ItemIconS( modifier = modifier, iconName = iconName, tint = tint, Default = { Image( modifier = modifier, painter = painterResource(id = defaultIcon), colorFilter = ColorFilter.tint(tint), contentDescription = "item icon" ) } ) ModifierWithoutDefault:IvyLineChart.kt$modifier - MultiLineIfElse:AccValueFunctions.kt$AccountValueFunctions$BigDecimal.ONE - MultiLineIfElse:AccValueFunctions.kt$AccountValueFunctions$BigDecimal.ZERO - MultiLineIfElse:AccValueFunctions.kt$AccountValueFunctions$amount - MultiLineIfElse:AccValueFunctions.kt$AccountValueFunctions$toAmount - MultiLineIfElse:AmountFormatting.kt$"" - MultiLineIfElse:AmountFormatting.kt$"${localDecimalSeparator()}$decimalPartFormatted" - MultiLineIfElse:AmountFormatting.kt$numberStringWithZeros - MultiLineIfElse:AmountFormatting.kt$numberStringWithZeros.substring(0, lastTrailingZeroIndex) - MultiLineIfElse:AmountModal.kt$"" - MultiLineIfElse:AmountModal.kt$"$amount${localDecimalSeparator()}" - MultiLineIfElse:AmountModal.kt$"0${localDecimalSeparator()}" - MultiLineIfElse:AmountModal.kt$"calc_key_${value}" - MultiLineIfElse:AmountModal.kt$"calc_key_decimal_separator" - MultiLineIfElse:AmountModal.kt$"key_${value}" - MultiLineIfElse:AmountModal.kt$"key_decimal_separator" - MultiLineIfElse:AmountModal.kt$initialAmount?.takeIf { it != 0.0 }?.format(currency) ?: "" - MultiLineIfElse:AmountModal.kt$initialAmount?.takeIf { it != 0.0 }?.format(decimalCountMax) ?: "" - MultiLineIfElse:BackupLogic.kt$BackupLogic$Pair(accountsFirst.id, accountsZero.id) - MultiLineIfElse:BackupLogic.kt$BackupLogic$Pair(accountsZero.id, accountsFirst.id) - MultiLineIfElse:BackupLogic.kt$BackupLogic$Pair(categoryFirst.id, categoryZero.id) - MultiLineIfElse:BackupLogic.kt$BackupLogic$Pair(categoryZero.id, categoryFirst.id) - MultiLineIfElse:BackupLogic.kt$BackupLogic$error("Couldn't unzip") - MultiLineIfElse:BackupLogic.kt$BackupLogic$error("Didn't unzip exactly one file.") - MultiLineIfElse:BackupLogic.kt$BackupLogic$return false - MultiLineIfElse:BackupLogic.kt$BackupLogic$return@scopedIOThread emptyList() - MultiLineIfElse:BudgetScreen.kt$"" - MultiLineIfElse:BudgetScreen.kt$stringResource( R.string.budget_info_both, categoryBudgetText, appBudgetMaxText ) - MultiLineIfElse:BudgetScreen.kt$stringResource(R.string.budget_info, categoryBudgetText, appBudgetMaxText) - MultiLineIfElse:BufferBattery.kt$stringResource( R.string.left_to_spend) - MultiLineIfElse:BufferBattery.kt$stringResource(R.string.buffer_exceeded_by) - MultiLineIfElse:CSVImporter.kt$CSVImporter$0.0 - MultiLineIfElse:CSVImporter.kt$CSVImporter$index / rowsCount.toDouble() - MultiLineIfElse:CSVImporter.kt$CSVImporter$index / transactions.size.toDouble() - MultiLineIfElse:CSVImporter.kt$CSVImporter$null - MultiLineIfElse:CSVImporterV2.kt$CSVImporterV2$0.0 - MultiLineIfElse:CSVImporterV2.kt$CSVImporterV2$index / rowsCount.toDouble() - MultiLineIfElse:CSVImporterV2.kt$CSVImporterV2$index / transactions.size.toDouble() - MultiLineIfElse:CSVImporterV2.kt$CSVImporterV2$null - MultiLineIfElse:CSVMapper.kt$CSVMapper$TransactionType.EXPENSE - MultiLineIfElse:CSVMapper.kt$CSVMapper$TransactionType.INCOME - MultiLineIfElse:CSVViewModel.kt$CSVViewModel$null - MultiLineIfElse:CatValueFunctions.kt$CategoryValueFunctions$BigDecimal.ZERO - MultiLineIfElse:CategoryIncomeWithAccountFiltersAct.kt$CategoryIncomeWithAccountFiltersAct$accountFilterSet.contains(it.accountId) - MultiLineIfElse:CategoryIncomeWithAccountFiltersAct.kt$CategoryIncomeWithAccountFiltersAct$true - MultiLineIfElse:CategoryModal.kt$stringResource( R.string.create_category ) - MultiLineIfElse:CategoryModal.kt$stringResource(R.string.edit_category) - MultiLineIfElse:ChooseCategoryModal.kt$UI.colors.pureInverse - MultiLineIfElse:ChooseCategoryModal.kt$findContrastTextColor(categoryColor) - MultiLineIfElse:ChoosePeriodModal.kt$null - MultiLineIfElse:ChoosePeriodModal.kt$otherEndDateTime ?.toLocalDate() ?.minusDays(1) - MultiLineIfElse:ChoosePeriodModal.kt$otherEndDateTime ?.toLocalDate() ?.plusDays(1) - MultiLineIfElse:Compose.kt$this - MultiLineIfElse:ComposeExt.kt$this - MultiLineIfElse:CurrencyPicker.kt$keyboardShownInsetDp + lastItemSpacer - MultiLineIfElse:CurrencyPicker.kt$lastItemSpacer - MultiLineIfElse:DateExt.kt$"$closeDay, ${this.formatLocal(patternNoWeekDay, zone)}" - MultiLineIfElse:DateExt.kt$this.formatLocal( pattern, zone ) - MultiLineIfElse:EditBottomSheet.kt$mutableStateOf("${convertedAmount.format(2)} $convertedAmountCurrencyCode") - MultiLineIfElse:EditBottomSheet.kt$mutableStateOf(null) - MultiLineIfElse:EditTransactionScreen.kt$onAccountChanged(it) - MultiLineIfElse:EditTransactionScreen.kt$stringResource( R.string.pay ) - MultiLineIfElse:EditTransactionScreen.kt$stringResource(R.string.get) - MultiLineIfElse:EditTransactionViewModel.kt$EditTransactionViewModel$"* This transaction is associated with Loan : ${loan.name}" - MultiLineIfElse:EditTransactionViewModel.kt$EditTransactionViewModel$"* This transaction is associated with a Loan Record of Loan : ${loan.name}" - MultiLineIfElse:EditTransactionViewModel.kt$EditTransactionViewModel$"Note: This transaction is associated with a Loan Record of Loan : ${loan.name}\n" + "You are trying to change the account associated with the loan record to an account of different currency" + "\n The Loan Record will be re-calculated based on today's currency exchanges rates" - MultiLineIfElse:EditTransactionViewModel.kt$EditTransactionViewModel$CustomExchangeRateState() - MultiLineIfElse:EditTransactionViewModel.kt$EditTransactionViewModel$customExchangeRateState.value.exchangeRate - MultiLineIfElse:EditTransactionViewModel.kt$EditTransactionViewModel$exchangeRatesLogic.convertAmount( baseCurrency = baseUserCurrency, amount = 1.0, fromCurrency = fromAccCurrencyCode, toCurrency = toAccCurrencyCode ) - MultiLineIfElse:EditTransactionViewModel.kt$EditTransactionViewModel$return EditTransactionDisplayLoan() - MultiLineIfElse:FoldTransactions.kt$sum - MultiLineIfElse:FoldTransactions.kt$sumTransactionsInternal( valueFunctionArgument = valueFunctionArgument, transactions = transactions.drop(1), valueFunctions = valueFunctions, sum = sum.mapIndexedNel { index, sumValue -> val valueFunction = valueFunctions[index] sumValue + valueFunction(transactions.first(), valueFunctionArgument) } ) - MultiLineIfElse:FoldTransactions.kt$sumTransactionsSuspendInternal( valueFunctionArgument = valueFunctionArgument, transactions = transactions.drop(1), valueFunctions = valueFunctions, sum = sum.mapIndexedNelSuspend { index, sumValue -> val valueFunction = valueFunctions[index] sumValue + valueFunction(transactions.first(), valueFunctionArgument) } ) - MultiLineIfElse:GitHubBackupCard.kt$LocalContentColor.current - MultiLineIfElse:GitHubBackupCard.kt$MaterialTheme.colorScheme.error - MultiLineIfElse:GitHubBackupViewModel.kt$GitHubBackupViewModel$null - MultiLineIfElse:HomeHeader.kt$onBalanceClick() - MultiLineIfElse:HomeHeader.kt$onHiddenBalanceClick() - MultiLineIfElse:HomeViewModel.kt$HomeViewModel$stateVal() - MultiLineIfElse:ImportResultUI.kt$(result.transactionsImported / result.rowsFound.toDouble()) * 100 - MultiLineIfElse:ImportResultUI.kt$0.0 - MultiLineIfElse:ImportViewModel.kt$ImportViewModel$restoreCSVFile(fileUri = fileUri, importType = importType) - MultiLineIfElse:IntervalPickerRow.kt$Gradient .solid(UI.colors.medium) .asHorizontalBrush() - MultiLineIfElse:IntervalPickerRow.kt$GradientIvy.asHorizontalBrush() - MultiLineIfElse:ItemIcon.kt$ContentScale.Fit - MultiLineIfElse:ItemIcon.kt$ContentScale.None - MultiLineIfElse:ItemStatisticScreen.kt$MediumBlack.copy(alpha = 0.9f) - MultiLineIfElse:ItemStatisticScreen.kt$MediumWhite.copy(alpha = 0.9f) - MultiLineIfElse:ItemStatisticScreen.kt$balancePrefix( income = income, expenses = expenses ) - MultiLineIfElse:ItemStatisticScreen.kt$choosePeriodModal = ChoosePeriodModalData( period = period ) - MultiLineIfElse:ItemStatisticScreen.kt$null - MultiLineIfElse:IvyBorderButton.kt$SolidColor(UI.colors.gray) - MultiLineIfElse:IvyBorderButton.kt$backgroundGradient.asHorizontalBrush() - MultiLineIfElse:IvyButton.kt$SolidColor(UI.colors.gray) - MultiLineIfElse:IvyButton.kt$backgroundGradient.asHorizontalBrush() - MultiLineIfElse:IvyCircleButton.kt$backgroundGradient.asHorizontalBrush() - MultiLineIfElse:IvyCircleButton.kt$backgroundGradient.asVerticalBrush() - MultiLineIfElse:IvyTheme.kt$darkColorScheme() - MultiLineIfElse:IvyTheme.kt$lightColorScheme() - MultiLineIfElse:Keyboard.kt$0.dp - MultiLineIfElse:Keyboard.kt$keyboardOnlyWindowInsets().bottom.toDensityDp() - MultiLineIfElse:LTLoanMapper.kt$LTLoanMapper$return@computationThread - MultiLineIfElse:Loan.kt$Loan$stringRes( R.string.lent_uppercase) - MultiLineIfElse:Loan.kt$Loan$stringRes(R.string.borrowed_uppercase) - MultiLineIfElse:LoanDetailsScreen.kt$IvyButton( modifier = Modifier.padding(end = 16.dp, top = 12.dp), backgroundGradient = Gradient.solid(loan.color.toComposeColor()), hasGlow = false, iconTint = contrastColor, text = selectedLoanAccount.name, iconStart = getCustomIconIdS( iconName = selectedLoanAccount.icon, defaultIcon = R.drawable.ic_custom_account_s ), textStyle = UI.typo.c.style( color = contrastColor, fontWeight = FontWeight.ExtraBold ), padding = 8.dp, iconEdgePadding = 10.dp ) { nav.navigateTo( ItemStatistic( accountId = selectedLoanAccount.id, categoryId = null ) ) } - MultiLineIfElse:LoanDetailsScreen.kt$MediumBlack.copy(alpha = 0.9f) - MultiLineIfElse:LoanDetailsScreen.kt$MediumWhite.copy(alpha = 0.9f) - MultiLineIfElse:LoanDetailsScreen.kt$Spacer(Modifier.height(12.dp)) - MultiLineIfElse:LoanDetailsScreen.kt$Spacer(Modifier.height(16.dp)) - MultiLineIfElse:LoanDetailsViewModel.kt$LoanDetailsViewModel$loanInterestAmtPaid += convertedAmount - MultiLineIfElse:LoanRecordModal.kt$save( loanRecord = initialRecord, noteTextFieldValue = noteTextFieldValue, amount = amount, dateTime = dateTime, loanRecordInterest = loanInterest, selectedAccount = selectedAcc, createLoanRecordTransaction = createLoanRecordTrans, reCalculateAmount = reCalculate, onCreate = onCreate, onEdit = onEdit, dismiss = dismiss, ) - MultiLineIfElse:LoanRecordModal.kt$stringResource( R.string.new_record) - MultiLineIfElse:LoanRecordModal.kt$stringResource(R.string.edit_record) - MultiLineIfElse:LoanTransactionsCore.kt$LoanTransactionsCore$if (loanType == LoanType.BORROW) TransactionType.EXPENSE else TransactionType.INCOME - MultiLineIfElse:LoanTransactionsCore.kt$LoanTransactionsCore$if (loanType == LoanType.BORROW) TransactionType.INCOME else TransactionType.EXPENSE - MultiLineIfElse:LoanTransactionsCore.kt$LoanTransactionsCore$ioThread { loanCategory?.let { categoryDao.save(it.toEntity()) } } - MultiLineIfElse:LoanTransactionsCore.kt$LoanTransactionsCore$listOf(transactionDao.findLoanRecordTransaction(loanRecordId!!)).map { it?.toDomain() } - MultiLineIfElse:LoanTransactionsCore.kt$LoanTransactionsCore$null - MultiLineIfElse:LoanTransactionsCore.kt$LoanTransactionsCore$return - MultiLineIfElse:LoanTransactionsCore.kt$LoanTransactionsCore$return existingCategoryId - MultiLineIfElse:LoanTransactionsCore.kt$LoanTransactionsCore$transactionDao.findAllByLoanId(loanId = loanId) .map { it.toDomain() } - MultiLineIfElse:LoanTransactionsLogic.kt$LoanTransactionsLogic$return@computationThread - MultiLineIfElse:MonthPickerModal.kt$UI.colors.pureInverse - MultiLineIfElse:MonthPickerModal.kt$findContrastTextColor(monthColor) - MultiLineIfElse:OnboardingComponents.kt$SolidColor(UI.colors.gray) - MultiLineIfElse:OnboardingComponents.kt$backgroundGradient.asHorizontalBrush() - MultiLineIfElse:PieChart.kt$PieChartView$360 - Math.toDegrees(acos((-centerY * y2) / (d1 * d2))) - MultiLineIfElse:PieChartAct.kt$PieChartAct$BigDecimal.ZERO - MultiLineIfElse:PieChartAct.kt$PieChartAct$accountIdFilterSet.contains(it.accountId) - MultiLineIfElse:PieChartAct.kt$PieChartAct$accountIdFilterSet.contains(it.toAccountId) - MultiLineIfElse:PieChartAct.kt$PieChartAct$allAccounts then ::filterExcluded - MultiLineIfElse:PieChartAct.kt$PieChartAct$allAccounts thenFilter { accountIdFilterList.contains(it.id) } - MultiLineIfElse:PieChartAct.kt$PieChartAct$categoryAmounts then { it.sortedByDescending { ca -> ca.amount } } - MultiLineIfElse:PieChartAct.kt$PieChartAct$emptyList() - MultiLineIfElse:PieChartAct.kt$PieChartAct$incExpQuad.transferExpense - MultiLineIfElse:PieChartAct.kt$PieChartAct$incExpQuad.transferExpense.toDouble() - MultiLineIfElse:PieChartAct.kt$PieChartAct$incExpQuad.transferIncome - MultiLineIfElse:PieChartAct.kt$PieChartAct$incExpQuad.transferIncome.toDouble() - MultiLineIfElse:PieChartAct.kt$PieChartAct$trans.filter { it.type == type && it.categoryId == category?.id } - MultiLineIfElse:PieChartStatisticScreen.kt$GradientGreen - MultiLineIfElse:PieChartStatisticScreen.kt$UI.colors.pure - MultiLineIfElse:PieChartStatisticScreen.kt$White - MultiLineIfElse:PieChartStatisticScreen.kt$gradientExpenses() - MultiLineIfElse:PieChartStatisticScreen.kt$stringResource( R.string.income ) - MultiLineIfElse:PieChartStatisticScreen.kt$stringResource(R.string.expenses) - MultiLineIfElse:PieChartStatisticScreen.kt$stringResource(R.string.percent, "0") - MultiLineIfElse:PieChartStatisticScreen.kt$stringResource(R.string.percent, ((amount / totalAmount) * 100).format(2)) - MultiLineIfElse:PieChartStatisticViewModel.kt$PieChartStatisticViewModel$ChoosePeriodModalData(period = timePeriod) - MultiLineIfElse:PieChartStatisticViewModel.kt$PieChartStatisticViewModel$SelectedCategory(category = clickedCategory) - MultiLineIfElse:PieChartStatisticViewModel.kt$PieChartStatisticViewModel$null + MultiLineIfElse:BudgetModal.kt$stringResource( R.string.edit_budget ) + MultiLineIfElse:BudgetModal.kt$stringResource(R.string.create_budget) MultiLineIfElse:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$paidTransactions.forEach { paidTransaction -> transactionDao.flagDeleted(paidTransaction.id) } MultiLineIfElse:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$paidTransactions.forEach { paidTransaction -> transactionDao.save(paidTransaction.toEntity()) } MultiLineIfElse:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$transactionDao.flagDeleted(paidTransaction.id) MultiLineIfElse:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$transactionDao.save(paidTransaction.toEntity()) - MultiLineIfElse:PlansSheet.kt$UI.colors.pureInverse - MultiLineIfElse:PlansSheet.kt$White - MultiLineIfElse:PlansSheet.kt$null - MultiLineIfElse:ReportScreen.kt$Spacer(Modifier.height(32.dp)) - MultiLineIfElse:ReportScreen.kt$nav.navigateTo( PieChartStatistic( type = TransactionType.EXPENSE, transactions = state.transactions, accountList = state.accountIdFilters, treatTransfersAsIncomeExpense = state.treatTransfersAsIncExp ) ) - MultiLineIfElse:ReportScreen.kt$nav.navigateTo( PieChartStatistic( type = TransactionType.INCOME, transactions = state.transactions, accountList = state.accountIdFilters, treatTransfersAsIncomeExpense = state.treatTransfersAsIncExp ) ) - MultiLineIfElse:RootActivity.kt$RootActivity$viewModel.checkUserInactiveTimeStatus() - MultiLineIfElse:RootActivity.kt$RootActivity$viewModel.startUserInactiveTimeCounter() - MultiLineIfElse:TransactionCard.kt$Orange - MultiLineIfElse:TransactionCard.kt$UI.colors.gray - MultiLineIfElse:TransactionReminderLogic.kt$TransactionReminderLogic$return - MultiLineIfElse:Transactions.kt$Gradient( Black, Black ) - MultiLineIfElse:Transactions.kt$Gradient(White, White) - MultiLineIfElse:UtilExt.kt$it.titlecase( Locale.getDefault() ) - MultiLineIfElse:UtilExt.kt$it.toString() - MultiLineIfElse:ViewPager.kt$(state.currentPage + 1).coerceAtMost(state.maxPage) - MultiLineIfElse:ViewPager.kt$(state.currentPage - 1).coerceAtLeast(state.minPage) - MultiLineIfElse:ViewPager.kt$1f - abs(currentPageOffset) - MultiLineIfElse:ViewPager.kt$abs(currentPageOffset) - MultiLineIfElse:ViewPager.kt$currentPage - MultiLineIfElse:WalletCharts.kt$accumulator - MultiLineIfElse:ZipUtils.kt$"$it${File.separator}" - MultiLineIfElse:ZipUtils.kt$(file.parent!!).substring( file.parent!!.lastIndexOf("/") ) + "/" + file.name - MultiLineIfElse:ZipUtils.kt$file.name - MultiLineIfElse:ZipUtils.kt$it - MultiLineIfElse:ZipUtils.kt$throw IllegalStateException("Location file must be directory or not exist") MultipleEmitters:AccountsTab.kt$AccountCard MultipleEmitters:AmountCurrency.kt$AmountCurrencyB1 MultipleEmitters:AmountCurrency.kt$AmountCurrencyCaption @@ -2346,568 +1114,7 @@ MultipleEmitters:WalletCharts.kt$BalanceChart MutableParams:HomeTab.kt$hideBalanceRowState NestedBlockDepth:AccValueFunctions.kt$AccountValueFunctions$fun balance( transaction: Transaction, accountId: UUID ): BigDecimal - NewLineAtEndOfFile:AccValueFunctions.kt$com.ivy.wallet.domain.pure.transaction.AccValueFunctions.kt - NewLineAtEndOfFile:Account.kt$com.ivy.wallet.domain.data.core.Account.kt - NewLineAtEndOfFile:AccountBalance.kt$com.ivy.wallet.ui.onboarding.model.AccountBalance.kt - NewLineAtEndOfFile:AccountByIdAct.kt$com.ivy.wallet.domain.action.account.AccountByIdAct.kt - NewLineAtEndOfFile:AccountCharts.kt$com.ivy.wallet.ui.charts.charts.AccountCharts.kt - NewLineAtEndOfFile:AccountCreator.kt$com.ivy.wallet.domain.deprecated.logic.AccountCreator.kt - NewLineAtEndOfFile:AccountDao.kt$com.ivy.wallet.io.persistence.dao.AccountDao.kt - NewLineAtEndOfFile:AccountData.kt$com.ivy.wallet.ui.accounts.AccountData.kt - NewLineAtEndOfFile:AccountDataAct.kt$com.ivy.wallet.domain.action.viewmodel.account.AccountDataAct.kt - NewLineAtEndOfFile:AccountEntity.kt$com.ivy.wallet.io.persistence.data.AccountEntity.kt - NewLineAtEndOfFile:AccountFunctions.kt$com.ivy.wallet.domain.pure.account.AccountFunctions.kt - NewLineAtEndOfFile:AccountModal.kt$com.ivy.wallet.ui.theme.modal.edit.AccountModal.kt - NewLineAtEndOfFile:AccountState.kt$com.ivy.wallet.ui.accounts.AccountState.kt - NewLineAtEndOfFile:AccountsAct.kt$com.ivy.wallet.domain.action.account.AccountsAct.kt - NewLineAtEndOfFile:AccountsEvent.kt$com.ivy.wallet.ui.accounts.AccountsEvent.kt - NewLineAtEndOfFile:AccountsUpdatedEvent.kt$com.ivy.wallet.domain.event.AccountsUpdatedEvent.kt - NewLineAtEndOfFile:AccountsViewModel.kt$com.ivy.wallet.ui.accounts.AccountsViewModel.kt - NewLineAtEndOfFile:ActivityResultExt.kt$com.ivy.wallet.utils.ActivityResultExt.kt - NewLineAtEndOfFile:AddKeywordModal.kt$com.ivy.wallet.ui.theme.modal.AddKeywordModal.kt - NewLineAtEndOfFile:AddPrimaryAttributeButton.kt$com.ivy.wallet.ui.theme.components.AddPrimaryAttributeButton.kt - NewLineAtEndOfFile:AddRateModal.kt$com.ivy.wallet.ui.exchangerates.modal.AddRateModal.kt - NewLineAtEndOfFile:AddTransactionWidget.kt$com.ivy.wallet.ui.widget.AddTransactionWidget.kt - NewLineAtEndOfFile:AddTransactionWidgetClick.kt$com.ivy.wallet.ui.widget.AddTransactionWidgetClick.kt - NewLineAtEndOfFile:AddTransactionWidgetCompact.kt$com.ivy.wallet.ui.widget.AddTransactionWidgetCompact.kt - NewLineAtEndOfFile:AllTrnsAct.kt$com.ivy.wallet.domain.action.transaction.AllTrnsAct.kt - NewLineAtEndOfFile:AmountCurrency.kt$com.ivy.wallet.ui.theme.wallet.AmountCurrency.kt - NewLineAtEndOfFile:AmountFormatting.kt$com.ivy.wallet.utils.AmountFormatting.kt - NewLineAtEndOfFile:AnalyticsEvent.kt$com.ivy.wallet.domain.data.analytics.AnalyticsEvent.kt - NewLineAtEndOfFile:Android.kt$com.ivy.design.utils.Android.kt - NewLineAtEndOfFile:Animation.kt$com.ivy.design.utils.Animation.kt - NewLineAtEndOfFile:AppBaseData.kt$com.ivy.wallet.ui.data.AppBaseData.kt - NewLineAtEndOfFile:AppModuleDI.kt$com.ivy.wallet.AppModuleDI.kt - NewLineAtEndOfFile:AuthProviderType.kt$com.ivy.wallet.domain.data.AuthProviderType.kt - NewLineAtEndOfFile:BackBottomBar.kt$com.ivy.wallet.ui.theme.components.BackBottomBar.kt - NewLineAtEndOfFile:Background.kt$com.ivy.design.l1_buildingBlocks.data.Background.kt - NewLineAtEndOfFile:BackupLogic.kt$com.ivy.wallet.domain.deprecated.logic.zip.BackupLogic.kt - NewLineAtEndOfFile:BalanceChartAct.kt$com.ivy.wallet.domain.action.charts.BalanceChartAct.kt - NewLineAtEndOfFile:BalanceRow.kt$com.ivy.wallet.ui.theme.components.BalanceRow.kt - NewLineAtEndOfFile:BalanceViewModel.kt$com.ivy.wallet.ui.balance.BalanceViewModel.kt - NewLineAtEndOfFile:BaseCurrencyAct.kt$com.ivy.wallet.domain.action.settings.BaseCurrencyAct.kt - NewLineAtEndOfFile:Budget.kt$com.ivy.wallet.domain.data.core.Budget.kt - NewLineAtEndOfFile:BudgetBattery.kt$com.ivy.wallet.ui.theme.components.BudgetBattery.kt - NewLineAtEndOfFile:BudgetCreator.kt$com.ivy.wallet.domain.deprecated.logic.BudgetCreator.kt - NewLineAtEndOfFile:BudgetDao.kt$com.ivy.wallet.io.persistence.dao.BudgetDao.kt - NewLineAtEndOfFile:BudgetEntity.kt$com.ivy.wallet.io.persistence.data.BudgetEntity.kt - NewLineAtEndOfFile:BudgetModal.kt$com.ivy.wallet.ui.theme.modal.BudgetModal.kt - NewLineAtEndOfFile:BudgetViewModel.kt$com.ivy.wallet.ui.budget.BudgetViewModel.kt - NewLineAtEndOfFile:BudgetsAct.kt$com.ivy.wallet.domain.action.budget.BudgetsAct.kt - NewLineAtEndOfFile:BufferBattery.kt$com.ivy.wallet.ui.theme.components.BufferBattery.kt - NewLineAtEndOfFile:BufferInfo.kt$com.ivy.wallet.ui.data.BufferInfo.kt - NewLineAtEndOfFile:BufferModal.kt$com.ivy.wallet.ui.theme.modal.BufferModal.kt - NewLineAtEndOfFile:ButtonWithIcon.kt$com.ivy.design.l2_components.ButtonWithIcon.kt - NewLineAtEndOfFile:CSVEvent.kt$com.ivy.wallet.ui.csv.CSVEvent.kt - NewLineAtEndOfFile:CSVImporter.kt$com.ivy.wallet.domain.deprecated.logic.csv.CSVImporter.kt - NewLineAtEndOfFile:CSVImporterV2.kt$com.ivy.wallet.ui.csv.domain.CSVImporterV2.kt - NewLineAtEndOfFile:CSVMapper.kt$com.ivy.wallet.domain.deprecated.logic.csv.CSVMapper.kt - NewLineAtEndOfFile:CSVNormalizer.kt$com.ivy.wallet.domain.deprecated.logic.csv.CSVNormalizer.kt - NewLineAtEndOfFile:CSVRow.kt$com.ivy.wallet.domain.deprecated.logic.csv.model.CSVRow.kt - NewLineAtEndOfFile:CSVState.kt$com.ivy.wallet.ui.csv.CSVState.kt - NewLineAtEndOfFile:CSVViewModel.kt$com.ivy.wallet.ui.csv.CSVViewModel.kt - NewLineAtEndOfFile:CalcAccBalanceAct.kt$com.ivy.wallet.domain.action.account.CalcAccBalanceAct.kt - NewLineAtEndOfFile:CalcAccIncomeExpenseAct.kt$com.ivy.wallet.domain.action.account.CalcAccIncomeExpenseAct.kt - NewLineAtEndOfFile:CalcBufferDiffAct.kt$com.ivy.wallet.domain.action.settings.CalcBufferDiffAct.kt - NewLineAtEndOfFile:CalcIncomeExpenseAct.kt$com.ivy.wallet.domain.action.wallet.CalcIncomeExpenseAct.kt - NewLineAtEndOfFile:CalcTrnsIncomeExpenseAct.kt$com.ivy.wallet.domain.action.transaction.CalcTrnsIncomeExpenseAct.kt - NewLineAtEndOfFile:CalculatorModal.kt$com.ivy.wallet.ui.theme.modal.edit.CalculatorModal.kt - NewLineAtEndOfFile:Card.kt$com.ivy.design.l3_ivyComponents.Card.kt - NewLineAtEndOfFile:CatValueFunctions.kt$com.ivy.wallet.domain.pure.transaction.CatValueFunctions.kt - NewLineAtEndOfFile:CategoriesAct.kt$com.ivy.wallet.domain.action.category.CategoriesAct.kt - NewLineAtEndOfFile:CategoriesScreen.kt$com.ivy.wallet.ui.category.CategoriesScreen.kt - NewLineAtEndOfFile:Category.kt$com.ivy.wallet.domain.data.core.Category.kt - NewLineAtEndOfFile:Category.kt$com.ivy.wallet.ui.edit.core.Category.kt - NewLineAtEndOfFile:CategoryAmount.kt$com.ivy.wallet.ui.statistic.level1.CategoryAmount.kt - NewLineAtEndOfFile:CategoryByIdAct.kt$com.ivy.wallet.domain.action.category.CategoryByIdAct.kt - NewLineAtEndOfFile:CategoryCreator.kt$com.ivy.wallet.domain.deprecated.logic.CategoryCreator.kt - NewLineAtEndOfFile:CategoryDao.kt$com.ivy.wallet.io.persistence.dao.CategoryDao.kt - NewLineAtEndOfFile:CategoryData.kt$com.ivy.wallet.ui.category.CategoryData.kt - NewLineAtEndOfFile:CategoryEntity.kt$com.ivy.wallet.io.persistence.data.CategoryEntity.kt - NewLineAtEndOfFile:CategoryIncomeWithAccountFiltersAct.kt$com.ivy.wallet.domain.action.category.CategoryIncomeWithAccountFiltersAct.kt - NewLineAtEndOfFile:CategoryModal.kt$com.ivy.wallet.ui.theme.modal.edit.CategoryModal.kt - NewLineAtEndOfFile:CategoryTrnsBetweenAct.kt$com.ivy.wallet.domain.action.category.CategoryTrnsBetweenAct.kt - NewLineAtEndOfFile:CategoryValues.kt$com.ivy.wallet.ui.charts.CategoryValues.kt - NewLineAtEndOfFile:ChangeTransactionTypeModal.kt$com.ivy.wallet.ui.theme.components.ChangeTransactionTypeModal.kt - NewLineAtEndOfFile:ChartPeriod.kt$com.ivy.wallet.domain.pure.charts.ChartPeriod.kt - NewLineAtEndOfFile:ChartType.kt$com.ivy.wallet.ui.charts.ChartType.kt - NewLineAtEndOfFile:ChartsCore.kt$com.ivy.wallet.domain.pure.charts.ChartsCore.kt - NewLineAtEndOfFile:Checkbox.kt$com.ivy.design.l2_components.Checkbox.kt - NewLineAtEndOfFile:ChooseCategoryModal.kt$com.ivy.wallet.ui.theme.modal.edit.ChooseCategoryModal.kt - NewLineAtEndOfFile:ChoosePeriodModal.kt$com.ivy.wallet.ui.theme.modal.ChoosePeriodModal.kt - NewLineAtEndOfFile:ChooseStartDateOfMonthModal.kt$com.ivy.wallet.ui.theme.modal.ChooseStartDateOfMonthModal.kt - NewLineAtEndOfFile:CircleButtons.kt$com.ivy.wallet.ui.theme.components.CircleButtons.kt - NewLineAtEndOfFile:ClosedTimeRange.kt$com.ivy.wallet.domain.pure.data.ClosedTimeRange.kt - NewLineAtEndOfFile:ColoredItemCard.kt$com.ivy.design.l4_patterns.ColoredItemCard.kt - NewLineAtEndOfFile:Colors.kt$com.ivy.design.l0_system.Colors.kt - NewLineAtEndOfFile:ColumnRoot.kt$com.ivy.design.l1_buildingBlocks.ColumnRoot.kt - NewLineAtEndOfFile:Compose.kt$com.ivy.design.utils.Compose.kt - NewLineAtEndOfFile:ComposeExt.kt$com.ivy.wallet.utils.ComposeExt.kt - NewLineAtEndOfFile:Constants.kt$com.ivy.wallet.Constants.kt - NewLineAtEndOfFile:CreateAccountData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateAccountData.kt - NewLineAtEndOfFile:CreateBudgetData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateBudgetData.kt - NewLineAtEndOfFile:CreateCategoryData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateCategoryData.kt - NewLineAtEndOfFile:CreateLoanData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateLoanData.kt - NewLineAtEndOfFile:CreateLoanRecordData.kt$com.ivy.wallet.domain.deprecated.logic.model.CreateLoanRecordData.kt - NewLineAtEndOfFile:CurrencyModal.kt$com.ivy.wallet.ui.theme.modal.CurrencyModal.kt - NewLineAtEndOfFile:CurrencyPicker.kt$com.ivy.wallet.ui.theme.components.CurrencyPicker.kt - NewLineAtEndOfFile:CustomExchangeRateCard.kt$com.ivy.wallet.ui.theme.components.CustomExchangeRateCard.kt - NewLineAtEndOfFile:CustomExchangeRateState.kt$com.ivy.wallet.domain.data.CustomExchangeRateState.kt - NewLineAtEndOfFile:CustomerJourney.kt$com.ivy.wallet.ui.home.CustomerJourney.kt - NewLineAtEndOfFile:CustomerJourneyCardData.kt$com.ivy.wallet.domain.deprecated.logic.model.CustomerJourneyCardData.kt - NewLineAtEndOfFile:DateExt.kt$com.ivy.wallet.utils.DateExt.kt - NewLineAtEndOfFile:DefaultImportSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.DefaultImportSteps.kt - NewLineAtEndOfFile:DeleteAllData.kt$com.ivy.design.l4_patterns.delete.DeleteAllData.kt - NewLineAtEndOfFile:DeleteButton.kt$com.ivy.wallet.ui.theme.components.DeleteButton.kt - NewLineAtEndOfFile:DeleteItem.kt$com.ivy.design.l4_patterns.delete.DeleteItem.kt - NewLineAtEndOfFile:DeleteModal.kt$com.ivy.wallet.ui.theme.modal.DeleteModal.kt - NewLineAtEndOfFile:Description.kt$com.ivy.wallet.ui.edit.core.Description.kt - NewLineAtEndOfFile:DescriptionModal.kt$com.ivy.wallet.ui.theme.modal.edit.DescriptionModal.kt - NewLineAtEndOfFile:DisplayBudget.kt$com.ivy.wallet.ui.budget.model.DisplayBudget.kt - NewLineAtEndOfFile:DisplayLoan.kt$com.ivy.wallet.ui.loan.data.DisplayLoan.kt - NewLineAtEndOfFile:Dividers.kt$com.ivy.design.l1_buildingBlocks.Dividers.kt - NewLineAtEndOfFile:DonateEvent.kt$com.ivy.wallet.ui.donate.DonateEvent.kt - NewLineAtEndOfFile:DonateModal.kt$com.ivy.wallet.ui.donate.DonateModal.kt - NewLineAtEndOfFile:DonateOption.kt$com.ivy.wallet.ui.donate.data.DonateOption.kt - NewLineAtEndOfFile:DonateScreen.kt$com.ivy.wallet.ui.donate.DonateScreen.kt - NewLineAtEndOfFile:DonateState.kt$com.ivy.wallet.ui.donate.DonateState.kt - NewLineAtEndOfFile:DonateViewModel.kt$com.ivy.wallet.ui.donate.DonateViewModel.kt - NewLineAtEndOfFile:DueDate.kt$com.ivy.wallet.ui.edit.core.DueDate.kt - NewLineAtEndOfFile:DueSection.kt$com.ivy.wallet.ui.data.DueSection.kt - NewLineAtEndOfFile:DueTrnsAct.kt$com.ivy.wallet.domain.action.transaction.DueTrnsAct.kt - NewLineAtEndOfFile:DueTrnsInfoAct.kt$com.ivy.wallet.domain.action.viewmodel.home.DueTrnsInfoAct.kt - NewLineAtEndOfFile:EditBottomSheet.kt$com.ivy.wallet.ui.edit.core.EditBottomSheet.kt - NewLineAtEndOfFile:EditContentCard.kt$com.ivy.design.l4_patterns.EditContentCard.kt - NewLineAtEndOfFile:EditLoanRecordData.kt$com.ivy.wallet.domain.deprecated.logic.model.EditLoanRecordData.kt - NewLineAtEndOfFile:EditPlannedScreen.kt$com.ivy.wallet.ui.planned.edit.EditPlannedScreen.kt - NewLineAtEndOfFile:EditPlannedViewModel.kt$com.ivy.wallet.ui.planned.edit.EditPlannedViewModel.kt - NewLineAtEndOfFile:EditTransactionScreen.kt$com.ivy.wallet.ui.edit.EditTransactionScreen.kt - NewLineAtEndOfFile:EditTransactionViewModel.kt$com.ivy.wallet.ui.edit.EditTransactionViewModel.kt - NewLineAtEndOfFile:EmailState.kt$com.ivy.wallet.domain.data.EmailState.kt - NewLineAtEndOfFile:EncryptedSharedPrefs.kt$com.ivy.wallet.data.EncryptedSharedPrefs.kt - NewLineAtEndOfFile:ExampleInstrumentedTest.kt$com.ivy.design.ExampleInstrumentedTest.kt - NewLineAtEndOfFile:Exchange.kt$com.ivy.wallet.domain.pure.exchange.Exchange.kt - NewLineAtEndOfFile:ExchangeRate.kt$com.ivy.wallet.domain.data.core.ExchangeRate.kt - NewLineAtEndOfFile:ExchangeRateDao.kt$com.ivy.wallet.io.persistence.dao.ExchangeRateDao.kt - NewLineAtEndOfFile:ExchangeRateEntity.kt$com.ivy.wallet.io.persistence.data.ExchangeRateEntity.kt - NewLineAtEndOfFile:ExchangeRatesLogic.kt$com.ivy.wallet.domain.deprecated.logic.currency.ExchangeRatesLogic.kt - NewLineAtEndOfFile:ExchangeRatesScreen.kt$com.ivy.wallet.ui.exchangerates.ExchangeRatesScreen.kt - NewLineAtEndOfFile:ExchangeRatesViewModel.kt$com.ivy.wallet.ui.exchangerates.ExchangeRatesViewModel.kt - NewLineAtEndOfFile:ExchangeTrns.kt$com.ivy.wallet.domain.pure.exchange.ExchangeTrns.kt - NewLineAtEndOfFile:ExportCSVLogic.kt$com.ivy.wallet.domain.deprecated.logic.csv.ExportCSVLogic.kt - NewLineAtEndOfFile:FAB.kt$com.ivy.design.l3_ivyComponents.button.FAB.kt - NewLineAtEndOfFile:FileUtil.kt$com.ivy.wallet.utils.FileUtil.kt - NewLineAtEndOfFile:FilterOverlay.kt$com.ivy.wallet.ui.reports.FilterOverlay.kt - NewLineAtEndOfFile:FinancistoSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.FinancistoSteps.kt - NewLineAtEndOfFile:FirebaseExt.kt$com.ivy.wallet.utils.FirebaseExt.kt - NewLineAtEndOfFile:FoldTransactions.kt$com.ivy.wallet.domain.pure.transaction.FoldTransactions.kt - NewLineAtEndOfFile:FortuneCitySteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.FortuneCitySteps.kt - NewLineAtEndOfFile:FromToTimeRange.kt$com.ivy.wallet.ui.onboarding.model.FromToTimeRange.kt - NewLineAtEndOfFile:GesturesExt.kt$com.ivy.wallet.utils.GesturesExt.kt - NewLineAtEndOfFile:GitHubBackup.kt$com.ivy.wallet.backup.github.GitHubBackup.kt - NewLineAtEndOfFile:GitHubBackupCard.kt$com.ivy.wallet.backup.github.ui.GitHubBackupCard.kt - NewLineAtEndOfFile:GitHubBackupScreen.kt$com.ivy.wallet.backup.github.ui.GitHubBackupScreen.kt - NewLineAtEndOfFile:GitHubBackupStatus.kt$com.ivy.wallet.backup.github.ui.GitHubBackupStatus.kt - NewLineAtEndOfFile:GitHubBackupViewModel.kt$com.ivy.wallet.backup.github.ui.GitHubBackupViewModel.kt - NewLineAtEndOfFile:GitHubBackupViewState.kt$com.ivy.wallet.backup.github.ui.GitHubBackupViewState.kt - NewLineAtEndOfFile:GitHubClient.kt$com.ivy.wallet.backup.github.GitHubClient.kt - NewLineAtEndOfFile:GitHubCredentials.kt$com.ivy.wallet.backup.github.GitHubCredentials.kt - NewLineAtEndOfFile:GitHubPATMigration.kt$com.ivy.wallet.migrations.impl.GitHubPATMigration.kt - NewLineAtEndOfFile:GitHubWorkerMigration.kt$com.ivy.wallet.migrations.impl.GitHubWorkerMigration.kt - NewLineAtEndOfFile:GradientCut.kt$com.ivy.wallet.ui.theme.components.GradientCut.kt - NewLineAtEndOfFile:HasTrnsAct.kt$com.ivy.wallet.domain.action.viewmodel.home.HasTrnsAct.kt - NewLineAtEndOfFile:HistoryDateDivider.kt$com.ivy.wallet.ui.component.transaction.HistoryDateDivider.kt - NewLineAtEndOfFile:HistoryTrnsAct.kt$com.ivy.wallet.domain.action.transaction.HistoryTrnsAct.kt - NewLineAtEndOfFile:HistoryWithDateDivsAct.kt$com.ivy.wallet.domain.action.transaction.HistoryWithDateDivsAct.kt - NewLineAtEndOfFile:HomeEvent.kt$com.ivy.wallet.ui.home.HomeEvent.kt - NewLineAtEndOfFile:HomeHeader.kt$com.ivy.wallet.ui.home.HomeHeader.kt - NewLineAtEndOfFile:HomeMoreMenu.kt$com.ivy.wallet.ui.home.HomeMoreMenu.kt - NewLineAtEndOfFile:HomeState.kt$com.ivy.wallet.ui.home.HomeState.kt - NewLineAtEndOfFile:HomeTab.kt$com.ivy.wallet.ui.home.HomeTab.kt - NewLineAtEndOfFile:HomeViewModel.kt$com.ivy.wallet.ui.home.HomeViewModel.kt - NewLineAtEndOfFile:IconButton.kt$com.ivy.design.l2_components.IconButton.kt - NewLineAtEndOfFile:ImportFrom.kt$com.ivy.wallet.ui.csvimport.flow.ImportFrom.kt - NewLineAtEndOfFile:ImportProcessing.kt$com.ivy.wallet.ui.csvimport.flow.ImportProcessing.kt - NewLineAtEndOfFile:ImportResult.kt$com.ivy.wallet.domain.deprecated.logic.csv.model.ImportResult.kt - NewLineAtEndOfFile:ImportResultUI.kt$com.ivy.wallet.ui.csvimport.flow.ImportResultUI.kt - NewLineAtEndOfFile:ImportStep.kt$com.ivy.wallet.ui.csvimport.ImportStep.kt - NewLineAtEndOfFile:ImportType.kt$com.ivy.wallet.domain.deprecated.logic.csv.model.ImportType.kt - NewLineAtEndOfFile:ImportViewModel.kt$com.ivy.wallet.ui.csvimport.ImportViewModel.kt - NewLineAtEndOfFile:IncomeExpensePair.kt$com.ivy.wallet.domain.pure.data.IncomeExpensePair.kt - NewLineAtEndOfFile:InputError.kt$com.ivy.wallet.utils.InputError.kt - NewLineAtEndOfFile:InputField.kt$com.ivy.design.l2_components.InputField.kt - NewLineAtEndOfFile:Insets.kt$com.ivy.design.utils.Insets.kt - NewLineAtEndOfFile:IntervalPickerRow.kt$com.ivy.wallet.ui.theme.components.IntervalPickerRow.kt - NewLineAtEndOfFile:IntervalType.kt$com.ivy.wallet.domain.data.IntervalType.kt - NewLineAtEndOfFile:ItemDetailsScreen.kt$com.ivy.design.l5_concept.ItemDetailsScreen.kt - NewLineAtEndOfFile:ItemIcon.kt$com.ivy.wallet.ui.theme.components.ItemIcon.kt - NewLineAtEndOfFile:ItemStatisticScreen.kt$com.ivy.wallet.ui.statistic.level2.ItemStatisticScreen.kt - NewLineAtEndOfFile:ItemStatisticViewModel.kt$com.ivy.wallet.ui.statistic.level2.ItemStatisticViewModel.kt - NewLineAtEndOfFile:IvyAndroidApp.kt$com.ivy.wallet.IvyAndroidApp.kt - NewLineAtEndOfFile:IvyAnimation.kt$com.ivy.wallet.utils.IvyAnimation.kt - NewLineAtEndOfFile:IvyBasicTextField.kt$com.ivy.wallet.ui.theme.components.IvyBasicTextField.kt - NewLineAtEndOfFile:IvyBilling.kt$com.ivy.wallet.android.billing.IvyBilling.kt - NewLineAtEndOfFile:IvyBorderButton.kt$com.ivy.wallet.ui.theme.components.IvyBorderButton.kt - NewLineAtEndOfFile:IvyButton.kt$com.ivy.wallet.ui.theme.components.IvyButton.kt - NewLineAtEndOfFile:IvyCheckbox.kt$com.ivy.wallet.ui.theme.components.IvyCheckbox.kt - NewLineAtEndOfFile:IvyChecklistTextField.kt$com.ivy.wallet.ui.theme.components.IvyChecklistTextField.kt - NewLineAtEndOfFile:IvyCircleButton.kt$com.ivy.wallet.ui.theme.components.IvyCircleButton.kt - NewLineAtEndOfFile:IvyColorPicker.kt$com.ivy.wallet.ui.theme.components.IvyColorPicker.kt - NewLineAtEndOfFile:IvyColors.kt$com.ivy.design.l0_system.IvyColors.kt - NewLineAtEndOfFile:IvyColors.kt$com.ivy.wallet.ui.theme.IvyColors.kt - NewLineAtEndOfFile:IvyComponents.kt$com.ivy.wallet.ui.theme.components.IvyComponents.kt - NewLineAtEndOfFile:IvyContext.kt$com.ivy.design.IvyContext.kt - NewLineAtEndOfFile:IvyDataStore.kt$com.ivy.wallet.io.persistence.datastore.IvyDataStore.kt - NewLineAtEndOfFile:IvyDescriptionTextField.kt$com.ivy.wallet.ui.theme.components.IvyDescriptionTextField.kt - NewLineAtEndOfFile:IvyDesign.kt$com.ivy.design.api.IvyDesign.kt - NewLineAtEndOfFile:IvyDivider.kt$com.ivy.wallet.ui.theme.components.IvyDivider.kt - NewLineAtEndOfFile:IvyDividerDot.kt$com.ivy.wallet.ui.theme.components.IvyDividerDot.kt - NewLineAtEndOfFile:IvyDomainUtils.kt$com.ivy.wallet.domain.pure.util.IvyDomainUtils.kt - NewLineAtEndOfFile:IvyFileReader.kt$com.ivy.wallet.domain.deprecated.logic.csv.IvyFileReader.kt - NewLineAtEndOfFile:IvyIcon.kt$com.ivy.design.l1_buildingBlocks.IvyIcon.kt - NewLineAtEndOfFile:IvyIcon.kt$com.ivy.wallet.ui.theme.components.IvyIcon.kt - NewLineAtEndOfFile:IvyLineChart.kt$com.ivy.wallet.ui.theme.components.charts.linechart.IvyLineChart.kt - NewLineAtEndOfFile:IvyModal.kt$com.ivy.wallet.ui.theme.modal.IvyModal.kt - NewLineAtEndOfFile:IvyModalComponents.kt$com.ivy.wallet.ui.theme.modal.IvyModalComponents.kt - NewLineAtEndOfFile:IvyNameTextFieldValue.kt$com.ivy.wallet.ui.theme.components.IvyNameTextFieldValue.kt - NewLineAtEndOfFile:IvyNotification.kt$com.ivy.wallet.android.notification.IvyNotification.kt - NewLineAtEndOfFile:IvyNotificationChannel.kt$com.ivy.wallet.android.notification.IvyNotificationChannel.kt - NewLineAtEndOfFile:IvyOutlinedButton.kt$com.ivy.wallet.ui.theme.components.IvyOutlinedButton.kt - NewLineAtEndOfFile:IvyOutlinedTextField.kt$com.ivy.wallet.ui.theme.components.IvyOutlinedTextField.kt - NewLineAtEndOfFile:IvyPadding.kt$com.ivy.design.l1_buildingBlocks.data.IvyPadding.kt - NewLineAtEndOfFile:IvyRoomDatabase.kt$com.ivy.wallet.io.persistence.IvyRoomDatabase.kt - NewLineAtEndOfFile:IvyShapes.kt$com.ivy.design.l0_system.IvyShapes.kt - NewLineAtEndOfFile:IvySwitch.kt$com.ivy.wallet.ui.theme.components.IvySwitch.kt - NewLineAtEndOfFile:IvyText.kt$com.ivy.design.l1_buildingBlocks.IvyText.kt - NewLineAtEndOfFile:IvyTitleTextField.kt$com.ivy.wallet.ui.theme.components.IvyTitleTextField.kt - NewLineAtEndOfFile:IvyToolbar.kt$com.ivy.wallet.ui.theme.components.IvyToolbar.kt - NewLineAtEndOfFile:IvyTypography.kt$com.ivy.design.l0_system.IvyTypography.kt - NewLineAtEndOfFile:IvyUI.kt$com.ivy.design.api.IvyUI.kt - NewLineAtEndOfFile:IvyViewPager.kt$com.ivy.wallet.ui.theme.components.IvyViewPager.kt - NewLineAtEndOfFile:IvyWalletCompleteData.kt$com.ivy.wallet.domain.data.IvyWalletCompleteData.kt - NewLineAtEndOfFile:IvyWalletDatastore.kt$com.ivy.wallet.data.IvyWalletDatastore.kt - NewLineAtEndOfFile:IvyWalletDesign.kt$com.ivy.design.api.systems.IvyWalletDesign.kt - NewLineAtEndOfFile:IvyWalletSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.IvyWalletSteps.kt - NewLineAtEndOfFile:KTWMoneyMangerSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.KTWMoneyMangerSteps.kt - NewLineAtEndOfFile:Keyboard.kt$com.ivy.design.utils.Keyboard.kt - NewLineAtEndOfFile:KtorClient.kt$com.ivy.wallet.ktor.KtorClient.kt - NewLineAtEndOfFile:KtorClientModule.kt$com.ivy.wallet.ktor.KtorClientModule.kt - NewLineAtEndOfFile:LTLoanRecordMapper.kt$com.ivy.wallet.domain.deprecated.logic.loantrasactions.LTLoanRecordMapper.kt - NewLineAtEndOfFile:LastNTimeRange.kt$com.ivy.wallet.ui.onboarding.model.LastNTimeRange.kt - NewLineAtEndOfFile:Loan.kt$com.ivy.wallet.domain.data.core.Loan.kt - NewLineAtEndOfFile:LoanBottomBar.kt$com.ivy.wallet.ui.loan.LoanBottomBar.kt - NewLineAtEndOfFile:LoanByIdAct.kt$com.ivy.wallet.domain.action.loan.LoanByIdAct.kt - NewLineAtEndOfFile:LoanCreator.kt$com.ivy.wallet.domain.deprecated.logic.LoanCreator.kt - NewLineAtEndOfFile:LoanDao.kt$com.ivy.wallet.io.persistence.dao.LoanDao.kt - NewLineAtEndOfFile:LoanDetailsScreen.kt$com.ivy.wallet.ui.loandetails.LoanDetailsScreen.kt - NewLineAtEndOfFile:LoanDetailsViewModel.kt$com.ivy.wallet.ui.loandetails.LoanDetailsViewModel.kt - NewLineAtEndOfFile:LoanEntity.kt$com.ivy.wallet.io.persistence.data.LoanEntity.kt - NewLineAtEndOfFile:LoanModal.kt$com.ivy.wallet.ui.theme.modal.LoanModal.kt - NewLineAtEndOfFile:LoanRecord.kt$com.ivy.wallet.domain.data.core.LoanRecord.kt - NewLineAtEndOfFile:LoanRecordCreator.kt$com.ivy.wallet.domain.deprecated.logic.LoanRecordCreator.kt - NewLineAtEndOfFile:LoanRecordDao.kt$com.ivy.wallet.io.persistence.dao.LoanRecordDao.kt - NewLineAtEndOfFile:LoanRecordEntity.kt$com.ivy.wallet.io.persistence.data.LoanRecordEntity.kt - NewLineAtEndOfFile:LoanRecordModal.kt$com.ivy.wallet.ui.theme.modal.LoanRecordModal.kt - NewLineAtEndOfFile:LoanTransactionsCore.kt$com.ivy.wallet.domain.deprecated.logic.loantrasactions.LoanTransactionsCore.kt - NewLineAtEndOfFile:LoanType.kt$com.ivy.wallet.domain.data.LoanType.kt - NewLineAtEndOfFile:LoanViewModel.kt$com.ivy.wallet.ui.loan.LoanViewModel.kt - NewLineAtEndOfFile:LoansAct.kt$com.ivy.wallet.domain.action.loan.LoansAct.kt - NewLineAtEndOfFile:LoansScreen.kt$com.ivy.wallet.ui.loan.LoansScreen.kt - NewLineAtEndOfFile:LogoutLogic.kt$com.ivy.wallet.domain.deprecated.logic.LogoutLogic.kt - NewLineAtEndOfFile:MVVMExt.kt$com.ivy.wallet.utils.MVVMExt.kt - NewLineAtEndOfFile:MainBottomBar.kt$com.ivy.wallet.ui.main.MainBottomBar.kt - NewLineAtEndOfFile:MainScreen.kt$com.ivy.wallet.ui.main.MainScreen.kt - NewLineAtEndOfFile:MainTab.kt$com.ivy.wallet.ui.main.MainTab.kt - NewLineAtEndOfFile:MainViewModel.kt$com.ivy.wallet.ui.main.MainViewModel.kt - NewLineAtEndOfFile:Migration.kt$com.ivy.wallet.migrations.Migration.kt - NewLineAtEndOfFile:Migration105to106_TrnRecurringRules.kt$com.ivy.wallet.io.persistence.migration.Migration105to106_TrnRecurringRules.kt - NewLineAtEndOfFile:Migration106to107_Wishlist.kt$com.ivy.wallet.io.persistence.migration.Migration106to107_Wishlist.kt - NewLineAtEndOfFile:Migration107to108_Sync.kt$com.ivy.wallet.io.persistence.migration.Migration107to108_Sync.kt - NewLineAtEndOfFile:Migration108to109_Users.kt$com.ivy.wallet.io.persistence.migration.Migration108to109_Users.kt - NewLineAtEndOfFile:Migration109to110_PlannedPayments.kt$com.ivy.wallet.io.persistence.migration.Migration109to110_PlannedPayments.kt - NewLineAtEndOfFile:Migration110to111_PlannedPaymentRule.kt$com.ivy.wallet.io.persistence.migration.Migration110to111_PlannedPaymentRule.kt - NewLineAtEndOfFile:Migration111to112_User_testUser.kt$com.ivy.wallet.io.persistence.migration.Migration111to112_User_testUser.kt - NewLineAtEndOfFile:Migration112to113_ExchangeRates.kt$com.ivy.wallet.io.persistence.migration.Migration112to113_ExchangeRates.kt - NewLineAtEndOfFile:Migration113to114_Multi_Currency.kt$com.ivy.wallet.io.persistence.migration.Migration113to114_Multi_Currency.kt - NewLineAtEndOfFile:Migration114to115_Category_Account_Icons.kt$com.ivy.wallet.io.persistence.migration.Migration114to115_Category_Account_Icons.kt - NewLineAtEndOfFile:Migration115to116_Account_Include_In_Balance.kt$com.ivy.wallet.io.persistence.migration.Migration115to116_Account_Include_In_Balance.kt - NewLineAtEndOfFile:Migration116to117_SalteEdgeIntgration.kt$com.ivy.wallet.io.persistence.migration.Migration116to117_SalteEdgeIntgration.kt - NewLineAtEndOfFile:Migration117to118_Budgets.kt$com.ivy.wallet.io.persistence.migration.Migration117to118_Budgets.kt - NewLineAtEndOfFile:Migration118to119_Loans.kt$com.ivy.wallet.io.persistence.migration.Migration118to119_Loans.kt - NewLineAtEndOfFile:Migration119to120_LoanTransactions.kt$com.ivy.wallet.io.persistence.migration.Migration119to120_LoanTransactions.kt - NewLineAtEndOfFile:Migration120to121_DropWishlistItem.kt$com.ivy.wallet.io.persistence.migration.Migration120to121_DropWishlistItem.kt - NewLineAtEndOfFile:Migration122to123_ExchangeRates.kt$com.ivy.wallet.io.persistence.migration.Migration122to123_ExchangeRates.kt - NewLineAtEndOfFile:MigrationsManager.kt$com.ivy.wallet.migrations.MigrationsManager.kt - NewLineAtEndOfFile:MonefySteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.MonefySteps.kt - NewLineAtEndOfFile:MoneyManagerPraseSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.MoneyManagerPraseSteps.kt - NewLineAtEndOfFile:Month.kt$com.ivy.wallet.ui.theme.modal.model.Month.kt - NewLineAtEndOfFile:MonthPickerModal.kt$com.ivy.wallet.ui.theme.modal.MonthPickerModal.kt - NewLineAtEndOfFile:MoreInfo.kt$com.ivy.design.l4_patterns.MoreInfo.kt - NewLineAtEndOfFile:MoreMenu.kt$com.ivy.design.l4_patterns.MoreMenu.kt - NewLineAtEndOfFile:NameModal.kt$com.ivy.wallet.ui.theme.modal.NameModal.kt - NewLineAtEndOfFile:NewEditScreenPref.kt$com.ivy.wallet.domain.data.preference.NewEditScreenPref.kt - NewLineAtEndOfFile:NotificationService.kt$com.ivy.wallet.android.notification.NotificationService.kt - NewLineAtEndOfFile:OnboardingAccounts.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingAccounts.kt - NewLineAtEndOfFile:OnboardingCategories.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingCategories.kt - NewLineAtEndOfFile:OnboardingComponents.kt$com.ivy.wallet.ui.theme.components.OnboardingComponents.kt - NewLineAtEndOfFile:OnboardingPrivacyTC.kt$com.ivy.wallet.ui.onboarding.steps.archived.OnboardingPrivacyTC.kt - NewLineAtEndOfFile:OnboardingProgressSlider.kt$com.ivy.wallet.ui.onboarding.components.OnboardingProgressSlider.kt - NewLineAtEndOfFile:OnboardingRouter.kt$com.ivy.wallet.ui.onboarding.viewmodel.OnboardingRouter.kt - NewLineAtEndOfFile:OnboardingScreen.kt$com.ivy.wallet.ui.onboarding.OnboardingScreen.kt - NewLineAtEndOfFile:OnboardingSetCurrency.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingSetCurrency.kt - NewLineAtEndOfFile:OnboardingSetName.kt$com.ivy.wallet.ui.onboarding.steps.archived.OnboardingSetName.kt - NewLineAtEndOfFile:OnboardingSplashLogin.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingSplashLogin.kt - NewLineAtEndOfFile:OnboardingState.kt$com.ivy.wallet.ui.onboarding.OnboardingState.kt - NewLineAtEndOfFile:OnboardingToolbar.kt$com.ivy.wallet.ui.onboarding.components.OnboardingToolbar.kt - NewLineAtEndOfFile:OnboardingType.kt$com.ivy.wallet.ui.onboarding.steps.OnboardingType.kt - NewLineAtEndOfFile:OnboardingViewModel.kt$com.ivy.wallet.ui.onboarding.viewmodel.OnboardingViewModel.kt - NewLineAtEndOfFile:OneMoneySteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.OneMoneySteps.kt - NewLineAtEndOfFile:OpResult.kt$com.ivy.wallet.utils.OpResult.kt - NewLineAtEndOfFile:OverdueAct.kt$com.ivy.wallet.domain.action.viewmodel.home.OverdueAct.kt - NewLineAtEndOfFile:ParseFields.kt$com.ivy.wallet.ui.csv.domain.ParseFields.kt - NewLineAtEndOfFile:ParseStatus.kt$com.ivy.wallet.ui.csv.domain.ParseStatus.kt - NewLineAtEndOfFile:PaywallLogic.kt$com.ivy.wallet.domain.deprecated.logic.PaywallLogic.kt - NewLineAtEndOfFile:PaywallReason.kt$com.ivy.wallet.ui.paywall.PaywallReason.kt - NewLineAtEndOfFile:PaywallViewModel.kt$com.ivy.wallet.ui.paywall.PaywallViewModel.kt - NewLineAtEndOfFile:PeriodSelector.kt$com.ivy.wallet.ui.theme.wallet.PeriodSelector.kt - NewLineAtEndOfFile:PieChart.kt$com.ivy.wallet.ui.statistic.level1.PieChart.kt - NewLineAtEndOfFile:PieChartAct.kt$com.ivy.wallet.domain.action.charts.PieChartAct.kt - NewLineAtEndOfFile:PieChartStatisticBottomBar.kt$com.ivy.wallet.ui.statistic.level1.PieChartStatisticBottomBar.kt - NewLineAtEndOfFile:PieChartStatisticViewModel.kt$com.ivy.wallet.ui.statistic.level1.PieChartStatisticViewModel.kt - NewLineAtEndOfFile:Plan.kt$com.ivy.wallet.android.billing.Plan.kt - NewLineAtEndOfFile:PlanType.kt$com.ivy.wallet.android.billing.PlanType.kt - NewLineAtEndOfFile:PlannedPaymentRule.kt$com.ivy.wallet.domain.data.core.PlannedPaymentRule.kt - NewLineAtEndOfFile:PlannedPaymentRuleDao.kt$com.ivy.wallet.io.persistence.dao.PlannedPaymentRuleDao.kt - NewLineAtEndOfFile:PlannedPaymentRuleEntity.kt$com.ivy.wallet.io.persistence.data.PlannedPaymentRuleEntity.kt - NewLineAtEndOfFile:PlannedPaymentsBottomBar.kt$com.ivy.wallet.ui.planned.list.PlannedPaymentsBottomBar.kt - NewLineAtEndOfFile:PlannedPaymentsGenerator.kt$com.ivy.wallet.domain.deprecated.logic.PlannedPaymentsGenerator.kt - NewLineAtEndOfFile:PlannedPaymentsLazyColumn.kt$com.ivy.wallet.ui.planned.list.PlannedPaymentsLazyColumn.kt - NewLineAtEndOfFile:PlannedPaymentsLogic.kt$com.ivy.wallet.domain.deprecated.logic.PlannedPaymentsLogic.kt - NewLineAtEndOfFile:PlannedPaymentsScreen.kt$com.ivy.wallet.ui.planned.list.PlannedPaymentsScreen.kt - NewLineAtEndOfFile:PlannedPaymentsViewModel.kt$com.ivy.wallet.ui.planned.list.PlannedPaymentsViewModel.kt - NewLineAtEndOfFile:PlansSheet.kt$com.ivy.wallet.ui.paywall.PlansSheet.kt - NewLineAtEndOfFile:Preference.kt$com.ivy.wallet.domain.data.preference.Preference.kt - NewLineAtEndOfFile:PreferenceAct.kt$com.ivy.wallet.domain.action.settings.preference.PreferenceAct.kt - NewLineAtEndOfFile:Preview.kt$com.ivy.design.utils.Preview.kt - NewLineAtEndOfFile:PrimaryAttributeColumn.kt$com.ivy.wallet.ui.edit.PrimaryAttributeColumn.kt - NewLineAtEndOfFile:ProgressBar.kt$com.ivy.wallet.ui.theme.components.ProgressBar.kt - NewLineAtEndOfFile:ProgressModal.kt$com.ivy.wallet.ui.theme.modal.ProgressModal.kt - NewLineAtEndOfFile:PropertyTestExample.kt$com.ivy.wallet.PropertyTestExample.kt - NewLineAtEndOfFile:RateItem.kt$com.ivy.wallet.ui.exchangerates.component.RateItem.kt - NewLineAtEndOfFile:RateUi.kt$com.ivy.wallet.ui.exchangerates.data.RateUi.kt - NewLineAtEndOfFile:RatesEvent.kt$com.ivy.wallet.ui.exchangerates.RatesEvent.kt - NewLineAtEndOfFile:RatesState.kt$com.ivy.wallet.ui.exchangerates.RatesState.kt - NewLineAtEndOfFile:RecurringRule.kt$com.ivy.wallet.ui.planned.edit.RecurringRule.kt - NewLineAtEndOfFile:RecurringRuleModal.kt$com.ivy.wallet.ui.theme.modal.RecurringRuleModal.kt - NewLineAtEndOfFile:ReorderModal.kt$com.ivy.design.l4_patterns.ReorderModal.kt - NewLineAtEndOfFile:ReorderModal.kt$com.ivy.wallet.ui.theme.components.ReorderModal.kt - NewLineAtEndOfFile:Reorderable.kt$com.ivy.wallet.domain.data.Reorderable.kt - NewLineAtEndOfFile:ReportFilter.kt$com.ivy.wallet.ui.reports.ReportFilter.kt - NewLineAtEndOfFile:ReportScreen.kt$com.ivy.wallet.ui.reports.ReportScreen.kt - NewLineAtEndOfFile:ReportScreenEvent.kt$com.ivy.wallet.ui.reports.ReportScreenEvent.kt - NewLineAtEndOfFile:ReportScreenState.kt$com.ivy.wallet.ui.reports.ReportScreenState.kt - NewLineAtEndOfFile:ReportViewModel.kt$com.ivy.wallet.ui.reports.ReportViewModel.kt - NewLineAtEndOfFile:RoomTypeConverters.kt$com.ivy.wallet.io.persistence.RoomTypeConverters.kt - NewLineAtEndOfFile:RootActivity.kt$com.ivy.wallet.ui.RootActivity.kt - NewLineAtEndOfFile:RootViewModel.kt$com.ivy.wallet.ui.RootViewModel.kt - NewLineAtEndOfFile:RowMapping.kt$com.ivy.wallet.domain.deprecated.logic.csv.model.RowMapping.kt - NewLineAtEndOfFile:SaveTrnLocallyAct.kt$com.ivy.wallet.domain.action.viewmodel.transaction.SaveTrnLocallyAct.kt - NewLineAtEndOfFile:ScreenTitle.kt$com.ivy.design.l3_ivyComponents.ScreenTitle.kt - NewLineAtEndOfFile:SearchScreen.kt$com.ivy.wallet.ui.search.SearchScreen.kt - NewLineAtEndOfFile:SearchViewModel.kt$com.ivy.wallet.ui.search.SearchViewModel.kt - NewLineAtEndOfFile:SelectedCategory.kt$com.ivy.wallet.ui.statistic.level1.SelectedCategory.kt - NewLineAtEndOfFile:ServerStopScreen.kt$com.ivy.wallet.ui.serverstop.ServerStopScreen.kt - NewLineAtEndOfFile:ServerStopState.kt$com.ivy.wallet.ui.serverstop.ServerStopState.kt - NewLineAtEndOfFile:ServerStopViewModel.kt$com.ivy.wallet.ui.serverstop.ServerStopViewModel.kt - NewLineAtEndOfFile:SetPreferenceAct.kt$com.ivy.wallet.domain.action.settings.preference.SetPreferenceAct.kt - NewLineAtEndOfFile:Settings.kt$com.ivy.wallet.domain.data.core.Settings.kt - NewLineAtEndOfFile:SettingsAct.kt$com.ivy.wallet.domain.action.settings.SettingsAct.kt - NewLineAtEndOfFile:SettingsDao.kt$com.ivy.wallet.io.persistence.dao.SettingsDao.kt - NewLineAtEndOfFile:SettingsEntity.kt$com.ivy.wallet.io.persistence.data.SettingsEntity.kt - NewLineAtEndOfFile:SettingsScreen.kt$com.ivy.wallet.ui.settings.SettingsScreen.kt - NewLineAtEndOfFile:SettingsViewModel.kt$com.ivy.wallet.ui.settings.SettingsViewModel.kt - NewLineAtEndOfFile:Shapes.kt$com.ivy.design.l1_buildingBlocks.Shapes.kt - NewLineAtEndOfFile:SharedPrefs.kt$com.ivy.wallet.io.persistence.SharedPrefs.kt - NewLineAtEndOfFile:ShortAmountTest.kt$com.ivy.wallet.ShortAmountTest.kt - NewLineAtEndOfFile:ShouldHideBalanceAct.kt$com.ivy.wallet.domain.action.viewmodel.home.ShouldHideBalanceAct.kt - NewLineAtEndOfFile:SmallTrnsPref.kt$com.ivy.wallet.domain.data.preference.SmallTrnsPref.kt - NewLineAtEndOfFile:SmartTitleSuggestionsLogic.kt$com.ivy.wallet.domain.deprecated.logic.SmartTitleSuggestionsLogic.kt - NewLineAtEndOfFile:SortOrder.kt$com.ivy.wallet.domain.data.SortOrder.kt - NewLineAtEndOfFile:Spacers.kt$com.ivy.design.l1_buildingBlocks.Spacers.kt - NewLineAtEndOfFile:SpendeeSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.SpendeeSteps.kt - NewLineAtEndOfFile:StartDayOfMonthAct.kt$com.ivy.wallet.domain.action.global.StartDayOfMonthAct.kt - NewLineAtEndOfFile:Suggestions.kt$com.ivy.wallet.ui.onboarding.components.Suggestions.kt - NewLineAtEndOfFile:Switch.kt$com.ivy.design.l2_components.Switch.kt - NewLineAtEndOfFile:SyncExchangeRatesAct.kt$com.ivy.wallet.domain.action.exchange.SyncExchangeRatesAct.kt - NewLineAtEndOfFile:TestScreen.kt$com.ivy.wallet.ui.test.TestScreen.kt - NewLineAtEndOfFile:TestViewModel.kt$com.ivy.wallet.ui.test.TestViewModel.kt - NewLineAtEndOfFile:Theme.kt$com.ivy.design.l0_system.Theme.kt - NewLineAtEndOfFile:TimePeriod.kt$com.ivy.wallet.ui.onboarding.model.TimePeriod.kt - NewLineAtEndOfFile:TimeValue.kt$com.ivy.wallet.ui.charts.TimeValue.kt - NewLineAtEndOfFile:Title.kt$com.ivy.wallet.ui.edit.core.Title.kt - NewLineAtEndOfFile:Transaction.kt$com.ivy.wallet.domain.data.core.Transaction.kt - NewLineAtEndOfFile:TransactionCard.kt$com.ivy.wallet.ui.component.transaction.TransactionCard.kt - NewLineAtEndOfFile:TransactionDao.kt$com.ivy.wallet.io.persistence.dao.TransactionDao.kt - NewLineAtEndOfFile:TransactionDateTime.kt$com.ivy.wallet.ui.edit.TransactionDateTime.kt - NewLineAtEndOfFile:TransactionEntity.kt$com.ivy.wallet.io.persistence.data.TransactionEntity.kt - NewLineAtEndOfFile:TransactionHistoryDateDivider.kt$com.ivy.wallet.domain.data.TransactionHistoryDateDivider.kt - NewLineAtEndOfFile:TransactionHistoryItem.kt$com.ivy.wallet.domain.data.TransactionHistoryItem.kt - NewLineAtEndOfFile:TransactionReminderLogic.kt$com.ivy.wallet.domain.deprecated.logic.notification.TransactionReminderLogic.kt - NewLineAtEndOfFile:TransactionReminderWorker.kt$com.ivy.wallet.domain.deprecated.logic.notification.TransactionReminderWorker.kt - NewLineAtEndOfFile:TransactionSectionDivider.kt$com.ivy.wallet.ui.component.transaction.TransactionSectionDivider.kt - NewLineAtEndOfFile:TransactionType.kt$com.ivy.wallet.domain.data.TransactionType.kt - NewLineAtEndOfFile:TransactionViewModel.kt$com.ivy.wallet.ui.transaction.TransactionViewModel.kt - NewLineAtEndOfFile:TransactionsDividerLine.kt$com.ivy.wallet.ui.component.transaction.TransactionsDividerLine.kt - NewLineAtEndOfFile:TrnByIdAct.kt$com.ivy.wallet.domain.action.transaction.TrnByIdAct.kt - NewLineAtEndOfFile:TrnDate.kt$com.ivy.wallet.ui.transaction.data.TrnDate.kt - NewLineAtEndOfFile:TrnDateDividers.kt$com.ivy.wallet.domain.pure.transaction.TrnDateDividers.kt - NewLineAtEndOfFile:TrnEvent.kt$com.ivy.wallet.ui.transaction.TrnEvent.kt - NewLineAtEndOfFile:TrnExchangeRate.kt$com.ivy.wallet.ui.transaction.data.TrnExchangeRate.kt - NewLineAtEndOfFile:TrnFunctions.kt$com.ivy.wallet.domain.pure.transaction.TrnFunctions.kt - NewLineAtEndOfFile:TrnState.kt$com.ivy.wallet.ui.transaction.TrnState.kt - NewLineAtEndOfFile:TrnsWithDateDivsAct.kt$com.ivy.wallet.domain.action.transaction.TrnsWithDateDivsAct.kt - NewLineAtEndOfFile:TrnsWithRangeAndAccFiltersAct.kt$com.ivy.wallet.domain.action.transaction.TrnsWithRangeAndAccFiltersAct.kt - NewLineAtEndOfFile:TypographyExt.kt$com.ivy.design.l0_system.TypographyExt.kt - NewLineAtEndOfFile:UIExt.kt$com.ivy.wallet.utils.UIExt.kt - NewLineAtEndOfFile:UUIDSerializer.kt$com.ivy.wallet.ktor.kotlinxserilzation.UUIDSerializer.kt - NewLineAtEndOfFile:UiText.kt$com.ivy.wallet.utils.UiText.kt - NewLineAtEndOfFile:UpcomingAct.kt$com.ivy.wallet.domain.action.viewmodel.home.UpcomingAct.kt - NewLineAtEndOfFile:UpdateAccCacheAct.kt$com.ivy.wallet.domain.action.viewmodel.home.UpdateAccCacheAct.kt - NewLineAtEndOfFile:UpdateCategoriesCacheAct.kt$com.ivy.wallet.domain.action.viewmodel.home.UpdateCategoriesCacheAct.kt - NewLineAtEndOfFile:UpdateSettingsAct.kt$com.ivy.wallet.domain.action.settings.UpdateSettingsAct.kt - NewLineAtEndOfFile:UpdateStartDayOfMonthAct.kt$com.ivy.wallet.domain.action.global.UpdateStartDayOfMonthAct.kt - NewLineAtEndOfFile:User.kt$com.ivy.wallet.domain.data.core.User.kt - NewLineAtEndOfFile:UserDao.kt$com.ivy.wallet.io.persistence.dao.UserDao.kt - NewLineAtEndOfFile:UserEntity.kt$com.ivy.wallet.io.persistence.data.UserEntity.kt - NewLineAtEndOfFile:UtilExt.kt$com.ivy.wallet.utils.UtilExt.kt - NewLineAtEndOfFile:Utils.kt$com.ivy.wallet.domain.pure.util.Utils.kt - NewLineAtEndOfFile:Utils.kt$com.ivy.wallet.ui.component.transaction.Utils.kt - NewLineAtEndOfFile:View.kt$com.ivy.design.utils.View.kt - NewLineAtEndOfFile:WalletAccountLogic.kt$com.ivy.wallet.domain.deprecated.logic.WalletAccountLogic.kt - NewLineAtEndOfFile:WalletBalanceWidget.kt$com.ivy.wallet.ui.widget.WalletBalanceWidget.kt - NewLineAtEndOfFile:WalletBalanceWidgetActions.kt$com.ivy.wallet.ui.widget.WalletBalanceWidgetActions.kt - NewLineAtEndOfFile:WalletBalanceWidgetContent.kt$com.ivy.wallet.ui.widget.WalletBalanceWidgetContent.kt - NewLineAtEndOfFile:WalletByBudgetBakersSteps.kt$com.ivy.wallet.ui.csvimport.flow.instructions.WalletByBudgetBakersSteps.kt - NewLineAtEndOfFile:WalletCategoryLogic.kt$com.ivy.wallet.domain.deprecated.logic.WalletCategoryLogic.kt - NewLineAtEndOfFile:WalletCharts.kt$com.ivy.wallet.domain.pure.charts.WalletCharts.kt - NewLineAtEndOfFile:WalletDAOs.kt$com.ivy.wallet.domain.pure.data.WalletDAOs.kt - NewLineAtEndOfFile:WalletUtil.kt$com.ivy.wallet.utils.WalletUtil.kt - NewLineAtEndOfFile:WalletValueFunctions.kt$com.ivy.wallet.domain.pure.transaction.WalletValueFunctions.kt - NewLineAtEndOfFile:WidgetBase.kt$com.ivy.wallet.ui.widget.WidgetBase.kt - NewLineAtEndOfFile:WrapContentRow.kt$com.ivy.wallet.ui.theme.components.WrapContentRow.kt - NewLineAtEndOfFile:ZipUtils.kt$com.ivy.wallet.domain.deprecated.logic.zip.ZipUtils.kt NewLineAtEndOfFile:ivy.lint.gradle.kts$.ivy.lint.gradle.kts - NewLineAtEndOfFile:settings.gradle.kts$.settings.gradle.kts - NoBlankLineBeforeRbrace:AccountCharts.kt$ - NoBlankLineBeforeRbrace:AccountModal.kt$ - NoBlankLineBeforeRbrace:AddKeywordModal.kt$ - NoBlankLineBeforeRbrace:AddPrimaryAttributeButton.kt$ - NoBlankLineBeforeRbrace:AmountModal.kt$ - NoBlankLineBeforeRbrace:BudgetBattery.kt$ - NoBlankLineBeforeRbrace:BudgetBottomBar.kt$ - NoBlankLineBeforeRbrace:BudgetModal.kt$ - NoBlankLineBeforeRbrace:BudgetScreen.kt$ - NoBlankLineBeforeRbrace:BufferBattery.kt$ - NoBlankLineBeforeRbrace:Button.kt$ - NoBlankLineBeforeRbrace:ButtonWithIcon.kt$ - NoBlankLineBeforeRbrace:CSVImporter.kt$CSVImporter$ - NoBlankLineBeforeRbrace:CSVImporter.kt$CSVImporter.<no name provided>$ - NoBlankLineBeforeRbrace:CSVImporterV2.kt$CSVImporterV2$ - NoBlankLineBeforeRbrace:CSVScreen.kt$ - NoBlankLineBeforeRbrace:CSVViewModel.kt$CSVViewModel.<no name provided>$ - NoBlankLineBeforeRbrace:CategoriesBottomBar.kt$ - NoBlankLineBeforeRbrace:CategoriesScreen.kt$ - NoBlankLineBeforeRbrace:CategoryCharts.kt$ - NoBlankLineBeforeRbrace:CategoryCreator.kt$CategoryCreator$ - NoBlankLineBeforeRbrace:CategoryModal.kt$ - NoBlankLineBeforeRbrace:ChangeTransactionTypeModal.kt$ - NoBlankLineBeforeRbrace:ChartsScreen.kt$ - NoBlankLineBeforeRbrace:Checkbox.kt$ - NoBlankLineBeforeRbrace:ChooseCategoryModal.kt$ - NoBlankLineBeforeRbrace:ChooseIconModal.kt$ - NoBlankLineBeforeRbrace:ChoosePeriodModal.kt$ - NoBlankLineBeforeRbrace:ChooseStartDateOfMonthModal.kt$ - NoBlankLineBeforeRbrace:CircleButtons.kt$ - NoBlankLineBeforeRbrace:CurrencyModal.kt$ - NoBlankLineBeforeRbrace:CurrencyPicker.kt$ - NoBlankLineBeforeRbrace:Description.kt$ - NoBlankLineBeforeRbrace:DescriptionModal.kt$ - NoBlankLineBeforeRbrace:EditBottomSheet.kt$ - NoBlankLineBeforeRbrace:EditTransactionScreen.kt$ - NoBlankLineBeforeRbrace:FilterOverlay.kt$ - NoBlankLineBeforeRbrace:GesturesExt.kt$ - NoBlankLineBeforeRbrace:GitHubBackupViewModel.kt$GitHubBackupViewModel$ - NoBlankLineBeforeRbrace:GitHubClient.kt$GitHubClient$ - NoBlankLineBeforeRbrace:HomeHeader.kt$ - NoBlankLineBeforeRbrace:HomeMoreMenu.kt$ - NoBlankLineBeforeRbrace:IconButton.kt$ - NoBlankLineBeforeRbrace:ImportInstructions.kt$ - NoBlankLineBeforeRbrace:ImportResultUI.kt$ - NoBlankLineBeforeRbrace:IncomeExpensesRow.kt$ - NoBlankLineBeforeRbrace:InputField.kt$ - NoBlankLineBeforeRbrace:IvyBilling.kt$IvyBilling$ - NoBlankLineBeforeRbrace:IvyBorderButton.kt$ - NoBlankLineBeforeRbrace:IvyButton.kt$ - NoBlankLineBeforeRbrace:IvyCheckbox.kt$ - NoBlankLineBeforeRbrace:IvyCircleButton.kt$ - NoBlankLineBeforeRbrace:IvyColorPicker.kt$ - NoBlankLineBeforeRbrace:IvyModal.kt$ - NoBlankLineBeforeRbrace:IvyNameTextFieldValue.kt$ - NoBlankLineBeforeRbrace:IvyNumberTextField.kt$ - NoBlankLineBeforeRbrace:IvyOutlinedButton.kt$ - NoBlankLineBeforeRbrace:IvyTitleTextField.kt$ - NoBlankLineBeforeRbrace:IvyViewPager.kt$ - NoBlankLineBeforeRbrace:IvyViewPager.kt$IvyPagerState$ - NoBlankLineBeforeRbrace:LoanBottomBar.kt$ - NoBlankLineBeforeRbrace:LoanModal.kt$ - NoBlankLineBeforeRbrace:LoanRecordModal.kt$ - NoBlankLineBeforeRbrace:LoansScreen.kt$ - NoBlankLineBeforeRbrace:MainBottomBar.kt$ - NoBlankLineBeforeRbrace:MainViewModel.kt$MainViewModel$ - NoBlankLineBeforeRbrace:Migration110to111_PlannedPaymentRule.kt$Migration110to111_PlannedPaymentRule$ - NoBlankLineBeforeRbrace:Migration111to112_User_testUser.kt$Migration111to112_User_testUser$ - NoBlankLineBeforeRbrace:Migration112to113_ExchangeRates.kt$Migration112to113_ExchangeRates$ - NoBlankLineBeforeRbrace:Migration113to114_Multi_Currency.kt$Migration113to114_Multi_Currency$ - NoBlankLineBeforeRbrace:Migration114to115_Category_Account_Icons.kt$Migration114to115_Category_Account_Icons$ - NoBlankLineBeforeRbrace:Migration115to116_Account_Include_In_Balance.kt$Migration115to116_Account_Include_In_Balance$ - NoBlankLineBeforeRbrace:Migration116to117_SalteEdgeIntgration.kt$Migration116to117_SalteEdgeIntgration$ - NoBlankLineBeforeRbrace:Migration117to118_Budgets.kt$Migration117to118_Budgets$ - NoBlankLineBeforeRbrace:Migration118to119_Loans.kt$Migration118to119_Loans$ - NoBlankLineBeforeRbrace:MonthPickerModal.kt$ - NoBlankLineBeforeRbrace:NameModal.kt$ - NoBlankLineBeforeRbrace:OnboardingPrivacyTC.kt$ - NoBlankLineBeforeRbrace:OnboardingRouter.kt$OnboardingRouter$ - NoBlankLineBeforeRbrace:OnboardingSetCurrency.kt$ - NoBlankLineBeforeRbrace:OnboardingSetName.kt$ - NoBlankLineBeforeRbrace:OnboardingToolbar.kt$ - NoBlankLineBeforeRbrace:OnboardingType.kt$ - NoBlankLineBeforeRbrace:PaywallLogic.kt$PaywallLogic$ - NoBlankLineBeforeRbrace:PaywallViewModel.kt$PaywallViewModel$ - NoBlankLineBeforeRbrace:PeriodSelector.kt$ - NoBlankLineBeforeRbrace:PieChart.kt$ - NoBlankLineBeforeRbrace:PieChartStatisticScreen.kt$ - NoBlankLineBeforeRbrace:Plan.kt$Plan$ - NoBlankLineBeforeRbrace:PlannedPaymentCard.kt$ - NoBlankLineBeforeRbrace:PlannedPaymentsGenerator.kt$PlannedPaymentsGenerator$ - NoBlankLineBeforeRbrace:PreloadDataLogic.kt$PreloadDataLogic$ - NoBlankLineBeforeRbrace:RecurringRuleModal.kt$ - NoBlankLineBeforeRbrace:RootActivity.kt$RootActivity$ - NoBlankLineBeforeRbrace:RootViewModel.kt$RootViewModel$ - NoBlankLineBeforeRbrace:RootViewModel.kt$RootViewModel.<no name provided>$ - NoBlankLineBeforeRbrace:SetPreferenceAct.kt$SetPreferenceAct$ - NoBlankLineBeforeRbrace:SettingsScreen.kt$ - NoBlankLineBeforeRbrace:Suggestions.kt$ - NoBlankLineBeforeRbrace:TimePeriod.kt$TimePeriod$ - NoBlankLineBeforeRbrace:Title.kt$ - NoBlankLineBeforeRbrace:TransactionCard.kt$ - NoBlankLineBeforeRbrace:TransactionDateTime.kt$ - NoBlankLineBeforeRbrace:TransactionSectionDivider.kt$ - NoBlankLineBeforeRbrace:WalletBalanceWidget.kt$WalletBalanceWidget$ - NoBlankLineBeforeRbrace:WalletCategoryLogic.kt$WalletCategoryLogic$ - NoBlankLineBeforeRbrace:WidgetBase.kt$WidgetBase$ - NoBlankLineBeforeRbrace:ZipUtils.kt$ - NoConsecutiveBlankLines:AccTrnsAct.kt$ - NoConsecutiveBlankLines:AccValueFunctions.kt$AccountValueFunctions$ NoConsecutiveBlankLines:Accessors32ikgp1isdd8mwexzgbe6rirl.kt$ NoConsecutiveBlankLines:Accessors46nwrg1rs44ofdqpi7vyy3pfc.kt$ NoConsecutiveBlankLines:Accessors4ymijgaek646mzru18sdmblu7.kt$ @@ -2920,275 +1127,13 @@ NoConsecutiveBlankLines:Accessorsblypoh2ruc9u3bx9djsfqsntg.kt$ NoConsecutiveBlankLines:Accessorsbtc8iwv8u9b0f38ikfmodj8ns.kt$ NoConsecutiveBlankLines:Accessorseessl0al0otcsbyqqruvoncpd.kt$ - NoConsecutiveBlankLines:AccountModal.kt$ - NoConsecutiveBlankLines:AddPrimaryAttributeButton.kt$ - NoConsecutiveBlankLines:AddRateModal.kt$ - NoConsecutiveBlankLines:AmountCurrency.kt$ - NoConsecutiveBlankLines:AnalyticsEvent.kt$AnalyticsEvent.Companion$ - NoConsecutiveBlankLines:AppLockedScreen.kt$ - NoConsecutiveBlankLines:AppModuleDI.kt$AppModuleDI$ - NoConsecutiveBlankLines:BackupLogic.kt$ - NoConsecutiveBlankLines:BalanceRow.kt$ - NoConsecutiveBlankLines:BalanceScreen.kt$ - NoConsecutiveBlankLines:BarChart.kt$ - NoConsecutiveBlankLines:BottomBar.kt$ - NoConsecutiveBlankLines:BottomNavigationBar.kt$ - NoConsecutiveBlankLines:Budget.kt$Budget$ - NoConsecutiveBlankLines:BudgetCreator.kt$BudgetCreator$ - NoConsecutiveBlankLines:BudgetEntity.kt$BudgetEntity$ - NoConsecutiveBlankLines:BudgetModal.kt$ - NoConsecutiveBlankLines:BudgetScreen.kt$ - NoConsecutiveBlankLines:BudgetViewModel.kt$BudgetViewModel$ - NoConsecutiveBlankLines:BufferModal.kt$ - NoConsecutiveBlankLines:Button.kt$ - NoConsecutiveBlankLines:ButtonBack.kt$ - NoConsecutiveBlankLines:ButtonClose.kt$ - NoConsecutiveBlankLines:ButtonDelete.kt$ - NoConsecutiveBlankLines:ButtonExpandCollapse.kt$ - NoConsecutiveBlankLines:ButtonPrimary.kt$ - NoConsecutiveBlankLines:ButtonSecondary.kt$ - NoConsecutiveBlankLines:CSVImporter.kt$CSVImporter$ - NoConsecutiveBlankLines:CSVImporterV2.kt$CSVImporterV2$ - NoConsecutiveBlankLines:CSVMapper.kt$CSVMapper$ - NoConsecutiveBlankLines:CSVScreen.kt$ - NoConsecutiveBlankLines:CSVViewModel.kt$CSVViewModel$ - NoConsecutiveBlankLines:CategoriesScreen.kt$ - NoConsecutiveBlankLines:CategoryCharts.kt$ - NoConsecutiveBlankLines:CategoryCreator.kt$CategoryCreator$ - NoConsecutiveBlankLines:CategoryModal.kt$ - NoConsecutiveBlankLines:ChartsScreen.kt$ - NoConsecutiveBlankLines:ChartsViewModel.kt$ - NoConsecutiveBlankLines:ChartsViewModel.kt$ChartsViewModel$ - NoConsecutiveBlankLines:CircleButtons.kt$ - NoConsecutiveBlankLines:ColorPicker.kt$ - NoConsecutiveBlankLines:Colors.kt$ - NoConsecutiveBlankLines:ComposeExt.kt$ - NoConsecutiveBlankLines:CurrencyPicker.kt$ - NoConsecutiveBlankLines:CustomExchangeRateCard.kt$ - NoConsecutiveBlankLines:CustomerJourneyLogic.kt$ - NoConsecutiveBlankLines:DateExt.kt$ - NoConsecutiveBlankLines:DeleteConfirmationModal.kt$ NoConsecutiveBlankLines:DetektConfigurationAccessors.kt$ NoConsecutiveBlankLines:DetektPluginsConfigurationAccessors.kt$ - NoConsecutiveBlankLines:DonateModal.kt$ - NoConsecutiveBlankLines:DueDate.kt$ - NoConsecutiveBlankLines:EditBottomSheet.kt$ - NoConsecutiveBlankLines:EditPlannedViewModel.kt$EditPlannedViewModel$ - NoConsecutiveBlankLines:EditTransactionViewModel.kt$EditTransactionViewModel$ - NoConsecutiveBlankLines:ErrorModal.kt$ - NoConsecutiveBlankLines:Exchange.kt$ - NoConsecutiveBlankLines:ExchangeRatesScreen.kt$ - NoConsecutiveBlankLines:ExchangeRatesViewModel.kt$ExchangeRatesViewModel$ - NoConsecutiveBlankLines:FilterOverlay.kt$ - NoConsecutiveBlankLines:GitHubBackupStatus.kt$ - NoConsecutiveBlankLines:GitHubBackupViewModel.kt$GitHubBackupViewModel$ - NoConsecutiveBlankLines:GitHubBackupViewState.kt$ - NoConsecutiveBlankLines:GitHubClient.kt$ - NoConsecutiveBlankLines:GitHubCredentialsManager.kt$ - NoConsecutiveBlankLines:GradientCut.kt$ - NoConsecutiveBlankLines:Grid.kt$ - NoConsecutiveBlankLines:HistoryDateDivider.kt$ - NoConsecutiveBlankLines:HomeHeader.kt$ - NoConsecutiveBlankLines:HomeMoreMenu.kt$ - NoConsecutiveBlankLines:HomeTab.kt$ - NoConsecutiveBlankLines:IconPicker.kt$ - NoConsecutiveBlankLines:ImportFrom.kt$ - NoConsecutiveBlankLines:ImportInstructions.kt$ - NoConsecutiveBlankLines:ImportProcessing.kt$ - NoConsecutiveBlankLines:ImportResultUI.kt$ - NoConsecutiveBlankLines:InputField.kt$ - NoConsecutiveBlankLines:Insets.kt$ - NoConsecutiveBlankLines:ItemIcon.kt$ - NoConsecutiveBlankLines:ItemStatisticScreen.kt$ - NoConsecutiveBlankLines:IvyAndroidApp.kt$IvyAndroidApp$ - NoConsecutiveBlankLines:IvyBasicTextField.kt$ - NoConsecutiveBlankLines:IvyBorderButton.kt$ - NoConsecutiveBlankLines:IvyCheckbox.kt$ - NoConsecutiveBlankLines:IvyChecklistTextField.kt$ - NoConsecutiveBlankLines:IvyCircleButton.kt$ - NoConsecutiveBlankLines:IvyColorPicker.kt$ - NoConsecutiveBlankLines:IvyColors.kt$ - NoConsecutiveBlankLines:IvyComponents.kt$ - NoConsecutiveBlankLines:IvyComposeApp.kt$ - NoConsecutiveBlankLines:IvyDescriptionTextField.kt$ - NoConsecutiveBlankLines:IvyDivider.kt$ - NoConsecutiveBlankLines:IvyDividerDot.kt$ - NoConsecutiveBlankLines:IvyIcon.kt$ - NoConsecutiveBlankLines:IvyLineChart.kt$ - NoConsecutiveBlankLines:IvyModal.kt$ - NoConsecutiveBlankLines:IvyModalDomainComponents.kt$ - NoConsecutiveBlankLines:IvyNameTextFieldValue.kt$ - NoConsecutiveBlankLines:IvyNotificationChannel.kt$IvyNotificationChannel$ - NoConsecutiveBlankLines:IvyNumberTextField.kt$ - NoConsecutiveBlankLines:IvyOutlinedButton.kt$ - NoConsecutiveBlankLines:IvyOutlinedTextField.kt$ - NoConsecutiveBlankLines:IvyRoomDatabase.kt$ - NoConsecutiveBlankLines:IvySwitch.kt$ - NoConsecutiveBlankLines:IvyTheme.kt$ - NoConsecutiveBlankLines:IvyTitleTextField.kt$ - NoConsecutiveBlankLines:IvyUI.kt$ - NoConsecutiveBlankLines:IvyWalletCtx.kt$IvyWalletCtx$ - NoConsecutiveBlankLines:IvyWalletDesign.kt$IvyWalletDesign$ - NoConsecutiveBlankLines:Keyboard.kt$ - NoConsecutiveBlankLines:LineChart.kt$ - NoConsecutiveBlankLines:Loading.kt$ - NoConsecutiveBlankLines:LoanCreator.kt$LoanCreator$ - NoConsecutiveBlankLines:LoanDetailsScreen.kt$ - NoConsecutiveBlankLines:LoanModal.kt$ - NoConsecutiveBlankLines:LoanRecordCreator.kt$LoanRecordCreator$ - NoConsecutiveBlankLines:LoanRecordModal.kt$ - NoConsecutiveBlankLines:LoanTransactionsCore.kt$LoanTransactionsCore$ - NoConsecutiveBlankLines:LoansScreen.kt$ - NoConsecutiveBlankLines:MainBottomBar.kt$ - NoConsecutiveBlankLines:MoneyManagerPraseSteps.kt$ - NoConsecutiveBlankLines:Month.kt$Month$ - NoConsecutiveBlankLines:MonthPickerModal.kt$ - NoConsecutiveBlankLines:NotificationService.kt$NotificationService$ - NoConsecutiveBlankLines:Onboarding.kt$ - NoConsecutiveBlankLines:OnboardingAccounts.kt$ - NoConsecutiveBlankLines:OnboardingCategories.kt$ - NoConsecutiveBlankLines:OnboardingComponents.kt$ - NoConsecutiveBlankLines:OnboardingProgressSlider.kt$ - NoConsecutiveBlankLines:OnboardingRouter.kt$OnboardingRouter$ - NoConsecutiveBlankLines:OnboardingSetName.kt$ - NoConsecutiveBlankLines:OnboardingSplashLogin.kt$ - NoConsecutiveBlankLines:OnboardingViewModel.kt$OnboardingViewModel$ - NoConsecutiveBlankLines:Padding.kt$ - NoConsecutiveBlankLines:ParseStatus.kt$ - NoConsecutiveBlankLines:PaywallLogic.kt$PaywallLogic$ - NoConsecutiveBlankLines:PaywallScreen.kt$ - NoConsecutiveBlankLines:PeriodSelector.kt$ - NoConsecutiveBlankLines:PieChart.kt$ - NoConsecutiveBlankLines:PieChart.kt$PieChartView$ - NoConsecutiveBlankLines:PieChartStatisticScreen.kt$ - NoConsecutiveBlankLines:PlannedPaymentsLazyColumn.kt$ NoConsecutiveBlankLines:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$ - NoConsecutiveBlankLines:PlansSheet.kt$ NoConsecutiveBlankLines:PluginSpecBuilders.kt$ - NoConsecutiveBlankLines:PreloadDataLogic.kt$ - NoConsecutiveBlankLines:PreloadDataLogic.kt$PreloadDataLogic$ - NoConsecutiveBlankLines:Preview.kt$ - NoConsecutiveBlankLines:PreviewUtils.kt$ - NoConsecutiveBlankLines:PrimaryAttributeColumn.kt$ - NoConsecutiveBlankLines:ProgressBar.kt$ - NoConsecutiveBlankLines:Project.kt$ - NoConsecutiveBlankLines:RateItem.kt$ - NoConsecutiveBlankLines:RecurringRuleModal.kt$ - NoConsecutiveBlankLines:ReorderModal.kt$ - NoConsecutiveBlankLines:ReorderModal.kt$<no name provided>$ - NoConsecutiveBlankLines:RootActivity.kt$ - NoConsecutiveBlankLines:RootActivity.kt$RootActivity$ - NoConsecutiveBlankLines:RootViewModel.kt$RootViewModel$ - NoConsecutiveBlankLines:SearchBar.kt$ - NoConsecutiveBlankLines:ServerStopScreen.kt$ - NoConsecutiveBlankLines:SettingsScreen.kt$ - NoConsecutiveBlankLines:SettingsViewModel.kt$SettingsViewModel$ - NoConsecutiveBlankLines:SharedPrefs.kt$SharedPrefs.Companion$ - NoConsecutiveBlankLines:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$ - NoConsecutiveBlankLines:Suggestions.kt$ - NoConsecutiveBlankLines:Transaction.kt$Transaction$ - NoConsecutiveBlankLines:TransactionCard.kt$ - NoConsecutiveBlankLines:TransactionDao.kt$TransactionDao$ - NoConsecutiveBlankLines:TransactionDateTime.kt$ - NoConsecutiveBlankLines:TransactionsDividerLine.kt$ - NoConsecutiveBlankLines:TrnDateDividers.kt$ - NoConsecutiveBlankLines:UIExt.kt$ - NoConsecutiveBlankLines:WalletAccountLogic.kt$WalletAccountLogic$ - NoConsecutiveBlankLines:WalletBalanceWidget.kt$WalletBalanceWidgetReceiver$ - NoConsecutiveBlankLines:WalletCategoryLogic.kt$WalletCategoryLogic$ - NoConsecutiveBlankLines:WalletCharts.kt$ - NoConsecutiveBlankLines:WrapContentRow.kt$ - NoConsecutiveBlankLines:build.gradle.kts$ - NoConsecutiveBlankLines:ivy.lint.gradle.kts$ - NoEmptyClassBody:AccountsUpdatedEvent.kt$AccountsUpdatedEvent${ } - NoEmptyFirstLineInMethodBlock:AccountCharts.kt$ - NoEmptyFirstLineInMethodBlock:AccountModal.kt$ - NoEmptyFirstLineInMethodBlock:AccountsTab.kt$ - NoEmptyFirstLineInMethodBlock:AddKeywordModal.kt$ - NoEmptyFirstLineInMethodBlock:AddPrimaryAttributeButton.kt$ - NoEmptyFirstLineInMethodBlock:AmountModal.kt$ - NoEmptyFirstLineInMethodBlock:BudgetBottomBar.kt$ - NoEmptyFirstLineInMethodBlock:BudgetModal.kt$ - NoEmptyFirstLineInMethodBlock:Button.kt$ - NoEmptyFirstLineInMethodBlock:ButtonWithIcon.kt$ - NoEmptyFirstLineInMethodBlock:CSVViewModel.kt$CSVViewModel$ - NoEmptyFirstLineInMethodBlock:CategoriesBottomBar.kt$ - NoEmptyFirstLineInMethodBlock:CategoryModal.kt$ - NoEmptyFirstLineInMethodBlock:ChangeTransactionTypeModal.kt$ - NoEmptyFirstLineInMethodBlock:Checkbox.kt$ - NoEmptyFirstLineInMethodBlock:ChooseCategoryModal.kt$ - NoEmptyFirstLineInMethodBlock:ChooseIconModal.kt$ - NoEmptyFirstLineInMethodBlock:ChoosePeriodModal.kt$ - NoEmptyFirstLineInMethodBlock:ChooseStartDateOfMonthModal.kt$ - NoEmptyFirstLineInMethodBlock:CircleButtons.kt$ - NoEmptyFirstLineInMethodBlock:CurrencyModal.kt$ - NoEmptyFirstLineInMethodBlock:CurrencyPicker.kt$ - NoEmptyFirstLineInMethodBlock:Description.kt$ - NoEmptyFirstLineInMethodBlock:DescriptionModal.kt$ - NoEmptyFirstLineInMethodBlock:EditBottomSheet.kt$ - NoEmptyFirstLineInMethodBlock:ExportCSVLogic.kt$ExportCSVLogic$ - NoEmptyFirstLineInMethodBlock:HomeMoreMenu.kt$ - NoEmptyFirstLineInMethodBlock:IconButton.kt$ - NoEmptyFirstLineInMethodBlock:ImportInstructions.kt$ - NoEmptyFirstLineInMethodBlock:ImportResultUI.kt$ - NoEmptyFirstLineInMethodBlock:InputField.kt$ - NoEmptyFirstLineInMethodBlock:IntervalPickerRow.kt$ - NoEmptyFirstLineInMethodBlock:IvyBorderButton.kt$ - NoEmptyFirstLineInMethodBlock:IvyButton.kt$ - NoEmptyFirstLineInMethodBlock:IvyCheckbox.kt$ - NoEmptyFirstLineInMethodBlock:IvyCircleButton.kt$ - NoEmptyFirstLineInMethodBlock:IvyColorPicker.kt$ - NoEmptyFirstLineInMethodBlock:IvyModal.kt$ - NoEmptyFirstLineInMethodBlock:IvyNumberTextField.kt$ - NoEmptyFirstLineInMethodBlock:IvyOutlinedButton.kt$ - NoEmptyFirstLineInMethodBlock:LTLoanMapper.kt$LTLoanMapper$ - NoEmptyFirstLineInMethodBlock:LoanBottomBar.kt$ - NoEmptyFirstLineInMethodBlock:LoanDetailsScreen.kt$ - NoEmptyFirstLineInMethodBlock:LoanModal.kt$ - NoEmptyFirstLineInMethodBlock:LoanRecordModal.kt$ - NoEmptyFirstLineInMethodBlock:LoanTransactionsCore.kt$LoanTransactionsCore$ - NoEmptyFirstLineInMethodBlock:LoanTransactionsLogic.kt$LoanTransactionsLogic$ - NoEmptyFirstLineInMethodBlock:LoanViewModel.kt$LoanViewModel$ - NoEmptyFirstLineInMethodBlock:LoansScreen.kt$ - NoEmptyFirstLineInMethodBlock:LogoutLogic.kt$LogoutLogic$ - NoEmptyFirstLineInMethodBlock:MonthPickerModal.kt$ - NoEmptyFirstLineInMethodBlock:NameModal.kt$ - NoEmptyFirstLineInMethodBlock:OnboardingPrivacyTC.kt$ - NoEmptyFirstLineInMethodBlock:OnboardingRouter.kt$OnboardingRouter$ - NoEmptyFirstLineInMethodBlock:OnboardingSetCurrency.kt$ - NoEmptyFirstLineInMethodBlock:OnboardingSetName.kt$ - NoEmptyFirstLineInMethodBlock:OnboardingToolbar.kt$ - NoEmptyFirstLineInMethodBlock:OnboardingType.kt$ - NoEmptyFirstLineInMethodBlock:PaywallViewModel.kt$PaywallViewModel$ - NoEmptyFirstLineInMethodBlock:PeriodSelector.kt$ - NoEmptyFirstLineInMethodBlock:PieChartAct.kt$PieChartAct$ - NoEmptyFirstLineInMethodBlock:PlannedPaymentCard.kt$ - NoEmptyFirstLineInMethodBlock:PlannedPaymentsLazyColumn.kt$ - NoEmptyFirstLineInMethodBlock:PlansSheet.kt$ - NoEmptyFirstLineInMethodBlock:RecurringRuleModal.kt$ - NoEmptyFirstLineInMethodBlock:RootViewModel.kt$RootViewModel.<no name provided>$ - NoEmptyFirstLineInMethodBlock:Suggestions.kt$ - NoEmptyFirstLineInMethodBlock:Title.kt$ - NoEmptyFirstLineInMethodBlock:Toolbar.kt$ - NoEmptyFirstLineInMethodBlock:TransactionCard.kt$ - NoEmptyFirstLineInMethodBlock:TransactionDateTime.kt$ - NoEmptyFirstLineInMethodBlock:TransactionReminderWorker.kt$TransactionReminderWorker$ - NoEmptyFirstLineInMethodBlock:TransactionSectionDivider.kt$ - NoEmptyFirstLineInMethodBlock:UIExt.kt$ - NoEmptyFirstLineInMethodBlock:WalletCategoryLogic.kt$WalletCategoryLogic$ - NoLineBreakAfterElse:LoanTransactionsCore.kt$LoanTransactionsCore$ - NoMultipleSpaces:AccountsTab.kt$ - NoMultipleSpaces:BudgetScreen.kt$ - NoMultipleSpaces:CategoriesScreen.kt$ - NoMultipleSpaces:ChartsViewModel.kt$ChartsViewModel$ - NoMultipleSpaces:Constants.kt$Constants$ NoMultipleSpaces:DetektConfigurationAccessors.kt$ NoMultipleSpaces:DetektPluginsConfigurationAccessors.kt$ - NoMultipleSpaces:LoansScreen.kt$ NoMultipleSpaces:ivy.lint.gradle.kts$ - NoSemicolons:LogoutLogic.kt$LogoutLogic$; - NoSemicolons:UIExt.kt$; - NoSemicolons:UtilExt.kt$; NoTrailingSpaces:ivy.lint.gradle.kts$ NoUnusedImports:Accessors32ikgp1isdd8mwexzgbe6rirl.kt$gradle.kotlin.dsl.accessors._6b1cdd1e881959619ea23cf7941079a9.Accessors32ikgp1isdd8mwexzgbe6rirl.kt NoUnusedImports:Accessors46nwrg1rs44ofdqpi7vyy3pfc.kt$gradle.kotlin.dsl.accessors._6b1cdd1e881959619ea23cf7941079a9.Accessors46nwrg1rs44ofdqpi7vyy3pfc.kt @@ -3288,7 +1233,7 @@ NoWildcardImports:ViewPager.kt$import androidx.compose.runtime.* NoWildcardImports:WalletBalanceWidgetContent.kt$import androidx.glance.layout.* NoWildcardImports:ZipUtils.kt$import java.io.* - ObjectPropertyNaming:SharedPrefs.kt$SharedPrefs.Companion$//-------------------------------- Customer Journey ---------------------------------------- const val _CARD_DISMISSED = "_cj_dismissed" + ObjectPropertyNaming:SharedPrefs.kt$SharedPrefs.Companion$// -------------------------------- Customer Journey ---------------------------------------- const val _CARD_DISMISSED = "_cj_dismissed" PackageName:Accessors32ikgp1isdd8mwexzgbe6rirl.kt$package gradle.kotlin.dsl.accessors._6b1cdd1e881959619ea23cf7941079a9 PackageName:Accessors46nwrg1rs44ofdqpi7vyy3pfc.kt$package gradle.kotlin.dsl.accessors._6b1cdd1e881959619ea23cf7941079a9 PackageName:Accessors4ymijgaek646mzru18sdmblu7.kt$package gradle.kotlin.dsl.accessors._6b1cdd1e881959619ea23cf7941079a9 @@ -3429,7 +1374,6 @@ ParameterListWrapping:Accessorseessl0al0otcsbyqqruvoncpd.kt$(configure: Action<org.gradle.api.plugins.ExtraPropertiesExtension>) ParameterListWrapping:DetektConfigurationAccessors.kt$(constraintNotation: Any, block: DependencyConstraint.() -> Unit) ParameterListWrapping:DetektPluginsConfigurationAccessors.kt$(constraintNotation: Any, block: DependencyConstraint.() -> Unit) - ParameterListWrapping:TransactionReminderWorker.kt$TransactionReminderWorker$( @Assisted appContext: Context, @Assisted params: WorkerParameters, private val transactionDao: TransactionDao, private val notificationService: NotificationService, private val sharedPrefs: SharedPrefs, ) PrintStackTrace:Budget.kt$Budget$e PrintStackTrace:BudgetCreator.kt$BudgetCreator$e PrintStackTrace:BudgetEntity.kt$BudgetEntity$e @@ -3471,41 +1415,10 @@ ReturnCount:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$private suspend fun amountForMonthInBaseCurrency( plannedPayment: PlannedPaymentRule, baseCurrency: String, accounts: List<Account> ): Double ReturnCount:ReportFilter.kt$ReportFilter$fun validate(): Boolean ReturnCount:SyncExchangeRatesAct.kt$SyncExchangeRatesAct$private suspend fun sync(baseCurrency: String) - SpacingAroundColon:AmountFormatting.kt$: - SpacingAroundColon:ComposeExt.kt$: - SpacingAroundColon:CreateLoanData.kt$CreateLoanData$: - SpacingAroundColon:ReorderModal.kt$: SpacingAroundColon:ReportViewModel.kt$ReportViewModel$: - SpacingAroundColon:UiText.kt$UiText$: - SpacingAroundComma:ItemStatisticScreen.kt$, - SpacingAroundComma:IvyDesign.kt$IvyDesign$, - SpacingAroundComma:IvyWalletDesign.kt$IvyWalletDesign$, - SpacingAroundComma:PlannedPaymentCard.kt$, - SpacingAroundCurly:ItemStatisticScreen.kt${ SpacingAroundCurly:PlannedPaymentsLogic.kt$PlannedPaymentsLogic${ SpacingAroundCurly:ReportViewModel.kt$ReportViewModel${ - SpacingAroundKeyword:ExportCSVLogic.kt$ExportCSVLogic$when - SpacingAroundKeyword:IvyWalletDesign.kt$IvyWalletDesign$if - SpacingAroundKeyword:OnboardingAccounts.kt$if - SpacingAroundParens:IvyBilling.kt$IvyBilling$( SpreadOperator:UiText.kt$UiText$(resId, *args) - StringTemplate:AccountModal.kt$${currencyName} - StringTemplate:AddRateModal.kt$${baseCurrency} - StringTemplate:AddRateModal.kt$${toCurrency} - StringTemplate:AmountFormatting.kt$${decimalPartString} - StringTemplate:AmountModal.kt$${decimalPartString} - StringTemplate:AmountModal.kt$${value} - StringTemplate:FileUtil.kt$${dirPath} - StringTemplate:GitHubBackupViewModel.kt$GitHubBackupViewModel$${owner} - StringTemplate:GitHubBackupViewModel.kt$GitHubBackupViewModel$${repo} - StringTemplate:ImportProcessing.kt$${progressPercent} - StringTemplate:ItemIcon.kt$${size} - StringTemplate:Migration117to118_Budgets.kt$Migration117to118_Budgets$${tableName} - StringTemplate:PaywallScreen.kt$${usedCount} - StringTemplate:PlansSheet.kt$${savePercentage} - StringTemplate:ReorderModal.kt$Adapter.ItemViewHolder$${position} - StringTemplate:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$${it} - StringTemplate:SmartTitleSuggestionsLogic.kt$SmartTitleSuggestionsLogic$${title} SwallowedException:BackupLogic.kt$BackupLogic$e: Exception SwallowedException:CSVImporter.kt$CSVImporter$e: Exception SwallowedException:CSVImporterV2.kt$CSVImporterV2$e: Exception @@ -3798,7 +1711,6 @@ TopLevelPropertyNaming:Title.kt$const val SUGGESTIONS_LIMIT = 10 TopLevelPropertyNaming:ZipUtils.kt$private const val MODE_READ = "r" TopLevelPropertyNaming:ZipUtils.kt$private const val MODE_WRITE = "w" - UnnecessaryParenthesesBeforeTrailingLambda:EditBottomSheet.kt$() UnstableCollections:BudgetModal.kt$List<Category> UnstableCollections:BudgetModal.kt$List<UUID> UnstableCollections:BudgetScreen.kt$List<Account> @@ -4085,32 +1997,6 @@ WildcardImport:ViewPager.kt$import androidx.compose.runtime.* WildcardImport:WalletBalanceWidgetContent.kt$import androidx.glance.layout.* WildcardImport:ZipUtils.kt$import java.io.* - Wrapping:AccountModal.kt$( - Wrapping:AccountsViewModel.kt$AccountsViewModel$( R.string.total, baseCurrencyCode, totalBalanceWithExcluded.format( baseCurrencyCode ) ) - Wrapping:AmountModal.kt$( - Wrapping:BackupLogic.kt$BackupLogic$( - Wrapping:BackupLogic.kt$BackupLogic$( LocalDateTime::class.java, object : JsonDeserializer<LocalDateTime?> { @Throws(JsonParseException::class) override fun deserialize( json: JsonElement, type: Type?, jsonDeserializationContext: JsonDeserializationContext? ): LocalDateTime? { val instant: Instant = Instant.ofEpochMilli(json.asJsonPrimitive.asLong) return LocalDateTime.ofInstant(instant, ZoneOffset.UTC) } }) - Wrapping:BackupLogic.kt$BackupLogic$( LocalDateTime::class.java, object : JsonSerializer<LocalDateTime?> { @Throws(JsonParseException::class) override fun serialize( src: LocalDateTime?, typeOfSrc: Type?, context: JsonSerializationContext? ): JsonElement { return JsonPrimitive(src!!.toEpochMilli().toString()) } }) - Wrapping:BufferBattery.kt$( - Wrapping:ChartsViewModel.kt$ChartsViewModel$( - Wrapping:ChooseStartDateOfMonthModal.kt$( - Wrapping:CustomExchangeRateCard.kt$( - Wrapping:ItemStatisticViewModel.kt$ItemStatisticViewModel$( - Wrapping:IvyChecklistTextField.kt$( - Wrapping:IvyDescriptionTextField.kt$( - Wrapping:IvyOutlinedTextField.kt$( - Wrapping:IvyViewPager.kt$( - Wrapping:KtorClient.kt$( - Wrapping:Loan.kt$Loan$( - Wrapping:LoanModal.kt$( - Wrapping:LoanRecordModal.kt$( Wrapping:PlannedPaymentsLogic.kt$PlannedPaymentsLogic$-> - Wrapping:RootActivity.kt$RootActivity$( Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_STREAM, fileUri) type = "application/zip" }, null ) - Wrapping:RootActivity.kt$RootActivity$( Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_STREAM, fileUri) type = "text/csv" }, null ) - Wrapping:RootActivity.kt$RootActivity$( Intent.EXTRA_SUBJECT, "Ivy Wallet Support Request #" + caseNumber + "0" + BuildConfig.VERSION_CODE ) - Wrapping:SettingsScreen.kt$( R.string.confirm_all_userd_data_deletion, user?.email ?: stringResource( R.string.all_of_your_data ) ) - Wrapping:SettingsScreen.kt$( R.string.delete_all_user_cloud_data_warning, user?.email ?: stringResource( R.string.your_account ) ) - Wrapping:SettingsScreen.kt$( R.string.delete_all_user_data_warning, user?.email ?: stringResource( R.string.your_account ) ) - Wrapping:ViewPager.kt$( diff --git a/ivy-design/build.gradle.kts b/ivy-design/build.gradle.kts index 6459b34669..2705655cb4 100644 --- a/ivy-design/build.gradle.kts +++ b/ivy-design/build.gradle.kts @@ -48,10 +48,10 @@ android { } packagingOptions { - //Exclude this files so Jetpack Compose UI tests can build + // Exclude this files so Jetpack Compose UI tests can build resources.excludes.add("META-INF/AL2.0") resources.excludes.add("META-INF/LGPL2.1") - //------------------------------------------------------- + // ------------------------------------------------------- } } diff --git a/ivy-design/src/androidTest/java/com/ivy/design/ExampleInstrumentedTest.kt b/ivy-design/src/androidTest/java/com/ivy/design/ExampleInstrumentedTest.kt index 702a2a8567..394903f127 100644 --- a/ivy-design/src/androidTest/java/com/ivy/design/ExampleInstrumentedTest.kt +++ b/ivy-design/src/androidTest/java/com/ivy/design/ExampleInstrumentedTest.kt @@ -19,4 +19,4 @@ class ExampleInstrumentedTest { val appContext = InstrumentationRegistry.getInstrumentation().targetContext assertEquals("com.ivy.design.test", appContext.packageName) } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/IvyContext.kt b/ivy-design/src/main/java/com/ivy/design/IvyContext.kt index 434bfe3af7..c55dd05a96 100644 --- a/ivy-design/src/main/java/com/ivy/design/IvyContext.kt +++ b/ivy-design/src/main/java/com/ivy/design/IvyContext.kt @@ -21,4 +21,4 @@ abstract class IvyContext { fun switchTheme(theme: Theme) { this.theme = theme } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/api/IvyDesign.kt b/ivy-design/src/main/java/com/ivy/design/api/IvyDesign.kt index f818c99fe3..6fdd912fa0 100644 --- a/ivy-design/src/main/java/com/ivy/design/api/IvyDesign.kt +++ b/ivy-design/src/main/java/com/ivy/design/api/IvyDesign.kt @@ -11,7 +11,7 @@ interface IvyDesign { fun typography(): IvyTypography - fun colors(theme: Theme,isDarkModeEnabled: Boolean): IvyColors + fun colors(theme: Theme, isDarkModeEnabled: Boolean): IvyColors fun shapes(): IvyShapes -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/api/IvyUI.kt b/ivy-design/src/main/java/com/ivy/design/api/IvyUI.kt index 466e2049d8..0fabade8ae 100644 --- a/ivy-design/src/main/java/com/ivy/design/api/IvyUI.kt +++ b/ivy-design/src/main/java/com/ivy/design/api/IvyUI.kt @@ -37,7 +37,6 @@ fun IvyUI( maxHeight.roundToPx() } - Content() } } @@ -48,4 +47,4 @@ fun IvyUI( @Composable fun ivyContext(): IvyContext { return LocalIvyContext.current -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/api/systems/IvyWalletDesign.kt b/ivy-design/src/main/java/com/ivy/design/api/systems/IvyWalletDesign.kt index 54265736d6..33fa63f233 100644 --- a/ivy-design/src/main/java/com/ivy/design/api/systems/IvyWalletDesign.kt +++ b/ivy-design/src/main/java/com/ivy/design/api/systems/IvyWalletDesign.kt @@ -18,7 +18,6 @@ abstract class IvyWalletDesign : IvyDesign { const val RALEWAY_BASELINE_SHIFT = 0.2f } - override fun typography(): IvyTypography { val openSans = FontFamily( Font(R.font.opensans_regular, FontWeight.Normal), @@ -156,7 +155,7 @@ abstract class IvyWalletDesign : IvyDesign { override val isLight = false } - Theme.AUTO -> if(isDarkModeEnabled) colors(Theme.DARK,true) else colors(Theme.LIGHT,false) + Theme.AUTO -> if (isDarkModeEnabled) colors(Theme.DARK, true) else colors(Theme.LIGHT, false) } } @@ -179,4 +178,4 @@ abstract class IvyWalletDesign : IvyDesign { override val r4Bot = RoundedCornerShape(bottomStart = 16.dp, bottomEnd = 16.dp) } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/Colors.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/Colors.kt index 55277ce3ce..46e06434e6 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/Colors.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/Colors.kt @@ -7,11 +7,10 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.core.graphics.ColorUtils - val White = Color(0xFFFAFAFA) val Black = Color(0xFF111114) -//Primary +// Primary val Purple = Color(0xFF6B4DFF) val Purple1 = Color(0xFFC34CFF) val Purple2 = Color(0xFFFF4CFF) @@ -35,8 +34,7 @@ val Red = Color(0xFFFF4060) val Red2 = Color(0xFFE62E2E) val Red3 = Color(0xFFFF4CA6) - -//Light +// Light val IvyLight = Color(0xFFD5CCFF) val Purple1Light = Color(0xFFEECCFF) val Purple2Light = Color(0xFFFFBFFF) @@ -60,8 +58,7 @@ val RedLight = Color(0xFFFFCCD5) val Red2Light = Color(0xFFFFB3B3) val Red3Light = Color(0xFFFFCCE6) - -//Dark +// Dark val IvyDark = Color(0xFF352680) val Purple1Dark = Color(0xFF622680) val Purple2Dark = Color(0xFF802680) @@ -84,14 +81,12 @@ val Orange3Dark = Color(0xFF806226) val RedDark = Color(0xFF801919) val Red2Dark = Color(0xFF802030) val Red3Dark = Color(0xFF802653) -//-------------------------------------------------------------------------------------------------- - +// -------------------------------------------------------------------------------------------------- val MediumBlack = Color(0xFF2B2C2D) val Gray = Color(0xFF939199) val MediumWhite = Color(0xFFEFEEF0) - val Transparent = Color(0x00000000) val GradientRed = Gradient(Red, Color(0xFFFF99AB)) @@ -150,7 +145,7 @@ fun Color.dynamicContrast(): Color { return when { pickedColor.s >= 0.5f && pickedColor.v >= 0.4f -> { - //Primary + // Primary if (isDarkColor(this)) { lighten() } else { @@ -158,11 +153,11 @@ fun Color.dynamicContrast(): Color { } } pickedColor.s <= 0.5f && pickedColor.v >= 0.8f -> { - //Light + // Light darken() } pickedColor.s >= 0.1f && pickedColor.v <= 0.6f -> { - //Dark + // Dark lighten() } else -> { @@ -221,4 +216,4 @@ fun Color.hsv( return Color(android.graphics.Color.HSVToColor(hsv)) } -fun Int.toComposeColor() = Color(this) \ No newline at end of file +fun Int.toComposeColor() = Color(this) diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyColors.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyColors.kt index d783d6dcb8..85015e543c 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyColors.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyColors.kt @@ -24,4 +24,4 @@ interface IvyColors { val red1Inverse: Color val isLight: Boolean -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyShapes.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyShapes.kt index 76b822c0b2..2068ff46f4 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyShapes.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyShapes.kt @@ -23,4 +23,4 @@ abstract class IvyShapes { val rFull: CornerBasedShape = RoundedCornerShape(percent = 50) val circle = CircleShape -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyTheme.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyTheme.kt index 3c2cb052e2..749ac22fe3 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyTheme.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyTheme.kt @@ -23,7 +23,6 @@ val LocalIvyColors = compositionLocalOf { error("No IvyColors") } val LocalIvyTypography = compositionLocalOf { error("No IvyTypography") } val LocalIvyShapes = compositionLocalOf { error("No IvyShapes") } - object UI { val colors: IvyColors @Composable @@ -78,8 +77,11 @@ fun IvyTheme( } fun adaptColors(colors: IvyColors): ColorScheme { - val colorScheme = if (colors.isLight) - lightColorScheme() else darkColorScheme() + val colorScheme = if (colors.isLight) { + lightColorScheme() + } else { + darkColorScheme() + } return colorScheme.copy( primary = colors.primary, onPrimary = White, diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyTypography.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyTypography.kt index 10b2821dc8..64e1f63a46 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyTypography.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyTypography.kt @@ -14,4 +14,4 @@ interface IvyTypography { val nB1: TextStyle val nB2: TextStyle val nC: TextStyle -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/Theme.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/Theme.kt index 61fe247690..e0e04563cc 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/Theme.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/Theme.kt @@ -10,4 +10,4 @@ enum class Theme { AUTO -> AUTO } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/TypographyExt.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/TypographyExt.kt index 3e42601d4e..21c9984aa6 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/TypographyExt.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/TypographyExt.kt @@ -17,4 +17,4 @@ fun TextStyle.style( color = color, fontWeight = fontWeight, textAlign = textAlign -) \ No newline at end of file +) diff --git a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/ColumnRoot.kt b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/ColumnRoot.kt index 8979d93be9..ab49e00ef9 100644 --- a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/ColumnRoot.kt +++ b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/ColumnRoot.kt @@ -34,4 +34,4 @@ fun ColumnRoot( ) { Content() } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Dividers.kt b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Dividers.kt index 7215d42118..4e4a03dda8 100644 --- a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Dividers.kt +++ b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Dividers.kt @@ -197,4 +197,4 @@ private fun PreviewDivider() { SpacerHor(16.dp) } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/IvyIcon.kt b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/IvyIcon.kt index d408d16312..b683f15391 100644 --- a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/IvyIcon.kt +++ b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/IvyIcon.kt @@ -70,4 +70,4 @@ fun IvyIconScaled( enum class IconScale { S, M, L -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/IvyText.kt b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/IvyText.kt index 0004d5cc99..373f3d51db 100644 --- a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/IvyText.kt +++ b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/IvyText.kt @@ -24,4 +24,4 @@ fun IvyText( text = text, style = typo, ) -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Shapes.kt b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Shapes.kt index d4e041c29a..796f5e6a27 100644 --- a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Shapes.kt +++ b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Shapes.kt @@ -73,4 +73,4 @@ private fun PreviewOutlined() { borderColor = UI.colors.gray ) } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Spacers.kt b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Spacers.kt index b974c07cff..92033399ad 100644 --- a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Spacers.kt +++ b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/Spacers.kt @@ -50,4 +50,4 @@ fun SpacerKeyboardHeight( val height by keyboardHeightState() SpacerVer(height = height) } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/data/Background.kt b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/data/Background.kt index e00bcef8bc..4abfb19380 100644 --- a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/data/Background.kt +++ b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/data/Background.kt @@ -85,4 +85,4 @@ fun Modifier.clipBackground(background: Background): Modifier { is Background.None -> null } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/data/IvyPadding.kt b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/data/IvyPadding.kt index ed2437813c..0346d74b86 100644 --- a/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/data/IvyPadding.kt +++ b/ivy-design/src/main/java/com/ivy/design/l1_buildingBlocks/data/IvyPadding.kt @@ -7,4 +7,4 @@ data class IvyPadding( val bottom: Dp?, val start: Dp?, val end: Dp? -) \ No newline at end of file +) diff --git a/ivy-design/src/main/java/com/ivy/design/l2_components/Button.kt b/ivy-design/src/main/java/com/ivy/design/l2_components/Button.kt index fef4afeebd..20d62b20f9 100644 --- a/ivy-design/src/main/java/com/ivy/design/l2_components/Button.kt +++ b/ivy-design/src/main/java/com/ivy/design/l2_components/Button.kt @@ -66,7 +66,6 @@ private fun Preview_Solid() { ), textStyle = UI.typo.b1.colorAs(White) ) { - } } } @@ -88,7 +87,6 @@ private fun Preview_Outlined() { ), textStyle = UI.typo.b1.colorAs(UI.colors.pureInverse) ) { - } } } @@ -103,8 +101,6 @@ private fun Preview_FillMaxWidth() { .padding(horizontal = 16.dp), text = "Add task" ) { - } } } - diff --git a/ivy-design/src/main/java/com/ivy/design/l2_components/ButtonWithIcon.kt b/ivy-design/src/main/java/com/ivy/design/l2_components/ButtonWithIcon.kt index 2db74f531d..2a332c80c0 100644 --- a/ivy-design/src/main/java/com/ivy/design/l2_components/ButtonWithIcon.kt +++ b/ivy-design/src/main/java/com/ivy/design/l2_components/ButtonWithIcon.kt @@ -102,7 +102,6 @@ private fun Preview_IconLeft_Wrap() { mode = Mode.WRAP_CONTENT, iconLeft = R.drawable.ic_android_black_24dp ) { - } } } @@ -116,7 +115,6 @@ private fun Preview_IconRight_Wrap() { mode = Mode.WRAP_CONTENT, iconRight = R.drawable.ic_android_black_24dp ) { - } } } @@ -133,7 +131,6 @@ private fun Preview_IconLeft_FillMax() { mode = Mode.FILL_MAX_WIDTH, iconLeft = R.drawable.ic_android_black_24dp ) { - } } } @@ -150,7 +147,6 @@ private fun Preview_IconRight_FillMax() { mode = Mode.FILL_MAX_WIDTH, iconRight = R.drawable.ic_android_black_24dp ) { - } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l2_components/Checkbox.kt b/ivy-design/src/main/java/com/ivy/design/l2_components/Checkbox.kt index 00ab252149..89544cca05 100644 --- a/ivy-design/src/main/java/com/ivy/design/l2_components/Checkbox.kt +++ b/ivy-design/src/main/java/com/ivy/design/l2_components/Checkbox.kt @@ -85,7 +85,6 @@ private fun PreviewIvyCheckboxWithText() { text = "Default category", checked = false, ) { - } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l2_components/IconButton.kt b/ivy-design/src/main/java/com/ivy/design/l2_components/IconButton.kt index 3c10475caf..40f6af85c8 100644 --- a/ivy-design/src/main/java/com/ivy/design/l2_components/IconButton.kt +++ b/ivy-design/src/main/java/com/ivy/design/l2_components/IconButton.kt @@ -49,7 +49,6 @@ private fun Preview() { IconButton( icon = R.drawable.ic_baseline_add_24 ) { - } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l2_components/InputField.kt b/ivy-design/src/main/java/com/ivy/design/l2_components/InputField.kt index 6a8d778306..a81e6e9e91 100644 --- a/ivy-design/src/main/java/com/ivy/design/l2_components/InputField.kt +++ b/ivy-design/src/main/java/com/ivy/design/l2_components/InputField.kt @@ -25,7 +25,6 @@ import com.ivy.design.l0_system.* import com.ivy.design.utils.* import kotlin.math.roundToInt - /** * Limitations: * - font cannot be set @@ -104,17 +103,17 @@ fun InputField( ) } else -> { - //do nothing, no need to set input type + // do nothing, no need to set input type } } - //Log focus.triggerRecomposition so recomposition can be triggered + // Log focus.triggerRecomposition so recomposition can be triggered Log.d("ivyInputField", "Triggering recomposition: ${focus?.triggerRecomposition}") if (focus?.consumeFocus() == true) { it.requestFocus() it.selectTextEnd() postDelayed(100) { - //ensure that the EditText is initialized + // ensure that the EditText is initialized it.showKeyboard() } } @@ -143,12 +142,11 @@ private fun EditText.dynamicStyle( else -> EditText.TEXT_ALIGNMENT_VIEW_START } - - //hint text size cannot be set to EditText + // hint text size cannot be set to EditText setHintTextColor(hintStyle.color.toArgb()) - //hint text alignment cannot be set to EditText + // hint text alignment cannot be set to EditText - //restore original selection + // restore original selection setSelection(originalSelection) } @@ -163,7 +161,7 @@ fun EditText.setupInputType( } IvyInputType.LONG_TEXT -> { InputType.TYPE_CLASS_TEXT or - InputType.TYPE_TEXT_FLAG_MULTI_LINE or InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE + InputType.TYPE_TEXT_FLAG_MULTI_LINE or InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE } IvyInputType.NAMES -> { InputType.TYPE_TEXT_VARIATION_PERSON_NAME or InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE @@ -192,7 +190,7 @@ fun EditText.setupInputType( } if (inputType != IvyInputType.LONG_TEXT) { - //Make sure we don't break the default new line action + // Make sure we don't break the default new line action imeOptions = when (imeAction) { IvyImeAction.DONE -> EditorInfo.IME_ACTION_DONE IvyImeAction.NEXT -> EditorInfo.IME_ACTION_NEXT @@ -213,7 +211,7 @@ fun EditText.setupInputType( imeOptions = EditorInfo.IME_FLAG_NO_ENTER_ACTION } else -> { - //do nothing + // do nothing } } } @@ -265,7 +263,7 @@ fun EditText.setCursorColor(color: Color) { widthDp = 2.5f, color = color ) - //TODO: Fix bug where cursor color isn't updated after theme switch + // TODO: Fix bug where cursor color isn't updated after theme switch } } @@ -289,7 +287,6 @@ private fun Preview() { InputField( initialText = "Test" ) { - } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l2_components/Switch.kt b/ivy-design/src/main/java/com/ivy/design/l2_components/Switch.kt index 9cb3478500..deb74de4ce 100644 --- a/ivy-design/src/main/java/com/ivy/design/l2_components/Switch.kt +++ b/ivy-design/src/main/java/com/ivy/design/l2_components/Switch.kt @@ -58,7 +58,7 @@ fun Switch( SpacerWeight(weight = weightStart) } - //Circle + // Circle Spacer( modifier = Modifier .size(16.dp) @@ -86,4 +86,4 @@ private fun PreviewIvySwitch() { enabled = it } } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/Card.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/Card.kt index 1f8e0ad582..a3dd107b59 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/Card.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/Card.kt @@ -1,3 +1,3 @@ package com.ivy.design.l3_ivyComponents -//Transaction history card \ No newline at end of file +// Transaction history card diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/ScreenTitle.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/ScreenTitle.kt index e9179d2ce9..4cce4581df 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/ScreenTitle.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/ScreenTitle.kt @@ -68,4 +68,4 @@ private fun Preview_Standard() { IvyComponentPreview { ScreenTitle(text = "Home") } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/BottomBar.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/BottomBar.kt index 0d5606f51c..654b50845d 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/BottomBar.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/BottomBar.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.bar - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/BottomNavigationBar.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/BottomNavigationBar.kt index 0d5606f51c..654b50845d 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/BottomNavigationBar.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/BottomNavigationBar.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.bar - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/SearchBar.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/SearchBar.kt index 0d5606f51c..654b50845d 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/SearchBar.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/bar/SearchBar.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.bar - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonBack.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonBack.kt index 4b24679e34..58812af02e 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonBack.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonBack.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.button - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonClose.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonClose.kt index 4b24679e34..58812af02e 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonClose.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonClose.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.button - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonDelete.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonDelete.kt index 4b24679e34..58812af02e 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonDelete.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonDelete.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.button - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonExpandCollapse.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonExpandCollapse.kt index 4b24679e34..58812af02e 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonExpandCollapse.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonExpandCollapse.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.button - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonPrimary.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonPrimary.kt index 4b24679e34..58812af02e 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonPrimary.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonPrimary.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.button - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonSecondary.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonSecondary.kt index 4b24679e34..58812af02e 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonSecondary.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/ButtonSecondary.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.button - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/FAB.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/FAB.kt index 8bfeb312ca..69a8fb4750 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/FAB.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/button/FAB.kt @@ -1,3 +1,3 @@ package com.ivy.design.l3_ivyComponents.button -//Floating action button \ No newline at end of file +// Floating action button diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/BarChart.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/BarChart.kt index 5812d076bd..26731c0b17 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/BarChart.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/BarChart.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.chart - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/LineChart.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/LineChart.kt index 5812d076bd..26731c0b17 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/LineChart.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/LineChart.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.chart - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/PieChart.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/PieChart.kt index 5812d076bd..26731c0b17 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/PieChart.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/chart/PieChart.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.chart - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/percentage/Loading.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/percentage/Loading.kt index 1989f97939..cf977368f2 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/percentage/Loading.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/percentage/Loading.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.percentage - diff --git a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/percentage/ProgressBar.kt b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/percentage/ProgressBar.kt index 1989f97939..cf977368f2 100644 --- a/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/percentage/ProgressBar.kt +++ b/ivy-design/src/main/java/com/ivy/design/l3_ivyComponents/percentage/ProgressBar.kt @@ -1,2 +1 @@ package com.ivy.design.l3_ivyComponents.percentage - diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/ColorPicker.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/ColorPicker.kt index 7b48b1bf16..05771c63b9 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/ColorPicker.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/ColorPicker.kt @@ -1,2 +1 @@ package com.ivy.design.l4_patterns - diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/ColoredItemCard.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/ColoredItemCard.kt index f372677a01..a5173e6f07 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/ColoredItemCard.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/ColoredItemCard.kt @@ -1,3 +1,3 @@ package com.ivy.design.l4_patterns -//Ivy Wallet's account + loans cards \ No newline at end of file +// Ivy Wallet's account + loans cards diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/EditContentCard.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/EditContentCard.kt index 6673879715..69459c7cd4 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/EditContentCard.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/EditContentCard.kt @@ -1,3 +1,3 @@ package com.ivy.design.l4_patterns -//Ivy Wallet's "Edit" screen description card, created on, etc \ No newline at end of file +// Ivy Wallet's "Edit" screen description card, created on, etc diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/ErrorModal.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/ErrorModal.kt index 7b48b1bf16..05771c63b9 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/ErrorModal.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/ErrorModal.kt @@ -1,2 +1 @@ package com.ivy.design.l4_patterns - diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/IconPicker.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/IconPicker.kt index 7b48b1bf16..05771c63b9 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/IconPicker.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/IconPicker.kt @@ -1,2 +1 @@ package com.ivy.design.l4_patterns - diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/MoreInfo.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/MoreInfo.kt index 0a20f3e9e1..4c8c01c870 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/MoreInfo.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/MoreInfo.kt @@ -1,3 +1,3 @@ package com.ivy.design.l4_patterns -//More Info Button + Info Modal \ No newline at end of file +// More Info Button + Info Modal diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/MoreMenu.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/MoreMenu.kt index 6154a7f252..f7b6720d70 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/MoreMenu.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/MoreMenu.kt @@ -1,3 +1,3 @@ package com.ivy.design.l4_patterns -//Ivy Wallet's Home More menu \ No newline at end of file +// Ivy Wallet's Home More menu diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/ReorderModal.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/ReorderModal.kt index 4d55a46ac4..55a7c13d9a 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/ReorderModal.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/ReorderModal.kt @@ -1,3 +1,3 @@ package com.ivy.design.l4_patterns -//Ivy Wallet's reorder modal \ No newline at end of file +// Ivy Wallet's reorder modal diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteAllData.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteAllData.kt index d9279e3726..2e52e4899f 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteAllData.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteAllData.kt @@ -1,3 +1,3 @@ package com.ivy.design.l4_patterns.delete -//Delete Button + Delete Confirmation Modal + Delete type \ No newline at end of file +// Delete Button + Delete Confirmation Modal + Delete type diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteConfirmationModal.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteConfirmationModal.kt index 41cc02feb9..8ffe1facbc 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteConfirmationModal.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteConfirmationModal.kt @@ -1,2 +1 @@ package com.ivy.design.l4_patterns.delete - diff --git a/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteItem.kt b/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteItem.kt index 28099e155b..c3d07d8027 100644 --- a/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteItem.kt +++ b/ivy-design/src/main/java/com/ivy/design/l4_patterns/delete/DeleteItem.kt @@ -1,3 +1,3 @@ package com.ivy.design.l4_patterns.delete -//Delete Button + Delete Confirmation Modal \ No newline at end of file +// Delete Button + Delete Confirmation Modal diff --git a/ivy-design/src/main/java/com/ivy/design/l5_concept/ItemDetailsScreen.kt b/ivy-design/src/main/java/com/ivy/design/l5_concept/ItemDetailsScreen.kt index 695063f09d..f1e17301ab 100644 --- a/ivy-design/src/main/java/com/ivy/design/l5_concept/ItemDetailsScreen.kt +++ b/ivy-design/src/main/java/com/ivy/design/l5_concept/ItemDetailsScreen.kt @@ -1,3 +1,3 @@ package com.ivy.design.l5_concept -//Ivy Wallet's ItemStatisticsScreen() \ No newline at end of file +// Ivy Wallet's ItemStatisticsScreen() diff --git a/ivy-design/src/main/java/com/ivy/design/l5_concept/Onboarding.kt b/ivy-design/src/main/java/com/ivy/design/l5_concept/Onboarding.kt index ee846771f0..cba7d85310 100644 --- a/ivy-design/src/main/java/com/ivy/design/l5_concept/Onboarding.kt +++ b/ivy-design/src/main/java/com/ivy/design/l5_concept/Onboarding.kt @@ -1,2 +1 @@ package com.ivy.design.l5_concept - diff --git a/ivy-design/src/main/java/com/ivy/design/utils/Android.kt b/ivy-design/src/main/java/com/ivy/design/utils/Android.kt index 7dafd5a2cc..71691e8150 100644 --- a/ivy-design/src/main/java/com/ivy/design/utils/Android.kt +++ b/ivy-design/src/main/java/com/ivy/design/utils/Android.kt @@ -9,4 +9,4 @@ fun postDelayed(delayMs: Long, run: () -> Unit) { fun post(run: () -> Unit) { Handler(Looper.getMainLooper()).post { run() } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/utils/Animation.kt b/ivy-design/src/main/java/com/ivy/design/utils/Animation.kt index 53a355bbc6..d00ef43bf4 100644 --- a/ivy-design/src/main/java/com/ivy/design/utils/Animation.kt +++ b/ivy-design/src/main/java/com/ivy/design/utils/Animation.kt @@ -27,4 +27,4 @@ fun springBounceSlow() = spring( fun springBounceVerySlow() = spring( dampingRatio = 0.75f, stiffness = 20f, -) \ No newline at end of file +) diff --git a/ivy-design/src/main/java/com/ivy/design/utils/Compose.kt b/ivy-design/src/main/java/com/ivy/design/utils/Compose.kt index 3c3f4834d4..95122f2c54 100644 --- a/ivy-design/src/main/java/com/ivy/design/utils/Compose.kt +++ b/ivy-design/src/main/java/com/ivy/design/utils/Compose.kt @@ -22,10 +22,12 @@ fun Modifier.thenIf( condition: Boolean, otherModifier: @Composable Modifier.() -> Modifier ): Modifier = composed { - //Cannot use Modifier#then() because it stacks the previous modifiers multiple times + // Cannot use Modifier#then() because it stacks the previous modifiers multiple times if (condition) { this.otherModifier() - } else this + } else { + this + } } fun Modifier.thenWhen( @@ -35,7 +37,7 @@ fun Modifier.thenWhen( } fun Modifier.consumeClicks() = clickableNoIndication { - //consume click + // consume click } fun Modifier.clickableNoIndication( @@ -73,4 +75,4 @@ fun Float.toDensityDp() = densityScope { toDp() } fun openUrl(uriHandler: UriHandler, url: String) { uriHandler.openUri(url) -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/utils/Insets.kt b/ivy-design/src/main/java/com/ivy/design/utils/Insets.kt index b2d7c5d6dc..3f55b0479b 100644 --- a/ivy-design/src/main/java/com/ivy/design/utils/Insets.kt +++ b/ivy-design/src/main/java/com/ivy/design/utils/Insets.kt @@ -34,13 +34,12 @@ fun navigationBarInsets(): Insets { return windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars()) } - @Composable fun keyboardNavigationWindowInsets(): Insets { val windowInsets = windowInsets() return windowInsets.getInsets( WindowInsetsCompat.Type.ime() - or WindowInsetsCompat.Type.systemBars() + or WindowInsetsCompat.Type.systemBars() ) } @@ -50,4 +49,4 @@ fun keyboardOnlyWindowInsets(): Insets { return windowInsets.getInsets( WindowInsetsCompat.Type.ime() ) -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/utils/Keyboard.kt b/ivy-design/src/main/java/com/ivy/design/utils/Keyboard.kt index 32ceb44163..ff2b087fb4 100644 --- a/ivy-design/src/main/java/com/ivy/design/utils/Keyboard.kt +++ b/ivy-design/src/main/java/com/ivy/design/utils/Keyboard.kt @@ -45,16 +45,22 @@ fun keyboardHeightStateAnimated( return animateDpAsState( animationSpec = animationSpec, - targetValue = if (keyboardVisible) - keyboardOnlyWindowInsets().bottom.toDensityDp() else 0.dp + targetValue = if (keyboardVisible) { + keyboardOnlyWindowInsets().bottom.toDensityDp() + } else { + 0.dp + } ) } @Composable fun keyboardHeightState(): State { val keyboardVisible by keyboardVisibleState() - val keyboardHeight = if (keyboardVisible) - keyboardOnlyWindowInsets().bottom.toDensityDp() else 0.dp + val keyboardHeight = if (keyboardVisible) { + keyboardOnlyWindowInsets().bottom.toDensityDp() + } else { + 0.dp + } return remember(keyboardHeight) { mutableStateOf(keyboardHeight) } @@ -79,16 +85,16 @@ fun keyboardVisibleState(): State { fun View.addKeyboardListener(keyboardCallback: (visible: Boolean) -> Unit) { doOnLayout { - //get init state of keyboard + // get init state of keyboard var keyboardVisible = isKeyboardOpen(this) - //callback as soon as the layout is set with whether the keyboard is open or not + // callback as soon as the layout is set with whether the keyboard is open or not keyboardCallback(keyboardVisible) - //whenever the layout resizes/changes, callback with the state of the keyboard. + // whenever the layout resizes/changes, callback with the state of the keyboard. viewTreeObserver.addOnGlobalLayoutListener { val keyboardUpdateCheck = isKeyboardOpen(this) - //since the observer is hit quite often, only callback when there is a change. + // since the observer is hit quite often, only callback when there is a change. if (keyboardUpdateCheck != keyboardVisible) { keyboardCallback(keyboardUpdateCheck) keyboardVisible = keyboardUpdateCheck @@ -97,7 +103,6 @@ fun View.addKeyboardListener(keyboardCallback: (visible: Boolean) -> Unit) { } } - fun isKeyboardOpen(rootView: View): Boolean { return try { WindowInsetsCompat.toWindowInsetsCompat(rootView.rootWindowInsets, rootView) @@ -106,4 +111,4 @@ fun isKeyboardOpen(rootView: View): Boolean { e.printStackTrace() false } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/utils/Padding.kt b/ivy-design/src/main/java/com/ivy/design/utils/Padding.kt index 2c9e4823d3..4c77147f2f 100644 --- a/ivy-design/src/main/java/com/ivy/design/utils/Padding.kt +++ b/ivy-design/src/main/java/com/ivy/design/utils/Padding.kt @@ -51,4 +51,3 @@ fun padding( end = all ) } - diff --git a/ivy-design/src/main/java/com/ivy/design/utils/Preview.kt b/ivy-design/src/main/java/com/ivy/design/utils/Preview.kt index eabb3894b1..58b63b08b0 100644 --- a/ivy-design/src/main/java/com/ivy/design/utils/Preview.kt +++ b/ivy-design/src/main/java/com/ivy/design/utils/Preview.kt @@ -15,7 +15,6 @@ import com.ivy.design.api.systems.IvyWalletDesign import com.ivy.design.l0_system.Theme import com.ivy.design.l0_system.UI - @Composable fun IvyComponentPreview( design: IvyDesign = defaultDesign(), @@ -53,4 +52,4 @@ fun IvyPreview( fun defaultDesign(): IvyDesign = object : IvyWalletDesign() { override fun context(): IvyContext = object : IvyContext() { } -} \ No newline at end of file +} diff --git a/ivy-design/src/main/java/com/ivy/design/utils/View.kt b/ivy-design/src/main/java/com/ivy/design/utils/View.kt index 8b44ff715f..34e0d3081e 100644 --- a/ivy-design/src/main/java/com/ivy/design/utils/View.kt +++ b/ivy-design/src/main/java/com/ivy/design/utils/View.kt @@ -10,4 +10,4 @@ fun Float.dpToPx(context: Context): Float { fun Int.dpToPx(context: Context): Int { return this.toFloat().dpToPx(context).roundToInt() -} \ No newline at end of file +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 0897f48e44..8afda76ee2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,4 +8,4 @@ dependencyResolutionManagement { } rootProject.name = "Ivy Wallet" include(":app") -include(":ivy-design") \ No newline at end of file +include(":ivy-design")