Skip to content

Commit b5b66b2

Browse files
Merge branch 'development'
2 parents a2db4d6 + d6602a2 commit b5b66b2

File tree

23 files changed

+224
-151
lines changed

23 files changed

+224
-151
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
## [0.11.0] - 2025-02-12
2+
### Added
3+
- **6 new foreground service types:** Added `health`, `remoteMessaging`, `shortService`, `specialUse`, `systemExempted` (API 34) and `mediaProcessing` (API 35) to `ForegroundServiceType`.
4+
- **Foreground service timeout handling:** `ForegroundService` now implements `onTimeout(int)` (API 34) and `onTimeout(int, int)` (API 35) to gracefully stop services that exceed their time limits, preventing ANRs and `RemoteServiceException`.
5+
### Fixed
6+
- **Off-by-one bug in `ForegroundServiceType.getSafeEnum()`:** Fixed character matching where `mediaPlayback` and `mediaProjection` were incorrectly resolved as `manifest`.
7+
- **Conflicting `compileSdk 34`:** Removed duplicate `compileSdk` inside `defaultConfig` that shadowed the root-level `compileSdkVersion = 36`.
8+
- **Migrated annotation imports:** Replaced `javax.annotation` and `org.checkerframework` with `androidx.annotation` across 17 files to fix missing imports after dependency updates.
9+
### Breaking changes
10+
- **iOS minimum deployment target raised to 15.0:** The minimum iOS deployment target has been increased from iOS 12 to iOS 15. This change is required to support newer iOS APIs and aligns with Apple's current compatibility standards.
11+
- **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.
12+
- **`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.
13+
- **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).
14+
115
## [0.10.1] - 2025-02-19
216
### Fixed
317
- **Updated Android native library to fully support Flutter 3.27:** Removed deprecated Flutter V1 libraries on Android, ensuring compatibility with Flutter 3.27.

CONTRIBUTING.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Contributing to awesome_notifications
2+
3+
Thanks for helping make `awesome_notifications` better! We welcome pull requests for bug fixes, new features, docs, and examples. Please keep contributions aligned with the current architecture and prefer additive, backwards-compatible changes.
4+
5+
Key guidelines:
6+
1. Keep platform-specific code inside the respective native folders (`android/`, `ios/`).
7+
2. Add/adjust tests alongside code changes; ensure `flutter test` passes.
8+
3. Follow [Effective Dart docs](https://dart.dev/guides/language/effective-dart/documentation) for public API comments.
9+
4. Prefer small, focused PRs with clear rationale.
10+
11+
## Environment setup
12+
13+
```
14+
flutter pub get
15+
```
16+
17+
For running the example app:
18+
19+
```
20+
cd example
21+
flutter pub get
22+
flutter run
23+
```
24+
25+
On iOS, run `pod install` inside the `example/ios/` folder to sync native dependencies.
26+
27+
## Branch strategy
28+
29+
- `master`: ***release-only***; tracks published, stable versions. Do not open PRs against `master`.
30+
- `development`: active work and integration branch. **All pull requests must target `development`**. PRs aimed at `master` will be rejected.
31+
32+
## Tests
33+
34+
- Run `flutter test` from the project root.
35+
- Keep build and analysis clean; run `flutter analyze` before submitting.
36+
37+
## Issues
38+
39+
File bugs and feature requests in this repository. Include steps to reproduce, expected vs actual behavior, and environment details (Flutter/Dart versions, Android API level, iOS version). PRs are appreciated for well-scoped fixes and improvements.

README.md

Lines changed: 39 additions & 24 deletions
Large diffs are not rendered by default.

android/.idea/gradle.xml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

android/.idea/misc.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

android/build.gradle

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
group 'me.carda.awesome_notifications'
2-
version '0.10.0'
2+
version '0.11.0'
33

44
buildscript {
55
repositories {
@@ -9,7 +9,7 @@ buildscript {
99
}
1010

1111
dependencies {
12-
classpath 'com.android.tools.build:gradle:8.1.1'
12+
classpath 'com.android.tools.build:gradle:8.1.4'
1313
}
1414
}
1515

@@ -27,7 +27,7 @@ android {
2727
if (project.android.hasProperty('namespace')) {
2828
namespace 'me.carda.awesome_notifications'
2929
}
30-
compileSdkVersion 34
30+
compileSdkVersion 36
3131

3232
compileOptions {
3333
sourceCompatibility JavaVersion.VERSION_1_8
@@ -36,29 +36,29 @@ android {
3636

3737
defaultConfig {
3838
minSdkVersion 23
39-
targetSdk 34
39+
targetSdk 36
4040
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
4141
consumerProguardFiles "consumer-rules.pro"
4242
}
4343
}
4444

4545
dependencies {
4646
// implementation project(':awn_core')
47-
implementation 'me.carda:AndroidAwnCore:0.10.0'
47+
implementation 'me.carda:AndroidAwnCore:0.11.0'
4848

49-
implementation 'com.google.guava:guava:32.1.3-android'
49+
implementation 'com.google.guava:guava:33.5.0-android'
5050

5151
// Required for instrumented tests
5252
testImplementation 'junit:junit:4.13.2'
5353
testImplementation 'androidx.arch.core:core-testing:2.2.0'
54-
testImplementation 'org.mockito:mockito-core:5.3.1'
54+
testImplementation 'org.mockito:mockito-core:5.21.0'
5555
testImplementation 'org.mockito:mockito-inline:5.2.0'
5656

57-
androidTestImplementation 'androidx.annotation:annotation:1.8.2'
58-
androidTestImplementation 'org.mockito:mockito-core:5.3.1'
57+
androidTestImplementation 'androidx.annotation:annotation:1.9.1'
58+
androidTestImplementation 'org.mockito:mockito-core:5.21.0'
5959
androidTestImplementation 'org.mockito:mockito-inline:5.2.0'
60-
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
61-
androidTestImplementation 'androidx.test:runner:1.6.2'
62-
androidTestImplementation 'androidx.test:core:1.6.1'
63-
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
60+
androidTestImplementation 'androidx.test.ext:junit:1.3.0'
61+
androidTestImplementation 'androidx.test:runner:1.7.0'
62+
androidTestImplementation 'androidx.test:core:1.7.0'
63+
androidTestImplementation 'androidx.test.ext:junit:1.3.0'
6464
}

example/android/app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77

88
android {
99
namespace 'me.carda.awesome_notifications_example'
10-
compileSdk = 34 //flutter.compileSdkVersion
10+
compileSdk = 36 //flutter.compileSdkVersion
1111
ndkVersion = flutter.ndkVersion
1212

1313
compileOptions {
@@ -24,8 +24,8 @@ android {
2424
applicationId "me.carda.awesome_notifications_example"
2525
// You can update the following values to match your application needs.
2626
// For more information, see: https://flutter.dev/to/review-gradle-config.
27-
minSdk = 23 //flutter.minSdkVersion
28-
targetSdk = 34 //flutter.targetSdkVersion
27+
minSdkVersion = flutter.minSdkVersion //flutter.minSdkVersion
28+
targetSdk = 36 //flutter.targetSdkVersion
2929
versionCode = flutter.versionCode
3030
versionName = flutter.versionName
3131
}

example/android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip

example/android/settings.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ pluginManagement {
1818

1919
plugins {
2020
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
21-
id "com.android.application" version '8.1.1' apply false
22-
id "com.android.library" version '8.1.1' apply false
23-
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
21+
id "com.android.application" version '8.11.1' apply false
22+
id "com.android.library" version '8.11.1' apply false
23+
id "org.jetbrains.kotlin.android" version "2.1.0" apply false
2424
}
2525

2626
include ":app"

example/ios/Flutter/AppFrameworkInfo.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@
2121
<key>CFBundleVersion</key>
2222
<string>1.0</string>
2323
<key>MinimumOSVersion</key>
24-
<string>12.0</string>
24+
<string>13.0</string>
2525
</dict>
2626
</plist>

0 commit comments

Comments
 (0)