Commit graph

368 commits

Author SHA1 Message Date
Severiano Jaramillo
a913f380bb Create MerchantMarkerRederer to create custom merchant and custom merchant cluster icons to show on the map. Use the same merchant cluster icon as in palmpay.io but with white text. 2019-01-23 12:17:46 -06:00
Severiano Jaramillo
6abcf6ed13 Add the android-maps-utils library and use the Cluster functionality to display a nice item amount when the markers are too close. 2019-01-22 20:14:17 -06:00
Severiano Jaramillo
8c56250d1a Position the Merchants & Tellers Map by default somewhere near Panama with a zoom of 6. 2019-01-22 16:30:23 -06:00
Severiano Jaramillo
2ed39fabdd Create a night mode style for the Merchants & Tellers map and apply it only when the app is in night mode, use the default map theme otherwise. 2019-01-22 15:53:14 -06:00
Severiano Jaramillo
227e0224a1 Add location permission request in the Merchants and Tellers screen, and if accepted show the icon on the map so that it can be moved to the current user's location if it is available already. Also, show the zoom UI controls on the map. 2019-01-22 15:31:24 -06:00
Severiano Jaramillo
55e57a11ad Change Toolbar title of Merchants section to Merchants & Tellers 2019-01-22 14:00:35 -06:00
Severiano Jaramillo
4558d54d27 Create db migration to add and use the merchants and tellers tables. 2019-01-22 13:55:28 -06:00
Severiano Jaramillo
6ed34d20eb Created MerchantDao and TellerDao to be able to access the merchants and tellers db tables. Modified Room to export the db schema to enable proper testing. 2019-01-22 13:28:17 -06:00
Severiano Jaramillo
e043b83b36 Improve query to obtain the merchants information from the webservice. Move the Merchant model to the entities folder and annotate it so it can be used to create a Room table. Create the Teller entity to be used to fetch the Tellers info from the webservice and create the tellers Room table. Removed not needed classes Ambassador and AmbassadorLocation. 2019-01-22 13:11:23 -06:00
Severiano Jaramillo
4c3822e8c1 Fix crash with Google maps in Android 9 [Pie] devices. 2019-01-22 10:17:22 -06:00
Severiano Jaramillo
357cc97e40 Improve homescreen buttons layout, making the camera button bigger and putting it over the Send button in the border at ~-140°, and removing the line that connected the camera and send buttons. 2019-01-22 09:56:58 -06:00
Severiano Jaramillo
6841e3eb9a Created a tab_icon_selector file to dynamicaly color the Pie chart icon in the HomeFragment tabs in the activated/deactivated state in both day and night mode to match the same colors as the other tab's text. 2019-01-21 21:54:18 -06:00
Severiano Jaramillo
e3f8e1d923 Remove '#bitsy' Memo from QR codes generated in ReceiveTransactionFragment. 2019-01-21 21:54:03 -06:00
Severiano Jaramillo
ef5834264b Force the back button in the Toolbar in different screens to use the same white color as the Toolbar title text. 2019-01-21 12:05:40 -06:00
Severiano Jaramillo
00b8919566 Created a blue lightning bolt icon and use it in the Homescreen to show it to the left of the account name in case it is LTM. 2019-01-21 11:13:54 -06:00
Severiano Jaramillo
848768a038 Change fiat placeholder in the Transactions items. 2019-01-16 16:47:29 -06:00
Severiano Jaramillo
0da52c2ee8 Prepare the strings.xml file for translation by putting every string resource into a single line. Create Spanish translation human verified. 2019-01-16 16:40:49 -06:00
Severiano Jaramillo
cfc8b13dbb Avoid adding an operation to send a fee to agorise when the amount is zero, this can happen when the amount that is going to be sent is very small such that 0.01% of that is less than the minimum amount available of that asset. 2019-01-16 15:31:54 -06:00
Severiano Jaramillo
ea80a3e7e3 Improve SendTransactionFragment's QR code read feature to account for cases when the QR code is for a smartcoin (starts with bit). 2019-01-16 13:48:35 -06:00
Severiano Jaramillo
9a8af1b918 Make ReceiveTransactionFragment extend from ConnectedFragment to reduce boilerplate and repeated code. Change the method used to obtain the Assets list from the db in ReceiveTransactionFragment, it now retrieved only those Assets for which the user has a Balance > 0. Improve ReceiveTransactionFragment's function that obtains the suggestions for the AutoCompleteTextView when the user wants to receive a different Asset, to avoid crashes if the information received does not have the expected format. 2019-01-16 11:34:01 -06:00
Severiano Jaramillo
ec57bea829 Created an extension function that can be used to hide the keyboard from any view and used that extension function to add the behavior of hiding the keyboard when a EditText loses focus which was included in a custom view MyTextInputEditText. Then used that class in all EditText fields in SendTransactionFragment, ReceiveTransactionFragment, ImportBrainkeyFragment and CreateAccountFragment to introduce the described behavior. 2019-01-16 10:30:11 -06:00
Severiano Jaramillo
12d17c54d3 Improve HomeFragment layout by increasing elevation (and shadows) of buttons, changing the line that connect the camera and send buttons to red color and also improving the Send and Receive text by using caps and a small spacing from the buttons above. 2019-01-16 09:47:17 -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
7165df42cb Fix crash when in ImportBrainkeyFragment when the user tries to import an account with an incorrect BrainKey. Also, removed trailing spaces from the written BrainKey before proceeding to verify it. 2019-01-16 09:02:18 -06:00
Severiano Jaramillo
887d9a249f Improve FilterOptionsDialog layout by moving the 'IgnoreNetworkFees' section above the 'Fiat Amount' section. 2019-01-15 21:43:24 -06:00
Severiano Jaramillo
3014e12a5a Add the functionality to filter all transactions sent to the agorise account, which are presumably transaction network fees. 2019-01-15 21:28:24 -06:00
Severiano Jaramillo
027f690480 Add a switch to the bottom of the Transactions' FilterOptionsDialog which will be used to hide/show the network fees sent to Agorise. Also added the communication back and forth from the Transactions to the Dialog to keep updated the user selection of the switch. 2019-01-15 21:23:54 -06:00
Severiano Jaramillo
6dc5e54ad1 Force amount validation in SendTransactionFragment when an asset is selected in Assets spinner. The amount validation was done only after the user changed the amount but it has to also be validated when the user selects a different Asset, because it is probable to have less of that asset than what is already typed in the amount field. 2019-01-15 17:13:02 -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
086660409f Add the code to send the fee to Agorise in the case the transfer Asset is BTS.
This is the easiest case because we only need to calculate the fee as a percentage of the transfer and add it to the Transaction.
2019-01-15 13:46:27 -06:00
Severiano Jaramillo
cb07673c8d Force the app to go back to the home screen once a transaction is successfuly sent. 2019-01-15 11:22:28 -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
561612368a Make node dialogs in ImportAccountFragment and SettingsFragment to stop asking for the DynamicGlobalProperties (block number, etc.) once they are dismissed. 2019-01-11 13:52:55 -06:00
Severiano Jaramillo
81531cc8b6 Add functionality to ImportBrainkeyFragment's 'View Network Status' to show the nodes dialog. Most of it was copied fom the same dialog already implemented in the Settings screen. 2019-01-11 13:46:50 -06:00
Severiano Jaramillo
dd619be8c8 Update ImportBrainkeyFragment layout to show the 'View Network Status' text and newtwork status icon at the bottom. 2019-01-11 13:27:34 -06:00
Severiano Jaramillo
464f8da353 Change the elevation of enabled buttons to 3dp. 2019-01-10 16:10:55 -06:00
Severiano Jaramillo
67ad71ff88 Change brainkey error description and create and import button labels in ImportBrainkeyFragment. Also added an 'Or' string between the import and create buttons. 2019-01-10 15:57:53 -06:00
Severiano Jaramillo
8a02ab43df Remove focus from the first EditText by default in ImportBrainkeyFragment. 2019-01-10 15:32:30 -06:00
Severiano Jaramillo
e3f227d5bd Add type checks to NetworkService responses in ImportBrainkeyFragment to avoid crashes. 2019-01-10 15:07:27 -06:00
Severiano Jaramillo
38039fc76b Add the selected node information to the Crashlytics reports. 2019-01-10 14:23:10 -06:00
Severiano Jaramillo
7c1a3577e9 Extract string resources from TransactionsFragment's FilterOptionsDialog, so they can be easily translated. 2019-01-10 12:44:56 -06:00
Severiano Jaramillo
bd0b74eeaf In the FilterOptionsDialog, add the option to filter by Asset, where the user can select to see transactions involving all assets or only a specific one that can be selected in a Spinner. This selection is communicated back to the TransactionsFragment to respond and show the transactions matching with the user selected criteria. 2019-01-10 12:23:17 -06:00
Severiano Jaramillo
f62286747c Create DateFragmentPicker, which shows a dialog with a calendar where the user can select a date. This picker is used in TransactiondFragment's filter dialog to filter transactions by date. The picker looks nice in both day and night mode. 2019-01-09 20:39:42 -06:00
Severiano Jaramillo
5470ca1523 Chaged BrainKey modal in the Settings, it does not copu the BrainKey to the clipboard anymore, it just shows it so that the user writes it down. 2019-01-09 18:16:15 -06:00
Severiano Jaramillo
5075c59b7b Remove border from FloatingActionButtons in HomeFragment and SendTransactionFragment.
This was the blue border that appeared around the rounded buttons in the mentioned screens.
2019-01-09 18:04:52 -06:00
Severiano Jaramillo
941a558a08 Force the app to start updating the account information just after it is imported/created.
This wasn't happening automatically the first time the account was imported, the the user had to close and reopen the app for the transfers update to take place. The problem was that the account information was only fetched from the shared preferences when the app started, thus a method to force the fetch was introduced just after the user imports/creates his user account.
2019-01-09 17:19:49 -06:00
Severiano Jaramillo
e16d651a63 Fix crash related to trying to create a Dialog from a thread other than the UI thread. Also, add the password toggle buttons to the PIN fields in CreateAccountFragment. 2019-01-08 20:53:57 -06:00
Severiano Jaramillo
8894c48e5c Fix problem with Navigation from the ImportBrainkeyFragment and CreateAccountFragment when an account is imported/created and the user has to be taken back to the MainFragment. 2019-01-08 20:18:42 -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
860947b351 Create BaseAccountFragment, which is an abstract class that encapsulates the code needed in both ImportBrainkeyFragment and CreateAccountFragment to store into the information of the created/imported user account into the database. 2019-01-08 13:27:18 -06:00
Severiano Jaramillo
64d30f42ab Create method to validate if the suggested user account given by the user is an available account name or not and display a message to the user with the result, in CreateAccountFragment. 2019-01-07 20:35:29 -06:00
Severiano Jaramillo
e530dc531e Add account name validation to CreateAccountFragment using Kotlin extension functions and RxJava debounce operator. 2019-01-05 20:47:04 -06:00
Severiano Jaramillo
9236e374bc Add PIN and Pin Confirmation validations to CreateAccountFragment using RxBindings with debounce, also add functionality to the 'CANCEL' button. 2019-01-05 20:02:07 -06:00
Severiano Jaramillo
14a4f79cb2 Added the BrainKey Bitshares dictionary as a text file in the app assets and make use of it to automatically generate BrainKeys in CreateAccountActivity when the user is trying to create a new account. 2019-01-05 16:30:57 -06:00
Severiano Jaramillo
991967cd7d Created CreateAccountFragment with its layout and the methods to show it when the user clicks the 'Create' button in the ImportBrainkeyFragment using Navigation AAC. 2019-01-05 15:23:42 -06:00
Severiano Jaramillo
0deecca8ed Remove no longer needed code from ConnectedActivity and MainActivity and add a description to each of the Activities to describe their purpose. 2019-01-04 17:01:06 -06:00
Severiano Jaramillo
2dd843fe91 Removed ImportBrainkeyActivity and created ImportBrainkeyFragment instead, with this the app is now using a single activity and all the content is divided in fragments. All the navigation inside the app is now controlled by the AAC Navigation component. 2019-01-04 16:50:56 -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
4e64b10014 Created ConnectedFragment, that encapsulates the repeated code which encapsulates the repeated code Fragmets that connect to the NetworkService use. Simplified SendTransactionFragment by extending the newly created ConnectedFragment. 2019-01-04 13:13:55 -06:00
Severiano Jaramillo
10014263d7 Improve query to obtain user balances to avoid showing assets with a balance equal to zero. 2019-01-03 17:11:58 -06:00
Severiano Jaramillo
2db74516bb Create colorToolbarDark and colorStatusBar to color the toolbar and the status bar in the night mode theme and add the necessary methods to use them in the app accordingly. 2019-01-03 17:06:37 -06:00
Severiano Jaramillo
5cde97f1e7 Speed up the slide in/slide out animations used in fragment transitions. 2019-01-03 16:40:14 -06:00
Severiano Jaramillo
39ad3cca01 Changed the colorSend and colorReceive colors and added their respective darker versions. Changed the toolbar and status bar color in both the Send and Receive Transaction Fragment to colorSend and colorReceive with their darker variants accordingly. 2019-01-03 16:36:20 -06:00
Severiano Jaramillo
f32bfc567b Created info dialog in SendTransactionFragment using the MaterialDialog library, which shows an explanation of the fields on that screen. 2019-01-03 12:45:28 -06:00
Severiano Jaramillo
bee79976b5 Create SendTransactionFragment menu, which consists of only an info icon. 2019-01-03 11:09:19 -06:00
Severiano Jaramillo
2643b0af4d When the send button is disabled in SendTransactionFragment the background view is also 'disabled' changing its color to a lighter gray. 2019-01-03 10:47:58 -06:00
Severiano Jaramillo
f0b959b496 Fix error in SendTransactionFragment, when the user typed an amount larger than its current balance an error would appear, but if after that the user erased everything the error would still be there. Also solved a similar error with the To account field. 2019-01-03 10:27:17 -06:00
Severiano Jaramillo
c068efa84c Create a toast extension function to reduce the boilerplate code required to create Toasts. Extracted string resources fron SendTransactionFragment and used the new toast extension funcion. 2019-01-03 09:45:47 -06:00
Severiano Jaramillo
8eed991e0e Created Kotlin etension functions to add a enabled/disabled functionality to FloatingActionButtons. This is used in the SendTransactionFragment to show the Send button as disabled when the information to send a transaction is not all correct. 2019-01-03 09:11:58 -06:00
Severiano Jaramillo
1b4de3fb1e Make camera and send buttons red in SendTransactionFragment. 2019-01-03 08:26:21 -06:00
Severiano Jaramillo
d4dbdc4aeb Change 'Please Pay' to 'Please Send' string in ReceiveTransactionFragment. Also, in the same Fragment, added an 'Any Amount' string when the user has not explicitly specified an amount to receive. 2019-01-02 17:03:20 -06:00
Severiano Jaramillo
71f2a8b25b Remove the eula from the strings and placed it instead as a file into the Assets folder.
We found that using the loadUrl WebView's method instead of loadData renders the html page better, for that reason the eula is now saved as a fule in the assets folder and loaded using the WebView's loadUrl method.
2019-01-02 14:11:44 -06:00
Severiano Jaramillo
573ae1d1dd Update Gradle plugin version, navigation architecture components library version and Crsshlytics library version. 2019-01-02 09:59:30 -06:00
Severiano Jaramillo
242fe7656a Enable the transaction direction filter, the user can apply the filter and see all transactions or just the sent or received. 2019-01-02 09:27:25 -06:00
Severiano Jaramillo
ddf7f16c2b Create FilterOptionsDialog, which opens when the user clicks the filter icon in the Transactions toolbar. This dialog communicates back a forth with the TransactionsFragment to update the selected filter options via the OnFilterOptionsSelectedListener interface. 2018-12-26 11:59:02 -06:00
Severiano Jaramillo
e4391dad73 Fix crash related to using the wrong RxBinding method with the Transactions SearchView, make some improvements and remove the old code used with the SearchView before using the SearchView's RxBinding method. 2018-12-24 11:15:25 -06:00
Severiano Jaramillo
a39daaf155 Update RxBinding library version to 3.0.0-alpha2 and its usages.
The new version makes use of Kotlin extension functions which are elegant and effective. Also, make use of RxBinding in Transactions Toolbar SearchView, to add a nice debounce effect to wait 500ms after the user stops writing the search query, and actually call the filter method to avoid multiple calls while the user is still typing.
2018-12-24 10:55:54 -06:00
Severiano Jaramillo
2f720bb114 Add functionality to the Search funtion in the Transactions' toolbar, which fires events to filter the transactions list while the user types a search query. 2018-12-24 08:44:07 -06:00
Severiano Jaramillo
4391ff5ad4 Simplify BounceTouchListener and TransactionsFragment, to produce the same bouncy effect when overscrolling the transactions list, but with much less code. 2018-12-23 21:51:46 -06:00
Severiano Jaramillo
6ef5d84394 Show memo if available in the Transactions list. 2018-12-23 20:12:04 -06:00
Severiano Jaramillo
9fe152ef7c Make the task to check if there are new transactions that involve the current user account a recurrent task. 2018-12-23 19:15:03 -06:00
Severiano Jaramillo
4b16a90870 Fix nodes dialog's node text style. 2018-12-23 15:34:45 -06:00
Severiano Jaramillo
f8e5a84da8 Remove Settings status footer and added instead a line below General's Night mode, View Network Status whith an icon that shows the current network status. When clicked it opens the Nodes dialog. Changed Nodes dialog title to show the current app version and added the block number as a single line below it. 2018-12-23 15:10:44 -06:00
Severiano Jaramillo
962afe78c6 Create method to always observe the database for Missing transaction times, which automatically launches a call to the NetworkService to obtain such value from the corresponding transfer's blockNumber. This value is updated in the Database and shown in the corresponding transaction item in the Transactions screen automatically. 2018-12-23 14:11:26 -06:00
Severiano Jaramillo
7fb1d4ff86 Add date field to TransferDetails model and correctly format and display it in the Transactions list. 2018-12-21 23:33:58 -06:00
Severiano Jaramillo
a96f3d0b77 Added ppGren to the colors resource, which is the PalmPay green and used that color in the connected status icon and the color of the latencies < 400ms. 2018-12-21 21:55:17 -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
504441afa2 Connect SettingsFragment to graphenej's NetworkService and use the onServiceConnected and onServiceDisconnected to change the connection status icon in the footer accordingly. 2018-12-21 20:14:31 -06:00
Severiano Jaramillo
ae8a2f17e3 Add a footer to the SettingsFragment, which contains the app logo, the app name, version name and the Connection status icon. 2018-12-21 18:40:35 -06:00
Severiano Jaramillo
80b5f9f571 Avoid sharing the QR code image if the fields are not filled correctly 2018-12-21 18:24:39 -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
62fdc6a3e4 Add the share menu icon to the ReceiveTransactionFragment toolbar, verify for the storage permission required to store a temp image of the QR code when the sare icon is tapped and create a temp image of the QR code to be used later to send a share intent to the Andriod System so that it shows the user a list of options for him to select his preferred one. 2018-12-20 20:28:31 -06:00
Severiano Jaramillo
e3bea9f475 Center text vertically below QR code and fix Please Pay string. 2018-12-20 18:06:11 -06:00
Severiano Jaramillo
4beec4e66a Add the BitShares icon to the Main screen toolbar and update the toolbar background so that it automatically uses the primaryColor of the selected theme. 2018-12-20 16:40:48 -06:00
Severiano Jaramillo
fddfe1ab8b Set the 'Automatically close BiTSy after 3 minutes of inactivity' feature on by default. 2018-12-20 14:17:50 -06:00
Severiano Jaramillo
96fc421a99 Change the font used in the entire appto PFBeauSansPro. 2018-12-20 14:02:39 -06:00
Severiano Jaramillo
397515fea9 Improve AutoSuggestAssetAdapter to use Bitsy's Asset model, which has a 'toString' method to automatically show the symbol of the AssetSelected in the AutoCompleteTextView. Also Add a variable to avoid clearing the QR code just after the user selects an Asset from the AutoComplete suggestions. 2018-12-20 13:57:47 -06:00
Severiano Jaramillo
7f462bec63 - Add a responseMap (HashMap) to ConnectedActivity so that it only reacts to calls it has made.
- Create AutoSuggestAssetAdapter which is used in the ReceiveTransactionFragment's AutoCompleteTextView to show suggestions backed by the response from queries to the BitShares nodes, according to what the user has already typed in the text field.
2018-12-20 13:34:11 -06:00
Severiano Jaramillo
8fd7c28256 In ReceiveTransactionFragment, add an 'Other...' option at the end of the assets spinner and when the user selects it an AutoCompleteTextView appears below where the user can select other asset, the AutoCompleteTextView suggestions will be backed by BitShares node queries to show matching Assets. 2018-12-20 09:59:10 -06:00
Severiano Jaramillo
e8ec0e6f89 Create AssetsAdapter and use it to populate the asset spinner in the ReceiveTransactionFragment, so the user the asset he wants to receive. 2018-12-20 08:48:48 -06:00
Severiano Jaramillo
49f920877a Use the NetworkService's GetAssets call to obtain the information of missing Assets and store it into the database, this enables us to remove the DatabaseLoad Activity and new assets information is downloaded as needed. 2018-12-19 20:25:58 -06:00
Severiano Jaramillo
a3c4c9a816 Update Bitsy's app icon. 2018-12-19 19:34:46 -06:00
Severiano Jaramillo
26e1e427c9 Add Transactions toolbar menu items with their respective icons. 2018-12-19 10:08:24 -06:00
Severiano Jaramillo
cee1753184 Create BounceTouchListener class in the project and use it to add a Bouncy effect to the Transactions items when the user tries to overscroll. 2018-12-19 09:43:09 -06:00
Severiano Jaramillo
5af88291bc Update the Navigation component library version and Gradle version.
- Add simple slide in and out transition animations to the Send and Receive Transaction Fragments.
2018-12-19 09:24:56 -06:00
Severiano Jaramillo
d5d01115f8 Request merchants locations from the webservice and add them to the Merchants map. 2018-12-18 09:27:26 -06:00
Severiano Jaramillo
89cf6f3df2 Add slide-in animation when the Transactions items are loaded into the screen. 2018-12-18 08:51:45 -06:00
Severiano Jaramillo
dc7decfb77 Sort Balances alphabetically by symbol and place the asset symbol to the left and the balance amount to the right. 2018-12-18 07:55:04 -06:00
Severiano Jaramillo
720b4f7b1e Add BalanceView model and a method into it that is always observing the database and when it detects that there is missing assets information creates a list of such missing assets and fires an event to obtain the said information. 2018-12-18 07:37:21 -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
d425e4eece Enable just the best 7 BitShares nodes for the Mexico region.
- Disable the Memo field for now, we will fix and enable it later.
2018-12-15 10:19:58 -06:00
Severiano Jaramillo
41f7541918 Added code to fetch the merchants locations from the palmapay intranet web service. 2018-12-14 18:46:01 -06:00
Severiano Jaramillo
5659a1dd8c Fix crash when trying to insert an account that already exists in the database. 2018-12-14 16:02:00 -06:00
Severiano Jaramillo
47e122e46c - Add the required libraries to fetch the merchants data from the web service.
- Create methods to redraw the Balances and NetWorth fragments each time they appear to the user, to temporarily avoid them not displaying correctly after returing from another screen or when changing the theme.
2018-12-14 14:20:16 -06:00
Severiano Jaramillo
5ddce2a33f Added a map to the Merchants section with the default values and using the Google Maps API key Tadeo created when he was working on the project. 2018-12-14 12:12:42 -06:00
Severiano Jaramillo
ba113e1a7f Found that enabling ProGuard's minify for the debug version breaks the debugger breakpoints functionality, minify was disabled until a solution is found. 2018-12-14 11:12:30 -06:00
Severiano Jaramillo
f76f293811 - Add a third tab to the Balances/Networth Tablayout which contains only a Pie chart as the title but has no content yet.
- Lighten up the above tabs that are not the current selected one. They are still grayed but just a bit.
2018-12-14 10:23:01 -06:00
Severiano Jaramillo
1a335b2ab5 Change settings icon to outlined. 2018-12-13 20:56:18 -06:00
Severiano Jaramillo
8d25b92063 Create a new BalancesFragment and NetWorthFragment which are used in the HomeFragment's second card. The Balances is already working but the NetWorth only shows a 'Coming soon' notice. 2018-12-13 20:53:38 -06:00
Severiano Jaramillo
a608ec162a Create the menus for Balances and Net Worth that make use of a customized TabLayout and a ViewPager to obtain the desired effect.
- Created custom themed attribute colorBackgroundFocusable to assign the correct background color to the balances and net worth tabs.
- Renamed BalancesFragment to HomeFragment because, the BalancesFragment will now only be used to display the Balances in the above mentioned ViewPager.
2018-12-13 20:21:03 -06:00
Severiano Jaramillo
dd290a4b2c Improve Balances' Material cards to show nice elevation with shadows. 2018-12-13 16:57:58 -06:00
Severiano Jaramillo
8f0026c205 - Update the MaterialDialogs library version.
- Add the functionality to the Settings BrainKey's View & Show button. It first fetches the brainkey from the authorities db table and then shows it in a custom MaterialDialog so that the user can view and copy it.
2018-12-13 16:01:26 -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
e1c32eb7f8 Add methods to automatically change the theme to night mode when the user selects it and also avoid a crash in the TransfersLoader. 2018-12-13 13:10:19 -06:00
Severiano Jaramillo
ffebc39bcf Add Send/Receive text below the Send/Receive buttons in the Balances screen and improve its layout so they are always centered both vertically and horizontally. 2018-12-13 12:47:25 -06:00
Severiano Jaramillo
5a6b098f38 Replaced SettingsActivity with SettingsFragmet and created the Navigation methods to hook the Balances' Settings toolbar icon with the Settings fragment so it automatically opens when the icon is tapped. 2018-12-13 12:34:42 -06:00
Severiano Jaramillo
1565bab28c Improve Transactions' cards UI. 2018-12-13 11:49:57 -06:00
Severiano Jaramillo
22666021f1 - Add Navigation's SafeArgs plugin to the project, this plugin enables to pass arguments between fragments in a safe way.
- Use the Navigation AAC to create the navigation from the Balances to the Send and Receive fragments, using Navigation's SafeArgs to activate the camera in SendTransactionFragment in the case the user tapped on the camera button instead ofjust the send button in the Balances.
2018-12-13 11:24:18 -06:00
Severiano Jaramillo
6e25dd7589 Create new Balances layout with the send and receive buttons at the top and the user balances at the bottom per Ken's design. 2018-12-13 10:16:57 -06:00
Severiano Jaramillo
2619541e16 - Create and add the new Transactions, Merchants and Settings icons and use them in the Balances toolbar.
- Remove the transactions section from the Balances fragment.
- Create a new TransactionsFragment which hosts the list of trasactions.
- Add the transactions destination to the navigation graph so that the Navigation component automatically handles the transition when the transactions icon is selected in Balances.
2018-12-13 08:20:17 -06:00
Severiano Jaramillo
3d6ce645b5 Make proper configurations to enable the Navigation component and make use of it to add the navigation to the Merchants fragment and back to the Balances fragment. 2018-12-12 21:30:27 -06:00
Severiano Jaramillo
82efa60a36 Introduce the new Android Architecture Components' Navigation.
- Remove the old MainActivity layout that included a BottomNavigationView.
- Start using the Navigation AAC and make the BalancesFragment the default Fragment so that it is the first to appear.
2018-12-12 20:56:20 -06:00
Severiano Jaramillo
410d22c5b0 Create Settings screen layout. 2018-12-11 16:22:55 -06:00
Severiano Jaramillo
2dc0deb23f Improve ImportBrainkeyActivity by automatically showing errors if the PIN is not long enough, the PIN Confirmation does not match or if the brainkey does not have the correct format as the user types but with a small debunce to avoid showing errors while the user is typing. Once the three fields are correct then the Import button is enabled. 2018-12-11 13:25:15 -06:00
Severiano Jaramillo
50a266ffb4 - Move the method to updateBalances from the MainActivity to the ConnectedActivity, so that it can be always trying to update the Balances even if we are not in the MainActivity and also to be able to update the Balances right after we notice there are new transactions for the current BitShares account.
- Move the TransfersLoader from MainActivity for the same reason than the updateBalances method described above and fix it so that it no longer needs the activity Lifecycle.
2018-12-08 22:55:28 -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
2b168180c6 Prevent calling the method to obtain account iformation when there is no longer missing account information. 2018-12-08 20:52:48 -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
496e0ac21f Add cryptoAmount, cryptoPrecision and cryptoSymbol to TransferDetails model and fetch that iformation from the database, which is later used to correctly format and display the crypto amount in the Transactions list. 2018-12-07 17:23:44 -06:00
Severiano Jaramillo
8ef4610db3 - Update graphenej reference to use a new method included to Broadcast a Transaction using the NetworkService's centralized node connection.
- Make use of the described new method in Graphenej's NetworkService to actually broadcast a Bitsy transaction to the blockchain. If the transaction is successful then all SendTransactionActivity fields are cleaned, the Send button hiden and a Toast showing that the transaction was successful. If the transaction fails then a Toast shows the error received from the Blockchain explaining the reason for the failure.
2018-12-07 16:10:08 -06:00
Severiano Jaramillo
04b509651b - Adjusted how the Android virtual keyboard appears on the screen so that it does not distort the QR code image.
- Created a method to update the QR code when the user updates the Amount text field information, using RxJava debounce to avoid calls while the user is still typing.
- Created a method to remove the QR when there is no Asset selected.
2018-12-07 15:18:23 -06:00
Severiano Jaramillo
28561d55f1 - Modified the Asset entity model by adding a method 'toString()', so that it can be used in the adapter for the ReceiveTransactionFragment's Asset AutoCompleteTextView.
- Created AssetViewModel to obtain the the elements from the assetd db table using the AssetRepository and serving the obtained assets to the ReceiveTransactionFragment.
- Fire an event to update the QR code when the user selects an asset from the AutoCompleteTextView.
2018-12-07 13:50:31 -06:00
Severiano Jaramillo
b9a765e682 Create custom AutoCompleteTextView which can be used inside of a TextInputLayout to show a nice square with the suggestion like the other text fields used in the app. 2018-12-07 12:17:45 -06:00
Severiano Jaramillo
39073e3d9c Added method in ReceiveTransactionFragment to generate QR codes encoded using BitShares merchant protocol. 2018-12-06 21:33:40 -06:00
Severiano Jaramillo
dca3e6872d Create ReceiveTransactionFragment layout. 2018-12-06 19:09:36 -06:00
Severiano Jaramillo
e50f4064df - Add memo field to the transfer operation if it exists.
- Create method in SendTransactionFragment that once the DynamicGlobalProperties is received, calls the Grahpenej's NetworkService method to get the required fees for the operation that the user wants to do.
2018-12-06 15:59:47 -06:00
Severiano Jaramillo
00df51e9f9 Create method to initiate the first step required to send a transaction from the wallet, which is building a Graphenej's transaction object and request the DynamicGlobalProperties. 2018-12-06 15:12:38 -06:00
Severiano Jaramillo
53479f8837 - Add a amount verification to the SendTransactionFragment to ensure the user has at least that amount of the selected asset in his account.
- Show the balance of the current selected asset below the asset Spinner.
- Enable the send transaction button only after verifying that both the to account and the amount are both valid.
2018-12-05 21:49:26 -06:00
Severiano Jaramillo
4739e41fce - Added the RxBindings library to be able to use RxJava on Android Widgets.
- Connected the SendTransactionFragment to Graphenej's NetworkService so that it can directly send requests to the nodes.
- Added the RxBus to SendTransactionsFragment so that it can listen to responses from the NetworkService and take the useful ones.
- Added account validation to SendTransactionFragment, if the account typed exists then the Send button is enabled, if not the button is disabled an a error is shown below the typed account.
2018-12-05 18:38:34 -06:00
Severiano Jaramillo
5388e90331 Add methods to remember the currently selected Spinner's Asset and make sure that selection is not lost when the balances table is updated. Make an improvement to the camera feed UI. 2018-12-05 10:10:45 -06:00
Severiano Jaramillo
2aa685d1da - Create AssetsAdapter to populate the Assets Spinner in SendTransactionFragment.
- Use BalanceDetailViewModel to fetch the Balance details from the database and pass them to the AssetsAdapter.
2018-12-04 15:49:22 -06:00
Severiano Jaramillo
fa2c7a07d8 Add camera permission to Manifest to be able to use camera in the app to read QR codes.
- Add methods to SendTransactionFragment to request camera permission and start/stop the camera preview accordingly.
2018-12-04 11:33:58 -06:00
Severiano Jaramillo
95404708a9 Create SendTransactionFragment layout similar to Crystal's 2018-12-03 17:22:21 -06:00
Severiano Jaramillo
75bd1b2e03 Created basic SendTransactionFragment and SendTransactionFragment with their respective layout files. 2018-12-03 15:37:27 -06:00
Severiano Jaramillo
70ebea75b0 Add direction to TransferDetail and use it to display the correct left bar color and direction arrow in the Transactions list.. 2018-12-03 13:51:36 -06:00
Severiano Jaramillo
de75c12197 Created a new TransferDetail model and DAO to create a object composed form the transfers, assets, accounts, and equivalent_values db tables and used such classes to correctly show the accounts involved in transactions in the BalancesFragment. 2018-12-03 13:34:13 -06:00
Severiano Jaramillo
cd2f388894 Created a new BalancesDetail model and DAO to create a object composed form the balances and assets db tables and used such classes to correctly show the balances in the BalancesFragment. 2018-12-02 20:17:31 -06:00
Severiano Jaramillo
5ec8afbdb3 Provide a better package structure for Room database related files. 2018-12-01 09:25:25 -06:00
Severiano Jaramillo
dd770fdb5b - Created Balances adapter and ViewModel to show the Account Balances in the BalancesFragment.
- Simplified the Balances db table.
2018-12-01 08:48:19 -06:00
Severiano Jaramillo
fc98208c30 - Add method to update account balances.
- Create BalancesRepository to handle Balances related db operations.
2018-11-28 21:52:00 -06:00
Severiano Jaramillo
51363bdf00 - Create basic TransactionsAdapter to populate the Transactions RecyclerView in Balances.
- Create basic Transactions items layout.
2018-11-28 20:13:40 -06:00
Severiano Jaramillo
bebffa14ed - Remove no needed code and simplifyy TransfersLoader, also add a CompositeDisposable to keep track of all RxJava subscriptions and be able to dispose them when the class is finished.
- Call the TransfersLoader in MainActivity from a better place.
2018-11-28 18:55:53 -06:00
Severiano Jaramillo
3cbe738fd7 Move deleteAll method from TransferRepository to an async thread, to avoid app crashes for doing db operations in the main thread. 2018-11-28 14:28:18 -06:00
Severiano Jaramillo
d979d366cf Update EULA and change DISAGREE button color to red and AGREE button color to green. 2018-11-28 14:21:43 -06:00
Severiano Jaramillo
d4e96f98e6 - Remove memo_from and memo_to fields from the transfers db table.
- Added method to obtain WIF key from the authorities db table.
- Make use of WIF in TransfersLoader to decrypt memo messages before saving them into the db.
2018-11-28 12:28:38 -06:00
Severiano Jaramillo
61aeca0575 - Extend Authority entity table to also store the authorities in WIF format.
- Make ImportBrainkeyActivity to create and store the WIF format into the database.
2018-11-28 10:19:53 -06:00
Severiano Jaramillo
cec0857113 - Add Room RxJava dependency to be able to use RxJava in Room db queries.
- Use RxJava's Single to make a Room query in TransfersLoader.
2018-11-27 21:42:39 -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
d42050afa1 - Created basic Balances layout with sections to show the account name, a list of Balances and a list of Transactions.
- Created UserAccountViewModel to serve as a bridge between the views and the database, and use it to fetch the current active UserAccount to display it in the BalancesFragment.
2018-11-26 12:26:20 -06:00
Severiano Jaramillo
c77c62fb87 Create a Toolbar menu to MainActivity and add an entry to open the SettingsActivity. 2018-11-24 10:11:30 -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
dfa5df7e83 Create ImportBrainkeyActivity lyout. 2018-11-21 20:53:45 -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
Severiano Jaramillo
fb1d6b89fa Migrate Bitsy to MaterialComponets theme. 2018-11-21 13:13:07 -06:00
Severiano Jaramillo
16a8920ce5 Fix compilation errors. 2018-11-01 18:45:06 -06:00
Severiano Jaramillo
a8ff48b984 Merge branch 'feat_room_db' into develop 2018-11-01 16:21:21 -06:00
Severiano Jaramillo
253bbd0dea We have now verified that both the weight_threshold in UserAccount and weight in UserAccountAuthority are Integers. 2018-11-01 15:53:43 -06:00
Severiano Jaramillo
73afded9bd Add missing DAOs (Data Access Object) to use with the Room database. 2018-11-01 14:57:23 -06:00
Severiano Jaramillo
eed3407b7d Simplify Assets and UserAccounts database tables. 2018-11-01 14:41:10 -06:00
Nelson R. Perez
ff43dcc4f4 Included a brain key model and simple DAO stub 2018-11-01 14:50:18 -05:00
Severiano Jaramillo
1932b27f7e Fix Authority db table schema 2018-11-01 12:52:20 -06:00
Severiano Jaramillo
1c018346ae Create UserAccountAuthority entity to establish a N:N relationship between the UserAccount and Authority entities in the database. Also made some structure improvements to all the Entities and Daos already described. 2018-11-01 11:19:32 -06:00
Severiano Jaramillo
bc180b38f5 Fix manifest 2018-10-31 19:12:09 -06:00
Severiano Jaramillo
b2c355210d Merge branch 'feat_merchants' of github.com:Agorise/bitsy-wallet into feat_merchants 2018-10-31 19:07:54 -06:00
dtvv
aea1fd3302 SendFragment and ReceiveFragment changes 2018-10-31 19:05:03 -06:00
dtvv
4e5ee90605 QR code control 2018-10-31 18:55:12 -06:00
dtvv
14a6a520c9 Convert Constants.java to kotlin 2018-10-31 18:55:12 -06:00
Severiano Jaramillo
da9e0225cc Create Operation, Transfer and Equivalent value Entities for the Room database. 2018-10-31 18:51:41 -06:00
dtvv
a2f696c326 SendFragment and ReceiveFragment changes 2018-10-31 18:46:48 -06:00
dtvv
04191b309d QR code control 2018-10-31 15:25:36 -06:00
dtvv
f4759abc72 Convert Constants.java to kotlin 2018-10-31 15:22:44 -06:00