Android Daily Overview is an Android application that uses AI to process incoming SMS messages and notifications and display them in a dashboard in a form of a summary and proposed actions for calendar and/or alarms.
The background service is collecting incoming messages and notifications, categorizing and vectorizing them using MobileBERT into an ObjectBox database. The final summary and proposed actions for a user are generated from a dashboard using Gemma-4 E4B model, using LiteRT-LM. This split of competencies helps battery life a lot, not engaging the big brain unless necessary.
-
Ingestion Layer: Captures data from multiple sources:
- Real-time SMS:
SmsReceiver(BroadcastReceiver) intercepts incoming SMS. - Real-time Notifications:
NotificationListener(NotificationListenerService) captures system notifications. - Background SMS Sync:
SmsSyncWorkerperforms a historical scan of SMS on application startup to ensure no missed information.
- Real-time SMS:
-
Processing & Intelligence Layer:
- Categorization: MediaPipe (MobileBERT)
TextClassifierassigns a category (e.g., Finance, Social). - Embedding: MediaPipe (MobileBERT)
TextEmbeddercreates vector embeddings for RAG. - Action Extraction: For actionable candidates (like invoices or appointments), the LiteRT-LM (Gemma-4) engine extracts structured JSON data.
- Retention Assignment: Each message is assigned a
retentionCategorybased on its content (e.g., OTPs areVOLATILE, invoices areACTION_LOCKED).
- Categorization: MediaPipe (MobileBERT)
-
Persistence & Maintenance Layer:
- ObjectBox: Stores
MessageEntityandActionDraftreactive objects. - Data Retention:
CleanupWorkerruns hourly to maintain database health:- Expired Data: Removes messages past their
expiryTimestamp(e.g., 1 hour forVOLATILE). - Resolved Actions: Removes
ACTION_LOCKEDmessages once their corresponding action is confirmed or dismissed.
- Expired Data: Removes messages past their
- ObjectBox: Stores
-
User Interaction Layer:
- Reactive Dashboard: Automatically displays new
ActionDraftentries. - Action Execution:
ActionManageruses system Intents to launch the Calendar or set Alarms, ensuring the user remains in control.
- Reactive Dashboard: Automatically displays new
graph TB
subgraph UI_Layer [UI Layer - Jetpack Compose]
DS[Dashboard Screen]
SS[Settings Screen]
VM[Dashboard ViewModel]
end
subgraph Logic_Layer [Intelligence & Logic]
DI[DataIndexer]
LLM[LlmEngineManager - Gemma-4]
AM[ActionManager]
MP[MediaPipe - MobileBERT]
end
subgraph Service_Layer [Background Services]
NL[NotificationListener]
SR[SmsReceiver]
WM[WorkManager]
SW[SmsSyncWorker]
CW[CleanupWorker]
end
subgraph Data_Layer [Data Layer]
OB[(ObjectBox DB)]
IDS[IntelSettings - DataStore]
end
subgraph Android_OS [Android System]
SMS[SMS Provider]
NOTIF[System Notifications]
CAL[Calendar App]
ALM[Alarm System]
end
%% Ingestion Flow
SR --> DI
NL --> DI
SMS --> SW
SW --> DI
%% Logic Flow
DI --> MP
DI --> LLM
DI --> OB
VM -- Observes --> OB
VM -- Triggers --> AM
%% Maintenance Flow
WM -- Schedules --> SW
WM -- Schedules --> CW
CW -- Queries & Cleans --> OB
%% External Actions
AM -- Intent --> CAL
AM -- Intent --> ALM
IDS -- Configures --> DI
IDS -- Configures --> VM
%% Styles for Subgraphs
style UI_Layer fill:#ffec69,stroke:#333,stroke-width:3px
style Logic_Layer fill:#ffec69,stroke:#333,stroke-width:3px
style Service_Layer fill:#ffec69,stroke:#333,stroke-width:3px
style Data_Layer fill:#ffec69,stroke:#333,stroke-width:3px
style Android_OS fill:#81c240,stroke:#333,stroke-width:3px




