- Current item can be seen from a character when clicked on it, you can also see how much time left does that item have on that character.
- Fixed slowdown issue in the items screen. Also fixed this issue in the storage screen as it'd also affect it if there are a lot of characters in the storage.
- Added items store and a way to switch between the store and your items
- Added an items dialog, click on it to see details of the item (description, amount) and use it
- Added items store, it lists all the items available
- Added a MyItems screen
- Added an ItemElement placeholder
- Included database with all the items in the app (not final)
- Also included some demo items
As of now items don't do anything, i'm still making the UI
This will clear the database lock file before closing the application, ensuring that during the second startup the application does not see anything weird with the data. Not closing the database before import can lead to weird behavior.
During export the database will be closed, otherwise the WAL will ruin the export. data will be saved as a .vbhelper file, then the app will be closed to avoid making any changes to the DB
For import, we check if the extension is .vbhelper, otherwise we can corrupt the database, IMPORTANT. Next we delete everything related to RoomDB and we swap it with the new files. Finally the app will be closed to ensure RoomDB is running on the new DB.
Finally, I still have to reintegrate the importApk functionality with the NewSettingsScreenController and get rid of the old one.
- Moved scan button to inside the home screen
- Added items screen
- Scanning functionality updated to work with BEms
- Different home screen layouts depending on the configuration (BE with BEm, BE with DIm, since they don't have the same data, looking at you, special training)
- It is now possible to import BEms
- Character size is now more accurate, (no more big babies)
- Once sent to the watch, characters are deleted from the app, and it shouldn't fail
- Updated domain model to support evolution history.
TODO:
- Reorganize some of the code, mostly SQL queries and reorganize the scan screen functionality
- Create home layout for the VB watch
- Start figuring out reading data from the VB
- Also create VB data domain model
- Also start figuring out writing to the VB (it's 3 steps)
- Block off scan button until secrets are imported
- Start working with the dex
- Update domain model
- Use cfogrady's blank character when not seen
- Cancel character upload in case the app database does not contain the card for it (otherwise, the watch will delete the character)
- Export character data (in case of any app issues or changing phones)
(Also added some more icons)
Woo
- Added ability to write character (incomplete)
- Renamed BottomNavItem.kt to NavigationItems.kt, as it covers the entire application navigation, not just the bottom navigation bar
- Modified the ScanScreenController and the Impl to accomodate writing characters on the BE (need to do the VB later on)
- Modified repositories to fetch data from the database and additional information needed to convert back to NfcCharacter
- Function to convert to NfcCharacter
Originally this was also going to cover the home screen, since my idea was to have marked as active (the one shown in the home screen) be the one sent to the watch, but for testing I have added a "send to bracelet" button on the pop-up on the storage screen.
Add proto plugin and dependencies
Create Secrets Proto
Create Secrets Proto DataStore
Replace old secrets with proto secrets
Fix importers and tests to use new proto secrets.
- Improved upload function to support VB (still to do to add VB)
- Adapted to the latest version of the vb-nfc-reader library
- Added foreign keys with uploaded characters and existing dim database
- Removed the tempoorary objects
- Handled errors uploading (dim not existing for now and VB not supported yet)
- Improved bitmap conversion by moving it to it's own composable
- Also added object to move bitmap data around
- Added DTO to read sprite data and character data simultaneously
Good night!
- Started slowly implementing the original model.
- Names are bitmaps, so we use that.
- Sprites are stored in RoomDB as bitmap.
- Can now import DiMs, need to implement BEms.
- Can also view all the sprites for all the DiMs and now you can view DiMs individually (these two are temporary).
Things to do next
- Use the new model when uploading characters from the watch.
- Figure out why my implementation of ABGR to BGRA isn't working (or something like that)
- Improve data retrieval from the database, maybe using flows and properly implemented view models. As of now the interface is quite flickery.
- Improve code that handles DiMs and BEms.
As for bugs
- Interface sometimes likes flickering a lot, need to figure out why
- I cannot for the life of me create transparent bitmaps... help!
- Something else I might be forgetting...
Going to continue working in this branch.
- From "Battles" to "Battle"
- Added a settings screen, to import keys and cards
- Added a way to access the settings from home
- Get character details
- Adding new mons is working
- database is also working (añlthough we are using a temporary domain model)
- Insertion should be working too
- I used an appcontainer for the dependency injection, maybe this is not the best approach, but I don't really know any other approaches
Known bug:
- When inserting a new mon, you need to reload the app in order for the storage view to refresh correctly, I don't know what happens and why, probably because I did not create a proper ViewModel to accompany the storage part... currently this is very barebones, but it works!