Skip to content

Latest commit

 

History

History
40 lines (33 loc) · 2.23 KB

File metadata and controls

40 lines (33 loc) · 2.23 KB

NotificationReader Project Overview

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.

Core Technologies

  • Language: Kotlin
  • UI Framework: Jetpack Compose
  • Networking: OkHttp
  • Android Components: NotificationListenerService, Foreground Service
  • Dependency Management: Gradle with Version Catalogs (libs.versions.toml)

Architecture

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).

Key Functionalities

  • Notification Monitoring: Specifically targets financial apps.
  • Transaction Filtering: Keyword-based filtering encapsulated in NotificationProcessor.
  • Security: API URL is managed via local.properties and injected through BuildConfig.
  • Deduplication: Debounce mechanism handled by NotificationProcessor.

Building and Running

Prerequisites

  • Android Studio Ladybug or newer.
  • Android SDK 36 (Compile SDK) / 24+ (Min SDK).
  • Configuration: You must create a local.properties file in the root directory and add API_URL=your_api_endpoint_here.

Key Files

  • 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.