NotificationReader is an Android application designed to monitor bank and payment notifications, filtering for transaction-related events and forwarding the data to a centralized API. It is built using modern Android development practices, including Kotlin and Jetpack Compose.
- Language: Kotlin
- UI Framework: Jetpack Compose
- Networking: OkHttp
- Android Components:
NotificationListenerService,Foreground Service - Dependency Management: Gradle with Version Catalogs (
libs.versions.toml)
The project follows a modularized package structure to separate concerns:
com.example.notificationreader: Main entry points.MainActivity.kt: Entry point and permission handling.NotificationReaderService.kt: Background service bridge for notification events.
model: Data classes (e.g.,NotificationPayload).network: API communication logic (ApiClient).service: Business logic for notification processing (NotificationProcessor).ui: Jetpack Compose screens and components.utils: Device-specific hacks and utility functions (Xiaomi, Battery, Service status).
- Notification Monitoring: Specifically targets financial apps.
- Transaction Filtering: Keyword-based filtering encapsulated in
NotificationProcessor. - Security: API URL is managed via
local.propertiesand injected throughBuildConfig. - Deduplication: Debounce mechanism handled by
NotificationProcessor.
- Android Studio Ladybug or newer.
- Android SDK 36 (Compile SDK) / 24+ (Min SDK).
- Configuration: You must create a
local.propertiesfile in the root directory and addAPI_URL=your_api_endpoint_here.
app/src/main/java/com/example/notificationreader/NotificationReaderService.kt: Listens for OS events.app/src/main/java/com/example/notificationreader/service/NotificationProcessor.kt: Processes and filters notifications.app/src/main/java/com/example/notificationreader/network/ApiClient.kt: Handles API POST requests.app/src/main/java/com/example/notificationreader/ui/MainScreen.kt: Main UI dashboard.