Commit Graph

440 Commits (9cabc0565a3b33220c50e86c235da919568119b9)

Author SHA1 Message Date
Severiano Jaramillo b077de95ac Create nodes database table.
- Added the library dependency to use Kotlin Coroutines with Room.
- Created the Node Room Entity, which will create the nodes database table.
- Created NodeDao, which will be responsible to access the Room entity (nodes database table).
- Created a Room database migration, to create the nodes database table in existing instalations updating to the new version.
2019-08-23 12:48:58 -05:00
Severiano Jaramillo 1abbe95083 Add Kotlin's Parcelize to FilterOptions.
- Enabled Kotlin's Parcelize annotation and used it to easily make FilterOptions Parcelable.
- Converted the ServiceGenerator class to Kotlin. This is a helper class that generates instances of Retrofit Services.
2019-08-22 11:41:05 -05:00
Severiano Jaramillo 2b4b520c5d Update a bunch of libraries.
- The project had been stale for a couple of months, so a lot of libraries were outdated. I updated most of the outdated libraries and verified everything kept working correctly.
- Simplified the ServiceGenerator, removing some stuff that is not used.
2019-08-22 11:02:09 -05:00
Severiano Jaramillo 1e75e369dc Avoid crash in Transactions' FilterOptionsDialog.
- This crash was being caused when the user tried to filter the transactions in the Transactions screen, but the user has no balances (existent or downloaded). The app was not prepared to handle that case.
2019-08-21 17:48:51 -05:00
Severiano Jaramillo 31073e2acf Fix crash in BalancesFragment.
- The crash was happening in a very weird scenario, but it was good because it forced us to search an alternative to update the BalancesFragment when the user navigates back to the HomeFragment. The solution was to use the childFragmentManager instead of the fragmentManager to create the PagerAdapter used in the ViewPager that displays the BalancesFragment. Basically, because we are using nested fragments we need to use the childFragmentManager instead of just the fragmentManager, to use the correct LyfeCycle events.
2019-08-21 15:09:59 -05:00
Severiano Jaramillo 6482b31971 Avoid crash in TransferDetailsAdapter.
- This is the adapter that populates the list of transactions in the TransactionsFragment, the crash was happening when the user tapped two or more items in the list at the same time. When that happens only the first item tapped opens its corresponding eReceipt correctly but the remaining ones throw an excpeption which was not being handled correctly and causing a crash.
2019-08-21 14:40:38 -05:00
Severiano Jaramillo 39a3e6b7d4 Avoid crash in SettingsFragment
- Avoided crash in SettingsFragment when trying to decrypt the WIF, but logged the exception to Crashlytics in case we find out this problem persists.
2019-08-21 14:05:11 -05:00
Severiano Jaramillo ae3498e103 Avoid crash in SendTransactionFragment
- Avoided crash in SendTransactionFragment when trying to decrypt the WIF, but logged the exception to Crashlytics in case we find out this problem persists.
2019-08-21 13:56:16 -05:00
Severiano Jaramillo 54c8bbce19 Fix Crashlytics proguard rules.
- Fixed crashlytics Retrofit models proguard rules.
- Updated the Gradle plugin version.
- Improved readability of Asset and TransferDetail DAOs (Database Data Access Objects).
2019-08-21 13:34:49 -05:00
Severiano Jaramillo 6df56b068b Improved transactions filtering algorithm in TransactionsFragment, to include the memo when searching with a text query. 2019-05-06 13:28:28 -05:00
Severiano Jaramillo 1528960bed Added a node to the list of nodes the app can connect to. 2019-04-26 16:53:06 -05:00
Severiano Jaramillo 1eb9b64b45 Refactored TransactionsFragment, by moving all the transactions filtering logic to the corresponding ViewModel and taking advantage of Kotlin coroutines to excecute the filtering process in the background. 2019-04-26 16:05:58 -05:00
Severiano Jaramillo 0144938052 Simplified FilterOptionsDialog changing the way it is constructed and take advantage of Kotlin synthetic features to automatically obtain a reference to the views in the layout. 2019-04-26 15:32:51 -05:00
Severiano Jaramillo 484e4bde68 Improved FilterOptionsDialog by changing the way it communicates with the DatePickerFragment, using an interface instead of a Handler. 2019-04-26 15:16:12 -05:00
Severiano Jaramillo d1bce06ec2 Created FilterOptions class to serve as an easy way to communicate filter options user preferences between the TransactionsFragment and the FilterOptionsDialog, and use it to filter the transactions list. 2019-04-26 14:41:34 -05:00
Severiano Jaramillo 8eccf85277 Fixed deep link structure, to comply with PP BitShares invoices. 2019-04-26 12:02:50 -05:00
Severiano Jaramillo dc3d04b934 Comment out citadel node, because it is not synced and is sending stale information. 2019-04-26 11:49:55 -05:00
Severiano Jaramillo 23d2cd6836 Created a different layout to show the map pin's markers for tellers and merchants. Added more fields to the tellers db table, to include the newly added in the V2 of the webservice: Keybase, Whatsapp, Viber and Email and created a db migration to reflect that. Added the code to show the teller's newly added fields to the pin's markers if such fields exist and hide that field otherwise. 2019-04-25 21:14:42 -05:00
Severiano Jaramillo 8af2042039 Verify that the node is synced before trying to broadcast a transaction in TransactionsActivity, to avoid users confusion. Ideally, the app should not be connected to an out of sync node, but this is in case that still happens. 2019-04-25 17:43:07 -05:00
Severiano Jaramillo 00a8b0546f Make sure to ask for the Security Lock when the user tries to upgrade to LTM. 2019-04-25 14:53:02 -05:00
Severiano Jaramillo 40b7650353 Changed the structure of the deep link used to intercept palmpay bitshares invoices to 'go.payit.now/bitshares/{to}/{amount}/{asset}/{memo}'. This will intercept the links whether or not they explicitly state http:// or https:// at the beginning. 2019-04-12 15:23:23 -05:00
Severiano Jaramillo e88ef6cb91 Added a Deep Link to the app so that it can tell the Android system that it can consume a link of the form 'www.bitshares.com/{to}/{amount}/{asset}/{memo}' so when a user clicks on a link like that the Android system lets the user choose Bitsy to manage it. This deep link takes to user directly to the SendTransactionFragment, fills all the required fields and validates the information so that if it is valid then the user all that needs to do is click the send button and authorize the operation. 2019-04-11 20:43:58 -05:00
Severiano Jaramillo b5371954e0 Updated BiTSy to use v2 of the webservice to fetch merchants information. 2019-04-10 18:44:17 -05:00
Severiano Jaramillo 6f132c049f Fix and standardize the material cards all around the app. 2019-03-20 21:10:32 -06:00
Severiano Jaramillo 8e752087e6 Fixed the camera button's white border issue for Android Lollipop devices, also fixed the pie chart color for the same Android version and darkened the drop shadow of all three floating buttons in the Home Fragment. 2019-03-20 20:58:56 -06:00
Severiano Jaramillo 6eb3e8c220 Commented out 4 BitShares nodes that are offline as of the day of this commit. 2019-03-20 15:36:39 -06:00
Severiano Jaramillo 07fdab41a4 Added a No Transactions message to theTransactionsActivity when there are no transactions yet for the current account. 2019-03-20 14:29:11 -06:00
Severiano Jaramillo 50526c6bda Added a loading indicator (ProgressBar) to the CreateAccountFragment that shows when the app is trying to create an account. This lets users know that the app is working avoiding users going back to the previous screen and preventing a crashlytics reported crash that happens when the create account response is received but the user is no longer in the CreateAccountFragment. 2019-03-20 13:55:16 -06:00
Severiano Jaramillo 756abb8f5f Added the year to the date field in Transaction items, and made the to and from text fields more visible. 2019-03-20 11:59:36 -06:00
Severiano Jaramillo 5d8dc8ec39 Completed the migration of the whole app to the new Material Components color theming. 2019-03-20 11:04:05 -06:00
Severiano Jaramillo 313ff06861 Changed balances items text style to a bigger one, so that text is easier on the eyes. 2019-03-19 21:07:43 -06:00
Severiano Jaramillo a6f2d5469b Changed the qr box color to match the text fields boxes in both day and night modes in SendTransactionFragment. 2019-03-19 20:45:45 -06:00
Severiano Jaramillo 7fa1ed03c3 Used a TextInputLayout with a disabled TextInputEditText behind the Asset spinner in ReceiveTransactionFragment, so that it looks similar to the other fields (Amount and Asset AutoComplete). 2019-03-19 20:28:23 -06:00
Severiano Jaramillo f89878d6b9 Used a TextInputLayout with a disabled TextInputEditText behind the Asset spinner in SendTransactionFragment, so that it looks similar to the other fields (To, Amount and Memo). 2019-03-19 18:39:55 -06:00
Severiano Jaramillo 25bab08b5e Updated the Material Components library to 1.1.0-alpha04 and fixed some issues presented because of the migration. 2019-03-19 18:05:08 -06:00
Severiano Jaramillo 8ba40899cf Avoid NPE in some special cases when trying to create the QR code image in ReceiveTransactionFragment, instead of crashing the app it sends the exception to crashlytics and continues its flow. 2019-03-18 22:34:51 -06:00
Severiano Jaramillo 1728cef152 Added RxJava global error handler to avoid anoying the user by avoiding crashes when an error occurs on a RxJava operation, but still log the exception to Crashlytics so that we can fix the issues. 2019-03-18 21:24:15 -06:00
Severiano Jaramillo 776e5f42b7 Fixed equivalent value errors in the transactions by making sure the equivalent value is only fetched for transfers that already have the timestamp value updated. 2019-03-18 20:42:10 -06:00
Severiano Jaramillo d0109c42d5 Avoid IllegalArgumentException crashlytics reported crash in CreateAccountFragment while generating a new brainkey. 2019-03-18 09:17:11 -06:00
Severiano Jaramillo 143b6a011d Avoid three crashlytics reported crashes due to unhandled errors in RxJava operations in the ImportBrainkeyFragment. 2019-03-17 09:38:36 -06:00
Severiano Jaramillo 6f806db127 Avoid two crashlytics reported crashes due to unhandled errors in RxJava operations in the CreateAccountFragment. 2019-03-17 09:32:11 -06:00
Severiano Jaramillo 5238d4973c Created SendTransactionViewModel and made use of it to safely obtain the user's private key from the database, to avoid a crash reported in Crashlytics. 2019-03-17 09:24:50 -06:00
Severiano Jaramillo 1e2695db51 Improve error handling of RxJava operations in ReceiveTransactionsFragment. 2019-03-16 22:32:13 -06:00
Severiano Jaramillo 6fe13d9099 Added custom key to crashlytics to obtain the device language in the crash reports. 2019-03-16 22:04:24 -06:00
Severiano Jaramillo 0e11c67dfd Avoid crash in ReceiveTransactionFragment due to an unhandled error in RxJava operators. 2019-03-16 21:32:27 -06:00
Severiano Jaramillo 5bee51092d Avoid a crash in ReceiveTransactionFragment when the QR width and/or height is zero, but still send the report to Crashlytics to further investigate the issue in case it repeats again. 2019-03-16 20:53:22 -06:00
Severiano Jaramillo 702cdea3aa Reduced the text size of the telegram and keybase section in the Merchangs and Tellers about dialog. 2019-03-14 11:44:54 -06:00
Severiano Jaramillo 9b1349bfae Created the downward arrow used in the receive button in the homescreen manually, to avoid rotating the forward arrow. The latter was avoided because it does not work properly on Android 6. 2019-03-14 11:19:00 -06:00
Severiano Jaramillo 8ac06ae393 Added the links to Agorise's Telegram and Keybase at the bottom of the Merchants & Tellers info dalog, in the MerchantsFragment. 2019-03-13 22:34:01 -06:00
Severiano Jaramillo afcb0aa8bd Make the map object in the MerchantsFragment nullable and add null checks everywhere it is used, to avoid NPE related crashes in case the map is not loaded correctly. 2019-03-13 22:18:04 -06:00
Severiano Jaramillo 3f3423873c Automatically change the color of the navigation bar in the Receive Home and Send screens to green blue and red respectively. 2019-03-13 21:31:51 -06:00
Severiano Jaramillo b2a6a3828c Make both navigation and status bar the same color, in day mode it is the dark variant of the bitsy blue color and dark in night mode. 2019-03-13 21:10:23 -06:00
Severiano Jaramillo 3fa90fdee1 Made sure both toolbar and navigation bar show the correct colors in both day and night modes. 2019-03-13 20:16:02 -06:00
Severiano Jaramillo e2d4d20e7a Improved Settings screen UI by making visible section divisions using Material Cards. 2019-03-13 20:08:02 -06:00
Severiano Jaramillo 7424f7f6d2 Merge branch 'develop' of github.com:Agorise/bitsy-wallet into develop 2019-02-25 09:01:51 -06:00
Severiano Jaramillo 6439b55c69 Properly handle the response from the node when trying to upgrade the current account to LTM. When it is successful the app shows a dialog explaining just that and also sends a request to the node to update the account info, to update the account with the LTM property set as true. When it is not successful, the app shows a dialog explaining that there was an error due maybe to an insuficient balance. 2019-02-25 09:01:45 -06:00
Severiano Jaramillo 0330588885 Created methods to request and add the BlockData to the transaction to upgrade the current account to LTM, that information is necessary. And created a different identifier to identify when a request for Dynamic Global Properties is for the nodes dialog or for the Upgrade to LTM transaction. 2019-02-22 17:34:50 -06:00
Nelson R. Perez d59480cd23 - Fixed problem with decoding the sender's memos
- Updated graphenej
2019-02-22 18:32:23 -05:00
Severiano Jaramillo b1a1abf231 Added a responseMap to the SettingsFragment to differentiate different requests made to the Node through graphenej's NetworkService. Added a method to obtain the encrypted private keys from the db through the SettingsFragmentViewModel, to create and sign the Upgrade to LTM transaction. 2019-02-22 17:01:32 -06:00
Severiano Jaramillo 99e378d123 Created SettingsFragmentViewModel to serve as an intermediary between the UserAccountRepository (db) and the SettingsFragment. Added the Accounts section to the Settings UI with a subsection to let the user upgrade its account to LTM. Added a listener that when the 'Upgrade to LTM' button is tapped, shows a dialog explaining what is needed to be LTM and its cost. 2019-02-21 15:11:45 -06:00
Severiano Jaramillo eb0ae56a26 Modified SettingsFragment to extend from ConnectedFragment, which in turns handles all the communication with the Node trough graphenej's NetworkService. 2019-02-21 12:25:56 -06:00
Severiano Jaramillo 3c0c3a5114 Added Crashlytics custom key so that the crash reports include the last visited screen, that could help track crashes where the crash report alone does not include enough information. 2019-02-21 11:16:04 -06:00
Severiano Jaramillo 29c85d3d3c Changed the title and subtitle of both PINSecurityLockDialog and PatternSecurityLockDialog 2019-02-21 10:53:42 -06:00
Severiano Jaramillo d20183e36f Forced to focus the EditText field and show the keyboard in the PINSecurityLockDialog as soon as it opens. 2019-02-21 10:27:15 -06:00
Severiano Jaramillo 2a869d7fe8 In the dialog that appears to choose a security lock, changed its title and modified the list to use a single choice list with radio buttons and pre-selecting the actual security lock option. 2019-02-21 10:09:10 -06:00
Severiano Jaramillo 202466a71f Fix PatternView too big on small screens in PatternSecurityLockDialog. 2019-02-20 17:18:50 -06:00
Severiano Jaramillo 4ad841d525 Correctly handle error gracefully in the RxBus that receives information from the Node through graphenej, to avoid a crash. 2019-02-20 17:12:41 -06:00
Severiano Jaramillo 8d257876a0 Fix issue in both PIN and Pattern SecurityLockDialogs, that the error message was not appearing correctly when the user wrongly entered the PIN/Pattern and also the error message was not being cleared once the cooldown timer expired. 2019-02-20 16:53:34 -06:00
Severiano Jaramillo 9e714d8f84 Wrap the contents of the CreateAccountFragment into a ScrollView, so that all its contents are available even for very small devices. 2019-02-20 14:10:51 -06:00
Severiano Jaramillo 5570229cef Created the methods to show the messages and errors in the correct format and color in the PatternSecurityLockDialog. 2019-02-20 12:06:19 -06:00
Severiano Jaramillo 19ede70c69 Added the option to lock the pattern security lock option when the user has entered it wrong too many times. Once the cooldown timer ends the pattern is re-enabled so the user can try again. 2019-02-20 11:32:15 -06:00
Severiano Jaramillo 2ea32af377 Created the methods required to block the security lock PIN option when the user has entered incorrectly the current PIN more times than the max allowed. When that happens the text field to type the PIN gets disabled and a propper message is shown, explaining the issue and also showing the time that needs to pass until he can try again. 2019-02-20 11:03:39 -06:00
Severiano Jaramillo 97d9e8bcfb Make sure to save the hash of the user selected PIN plus the salt used to generate it are both saved into the shared preferences, when creating or importing an account. 2019-02-18 14:13:02 -06:00
Severiano Jaramillo fac7bb031e Changed the method used to store the user selected PIN/Pattern into the shared preferences, the app now uses a hashed version of the PIN/Pattern with added salt at the beginning instead of an encrypted one. The salt is being saved into the shared preferences so that we can confirm the current PIN/Pattern when the user requires to do so. 2019-02-18 14:06:48 -06:00
Severiano Jaramillo b0811ab2c8 Added a step to first verify the user's Security Lock before trying to send a transaction in SendTransactionFragment. 2019-02-16 17:48:50 -06:00
Severiano Jaramillo a10a8cd836 Added the verification of the Pattern security lock option, before changing the current Security Lock or viewing the BrainKey in the Settings, when Pattern is the current security lock. 2019-02-16 16:58:36 -06:00
Severiano Jaramillo fb329658eb Added the logic to create a new Security Lock pattern and save it encrypted in the preferences, with all used strings translated to Spanish. 2019-02-16 16:41:02 -06:00
Severiano Jaramillo e44f4ea6e2 Created PatternSecurityLockDialog, which will be in charge of creating and confirming a new Pattern of validating the existing one, with a logic similar to PINSecurityLockDialog's. Created basic PatternSecurityLockDialog with a UI that resembles Android's. 2019-02-14 19:57:42 -06:00
Severiano Jaramillo e8e1259314 Added the options to change the Security Lock option between PIN and None, and force the UI to show the correct one when it is changed. 2019-02-14 15:17:29 -06:00
Severiano Jaramillo b4965d8a01 Create the methods to ask for the current Security Lock before showing the BrainKey. 2019-02-14 13:41:27 -06:00
Severiano Jaramillo f3c85e8875 Added the functionality to PINSecurityLockDialog to check if the entered PIN corresponds with the current PIN and if that is the case let the calling fragmet about it, so that the fragment can respond accordingly 2019-02-14 12:53:35 -06:00
Severiano Jaramillo 123482e996 Added the PatternLockView library to the project, which will let us add the pattern security option. Modified the Settings screen so that when the user tries to change its Security Lock option and the current one is PIN, show the PIN dialog first. Created the PINSecurityLockDialog which will host the logic of creating and confirming the new PIN, and verifying the current one. Finally, created BaseSecurityLockDialog which will host the shared logic between the PIN and Pattern Security Lock dialogs. 2019-02-14 09:06:22 -06:00
Severiano Jaramillo 084a90d515 Add a Security section to the Settings screen, with a Security Lock option where the user can see the currently selected Security Lock option. When it is tapped a dialog appears where the user can select his desired Security Lock (PIN/Pattern/None). 2019-02-13 13:37:15 -06:00
Severiano Jaramillo d249f165d9 Change equivalent value text to just value in eReceipts. 2019-02-12 09:34:15 -06:00
Severiano Jaramillo 5d8dbd0664 Correctly handle the scenario when the user scans a QR that requests an asset that he does not own, when that happens just parse the To and Memo fields and show a snackbar with a proper message, do not fill the amount field. 2019-02-11 20:38:46 -06:00
Severiano Jaramillo dd8a52451a Make sure to use the asset precision to correctly format the asset amount when reading QRs in SendTransactionActivity. 2019-02-11 20:10:21 -06:00
Severiano Jaramillo 1e67fdf065 Improve the camera preview in SendTransactionFragment, so that both the preview and the scan zone are squared. 2019-02-11 18:53:18 -06:00
Severiano Jaramillo 653bdbec69 Fix a proguard rule and enable proguard on debug builds too. 2019-02-11 16:10:14 -06:00
Severiano Jaramillo 21c6b776af Make use of Kotlin's null safe operations to avoid NullPointerException in various places in the app. Use of the ContextCompat and ConfigurationCompat classes in different screens to safely access app configuration and resources in a backwards compatible way. 2019-02-11 12:16:56 -06:00
Severiano Jaramillo 42e0fc74b0 Changed the comparator used to sort the transactions in TransactionsActivity to compare the Long representation of the transfer ID instead of the String representation.
Even though transfer IDs are incremental in the form 1.11.x where x is the number that increments for each transfer, the field is a string and that causes errors when doing the comparisons because the string 9 is 'greater' than 123456789 so instead of doing the string comparison we had to convert the ID to a long number and only then do the comparison to make sure the transactions are correctly ordered.
2019-02-07 16:42:57 -06:00
Severiano Jaramillo e5677436b1 Add the equivalent value to both PDF and CSV export options. 2019-02-07 13:40:26 -06:00
Severiano Jaramillo d68b34f973 Add the functionality in TransactionsFragment to filter transactions by Equivalent Value range, taking into account the currency precision. 2019-02-07 13:20:24 -06:00
Severiano Jaramillo abfbed91f5 Extract string resources from FilterOptionsDialog and add their Spanish translation. 2019-02-07 13:07:04 -06:00
Severiano Jaramillo 76fea6cfc1 Added the filter by Equivalent Value range option to the TransactionsFragment' FilterOptioinsDialog, which communicates the user selection back and forth. Also, renamed all string instances of Fiat Equivalent to Equivalent Value in order to use the same convention in all the screens 2019-02-07 12:52:37 -06:00
Severiano Jaramillo d36de0b30a Fix db migration for the transfers table and for transfers of other asset than BTS, so that its propper bts_value can be fetched later. 2019-02-07 10:26:09 -06:00
Severiano Jaramillo e4dce3cad4 Merge branch 'develop' of github.com:Agorise/bitsy-wallet into develop 2019-02-06 21:17:25 -06:00
Nelson R. Perez 94b5ae7780 - Commented some tests in the TransfersTests that no longer work due to changes in the API 2019-02-06 17:38:30 -05:00
Nelson R. Perez cf8771ac5e - Introduced a small modification to the db migration to version 3 that will take care of filling up the 'bts_value' of pre-existing entries in the 'transfer' table made with BTS
- Extended the unit test for the 2-to-3 database migration to take in consideration said change
2019-02-06 17:38:01 -05:00
Severiano Jaramillo 032cb63218 Make both Transaction items and eReceipts to show the currency code instead of the currency symbol with the equivalent value. 2019-02-06 14:22:50 -06:00
Severiano Jaramillo 0b287ca714 Add fiatAmount and fiatSymbol members to the TransferDetail object and modify the query to fetch TransferDetails from the database to obtain those two objects from the EquivalentValues table if they have been already obtained 2019-02-06 12:42:18 -06:00