Push Notifications

Push Module Prerequisites & Dependencies

Before integrating the Indigitall Push SDK module into your Android application, please ensure your project meets the following specific environmental and library requirements.

1. Environment & Compatibility

  • Minimum Android SDK (minSdkVersion): API level 21 (Android 5.0 Lollipop) or higher.
  • Target Android SDK (targetSdkVersion): API level 35 (Android 15).
  • Java Version: Java 17 is strictly required to compile and run this module.
  • Kotlin Version: Fully compatible with Kotlin 2.1.0 or higher.
  • AndroidX: Your project must be migrated to AndroidX (Jetpack).

Note on Java 17: Due to the advanced toolchain configuration used in this module, compilation will fail if your Android project targets a lower version (such as Java 11 or Java 8). Please make sure to update the compileOptions and kotlinOptions blocks in your application's build script.

2. Core Dependencies

The Push module relies on the following stable libraries to handle background processing, message delivery, token management, and location features. If your application already implements these, please verify that there are no major version conflicts:

  • Google Firebase Messaging: v23.3.1 (Mandatory for handling and receiving Push Notification payloads)
  • AndroidX WorkManager (work-runtime-ktx): v2.9.0 (Required for robust, background task processing and scheduling syncs)
  • Google Play Services Location: v21.3.0 (Required for geolocated notifications and geofencing triggers)
  • AndroidX AppCompat: v1.2.0 (Required for native notification styling and core compatibility)
  • KotlinX Coroutines Play Services: v1.8.1 (Ensures smooth asynchronous integration with Google Play Services tasks)

3. Required Internal Modules

The Push module interacts with several core parts of the Indigitall ecosystem. Including this module will automatically pull or require the following internal modules to be available:

  • Commons Module (:commons): Provides the base infrastructure, network requests layer, and local data persistence.
  • Customer Module (:customer): Allows mapping Push tokens to specific user profiles and custom user attributes.
  • Inbox Module (:inbox): Manages local storage and native retrieval of notification history.
  • LiveActivity Module (:liveactivity): Integrates real-time background tracking updates and live status notifications.