How lozalien/frozenassets works
Frozen Assets is an offline Android freezer-inventory app. Users browse items by urgency, category, or all-items view; add or edit item details (including freeze date, tags, quantity, and weight); and manage inventory through search, sorting, and bulk deletion. Category-based storage guidance supports expiration-date calculation, while settings provide import/export. The sampled code confirms the MVVM and Room persistence path, expiration calculation, tag access, and file-selection flow; several screen-to-data links for documented features are based on the README and repository structure.
Main entry points: InventoryViewModel.java Inventory ViewModel · InventoryRepository.java Inventory repository · SettingsActivity.java Data settings · AddItemActivity.java Add / edit
Components 18
Inventory screens
- Main screen
FrozenAssets/app/src/main/java/com/frozenassets/app/activities/MainActivity.java - All items
FrozenAssets/app/src/main/java/com/frozenassets/app/activities/AllItemsActivity.java - Category view
FrozenAssets/app/src/main/java/com/frozenassets/app/activities/CategoryActivity.java - Eat soon
FrozenAssets/app/src/main/java/com/frozenassets/app/activities/EatSoonActivity.java - Add / edit
FrozenAssets/app/src/main/java/com/frozenassets/app/activities/AddItemActivity.java - Item detail
FrozenAssets/app/src/main/java/com/frozenassets/app/activities/ItemDetailActivity.java - Data settings
FrozenAssets/app/src/main/java/com/frozenassets/app/activities/SettingsActivity.java - Inventory list
FrozenAssets/app/src/main/java/com/frozenassets/app/adapters/InventoryAdapter.java
Application logic
- Inventory ViewModel
FrozenAssets/app/src/main/java/com/frozenassets/app/ViewModels/InventoryViewModel.java - Expiration threshold
FrozenAssets/app/src/main/java/com/frozenassets/app/utils/DateUtils.java
Inventory data
- Inventory repository
FrozenAssets/app/src/main/java/com/frozenassets/app/repositories/InventoryRepository.java - Category durations
FrozenAssets/app/src/main/java/com/frozenassets/app/models/FoodCategory.java - Inventory item
FrozenAssets/app/src/main/java/com/frozenassets/app/models/InventoryItem.java - Inventory DAO
FrozenAssets/app/src/main/java/com/frozenassets/app/database/InventoryDao.java - Room database
FrozenAssets/app/src/main/java/com/frozenassets/app/database/InventoryDatabase.java
Platform integration
- Android document picker
- Selected import / export file
Other components
- User
Connections 26
- User → Main screen: opens
- User → All items: browses
- User → Category view: selects category
- User → Eat soon: checks urgency
- User → Add / edit: enters item
- User → Data settings: manages data
- Main screen → Inventory ViewModel: requests inventory
- All items → Inventory ViewModel: queries / deletes
- Category view → Inventory ViewModel: queries category
- Eat soon → Inventory ViewModel: queries expiring
- Add / edit → Inventory ViewModel: saves item
- Item detail → Inventory ViewModel: loads / updates
- Data settings → Inventory ViewModel: reads / imports
- Data settings → Android document picker: opens picker
- Android document picker → Selected import / export file: selects file
- Data settings → Selected import / export file: imports / exports
- Inventory ViewModel → Inventory repository: delegates operations
- Inventory repository → Inventory DAO: queries / mutates
- Inventory repository → Expiration threshold: gets threshold
- Inventory repository → Category durations: calculates duration
- Inventory repository → Inventory item: sets expiration
- Inventory DAO → Room database: executes queries
- Room database → Inventory item: stores rows
- Inventory ViewModel → Inventory list: publishes list data
- Inventory list → User: displays inventory
- Add / edit → Room database: reads / writes tags