198 Commits

Author SHA1 Message Date
xster
fad9ae8e43
Load FlutterLoader when creating FlutterEngineGroup (#23980) 2021-01-27 13:30:23 -08:00
Lau Ching Jun
424ae67e74
Allow naming shared libraries in deferred component via AndroidManifest (#23925) 2021-01-25 16:34:27 -08:00
Gary Qian
4e87f60eaa
Read loading unit mapping from AndroidManifest instead of strings (#23868) 2021-01-23 23:04:02 -08:00
Lau Ching Jun
ffc77f0da3
Search multiple paths when loading deferred component .so files. (#23849)
This is a partial revert of 7c19824c6d08bb8e3fc4217058178d42d451e26b

On some devices we still need to the original search paths approach
because dlopen with just the base file name doesn't work. We're
combining both approaches now, adding the base filename as the first
entry in the searchPaths.
2021-01-22 09:41:22 -08:00
Lau Ching Jun
7c19824c6d
Pass the filename directly to JNI for loading deferred component. (#23824)
When .so files are in the lib/ path in the APK, it can be dlopen-ed
directly using just the filename. We don't need to search for the file.
The interface has thus been changed to accept a single path instead of a
search directory.

Also instead of hardcoding the .so basename and assets directory, read
them from FlutterApplicationInfo instead.
2021-01-21 16:01:13 -08:00
Greg Spencer
3da13fccf3
Make android more lenient when it comes to out-of-order key event responses (#23604)
Relaxes enforcement of key events being handled in order, to match similar code in the Linux and Windows implementations.
2021-01-21 15:31:21 -08:00
xster
915e2ca178
FlutterEngineGroup for Android (#23675) 2021-01-19 12:29:02 -08:00
Sarbagya Dhaubanjar
fb56b4be2a
Android deeplink sends "path + query" instead of just path (#23561)
* added .cpid & .gclient to gitignore

* updated tests

* minor change

* fixed formating

* compact concatenation

* minor change

* Revert "added .cpid & .gclient to gitignore"

* cleanup
2021-01-12 16:02:08 -08:00
Gary Qian
3f200606c1
Rename DynamicFeature->DeferredComponent and impl uninstall DeferredComponents (#23224) 2021-01-07 21:02:05 -08:00
Dan Field
df27e691b3
Fix SurfaceView usage when status bar is transparent for a11y (#23457) 2021-01-06 11:53:42 -08:00
chunhtai
e682f2aba3
fixes android deeplink to push the path only (#23255) 2021-01-05 11:14:01 -08:00
Gary Qian
1c975f1e7c
AssetResolver updating in AssetManager for Dynamic features (#23130) 2020-12-23 17:39:55 -08:00
Gary Qian
056b8be933
DynamicFeatureChannel MethodChannel and Install state tracking (#22833) 2020-12-14 15:43:56 -08:00
Jason Simmons
bf6dc49c14
Move the WindowInsetsAnimation.Callback implementation to an inner class to avoid Android class loader warnings (#22916) 2020-12-08 12:38:02 -08:00
ftsui
a26e80c931
Allow the root layout to be overriden. (#22887)
a
2020-12-07 14:15:45 -08:00
xster
6ab050b861
Handle null platform plugin delegate for v1 embedding (#22853) 2020-12-03 16:38:03 -08:00
Greg Spencer
78b567f7d5
Reland: "Fix race condition in key event handling on Android (#22658)" (#22834) 2020-12-03 08:53:02 -08:00
Greg Spencer
6c8342f76a
Revert "Fix race condition in key event handling on Android (#22658)" (#22823)
This reverts commit 40fa345 (#22658) because it breaks some Google tests. Will investigate and re-land.
2020-12-02 12:03:48 -08:00
Greg Spencer
40fa345c02
Fix race condition in key event handling on Android (#22658)
This fixes a problem in Android key event handling where, because I was only using a single bool to indicate that we were re-dispatching, there was a race condition when multiple keys were pending (sent to the framework, awaiting responses).

This fixes that by switching to a mechanism that uses the event itself to tell if it was redispatched.

In doing this, I realized that because key events can come from either the dispatchEvent call, or through the InputConnectionAdaptor, I needed to handle both routes properly so that the events would all be handled, and all go through the same mechanism on the framework side.
2020-12-01 09:42:38 -08:00
xster
a35e3fe4a3
Let FlutterFragment not pop the whole activity by default when more fragments are in the activity (#22692) 2020-11-30 12:43:03 -08:00
Greg Spencer
b4d4e30c0a
Fix double delete on backspace on Android (#22626) 2020-11-20 10:43:02 -08:00
Gary Qian
53fc019aab
Split AOT Android Embedder and shell (#22179) 2020-11-19 17:22:26 -08:00
Gary Qian
139fc64129
Rename padding->viewPadding to match framework naming conventions (#22599) 2020-11-19 09:50:51 -08:00
Hamdi Kahloun
0ce1137b73
[Android] Add systemNavigationBarDividerColor (#22538) 2020-11-16 10:48:02 -08:00
Hamdi Kahloun
fae92ed574 Revert "Update PlatformPluginTest.java & PlatformPlugin.java"
This reverts commit 85bfc4c5de0c4fa10b5bad6d51213cdbebb7db24.
2020-11-16 16:53:30 +01:00
Hamdi Kahloun
85bfc4c5de Update PlatformPluginTest.java & PlatformPlugin.java 2020-11-16 16:28:03 +01:00
Ari Weiland
ccbc2e6cf1
Fix some serious lifecycle bugs with Android embedding code (#22203) 2020-11-13 11:58:02 -08:00
Dan Field
d07368169e
Limit heap growth on Android (#20473)
Limit heap growth to half of totalMem by default, with the option to set it higher or lower in the AndroidManifest
2020-11-12 14:53:54 -08:00
LongCatIsLooong
778eb844d4
[Android text input] Reland #21534 (#22435) 2020-11-12 11:34:01 -08:00
Emmanuel Garcia
091b6cc5b4
Fix talkback in hybrid composition while using FlutterFragmentActivity (#22429) 2020-11-12 10:30:29 -08:00
LongCatIsLooong
23b6310c52
Revert "[Android Text Input] Make the editing state listenable and allow batch edits (#21534)" (#22434) 2020-11-11 18:24:02 -08:00
chunhtai
d97a81c889
reland support uri launch in android (#22363)
* Revert "Revert "support uri intent launcher in android (#21275)" (#22298)"

This reverts commit f61cbc05f01ffb5dbda6a9c20eb0feda524774ab.

* reland support uri launch for android

* refactor

* update

* fix test

* addressing comments

* addressing comments

* revert throw error
2020-11-11 14:51:04 -08:00
LongCatIsLooong
81f219c59c
[Android Text Input] Make the editing state listenable and allow batch edits (#21534) 2020-11-10 19:19:03 -08:00
Greg Spencer
13a624ac31
Use dispatchKeyEvent, and handle keys sent to InputConnection.sendKeyEvent on Android (#22340)
This (mostly) re-lands #21163, which was reverted in #22321

This switches from using onKeyDown to using dispatchKeyEvent on Android so that keys can be intercepted handled by the framework and not continue to be dispatched to other controls.

It also now intercepts key events sent to InputConnection.sendKeyEvent, as some IMEs do (e.g. the Hacker's Keyboard), and sends them to Flutter.

This fixes the problem where (for example) pressing TAB on a hardware keyboard sends the tab to both the text field and to the focus traversal system.

Note that we still can't intercept all keystrokes given to a soft keyboard, only those which the soft keyboard decides to send to InputConnection.sendKeyEvent, and system keys (like the back button) are only received if the IME doesn't eat them.
2020-11-06 12:45:47 -08:00
Greg Spencer
5d481fb9c1
Revert "Reland: Use dispatchKeyEventPreIme, and handle keys sent to InputConnection.sendKeyEvent on Android (#22304)" (#22321)
This reverts commit 7a8057bd728772d5b7ff2451301d6c095d6bda1b because it breaks back button functionality.
2020-11-05 09:02:25 -08:00
Greg Spencer
7a8057bd72
Reland: Use dispatchKeyEventPreIme, and handle keys sent to InputConnection.sendKeyEvent on Android (#22304)
This re-lands #21163, which was reverted in #22004

Now that flutter/flutter#67359 has landed, this change will no longer cause spaces (and other shortcuts) to be ignored in text fields if there is no action associated with the intent, even if there is a shortcut key mapping to an intent.

It also no longer causes web test failures (as far as I can tell without submitting it: the same tests don't fail locally).

Here's the original PR description:

This switches from using dispatchKeyEvent to using dispatchKeyEventPreIme so that keys can be intercepted before they reach the IME and be handled by the framework.

It also now intercepts key events sent to InputConnection.sendKeyEvent, as some IMEs do (e.g. the Hacker's Keyboard), and sends the to Flutter before sending them to the IME (which it now only does if they are not handled by the framework).

This fixes the problem where pressing TAB on a hardware keyboard sends the tab to both the text field and to the focus traversal system.

Note that we still can't intercept all keystrokes given to a soft keyboard, only those which the soft keyboard decides to send to InputConnection.sendKeyEvent.
2020-11-04 15:54:21 -08:00
chunhtai
f61cbc05f0
Revert "support uri intent launcher in android (#21275)" (#22298) 2020-11-04 15:04:02 -08:00
chunhtai
9b4bb20ac9
makes android semanticsnode to ignore hittest if it is not focusable (#22205) 2020-11-02 09:53:01 -08:00
Lazy Llama
7d6180c301
Fix viewInset.bottom and viewPadding.bottom… (#21730) 2020-10-29 17:28:01 -07:00
Jason Simmons
5677d3dea5
Reformat some files that were not auto-formatted (#21940) 2020-10-23 18:57:03 -07:00
chunhtai
742dfbefad
support uri intent launcher in android (#21275)
* support uri intent launcher in android

* fix comment
2020-10-22 15:54:30 -07:00
Lau Ching Jun
3d27fd5b2c
Support loading assets from Android dynamic feature modules (#21504)
Initialize the AssetManager from the application context so that assets from dynamic feature modules can be loaded.
2020-10-22 15:53:11 -07:00
chunhtai
aed8e019be
Fixes Edge trigger route change announcement (#21975) 2020-10-22 14:22:03 -07:00
Greg Spencer
3658bd7ea7
Revert "Reland: Use dispatchKeyEventPreIme, and handle keys sent to InputConnection.sendKeyEvent on Android (#21979)" (#22004)
This reverts commit 3cd70f2cfb21baf30cc62de29d311118aa757c60 because it causes some failures in web tests.
2020-10-20 11:42:01 -07:00
Greg Spencer
3cd70f2cfb
Reland: Use dispatchKeyEventPreIme, and handle keys sent to InputConnection.sendKeyEvent on Android (#21979)
This re-lands #21163, which was reverted in #21513

Now that flutter/flutter#67359 has landed, this change will no longer cause spaces (and other shortcuts) to be ignored in text fields if there is no action associated with the intent, even if there is a shortcut key mapping to an intent.

Here's the original PR description:

This switches from using dispatchKeyEvent to using dispatchKeyEventPreIme so that keys can be intercepted before they reach the IME and be handled by the framework.

It also now intercepts key events sent to InputConnection.sendKeyEvent, as some IMEs do (e.g. the Hacker's Keyboard), and sends the to Flutter before sending them to the IME (which it now only does if they are not handled by the framework).

This fixes the problem where pressing TAB on a hardware keyboard sends the tab to both the text field and to the focus traversal system.

Note that we still can't intercept all keystrokes given to a soft keyboard, only those which the soft keyboard decides to send to InputConnection.sendKeyEvent.
2020-10-20 10:14:31 -07:00
Mehmet Fidanboylu
abdc8d3853
Forward Error objects to uncaught exception handler if there is one. (#21806) 2020-10-16 08:21:04 -07:00
Jason Simmons
2e3f1326d2
Call PlatformView.dispose when removing hybrid composition platform views (#21790)
Also force disposal of all hybrid platform views when shutting down the
engine.

Fixes https://github.com/flutter/flutter/issues/66764
2020-10-13 18:40:55 -07:00
Emmanuel Garcia
9981026173
Allow TalkBack navigation while a platform view is rendered (#21719) 2020-10-13 17:52:02 -07:00
Hamdi Kahloun
b2ace0cccb
SecurityException: Permission Denial (#21290)
Fix `java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider`

Fixes flutter/flutter#66108

Co-authored-by: Dan Field <dfield@gmail.com>
2020-10-08 14:36:51 -07:00
Jason Simmons
88fd4cea43
Extract the WindowInsetsAnimation.Callback subclass into a separate class that will be lazily loaded (#21548)
WindowInsetsAnimation.Callback was introduced in API level 30.  This
PR moves the text input plugin's WindowInsetsAnimation.Callback subclass
into a class that will only be loaded if the embedding has checked for a
sufficient API level.

See https://github.com/flutter/flutter/issues/66908
2020-10-02 11:23:42 -07:00