Skip to content

Development

Kyle Corry edited this page Jul 14, 2023 · 3 revisions

Groupable items

Steps to make an item groupable

  1. Create interface for the item, implementing IGroupable
  2. Create a group class for the item, implementing the same interface as the item
  3. Add the parentId to the item's DB entity
  4. Add a DB entity for the groupable class and set up the Dao for it and Dao accessors for the item (get/delete in group)
  5. Add accessor methods to the item's repo for group operations - in addition to normal operations, getGroupsWithParent and getItemsWithParent methods are needed
  6. In the feature's service, set up a GroupLoader, GroupCounter, and GroupDeleter
  7. Create a class which inherits from ISearchableGroupLoader
  8. Add list mappers for the item interface, and group (may need to set up GroupMappers for displayed fields)
  9. Update the item's list to use the interface mappers
  10. Use the searchable group loader class to populate the UI (use GroupListManager, and setup it's onChange, refresh, and up calls)
  11. Add group/item pickers
  12. Add support for creating a group
  13. Add support for moving items between groups
  14. Add support for deleting a group
  15. Add support for renaming a group

Updating the ML model weights for the Cloud Scanner

  1. Extract new categorized cloud images to app/src/androidTest/assets/clouds. Use the lowercase name of each CloudGenus enum as the folder name and place all images of that cloud in the folder. Not supported yet, but use "clear" as the folder name for images without clouds.
  2. Uncomment @Test and run CloudTrainingDataGenerator.generateTrainingData() on an emulator
  3. Run scripts/update-cloud-data.bat
  4. Uncomment @Test and run CloudTrainer.train()
  5. Update the cloud weights in SoftmaxCloudClassifier with src/data/output/weights.txt
Clone this wiki locally