849 Commits

Author SHA1 Message Date
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
Chris Yang
5db07805d4
Enable clipRRect for android platform view hybrid composition (#21817) 2020-12-08 09:13:02 -08:00
ftsui
a26e80c931
Allow the root layout to be overriden. (#22887)
a
2020-12-07 14:15:45 -08:00
Chris Bracken
14a6fd97ca
Fix NPE when platform plugin delegate is null (#22852)
Adds a null check before dereferencing in
PlatformPlugin.popSystemNavigator. platformPluginDelegate is allowed to
be null, as it is in the PlatformPlugin(Activity, PlatformChannel)
constructor.
2020-12-03 15:22:34 -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
Gary Qian
fcbfa9f527
Split AOT Engine Runtime (#22624) 2020-12-02 13:28:01 -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
Gary Qian
a4ce848dfb
Add FlutterPlayStoreSplitApplication for simpler opt in to Split AOT (#22752) 2020-11-30 19:27:44 -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
Jason Simmons
1c2a6bd0a7
Fix the unchecked conversion warning for searchPaths in PlayStoreDynamicFeatureManager (#22654)
Also use the diamond operator throughout this class.
2020-11-30 12:23:09 -08:00
Gary Qian
c0b08e8e06
Fix java warnings for unchecked conversions in PlayStoreDynamicFeatureManager (#22628) 2020-11-20 13:37:26 -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
Ari Weiland
a0da844845
Update the tag for FlutterEngineConnectionRegistry to be 23 characters. (#22610) 2020-11-19 12:06:56 -08:00
Emmanuel Garcia
f7383c4350
Replace support libraries for AndroidX (#22598) 2020-11-19 10:08:02 -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
xster
d642a939c3
move deprecation from the PluginRegistry outer interface to inner, v1-specific fields (#22345) 2020-11-09 13:57:06 -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
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
Greg Spencer
6bc70e4a11
Reland: Migration to PlatformDispatcher and multi-window (#21932)
This re-lands #20496 and #21780 after fixing the semantics-enabling code that was causing the post-submit web_smoke_test to fail.

Below is the description from the original PR:

This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.

The design doc for this change is here.

The major changes in this PR:

Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:

Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.

The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
2020-10-22 14:54:25 -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
c7e5d546f2
Prevent a race between SurfaceTexture.release and updateTexImage (#21777) 2020-10-14 15:02:02 -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
Yuqian Li
c2938d06b1
Revert "Migration to PlatformDispatcher and multi-window #20496" (#21792)
* Revert "Fix documentation build for window changes. (#21780)"

This reverts commit 931a04683d6eb49fc92059b2384ac5b1618d5422.

* Revert "Migration to PlatformDispatcher and multi-window (#20496)"

This reverts commit 85b0031f73544e448354047dc6a236c0b0808252.
2020-10-12 19:26:41 -07:00
Greg Spencer
85b0031f73
Migration to PlatformDispatcher and multi-window (#20496)
This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.

The design doc for this change is here.

The major changes in this PR:

Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:

Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.

The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
2020-10-09 16:29:16 -07:00
Dan Field
48687ca3ca
Forbid android.util.Log (#21696) 2020-10-08 14:52:05 -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