Commit Graph

718 Commits

Author SHA1 Message Date
dankito 3da594b846 Fixed that in iOS setting authentication type to biometric wasn't possible anymore as () tried to open database without changing its password before (also renamed methods in Android to be symmetrically to iOS) 2022-02-07 00:18:08 +01:00
dankito 81bc6a94bb Implemented encrypting AuthenticationType and default password 2022-02-07 00:18:08 +01:00
dankito 50ae70a92c Implemented creating and saving random salt 2022-02-07 00:18:08 +01:00
dankito b1c027b608 Implemented hashing login password with scrypt (but still using a static salt; CryptoSwift has accidentally already been commit with last commit) 2022-02-07 00:18:08 +01:00
dankito acf0345aaf Implemented deleting all keychain items after re-installing app 2022-02-07 00:18:08 +01:00
dankito 93de8bf252 Fixed that persistentContainer and therefore context is nil if during login screen app enters background 2022-02-07 00:18:08 +01:00
dankito 360e75426f Forgot to commit linkForegroundColor() and alignVertically() 2022-02-07 00:18:08 +01:00
dankito 5acb2353c7 Implemented setting database password in iOS 2022-02-07 00:18:08 +01:00
dankito 5c63af15a0 Added EncryptedCoreData pod to be able to encrypt CoreData database (even though currently just using a hard coded default password) 2022-02-07 00:18:08 +01:00
dankito f0271a2f85 Centralized setting passwords in setPasswords() 2022-02-07 00:18:08 +01:00
dankito 79d746a395 Injecting now AuthenticationService 2022-02-07 00:18:08 +01:00
dankito 8b2a210269 Keeping passwords now only as CharArray in memory as it may takes a long time till a String gets garbage collected 2022-02-07 00:18:08 +01:00
dankito bc853b03e3 Implemented that in case of AuthenticationType.Password as database password <user_password> + "_" + <default_password> is used 2022-02-07 00:18:08 +01:00
dankito af67f4d404 Implemented passing only userPassword to saveNewAuthenticationMethod() (makes the parameter clearer) 2022-02-07 00:18:08 +01:00
dankito 93254c1d21 Implemented persisting new password only if changed database password has been successful 2022-02-07 00:18:08 +01:00
dankito e8749385ec Implemented hiding select authentication method if password is the only option to choose 2022-02-07 00:18:08 +01:00
dankito 193e4305ca Removed injecting unused CoreDataBankingPersistence 2022-02-07 00:18:08 +01:00
dankito 49a21909ed Moved creating CoreData PersistentContainer to CoreDataBankingPersistence 2022-02-07 00:18:08 +01:00
dankito e29eead03a Using now vector drawable for add icon, could therefore remove Android Icons dependency 2022-02-07 00:18:08 +01:00
dankito 8706778906 Added default icon for accounts 2022-02-07 00:18:08 +01:00
dankito c8049ea107 Fixed that for some library setting Kotlin jvmTarget to 1.8 was needed 2022-02-07 00:18:08 +01:00
dankito eff16876b6 Fixed that using vector drawables that way is not supported on devices pre Lollipop 2022-02-07 00:18:08 +01:00
dankito 968543953a Implemented finding fallback algorithms as PBKDF2WithHmacSHA256 is only supported on newer Androids 2022-02-07 00:18:08 +01:00
dankito 2f709ed0b6 Renamed encryptedDefaultPassword to defaultPassword 2022-02-07 00:18:08 +01:00
dankito dde2ff47a4 Fixed that algorithms needed for encryption with biometric authentication are only supported on Android 6 and above (the same as with biometric authentication) 2022-02-07 00:18:08 +01:00
dankito 06101a4e57 Added AndroidManifest to fints4kBankingClient to make Gradle happy 2022-02-07 00:18:08 +01:00
dankito faf3a76734 Removed unused AndroidX lifecycle (only crashes on Android 4) 2022-02-07 00:18:08 +01:00
dankito d892e5e0ef Updated AndroidX navigation version to 2.3.0 2022-02-07 00:18:08 +01:00
dankito e69b4a9141 Fixed that OkHttp dropped Android 4 support with version 3.13 2022-02-07 00:18:08 +01:00
dankito 768d17743a Added permissions for biometric hardware (but is it actually needed?) 2022-02-07 00:18:08 +01:00
dankito 715153315e Fixed that BankingApp hasn't been derived from MultiDexApplication 2022-02-07 00:18:08 +01:00
dankito 04bf120293 Set app icon 2022-02-07 00:18:08 +01:00
dankito b564fe15c2 Implemented setting device specific biometric authentication type 2022-02-07 00:18:08 +01:00
dankito c73628539a Fixed translating shared data 2022-02-07 00:18:08 +01:00
dankito 0f16149dac Implemented setting biometric authentication prompt 2022-02-07 00:18:08 +01:00
dankito e36bb0cf33 Renamed loginWithPassword() to authenticateUserWithPassword() and loginWithBiometricAuthentication() to authenticateUserWithBiometric() 2022-02-07 00:18:08 +01:00
dankito 7047773e7b Implemented translating biometric authentication type 2022-02-07 00:18:08 +01:00
dankito bf9c0bc32b Implemented adding print option to shared data 2022-02-07 00:18:08 +01:00
dankito 4e27bffd09 Implemented encrypting default password if no app protection is set 2022-02-07 00:18:08 +01:00
dankito 12d6c5a430 Fixed that if persisting newly added account fails callback never gets called and AddAccountDialog therefore is stuck forever 2022-02-07 00:18:08 +01:00
dankito 2cab245600 Implemented encrypting biometric password 2022-02-07 00:18:08 +01:00
dankito 32c71fcb39 Implemented hashing user password with bcrypt 2022-02-07 00:18:08 +01:00
dankito d65b766655 Disabling login button during password check and database decryption 2022-02-07 00:18:08 +01:00
dankito e345d6d6cb Removed unnecessary isRemoveAppProtectionLayout parameter 2022-02-07 00:18:08 +01:00
dankito 26baf222d6 Implemented logging in / setting authentication method when pressing enter 2022-02-07 00:18:08 +01:00
dankito 0a6fa8e01a Implemented encrypting Room database, but storing password just in plain text yet 2022-02-07 00:18:08 +01:00
dankito 20c32dbd7e Implemented saving and restoring authentication type 2022-02-07 00:18:08 +01:00
dankito 5f35cf7b23 Fixed that listeners get called off UI thread 2022-02-07 00:18:08 +01:00
dankito b82d986da2 Added biometric authentication dialog / prompt 2022-02-07 00:18:08 +01:00
dankito f6f28890a7 Implemented that login name text field gets focused when a bank has been selected 2022-02-07 00:18:08 +01:00
dankito c2a9f9f44a Not focusing recipient name text field on start anymore, just displays 'Please enter recipient name' error message on iOS 14 2022-02-07 00:18:08 +01:00
dankito de46d60416 Fixed setting focus on start on iOS 14 2022-02-07 00:18:08 +01:00
dankito 2a9aaca4d8 Implemented that also German diacritics get detected as invalid SEPA characters (on iOS they get detected anyway, but Android seems to use UTF-8) 2022-02-07 00:18:08 +01:00
dankito 318266db0f Fixed that reserved XML characters aren't replaced visibly to user - XML entities would just confuse most users. But XML entities are taking into calculation for max length 2022-02-07 00:18:08 +01:00
dankito 08d3cfbd66 Made OK Button better tapable 2022-02-07 00:18:08 +01:00
dankito fc6d2042af Fixed that iOS 14 sometimes doesn't focus text field on click 2022-02-07 00:18:08 +01:00
dankito 0bfeddeea3 Fixed that iOS 14 creates text field often twice, but displays it once -> to focus next text field we have to use nextViewTag + 1 2022-02-07 00:18:08 +01:00
dankito b00a14b3c7 Removed that pressing Enter starts money transfer. Just results in unwanted transfers 2022-02-07 00:18:08 +01:00
dankito ac8824634e Fixed that on iOS 14 AdaptsToKeyboard isn't needed anymore but just covers dialog 2022-02-07 00:18:08 +01:00
dankito ebce0000c5 Fixed making whole cell tapable 2022-02-07 00:18:08 +01:00
dankito 6f62690444 Fixed that retrieved transaction chunks haven't been displayed in UI 2022-02-07 00:18:08 +01:00
dankito 4e0e52bd8b Renamed searchBanksByNameBankCodeOrCity() to findBanksByNameBankCodeOrCity() 2022-02-07 00:18:08 +01:00
dankito 61b3b53540 Sorting banks now case insensitive 2022-02-07 00:18:08 +01:00
dankito 17d3eb9a5b Calling now lazy evaluating logger method 2022-02-07 00:18:08 +01:00
dankito b7c760e26e Added translations for BankAccountTypes 2022-02-07 00:18:08 +01:00
dankito f053b2728d Using now English names for BankAccountTypes 2022-02-07 00:18:08 +01:00
dankito 03d8074fda Using lazy evaluating logger method now 2022-02-07 00:18:07 +01:00
dankito f4d8b09260 Added fetchBalanceAndTransactions to addAccount() to determine if balance and transactions should be retrieved after retrieving bank accounts of a newly added account 2022-02-07 00:18:07 +01:00
dankito 8108926d71 Implemented toggling password visibility 2022-02-07 00:18:07 +01:00
dankito e64e8925c4 Added UI to set if accounts should be updated automatically 2022-02-07 00:18:07 +01:00
dankito 746591597e Implemented sharing account data 2022-02-07 00:18:07 +01:00
dankito 99866e02be Forgot to commit calling new signature of bankUpdated 2022-02-07 00:18:07 +01:00
dankito fa1c2a0ddf Keeping now bank icon's bytes directly on BankData so that we can persist is to database -> attackers don't see in filesystem added accounts anymore 2022-02-07 00:18:07 +01:00
dankito 7f14215907 Added info popup to explain what 'Fetch all transactions' means (TODO: displays only data of first account for which not all transactions have been fetched, display all) 2022-02-07 00:18:07 +01:00
dankito 3c5f63dcd2 Removed gray background, white space is enough to distinguish elements and looks way better 2022-02-07 00:18:07 +01:00
dankito 97b78bd8c4 Fixed setting LAContext (may only be set when saving item) 2022-02-07 00:18:07 +01:00
dankito ab5506f7eb Really fixed determining available biometric authentication type 2022-02-07 00:18:07 +01:00
dankito 50c2e085a0 Implemented setting also keychain item's SecAccessControl and LAContext (but setting LAContext doesn't work yet, setting it results in an error) 2022-02-07 00:18:07 +01:00
dankito a903745b8c Saving now also AuthenticationType in Keychain 2022-02-07 00:18:07 +01:00
dankito b40eb25b70 Implemented storing a default password (but not making use of it yet) 2022-02-07 00:18:07 +01:00
dankito 0f83b2aced Fixed detecting if layout for FaceID or TouchID should be displayed 2022-02-07 00:18:07 +01:00
dankito cd8055a141 Extracted methods for each authentication type 2022-02-07 00:18:07 +01:00
dankito 2ca698f9e2 Renamed createKeychainPasswordItem() to createUserLoginPasswordKeychainItem() 2022-02-07 00:18:07 +01:00
dankito 96c842cc89 Merged AuthenticationType touchID and faceID to biometric 2022-02-07 00:18:07 +01:00
dankito 48841b5214 Refactored KeychainPasswordItem so that we don't have to pass all class fields to keychainQuery() 2022-02-07 00:18:07 +01:00
dankito 543a9d81b9 Removed AuthenticationType.none 2022-02-07 00:18:07 +01:00
dankito b019360ad1 Made password visibility toggleable 2022-02-07 00:18:07 +01:00
dankito cb486de6d4 Raised sizes a bit to make them better touchable 2022-02-07 00:18:07 +01:00
dankito 917cb8edf5 Implemented LoginActivity and ProtectAppSettingsDialog but there's not logic behind it yet 2022-02-07 00:18:07 +01:00
dankito 8a2750a21c Fixed that some clients need a response 2022-02-07 00:18:07 +01:00
dankito b7f9a2a5f7 Fixed bug that setting frequency didn't work 2022-02-07 00:18:07 +01:00
dankito 210ca5a41f Showing update all accounts navigation bar button now on the right (to be consistent with update selected accounts) 2022-02-07 00:18:07 +01:00
dankito 31cc59c88e Fixed that update(All|Selected)AccountsTransactionsAsync() didn't call callback if there are no accounts to update so that UI couldn't update / reset its state 2022-02-07 00:18:07 +01:00
dankito 1c3f3505b0 Implemented remembering with which accounts wrong credentials have been entered and ignoring these in automatic updates 2022-02-07 00:18:07 +01:00
dankito 38bb0c90ff Implemented detecting if wrong credentials have been entered (not 100 % reliable though) 2022-02-07 00:18:07 +01:00
dankito 572f8d81ec Removed as e.g. when on first attempt there's no network connection, then no further attempt would be taken during whole lifetime of app 2022-02-07 00:18:07 +01:00
dankito 26e03137cd Fixed that when fintsBank could not get restored and then addAccount() fails (e.g. due to no network connection), then fintsBank contains almost no data which then got mapped to bank 2022-02-07 00:18:07 +01:00
dankito 0303f94bee Added savePassword to Bank but now using it yet 2022-02-07 00:18:07 +01:00
dankito 5580313eeb Setting countDaysForWhichTransactionsAreKept now on account and not on bank anymore as the count may differs from account type to account type (e.g. 540 days for checking accounts and 9999 days for credit card accounts) 2022-02-07 00:18:07 +01:00
dankito 6d41b89f1d Implemented parsing credit card transactions parameters 2022-02-07 00:18:07 +01:00