Commit graph

400 commits

Author SHA1 Message Date
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
bada77f224 Enable proguard minify to reduce size of the release APK. After enabling the minify some warnings did not allow to build the release APK so I disabled the proguard warnings for now but a proper solution has to be found that actually handles the warnings in a proper way. 2018-12-10 17:19:28 -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
5c5bc5c439 Barcode qr library 2018-10-31 18:56:21 -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
d8cd132c88 Barcode qr library 2018-10-31 16:52:53 -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
Severiano Jaramillo
72e39368aa Created Authority entity and AuthoritiyDao to create the Authorities db table with Room 2018-10-31 15:16:22 -06:00
Severiano Jaramillo
e835e7de89 Created UserAccount entity and UserAccountDao to create the UserAccounts db table with Room 2018-10-31 14:51:23 -06:00
Severiano Jaramillo
c0d20e67bd Created Balance entity and BalanceDao to create the Balances db table with Room 2018-10-31 14:40:17 -06:00
Severiano Jaramillo
e7d2719a4d Create BitsyDatabase which extends Room and created Assets Entity and Assets Dao to use in the Room db 2018-10-31 13:44:49 -06:00
Severiano Jaramillo
f04708bde1 Update Kotlin version and add proper Room and Paging libreries. 2018-10-31 10:02:33 -06:00
Severiano Jaramillo
a816098be8 Fix issues with migration to AdroidX and update graphenej library. 2018-10-31 09:46:30 -06:00
Severiano Jaramillo
cb3178f642 Update project to use the new AndroidX libraries. 2018-10-31 08:55:55 -06:00
Severiano Jaramillo
75a4f601c1 Added graphenej as a git submodule and as a module to the app. 2018-10-31 08:27:09 -06:00
dtvv
e562d322d7 Test 2018-10-30 19:56:03 -06:00
Severiano Jaramillo
b0d4c0a930 Create empty SendTransactionActivity and ReceiveTransactionActivity which are called from BalancesFragment 2018-10-30 19:32:06 -06:00
Severiano Jaramillo
63c63fd89f Give better names to buttons in BalancesFragment 2018-10-30 16:22:24 -06:00
Severiano Jaramillo
7e758607ee Merge branch 'master' of github.com:Agorise/bitsy-wallet 2018-10-30 16:21:54 -06:00
Severiano Jaramillo
418c0b4ddd Add content to the BalancesFragment, mostly copied fron the old wallet. 2018-10-30 15:27:20 -06:00
dtvv
30e1be54d2 Merge branch 'master' of https://github.com/Agorise/bitsy-wallet 2018-10-30 14:25:16 -06:00
dtvv
4d3b24e61f room and viewmodels dependencies 2018-10-30 13:55:04 -06:00
Severiano Jaramillo
ad2b22a96c Add day/night theme spinner in SettingsActivity along with a very basic implementation of its behavior. 2018-10-30 13:14:33 -06:00
Severiano Jaramillo
30ae9c36bf Create empty SettingsActivity and an Intent to open it from the Settings icon in the MainActivity bottom status bar. 2018-10-30 12:41:09 -06:00
Severiano Jaramillo
79a0a5fc79 Add MainActivity's bottom status bar that shows app version, current BitShares block number, node connection status and the icon to open the Settings. 2018-10-30 10:04:05 -06:00
Severiano Jaramillo
e5bb27da44 Add basic Balances, Transactions and Merchants Fragments with their own layout and ViewModel. 2018-10-30 09:11:19 -06:00
Severiano Jaramillo
bc9d671656 Improved MainActivity TabLayout by making tabMode=scrollable and adding an animation to the bitshares logo to visually show when the fragment it represents is selected. 2018-10-30 08:18:40 -06:00
Severiano Jaramillo
2ae5656c5c Created MainActivity's Tabs with the first tab having the bitshares logo and the other two their corresponding text names. 2018-10-29 20:30:53 -06:00
Severiano Jaramillo
0155f1f9f8 Create basic MainActivity with Tabs. Change app name to BiTSy and add the bitshares logo as the launcher icon. 2018-10-29 19:59:02 -06:00
Severiano Jaramillo
924cd255a8 Initial commit 2018-10-29 15:49:42 -06:00