Commit Graph

42 Commits (f8b7a11ba9f630b1d14eb25f3d6db5acc0531558)

Author SHA1 Message Date
Nelson R. Perez f8b7a11ba9 Introducing a supported currencies cache for the equivalent values feature
- In case the device is without connectivity, we cannot check in real time what the list of supported currencies is from the coingecko API. For this special corner cases we store a cache of this currency list.
2019-11-07 16:36:49 -05:00
Nelson R. Perez 8f70b3965d Fixing wrong database entries & making the equivalent value currency dynamic
- Purging invalid entries of the 'equivalent_values' table
- Displaying whathever currency the user happen to have selected *at the moment*. The previous implementation had a flaw that would have made the currency that was used to calculate the equivalent values in first stick, even if the user changed to another locale settings later.
2019-11-06 16:53:39 -05:00
Severiano Jaramillo 0ae587a7aa Fetch all merchants from the webservice.
- Modified the method that fetches the merchants from the webservice to keep requesting the merchants list until nothing is returned, to make sure the whole list of merchants is obtained.
- Modified the time the app waits to update the merchants and tellers list from 24 hours to just 3 hours.
2019-10-31 12:13:27 -06:00
Severiano Jaramillo fa8d6cb85f Add account ID to crashlytics reports.
- Added the account ID to the crashlytics reports so that we can verify if a crash can be related to an account specific situation.
2019-09-04 11:49:00 -05:00
Severiano Jaramillo 765ed13a6a Add the nodes WS to Bitsy.
- Renamed the MerchantsWebservice to BitsyWebservice because it is now going to serve as a source of information of more than just merchants and tellers, but also the nodes the app is gonna connect to.
- Created new NodeRepository which will be in charge of accessing and updating the nodes database table with the information obtained from the webservice.
- Bitsy is now going to try to obtain the list of nodes it is going to try to connect to from the dabatase and use a hardcoded list as a fallback. The list of nodes in the database is updated regularly as well as their respective latency, so that in future app's startups it can use those latencies to immediately connect to the best node in the last app session.
2019-08-23 14:41:00 -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 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 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 202466a71f Fix PatternView too big on small screens in PatternSecurityLockDialog. 2019-02-20 17:18:50 -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 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 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 577e3ae01f Merge branch 'feat_equiv_values' into develop 2019-02-05 21:12:03 -06:00
Severiano Jaramillo d7c728db2f Added the libraries to create PDF and CSV files directly from the app. Verify that the BiTSy folder exists in the external storage and if it doesn't then it creates it. Generate the filtered transactions' PDF with 7 columns: From, To, Memo, Date, Time, Asset Amount, and Fiat Equivalent. 2019-02-05 10:50:40 -06:00
Nelson R. Perez 35561059ce This commit finishes with the second part of the equivalent values calculation. In this part of the procedure a query is performed
looking for entries in the 'transactions' table that are missing a corresponding entry in the 'equivalent_values' table.

Whenere a transaction is detected to not have an equivalent value for a given fiat, a network request is made to the Coingecko's API in order
to obtain the BTS market value at the day of that transaction. An equivalent value is thus calculated using the 'bts_value' of the transaction.
2019-02-04 21:00:57 -05:00
Severiano Jaramillo 6a8def0cf1 Make some changes to the Merchant's map Cluster logic, so that both Merchants and Tellers clusters work at the same time and automatically as the map camera moves. 2019-01-24 13:37:06 -06:00
Severiano Jaramillo 38d6d7f7a8 Improve MerchantRepository to perform merchants update only if at least one day has passed since the last update. Also, perform a full delete of merchants before inserting the list received from thewebservice to make sure merchants removed there are also removed from the app. 2019-01-23 16:08:04 -06:00
Severiano Jaramillo 7f10c931a4 Reduce the amount of assets that should be sent to agorise as a network fee when sending transactions using Bitsy. 2019-01-16 09:18:17 -06:00
Severiano Jaramillo bda2299cb5 Create a list of IDs of BTS and all the SmartCoins in the Constants class, so that we can easily decide whether sending the agorise fee or not. If the Asset ID is contained into the list then the fee is sent. 2019-01-15 17:06:00 -06:00
Severiano Jaramillo 529d5db41d Improve SendTransactionFragment by adding description comments to all non-trivial functions and variables, and avoid crashes in many parts by always adding null-safe operations. 2019-01-15 14:34:42 -06:00
Severiano Jaramillo 33f45a6775 Activate the memo functionality in SendTransactionFragment.
The memo encryption was not working properly for two reasons, there is a number called nonce used to encrypt the memo and it has to be positive. The app was sometimes using a negative nonce which caused encryption problems. The second problem was that the nonce was being serialized as an hexadecimal but the node was expecting a decimal so it was not able to convert back the nonce from string to decimal.
2019-01-15 11:08:15 -06:00
Severiano Jaramillo 78909498c0 Added method to create Account using the Agorise's faucet, and also making use of Retrofit's suggested ServiceGenerator. 2019-01-08 16:35:14 -06:00
Severiano Jaramillo 58e1e0a575 Removed LicenseActivity and created LicenseFragment instead, to comply with the proposed app architecture using the AAC Navigation component where there is only one Activity and all the views are represented by Fragments. 2019-01-04 15:53:29 -06:00
Severiano Jaramillo c4fd79f22c Create FullNodesAdapter to display a live updated list of the nodes the app is watching and also the one it is connected to. This list is displayed inside a dialog that pops when the user clicks the status icon in the Settings Footer. The dialog also shows the live updated BitShares Block Number 2018-12-21 20:55:36 -06:00
Severiano Jaramillo 5240e88e1f - Add a FileProvider to the Manifest, to enable the app to share images with other applications.
- Modify the method that creates a temp image of the screenshot to use the FileProvider described above.
- Improve ReceiveTransactionFragment UI so that the QR screenshot looks nicely spaced.
2018-12-21 18:12:34 -06:00
Severiano Jaramillo 9647e700ed Change the merchants and ambs webservice url. 2018-12-21 13:05:35 -06:00
Severiano Jaramillo 5c20e2470d Avoid a crash in SendTransactionFragment when there are no assets loaded into de db. 2018-12-17 16:51:24 -06:00
Severiano Jaramillo f8c9594602 Remove DatabaseLoadActivity and all related code. 2018-12-17 15:46:44 -06:00
Severiano Jaramillo f45d9055c3 Add functionality to the Settings 'Automatically close BiTSy after 3 minutes of inactivity', the user selection is saved into the SharedPreferences and if it happens to be true then the app will close when that time amount of inactivity happens. 2018-12-13 14:29:32 -06:00
Severiano Jaramillo 0f96c48135 Create method to update the Transactions list when new operations are detected for the current user account. When new transactions are fetched and saved into the database they automatically appear on the Transactions list. 2018-12-08 22:15:06 -06:00
Severiano Jaramillo 628b30ce54 Created a method that is always listening to changes in the database and finds out when at least one UserAccount involved in a transaction is not present in the user_accounts db table. When such accounts are found they are retrieved in a form of a list and their information is requested to the BitShares nodes through graphenej's NetworkService and saved into the db once a response is received. The updated user account information is automatically displayed in the transactions list because of AAC's ViewModel, LiveData and Room. 2018-12-08 20:36:31 -06:00
Severiano Jaramillo 08cf6b3c40 - Created a specific package entities for Room entities and do not mix them with plain models.
- Simplified the Transfers entity so that we store only the information that will actually be used.
- Create a TransfersLoader, which once launched checks and updated Transfer operations.
2018-11-27 13:33:04 -06:00
Severiano Jaramillo c63388155a Created a DatabaseLoadActivity which loads basic information of all the BitShares assets and stores them in the database. This process only occurs once during the initial setup. 2018-11-26 15:11:34 -06:00
Severiano Jaramillo 175d48f8c6 - Simplified Database structure to include only what is going to be used for the wallet.
- Properly distroy NetworkService connection when ConnectedActivty is distroyed to avoid crashes.
- Created UserAccountRepository and AuthorityRepository to handle their corresponding database operations in an asynchronous way, because Room enforces database operations to be done in a thread other than the UI thread.
- In ImportBrainkeyActivity when a proper brainkey is given save the imported account into the database, put a flag that tells the app there is a current account imported and send the user to MainActivity.
2018-11-24 09:11:57 -06:00
Severiano Jaramillo 847e8a8d7f - Make an UX improvement to let the user import the account directly from the keyboard when typing the brainkey in the TextField.
- Add the MaterialDialogs library and use it to let the user choose the desired account to import when the brainkey controls more than one account.
2018-11-22 20:13:10 -06:00
Severiano Jaramillo 22a0735379 Remove code from BitsyApplication that is not going to be used.
- Add checks to ImportBrainkeyActivity to make sure the PIN and Brainkey have the correct length/structure.
2018-11-22 15:40:33 -06:00
Severiano Jaramillo fcbd82e570 - Create BitsyApplication class to manage the connection to graphenej's NetworkService.
- Create ConnectedActivity which is the base activity that handles the communication to graphenej's NetworkService and will be extended by other apps that require communication to the BitShares nodes.
2018-11-22 13:35:32 -06:00
Severiano Jaramillo 6b55151e3b Created basic ImportBrainkeyActivity and a method to take the user to the MainActivity or ImportBrainkeyActivity depending on whether or not there is an active account after the user accepts the License. 2018-11-21 17:43:51 -06:00
Severiano Jaramillo f19556c925 Created SplashActivity and LicenseActivity. Created a MaterialComponents button style with its state list animator. 2018-11-21 17:10:39 -06:00
Severiano Jaramillo 93f2abfb0e - Removed not needed stuff.
- Created new MainActivity using a BottomNavigationBar and created all the necessary icons for such bar.
2018-11-21 14:47:21 -06:00
dtvv 14a6a520c9 Convert Constants.java to kotlin 2018-10-31 18:55:12 -06:00