Skip to content

Releases: rafaelsetragni/AndroidAwnCore

Release notes for version 0.11.0

13 Feb 04:34

Choose a tag to compare

Target SDK 36 (Android 16)

This release migrates the library to target Android 16 (API 36), addressing all breaking changes from Android 15 and 16.

Breaking Changes

  • Foreground service type removed from library manifest. The android:foregroundServiceType attribute is no longer declared in the library's AndroidManifest.xml. Consumer apps must declare the foreground service types they use in their own manifest:

    <service
        android:name="me.carda.awesome_notifications.core.services.ForegroundService"
        android:foregroundServiceType="phoneCall|mediaPlayback"
        tools:node="merge" />
  • BIND_NOTIFICATION_LISTENER_SERVICE permission removed. This permission was declared with maxSdkVersion=22 which had no effect since the library's minSdk is 23. Consumer apps needing NotificationListenerService must declare this permission themselves.

New Features

  • 6 new foreground service types added to ForegroundServiceType:

    • health (API 34)
    • remoteMessaging (API 34)
    • shortService (API 34) — ~3 minute timeout
    • specialUse (API 34) — requires FOREGROUND_SERVICE_SPECIAL_USE permission
    • systemExempted (API 34) — reserved for system apps
    • mediaProcessing (API 35) — 6-hour timeout
  • Foreground service timeout handling. ForegroundService now implements onTimeout(int) (API 34, for shortService) and onTimeout(int, int) (API 35, for dataSync/mediaProcessing) to gracefully stop services that exceed their time limits, preventing ANRs and RemoteServiceException.

Improvements

  • Build system updated: AGP 8.1.1 → 8.10.1, Gradle 8.10 → 8.11.1
  • Dependencies updated: appcompat 1.7.1, material 1.13.0, media 1.7.1, room 2.8.4, lifecycle 2.10.0, sqlite 2.6.2, guava 33.5.0, annotation 1.9.1
  • Fixed off-by-one bug in ForegroundServiceType.getSafeEnum() where mediaPlayback and mediaProjection were incorrectly resolved as manifest
  • Migrated annotation imports from javax.annotation and org.checkerframework to androidx.annotation across 17 files
  • Removed conflicting compileSdk 34 inside defaultConfig that shadowed the root-level compileSdkVersion = 36

Notes

  • DND behavior change (Android 15+): setInterruptionFilter() and setNotificationPolicy() now create an implicit AutomaticZenRule instead of directly modifying global DND state. The library's ensureCriticalAlert() method continues to work, but the underlying system behavior has changed.
  • Java source/target compatibility remains at Java 8 for maximum consumer compatibility.

Release Notes for Version 0.10.0

14 Oct 16:20

Choose a tag to compare

Major Updates

  • Android 14 and AGP 8 Support: Upgraded all dependencies and the example app for full compatibility with Android 14 and Android Gradle Plugin 8. This ensures that our app leverages the latest Android features and development tools.

  • Minimum Android SDK to 23: Increased the minimum supported Android version to SDK 23 (Android 6.0 Marshmallow) to utilize advanced security and encryption features, enhancing the app's overall security posture.

Enhancements

  • Improved Error Messaging for SQLite: Enhanced error messaging for SQLite library usage to provide more accurate and helpful diagnostic information, aiding in quicker issue resolution and debugging.

  • MediaPlayer Album Art Resolution Fix: Addressed an issue where album art was displaying at reduced resolution on Android 14 devices. Album artwork now renders clearly and crisply, improving the visual quality of the media player.

Removals

  • Gson Library Removal: Removed the Gson library due to compatibility issues with Android's latest releases and the R8 minification process. Transitioned to a more robust serialization framework that better supports obfuscation and modern Android versions.

Breaking Changes

  • Required Manifest Permissions: Developers must now manually add SCHEDULE_EXACT_ALARM, USE_FULL_SCREEN_INTENT, and WAKE_LOCK permissions to the Android manifest at the app level if these features are needed, in compliance with new Android security policies.
  • End of Support for Older Devices: Devices running Android versions older than 6.0 will no longer be supported to leverage the security and system enhancements in newer Android versions.

Release Notes for Version 0.9.2

15 Mar 22:25

Choose a tag to compare

Enhanced Notification Builder Flexibility:

  • We've improved our notification builder to eliminate the requirement for a summary in the Messaging layout. This means you won't encounter the "User must be valid and have a name" error anymore, making notification setup smoother and more flexible.

Updated Native Dependencies:

  • All our native dependencies are now up-to-date with the latest versions. This update brings with it a host of bug fixes and performance enhancements, ensuring a better, more stable app experience.

Release Notes for Version 0.9.2

15 Mar 22:16

Choose a tag to compare

Enhanced Notification Builder Flexibility:

  • We've improved our notification builder to eliminate the requirement for a summary in the Messaging layout. This means you won't encounter the "User must be valid and have a name" error anymore, making notification setup smoother and more flexible.

Updated Native Dependencies:

  • All our native dependencies are now up-to-date with the latest versions. This update brings with it a host of bug fixes and performance enhancements, ensuring a better, more stable app experience.

Release Notes for Version 0.9.1

12 Jan 03:22

Choose a tag to compare

Release Notes for Version 0.9.1

  • Improved JSON Parsing Flexibility:

    • We've upgraded our JSON parsing methods to allow more flexible type conversions. This enhancement means smoother data handling, especially when dealing with varied JSON structures and values.
  • Refined Progress Property in Notifications:

    • The progress property within notifications has been refined for greater precision. You can now expect a more accurate and granular representation of progress in your notifications, improving clarity and interaction.
  • Null Support in setMediaPlayerLayout:

    • The setMediaPlayerLayout method in NotificationBuilder has been enhanced to support null values. This improvement addresses potential null pointer exceptions, ensuring a more robust and error-resistant notification building process.

Release notes of version 0.9.0

03 Jan 00:10

Choose a tag to compare

  • Localized Notification Content: We have introduced localization key and argument fields in our notifications setup. This allows for the translation of notification content based on local localization files, ensuring users receive messages in their preferred language.
    Enhanced Security with Action Buttons:

  • authentication required: Added an 'authentication required' field to action buttons in notifications. This new feature restricts certain notification actions to authenticated users only, enhancing the security and integrity of user interactions.

Release of version 0.8.3

22 Dec 13:55

Choose a tag to compare

Fixes

  • Event handle modified to support negative values during the lost events recovering process.

Release of version 0.8.2

18 Dec 19:57

Choose a tag to compare

  • Added NotificationPlayState enum to turn it more usable for newbies and more versatile to send via push notifications, if needed.
  • PlayState from map adapted to accept more number types, to be more robust against conversion mistakes from json data to numeric values.
  • Builder methods adapted to use the new enumerator.

Release of version 0.8.1

17 Dec 15:07

Choose a tag to compare

  • Added new playback capabilities to media player notifications, such control play speed and view the duration time in notifications for a more interactive media experience.
  • A heartfelt thank you to @kuyermqi for developing these features.

0.8.0

02 Oct 14:33

Choose a tag to compare

  • version bumped to 0.8.0 to emphasize the necessity of keeping dependencies up to date.