Yuwen Lu, Meng Chen, Qi Zhao, Victor Cox, Yang Yang, Meng Jiang, Jay Brockman, Tamara Kay, Toby Jia-Jun Li
Proceedings of the 2026 ACM Conference on Human Factors in Computing Systems (CHI 2026)
We have a local android database using SQLite, and a firebase remote database
They are synced every hour, to ensure consistency
When uploading to firebase failed due to connectivity issues, we queue the upload operation until network connection gets established again. (Link to pieces of code)
When removing collectors, we do not really remove them from database to avoid data loss. Instead, we set their collectorStatus as “deleted” both locally and in firebase. All associated information (datafields and data) will not be queried if the associated collector’s status is deleted, or expired. View code in FirebaseCommunicationManager.java
Ranking algorithm and the use of LLM
In CollectorConfigurationDialogWrapper.java, we are maintaining a state called currentScreenState.
If you are using Android Studio, you need to install HAXM installer to launch the project.
No usage of onDataLoadingEvent() in ui/main_activity/HomeFragment.java