Closed EchoEllet closed 1 month ago
I'm uncertain if we should not merge this, if we keep super_clipboard
non-optional we will have other issues that prevent developers from using the library or continue using it. Bumping the major version just to solve this issue is not very ideal, we need to introduce more changes so the migration guide will be all at once and packages that depend on flutter_quill
continue to work without an update.
Updating the DefaultClipboardService
to not use quill_native_bridge
by default would require us to introduce a breaking change (that also breaks the current behavior) and would not allow removing super_clipboard
without or with minimal changes.
Since this is a breaking change and it's necessary, I will have to publish it as a new major version 11.0.0
. We should introduce more changes and cleanup before publishing version 11.0.0
.
Description
Moving
super_clipboard
dependency from flutter_quill_extensions to quill_super_clipboard.Minor breaking change
Unfortunately, this is a breaking change, while it doesn't require changes in Dart code, it requires removing the following from
AndroidManifest.xml
if was configured to launch the app:The new default implementation (#2230) uses quill_native_bridge which supports all the features that are used by
flutter_quill
and was made to avoid introducing a breaking change (changing the previous behavior), though I have missed that the required provider inAndroidManifest.xml
is in super_native_extensions, removingsuper_clipboard
also removessuper_native_extensions
and that plugin has the classcom.superlist.super_native_extensions.DataProvider
which doesn't exist anymore, you will be unable to run the app.Migration
Remove the following if used:
A. Using the new default implementation
The android configuration of
super_clipboard
is no longer required.The following snippet should be removed otherwise you will be unable to launch the app:
The error will be encountered when not removing this
```console FATAL EXCEPTION: main Process: com.example.example, PID: 7599 java.lang.RuntimeException: Unable to get provider com.superlist.super_native_extensions.DataProvider: java.lang.ClassNotFoundException: Didn't find class "com.superlist.super_native_extensions.DataProvider" on path: DexPathList[[zip file "/data/app/~~Yk9JiyN7v_IE-XPUxHRzoQ==/com.example.example-2lizZbVWfYqolC9W579Crg==/base.apk"],nativeLibraryDirectories=[/data/app/~~Yk9JiyN7v_IE-XPUxHRzoQ==/com.example.example-2lizZbVWfYqolC9W579Crg==/lib/arm64, /data/app/~~Yk9JiyN7v_IE-XPUxHRzoQ==/com.example.example-2lizZbVWfYqolC9W579Crg==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] at android.app.ActivityThread.installProvider(ActivityThread.java:7770) at android.app.ActivityThread.installContentProviders(ActivityThread.java:7276) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6983) at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2236) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.app.ActivityThread.main(ActivityThread.java:8177) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.superlist.super_native_extensions.DataProvider" on path: DexPathList[[zip file "/data/app/~~Yk9JiyN7v_IE-XPUxHRzoQ==/com.example.example-2lizZbVWfYqolC9W579Crg==/base.apk"],nativeLibraryDirectories=[/data/app/~~Yk9JiyN7v_IE-XPUxHRzoQ==/com.example.example-2lizZbVWfYqolC9W579Crg==/lib/arm64, /data/app/~~Yk9JiyN7v_IE-XPUxHRzoQ==/com.example.example-2lizZbVWfYqolC9W579Crg==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.AppComponentFactory.instantiateProvider(AppComponentFactory.java:147) at androidx.core.app.CoreComponentFactory.instantiateProvider(CoreComponentFactory.java:66) at android.app.ActivityThread.installProvider(ActivityThread.java:7754) at android.app.ActivityThread.installContentProviders(ActivityThread.java:7276) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6983) at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2236) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:294) at android.app.ActivityThread.main(ActivityThread.java:8177) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) ```
See the
quill_native_bridge
platform configuration (optional for copying images on Android).Other Optional changes
minSdkVersion
:ndkVersion
:B. Continue using the
super_clipboard
implementationUse the new default implementation or if you want to continue using
super_clipboard
, use the package quill_super_clipboard (support might be discontinued in future releases).Related Issues
Type of Change