450 Commits

Author SHA1 Message Date
Mehmet Fidanboylu
35ed1ccc9a
Revert "Add API to services package that overrides HTTP ban (#54243)" (#54519)
This reverts commit 9eb2a2ad6a59d47bcd53c6b8414b4d540d198892.
2020-04-10 22:18:30 -07:00
Mehmet Fidanboylu
9eb2a2ad6a
Add API to services package that overrides HTTP ban (#54243) 2020-04-10 22:14:42 -07:00
Michael Goderbauer
6c048301a6
Revert "WIP2" (#54286) 2020-04-10 12:25:02 -07:00
Francisco Magdaleno
a0f7f6ca6d
[windows] Adds support for keyboard mapping. (#54227) 2020-04-08 10:07:02 -07:00
Michael Goderbauer
d47ad7ec0d
Reverse dependency between services and scheduler (#54212) 2020-04-08 09:12:03 -07:00
LongCatIsLooong
4af5fe2c37
Reland "iOS UITextInput autocorrection prompt (#45354)" (#54119) 2020-04-07 12:11:14 -07:00
Alexandre Ardhuin
f5a9902577
enable avoid_equals_and_hash_code_on_mutable_classes (#52507) 2020-04-06 13:36:01 -07:00
Dan Field
14f3a36aba
Clear ImageCache on MemoryPressure (#53959) 2020-04-03 17:06:01 -07:00
Justin McCandless
a811bce4b0
TextField behavior when at maxLength (#52130)
TextFields now disallow adding characters in the center of the text at maxLength.
2020-03-18 08:02:22 -07:00
Wu Zhong
db6e2061aa
Fixes typo in comments (#52408) 2020-03-12 09:31:01 -07:00
Greg Spencer
210f4d8313
Convert Diagnosticable to a mixin (#51495)
This converts Diagnosticable to be a mixin instead of an abstract class, so that it can be used to add diagnostics to classes which already have a base class.

It leaves in place the DiagnosticableMixin mixin, since there are some plugins that are still using it, and removing it would mean that those plugins wouldn't work with master branch Flutter anymore. DiagnosticableMixin will be removed once this mixin version of Diagnosticable makes its way to the stable branch.
2020-03-11 10:03:05 -07:00
Francisco Magdaleno
e9905b6ad8
[Keyboard] Collects windows key data (#52265) 2020-03-09 17:21:02 -07:00
Alexandre Ardhuin
c2ae654ddf
enable avoid_single_cascade_in_expression_statements (#51944) 2020-03-05 08:03:26 +01:00
Greg Spencer
c5dd3ec47a
Fix stuck keys when shift is released before the letter. (#51095)
This fixes a problem where if you press "Shift" and then "A", then release "Shift" and then "a", then the "A" key will be "stuck" on because the logical key for the key down message is different (capital "A") from the logical key for the key up message (lowercase "a").

This PR changes the pressed keys logic so that it uses the physical key to add/remove keys from the list of pressed keys, but keeps the associated logical key.

This does mean that after the "Shift" key goes up, the pressed keys contains a capital "A" and it doesn't switch to be a lowercase "a", but there isn't currently any mechanism we can use to do that remapping. This is far less surprising than the current behavior, but is still not quite correct.

I fixed the event simulation code to take a physicalKey so that it could be matched with the logical key, but the event simulation code isn't up to the task, since it can only simulate keys that appear in the key maps. The new platform key event design should fix that (added TODOs).
2020-02-21 14:13:38 -08:00
Alexandre Ardhuin
f15c887c63
change quote to avoid escapes (#50368) 2020-02-11 20:58:27 +01:00
Greg Spencer
9fb781a54a
Update samples to work with Dartpad, and convert all that make… (#50377)
This PR modifies the existing API docs samples to use DartPad so that all of the samples are now interactive apps on the API docs site.

It also removes the restriction for the max width of the description area so that the dartpad region can expand horizontally.

I updated the first paragraph on the API docs to indicate that Flutter is more than just mobile now (same text as the README.md at the top level).

I modified a few of the examples so that they looked nicer, and fit better on the page.

I added the sample description text above each DartPad instance, since that often defines the context of the example.

I removed animations and images when they were redundant with the sample content. There were a few that made sense to keep, so I did.
2020-02-10 10:00:20 -08:00
Hans Muller
bc5c46438a Migrate TextTheme to 2018 APIs (#48547) 2020-01-24 19:03:01 -08:00
Dan Field
3e63411256 Avoid runtimeType.toString in toString overrides/debugLabels (#48607) 2020-01-14 16:43:01 -08:00
Alexandre Ardhuin
82262d8896 format operator== according to flutter style guide (#48449) 2020-01-09 08:23:02 -08:00
Greg Spencer
fabf4e3d0d Reverse the sense of the terms snippet and sample. (#48254) 2020-01-08 15:28:02 -08:00
Sam Rawlins
965ba387d4 Remove unused public static members of private classes/enums (#48218) 2020-01-07 12:18:02 -08:00
Sam Rawlins
5005824763 Mark unused but desired private constructors as such (#46200) 2020-01-07 12:03:03 -08:00
Alexandre Ardhuin
4f9b6cf017
enable lint prefer_final_in_for_each (#47724) 2020-01-07 16:32:04 +01:00
Dan Field
24f39d40a4 Revert "Revert "Add many more global analyses. (#47875)" (#48080)" (#48081)
This reverts commit 04ea3183ce67c62def5852a5c2615e38188195ca.
2020-01-02 11:47:28 -08:00
Francisco Magdaleno
04ea3183ce
Revert "Add many more global analyses. (#47875)" (#48080)
This reverts commit e768c92fbc6cf8bf4e1814ef950a6092bbb6f658.
2020-01-02 09:25:59 -08:00
Ian Hickson
e768c92fbc
Add many more global analyses. (#47875)
* Update packages.

* Add many more global analyses.

* Catch trailing spaces and trailing newlines in all text files.
  Before we were only checking newly added files, but that means we
  missed some.

* Port the trailing spaces logic to work on Windows too.

* Correct all the files with trailing spaces and newlines.

* Refactor some of the dev/bots logic into a utils.dart library.
  Notably, the "exit" and "print" shims for testing are now usable
  from test.dart, analyze.dart, and run_command.dart.

* Add an "exitWithError" function that prints the red lines and
  then exits. This is the preferred way to exit from test.dart,
  analyze.dart, and run_command.dart.

* More consistency in the output of analyze.dart.

* Refactor analyze.dart to use the _allFiles file enumerating logic
  more widely.

* Add some double-checking logic to the _allFiles logic to catch
  cases where changes to that logic end up catching fewer files
  than expected (helps prevent future false positives).

* Add a check to prevent new binary files from being added to
  the repository. Grandfather in the binaries that we've already
  added.

* Update all the dependencies (needed because we now import crypto in
  dev/bots/analyze.dart).
2019-12-30 17:12:19 -08:00
Dan Field
93f718b386 Fix requestExistingInputState response (#47472) 2019-12-20 03:33:01 -08:00
Lau Ching Jun
bc67d22449
Revert "iOS UITextInput autocorrection prompt (#45354)" (#47373)
This reverts commit 0f8c0da0a9ded2a9b7aa3bd01fcc29db80bbab0a.
2019-12-18 13:56:44 -08:00
LongCatIsLooong
0f8c0da0a9
iOS UITextInput autocorrection prompt (#45354) 2019-12-17 16:22:28 -08:00
Justin McCandless
c06bf6503a
iOS smart quote/dash configuration (#44923)
smartDashesType and smartQuotesType params for text fields to control iOS's smart punctuation feature.
2019-12-13 17:42:35 -05:00
Dan Field
948e2b0101 Avoid exceptions for control flow (#46897) 2019-12-12 13:53:01 -08:00
Greg Spencer
c6fe7bb9e1
Normalizes all of the "See also" blocks in comments. (#46121)
This normalizes all of the "See also" blocks in comments so that they conform in style.

They all look like this now:

  /// See also:
  ///
  ///  * [MyFavoriteWidget], because it's cool.
  class Foo {}

I removed some useless "See also" blocks, and added commentary to ones that were just "bare" references.

This is my penance for adding so many bullets that are "-" instead of "*". :-)
2019-12-05 12:27:05 -08:00
Alexandre Ardhuin
1c7a1c3873
implicit-casts:false in flutter/lib/src/services (#45723) 2019-12-04 07:51:54 +01:00
Gary Qian
d345a3b303
Revert "Track and use fallback TextAffinity for null affinity platform TextSelections. (#44622)" (#45698)
This reverts commit 6b66d794360bb7d3ff7bf2f6dfbcbd58516c3f20.
2019-11-28 19:42:06 +09:00
Ian Hickson
449f4a6673
License update (#45373)
* Update project.pbxproj files to say Flutter rather than Chromium

Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.

* Update the copyright notice checker to require a standard notice on all files

* Update copyrights on Dart files. (This was a mechanical commit.)

* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.

Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).

* Clean up the copyrights in non-Dart files. (Manual edits.)

Also, make sure templates don't have copyrights.

* Fix some more ORGANIZATIONNAMEs
2019-11-27 15:04:02 -08:00
Greg Spencer
46632f9edc
Handle bare modifier flags on macOS (#45438)
This fixes an unreported bug in the macOS key handling where for some remote access situations, the modifier mask is set to the "any modifier" mask without any side specified (e.g. modifierShift bit is specified and not modifierLeftShift bit).
2019-11-25 17:06:16 -08:00
Greg Spencer
a60bf8e23a
Spell check of Flutter docs (#45200)
No code changes, just comments: I spell-checked all the comments in the repo.
2019-11-22 08:43:55 -08:00
Gary Qian
6b66d79436
Track and use fallback TextAffinity for null affinity platform TextSelections. (#44622) 2019-11-20 16:37:10 -08:00
Greg Spencer
d026f2d948
Properly interpret modifiers on GLFW key events (#44844)
GLFW key events set modifier flags based on what the modifier state was before the event, unlike every other platform. This modifies the GLFW key support to take that into account.

As a small cleanup, I fixed a documentation macro reference for the modifier flags that was duplicate
2019-11-18 14:07:08 -08:00
Ian Hickson
62e4ab87b3
Update our deprecation style. (#44618) 2019-11-15 19:21:53 -08:00
Greg Spencer
dd90ff429d
Remove TextRange, export it from dart:ui (#44422)
This removes TextRange from the framework and moves it to the engine, in preparation for using it to return text ranges from the text extent APIs, and updates the APIs that use Paragraph.getWordBoundary (there was only one) to expect a TextRange or  a pair of ints temporarily until the engine side returns TextRanges, so that I can convert over without breaking the builds.
2019-11-08 18:57:44 -08:00
Greg Spencer
c921c5ae67
Add macOS fn key support. (#44410)
This adds support for the fn key on macOS. It adds it to the key mappings as a supplemental mapping that overwrites the one from the Chrome headers, since the chrome headers have a TODO, but no implementation of the key.

Also, ignore the fn key entirely on macOS. This is because On macOS laptop keyboards, the fn key is used to generate home/end and f1-f12, but it ALSO generates a separate down/up event for the fn key itself. Other platforms hide the fn key, and just produce the key that it is combined with, so to keep it possible to write cross platform code that looks at which keys are pressed, the fn key is ignored.
2019-11-08 16:30:38 -08:00
Greg Spencer
028ed7122a
Synchronize modifier keys in RawKeyboard.keysPressed with modifier flags on events. (#43948)
Currently, we listen to keyboard events to find out which keys should be represented in RawKeyboard.instance.keysPressed, but that's not sufficient to represent the physical state of the keys, since modifier keys could have been pressed when the overall app did not have keyboard focus (especially on desktop platforms).

This PR synchronizes the list of modifier keys in keysPressed with the modifier key flags that are present in the raw key event so that they can be relied upon to represent the current state of the keyboard. When synchronizing these states, we don't send any new key events, since they didn't happen when the app had keyboard focus, but if you ask "is this key down", we'll give the right answer
2019-11-06 14:52:55 -08:00
Dan Field
7957c56997
Respond to TextInputClient.reattach messages. (#43959) 2019-11-04 16:28:03 -08:00
Nurhan Turgut
97cf355b9d
Adding handling of TextInputClient.onConnectionClosed messages handli… (#43466)
* Adding handling of TextInputClient.onConnectionClosed messages handling to Framework

* Adding more test cases for closing connection to editable_text_test

* fixing analyze error.

* Fixing analyze error in the test file

* Fixing comments on the new method

* Adding more closing connection examples.

* Indentation change

* Remove auto-add white space

* Changing the oncloseconnection behaviour to stop editing. Updating the tests

* Addressing PR comments. Added explicit log for method channnels to the tests. Added comments to the interfaces.

* add more documentation
2019-11-04 13:35:18 -08:00
gaaclarke
53dcf92f7d
Fixed bug where we could accidently call a callback twice. (#43467) 2019-10-29 16:04:38 -07:00
Justin McCandless
6e888dac24
Add enableSuggestions flag to TextField and TextFormField (#42550)
This flag controls Android's keyboard suggestions on/off
2019-10-28 15:31:52 -07:00
Albertus Angga Raharja
b31ca1aaca
Add more structure to errors (continuation of #34684) (#42640)
* Add structured errors in Animations, TabView, ChangeNotifier

* Add structured error on MaterialPageRoute, BoxBorder, DecorationImagePainter, TextSpan

* Add structured errors in Debug

* Fix test errors

* Add structured errors in Scaffold and Stepper

* Add structured errors in part of Rendering Layer

* Fix failing test due to FloatingPoint precision

* Fix failing tests due to precision error and not using final

* Fix failing test due to floating precision error with RegEx instead

* Add structured error in CustomLayout and increase test coverage

* Add structured error & its test in ListBody

* Add structured error in ProxyBox and increase test coverage

* Add structured error message in Viewport

* Fix styles and add more assertions on ErrorHint and DiagnosticProperty

* Add structured error in scheduler/binding and scheduler/ticker

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Add structured error in AssetBundle and TextInput

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Add structured errors in several widgets #1

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Remove unused import

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Add assertions on hint messages

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Fix catch spacing

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Add structured error in several widgets part 2 and increase code coverage

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Add structured error in flutter_test/widget_tester

* Fix floating precision accuracy by using RegExp

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Remove todo to add tests in Scaffold showBottomSheet

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Fix reviews by indenting lines and fixing the assertion orders

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Fix failing tests due to renaming class

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Try skipping the NetworkBundleTest

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>

* Remove leading space in material/debug error hint

Signed-off-by: Albertus Angga Raharja <albertusangga@google.com>
2019-10-28 11:00:49 -07:00
Jacek Fedoryński
e458fd08d9 Add repeatCount to RawKeyEventDataAndroid (#42861)
* Add repeatCount to RawKeyEventDataAndroid

Adds a new field to RawKeyEventDataAndroid and sets it to the value
passed from the engine. It is the value returned by
KeyEvent.getRepeatCount(). This allows us to differentiate between
events generated by a new keypress and repeated events when a key is
held down.

* Add test for RawKeyEventDataAndroid.repeatCount
2019-10-24 11:06:03 -07:00
Erick (CptBlackPixel)
12b7b08da5 Reading deviceId for RawKeyEventDataAndroid event (#42235)
This PR adds a new property on RawKeyEventDataAndroid to hold the deviceId from which that event was generated. The deviceId is been sent from the engine on the changes from this PR: flutter/engine#12958

With this, we will be able to identify from where the event came from, adding the ability to support local multiplayer games, with multiple gamepads.
2019-10-18 12:32:21 -07:00