csdcorp / speech_to_text

A Flutter plugin that exposes device specific text to speech recognition capability.
BSD 3-Clause "New" or "Revised" License
387 stars 235 forks source link

Remove references to deprecated v1 Android embedding #545

Closed reidbaker closed 2 months ago

reidbaker commented 3 months ago

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:

Consequences:

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

sowens-csd commented 3 months ago

Thanks for pointing this out, I'd missed it. I'll have a look at removing it now.

reidbaker commented 3 months ago

You didn't miss anything in the original depreciation we told plugin developers to @ignore the deprecration in order to support both v1 and v2 android embedding apps and the api has had very view changes. Thanks for being responsive :)

sowens-csd commented 3 months ago

If the plugin builds and runs on Android in the latest beta branch would that prove the change has been made successfully? So far I've removed the registerWith method and the import statement for registrar and it works on 3.24 as expected.

reidbaker commented 3 months ago

We have not actually landed the pr that removes the classes so building against the beta branch wouldn't catch this issue.

This code search https://github.com/search?q=repo%3Acsdcorp%2Fspeech_to_text+%28%22io.flutter.view.FlutterMain%22+OR+%22io.flutter.view.FlutterNativeView%22+OR+%22io.flutter.view.FlutterView%22+OR+%22io.flutter.embedding.engine.plugins.shim%22+OR+%22io.flutter.app%22+OR+%22PluginRegistry.Registrar%22%29+&type=code looks for the removed classes and it appears after https://github.com/csdcorp/speech_to_text/commit/859feaeb3fcc43db83e46a0c462387690a762915 you have removed the classes I would expect to be impacted.

reidbaker commented 3 months ago

I think this issue is safe to close when you next push to pub but am not closing because I am not sure of your release process or if reporters close issues.

sowens-csd commented 2 months ago

Thanks!

There's a beta now with this change. 7.0.0-beta.1