This repo contains the Android Application used in the ScreenLife Capture study. The application allows participants to record and upload screenshots taken every X number of seconds. The general layout of the code is explained below.
-
GPS coordinate logging: When the app is actively recording the screen images, it will also write JSON files of the user's location as <hash>_<datetime>_gps.json.
-
Foreground app info: The app will use the OS process list to find the top application running, and record it to a JSON file, <hash>_<datetime>_foreground.json.
Activity Name | Purpose |
---|---|
RegisterActivity | Handles registration for new users. |
MainActivity | Contains the main interface of the app, allowing participants to start/stop the screen capture. |
DevToolsActivity | Contains tools to tweak how the app works, including the number of images to send per batch, the number of batches to send in parallel etc. |
Service Name | Purpose |
---|---|
CaptureService | Responsible for capturing screenshots and foreground app name every X number of seconds. Runs continously throughout the duration of the study. |
UploadService | Responsible for uploading of screenshots to the cloud functions. Is triggered at certain times by UploadScheduler |
LocationService | Responsible for capturing GPS coordinates every 10 seconds, recording them in JSON files. |
File Name | Purpose |
---|---|
Constants | Contains the constants used throughout the application. |
Batch | Contains a "batch" of files, used by UploadService . |
Encryptor | Used during the encryption process by CaptureService . |
InfoDialog | The dialog that is shown when the "information" button is pressed on the main activity. |
InternetConnection | A set of functions to check if the device is connected to the internet, and through what type of connection (WiFi vs mobile data). |
Logger | Utility functions to save logs to SharedPreferences. |
UploadScheduler | Schedules the UploadService at certain times a day. |
Most app-related constants are located in the Constants
file. The constants are explained below.
Constant Name | Explanation |
---|---|
REGISTER_ADDRESS | The address of the "register" cloud function. |
UPLOAD_ADDRESS | The address of the "upload" cloud function. |
COUNT_ADDRESS | The address of the "count" cloud function. |
BATCH_SIZE_DEFAULT | TODO |
MAX_TO_SEND_DEFAULT | TODO |
MAX_BATCHES_TO_SEND | TODO |
REQ_TIMEOUT | TODO |