OneSignal / OneSignal-Flutter-SDK

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your flutter app with OneSignal
https://www.onesignal.com
Other
621 stars 212 forks source link

[Bug]: Remove references to deprecated v1 Android embedding #928

Open reidbaker opened 3 months ago

reidbaker commented 3 months ago

What happened?

N/A

Steps to reproduce?

Remove references to deprecated v1 Android embedding 

To ensure this plugin will work with users running the next stable version of Flutter remove references to the v1 embedding.

The v1 embedding was deprecated around 6 and a half years ago. In Flutter 3.22, the Flutter tool dropped support for building v1 apps entirely. Flutter plans to delete version one of it's Android embedding in the next stable release, per https://medium.com/flutter/whats-new-in-flutter-3-22-fbde6c164fe3 (in the "Removal of v1 Android embedding" section). 

When that deletion happens, any apps using plugins that still have references to the removed classes will fail to build when updating to the next stable version (probably Flutter `3.26`). 

As a part of this deprecation, the Flutter Android team is doing community outreach by filing bugs and submitting some pull requests to update plugins to minimize the impact this removal has on the community. 

#### Some example PRs:
- Flutter team maintained plugins: https://github.com/flutter/packages/pull/6494
- `android_alarm_manager_plus` https://github.com/fluttercommunity/plus_plugins/pull/2864 

#### Consequences:
- This change should have no impact on users of this plugin that are building apps using the v2 embedding (we don't have a percentage to share, but this is the vast majority of users). 
- It will remove support for users that are still using the v1 embedding on versions of Flutter older than `3.22`.

If this change doesn't land, this plugin will instead be broken for all apps building on the next stable version of Flutter and beyond.

#### Is there a way to support both v1 and v2 embedding apps in the next stable version of Flutter?
No.

This is the PR where we are removing the deprecated engine classes: https://github.com/flutter/engine/pull/52022

What did you expect to happen?

N/A

OneSignal Flutter SDK version

5.2.2

Which platform(s) are affected?

Relevant log output

No response

Code of Conduct

nan-li commented 3 months ago

Hi @reidbaker thank you for reaching out.

We will investigate and work on any updates needed in this SDK.

reidbaker commented 2 weeks ago

https://github.com/flutter/engine/pull/52022 has been merged. Users targeting Flutter master and beta/stable releases after (but not including) 3.27 will fail to compile if the plugin has references any v1 embedding classes.

To aid in identifying these classes here is a search query you can run in github on your repo.

("io.flutter.view.FlutterMain" OR "io.flutter.view.FlutterNativeView" OR "io.flutter.view.FlutterView" OR "io.flutter.embedding.engine.plugins.shim" OR "io.flutter.app" OR "PluginRegistry.Registrar")

yaakovschectman commented 1 week ago

Your license precludes us from contributing a PR to remove v1 embedding references. If you want this package to continue working past the current stable release, please remove those references yourself. Alternatively, if you would like to update your license to an unmodified MIT License, we would be able to submit a PR.