Skip to content

Easy to trigger TextField onChange infinite loop on iOS #61282

Closed
flutter-team-archive/engine
#20160

Description

@awhitford

Steps to Reproduce

  1. Use flutter create to create the default project.
  2. Make the following changes:
    • At the top of main.dart: import 'package:flutter/services.dart';
    • At the top of the _MyHomePageState class: final _textController = TextEditingController();
    • Insert the following child in the build / body / Column / children:
            TextField(
              controller: _textController,
              keyboardType: TextInputType.numberWithOptions(),
              textAlign: TextAlign.right,
              inputFormatters: [
                WhitelistingTextInputFormatter.digitsOnly,
              ],
              onChanged: (value) {
                print('onChanged($value)');
                // Note that value is pure digits because of the input
                // formatters.
                final parsedValue = double.tryParse(value) ?? 0;
                final newAmountText = parsedValue > 0
                    ? (parsedValue * 0.01).toStringAsFixed(2)
                    : '';
                setState(() {
                  _textController.text = newAmountText;
                });
              },
            ),
  1. Now, flutter run -- I chose to use the iOS Simulator with iPhone 8, but I'm not sure that matters.

Expected results:

I was playing around with an input for capturing dollar amounts. The WhitelistingTextInputFormatter.digitsOnly is intentional so that people don't enter a letter or symbol, but the amount should be displayed like a dollar amount, so 1 -> 0.01, then 2 -> 0.12, then 3 -> 1.23, then a backspace -> 0.12... If you type reasonably slow, it all works out fine.

Actual results:

If you type too fast, like bang the keyboard, the onChanged handler is stuck in an endless loop! 😮

Logs
[   +1 ms] Flutter run key commands.
[   +1 ms] r Hot reload. 🔥🔥🔥
[   +1 ms] R Hot restart.
[        ] h Repeat this help message.
[        ] d Detach (terminate "flutter run" but leave application running).
[        ] c Clear the screen
[        ] q Quit (terminate the application on the device).
[        ] An Observatory debugger and profiler on iPhone 8 is available at: http://127.0.0.1:56187/9qbD6eUFgVc=/
[   +3 ms] [DEVICE LOG] 2020-07-10 23:40:45.172555-0700  localhost Runner[67170]: (RunningBoardServices) Created Activity ID: 0xdd8f46,
Description: didChangeInheritances
[ +401 ms] [DEVICE LOG] 2020-07-10 23:40:45.585574-0700  localhost Runner[67170]: (RunningBoardServices) Created Activity ID: 0xdd8f47,
Description: didChangeInheritances
[+22747 ms] [DEVICE LOG] 2020-07-10 23:41:08.334051-0700  localhost Runner[67170]: (ManagedConfiguration)
[com.apple.ManagedConfiguration:MC] Got system group container path from MCM for systemgroup.com.apple.configurationprofiles:
/Users/anthony/Library/Developer/CoreSimulator/Devices/3F2B7F5B-CFBC-4205-A3DF-6BC9B11AD186/data/Containers/Shared/SystemGroup/systemgroup.c
om.apple.configurationprofiles
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:08.343998-0700  localhost Runner[67170]: (AggregateDictionary) AggregateDictionary is not supported
on this platform
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:08.349064-0700  localhost Runner[67170]: (UIKitCore) Can't find keyplane that supports type 4 for
keyboard iPhone-PortraitChoco-NumberPad; using 25752_PortraitChoco_iPhone-Simple-Pad_Default
[+7148 ms] [DEVICE LOG] 2020-07-10 23:41:15.497911-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(1)
[        ] flutter: onChanged(1)
[+1532 ms] [DEVICE LOG] 2020-07-10 23:41:17.030317-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(0012)
[        ] flutter: onChanged(0012)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:17.039668-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(0012)
[        ] flutter: onChanged(0012)
[+1348 ms] [DEVICE LOG] 2020-07-10 23:41:18.388377-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(0123)
[        ] flutter: onChanged(0123)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:18.393947-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(0123)
[        ] flutter: onChanged(0123)
[+1110 ms] [DEVICE LOG] 2020-07-10 23:41:19.504979-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(1234)
[        ] flutter: onChanged(1234)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:19.513343-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(1234)
[        ] flutter: onChanged(1234)
[ +755 ms] [DEVICE LOG] 2020-07-10 23:41:20.269523-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(12345)
[        ] flutter: onChanged(12345)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:20.282119-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(12345)
[        ] flutter: onChanged(12345)
[ +920 ms] [DEVICE LOG] 2020-07-10 23:41:21.203136-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(123456)
[        ] flutter: onChanged(123456)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:21.214263-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(123456)
[        ] flutter: onChanged(123456)
[+1456 ms] [DEVICE LOG] 2020-07-10 23:41:22.671262-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(12345)
[        ] flutter: onChanged(12345)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:22.680302-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(12345)
[        ] flutter: onChanged(12345)
[ +645 ms] [DEVICE LOG] 2020-07-10 23:41:23.326340-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(1234)
[        ] flutter: onChanged(1234)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:23.333755-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(1234)
[        ] flutter: onChanged(1234)
[ +658 ms] [DEVICE LOG] 2020-07-10 23:41:23.992871-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(123)
[        ] flutter: onChanged(123)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:24.001535-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(123)
[        ] flutter: onChanged(123)
[ +838 ms] [DEVICE LOG] 2020-07-10 23:41:24.840294-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(12)
[        ] flutter: onChanged(12)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:24.854203-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(12)
[        ] flutter: onChanged(12)
[ +818 ms] [DEVICE LOG] 2020-07-10 23:41:25.673227-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(01)
[        ] flutter: onChanged(01)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:25.677555-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(01)
[        ] flutter: onChanged(01)
[+1006 ms] [DEVICE LOG] 2020-07-10 23:41:26.684033-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(00)
[        ] flutter: onChanged(00)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:26.691796-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(00)
[        ] flutter: onChanged(00)
[+2232 ms] [DEVICE LOG] 2020-07-10 23:41:28.924788-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7)
[        ] flutter: onChanged(7)
[+1012 ms] [DEVICE LOG] 2020-07-10 23:41:29.937160-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(0078)
[        ] flutter: onChanged(0078)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:29.944754-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(0078)
[        ] flutter: onChanged(0078)
[ +624 ms] [DEVICE LOG] 2020-07-10 23:41:30.569536-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(0783)
[        ] flutter: onChanged(0783)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:30.576873-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(07832)
[        ] flutter: onChanged(07832)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.577618-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(078328)
[        ] flutter: onChanged(078328)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.578331-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(0783)
[        ] flutter: onChanged(0783)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:30.586380-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(07832)
[        ] flutter: onChanged(07832)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:30.594897-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(078328)
[        ] flutter: onChanged(078328)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:30.601854-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:30.614014-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.615079-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:30.617793-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:30.627509-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.628306-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:30.630133-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:30.646270-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:30.650595-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:30.654659-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:30.667060-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.668739-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:30.681748-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.682787-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:30.685699-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:30.700133-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:30.715401-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:30.728528-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.729394-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:30.736556-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:30.747143-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:30.750436-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:30.753972-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:30.763281-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +19 ms] [DEVICE LOG] 2020-07-10 23:41:30.784036-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:30.785372-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.786576-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:30.796884-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:30.813543-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:30.817635-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:30.829973-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:30.835197-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:30.844872-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:30.849347-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:30.852793-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:30.862937-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:30.870180-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:30.879690-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:30.881012-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:30.894312-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:30.900799-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:30.914503-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:30.917486-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:30.931505-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:30.947369-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.948414-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:30.951898-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:30.956624-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:30.969559-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:30.982377-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[        ] [DEVICE LOG] 2020-07-10 23:41:30.984002-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:30.997288-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:31.012232-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:31.014933-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:31.019525-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.030983-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.045202-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:31.048238-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:31.053999-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:31.061069-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:31.068200-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.072349-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:31.081343-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:31.095195-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:31.103630-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:31.112266-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:31.116925-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.129549-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:31.137673-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:31.146580-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:31.147912-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:31.159916-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.163831-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.168069-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:31.179231-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:31.185919-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:31.196710-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.210351-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:31.212411-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:31.228968-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:31.232337-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:31.246989-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.247946-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:31.250048-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:31.260762-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:31.265060-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:31.269868-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:31.282342-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +17 ms] [DEVICE LOG] 2020-07-10 23:41:31.300180-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:31.302684-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:31.311399-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:31.316447-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.329180-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.332539-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.336774-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:31.344551-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:31.361290-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.362134-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.366160-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.378398-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:31.385292-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:31.399325-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.404028-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:31.413856-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:31.427618-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.428527-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.432245-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.445011-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:31.450381-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.464141-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.465504-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:31.479701-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:31.486826-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:31.502304-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:31.504984-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +17 ms] [DEVICE LOG] 2020-07-10 23:41:31.522496-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:31.532215-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.536016-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:31.543406-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.544876-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:31.553681-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:31.567327-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.568691-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:31.578684-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:31.594005-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:31.599582-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.604035-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:31.616201-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:31.629861-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.633148-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:31.645279-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.645889-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:31.661388-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.662139-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:31.665471-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:31.679063-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:31.693337-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:31.698922-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.703203-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:31.713643-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:31.730452-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[   +1 ms] flutter: onChanged(783)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.731524-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:31.735228-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:31.744575-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:31.750520-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.754596-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:31.764609-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:31.778635-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:31.784234-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:31.796700-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:31.801114-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:31.811850-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +22 ms] [DEVICE LOG] 2020-07-10 23:41:31.834680-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:31.837090-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.838523-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:31.846178-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:31.851896-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:31.860631-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:31.862973-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:31.878563-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:31.885397-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:31.898727-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:31.904346-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:31.914417-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:31.930490-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[        ] [DEVICE LOG] 2020-07-10 23:41:31.931736-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:31.934704-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:31.946582-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:31.952791-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:31.960805-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:31.965230-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:31.979006-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:31.995446-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.000256-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.011297-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:32.017209-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:32.027057-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.031101-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.034586-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.045752-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:32.055259-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:32.062737-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.067047-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:32.077403-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:32.087014-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.098092-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:32.104419-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.116918-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:32.126926-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.131334-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.134992-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.145657-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:32.151345-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:32.161568-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.164736-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.176555-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:32.185095-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.196698-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.200571-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:32.213877-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:32.227944-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[        ] [DEVICE LOG] 2020-07-10 23:41:32.228637-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.231905-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.237046-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:32.249194-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:32.264652-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[        ] [DEVICE LOG] 2020-07-10 23:41:32.266292-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.278526-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:32.292779-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.297178-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.301880-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:32.317343-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:32.331981-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[        ] [DEVICE LOG] 2020-07-10 23:41:32.333111-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.336844-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.348447-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:32.362507-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[        ] [DEVICE LOG] 2020-07-10 23:41:32.363256-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:32.366077-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:32.379080-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:32.386868-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:32.400368-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.411688-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.415831-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:32.428701-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:32.430994-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.435574-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:32.444936-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:32.452112-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +19 ms] [DEVICE LOG] 2020-07-10 23:41:32.468731-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.471459-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +25 ms] [DEVICE LOG] 2020-07-10 23:41:32.498264-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +17 ms] [DEVICE LOG] 2020-07-10 23:41:32.517563-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +22 ms] [DEVICE LOG] 2020-07-10 23:41:32.543089-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:32.546433-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:32.563913-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.568347-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:32.582928-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[   +1 ms] flutter: onChanged(7835)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:32.584406-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[   +1 ms] flutter: onChanged(7837)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.597462-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:32.603547-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:32.611876-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[        ] [DEVICE LOG] 2020-07-10 23:41:32.612733-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:32.628666-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:32.635680-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.647820-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:32.664883-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.669599-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.681363-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:32.695268-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[        ] [DEVICE LOG] 2020-07-10 23:41:32.696202-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:32.699412-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:32.712015-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:32.717741-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:32.727400-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +17 ms] [DEVICE LOG] 2020-07-10 23:41:32.745020-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.750447-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:32.760610-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:32.765819-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:32.779675-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:32.792287-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:32.793855-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.797671-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.802636-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.813854-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.818216-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:32.827157-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +17 ms] [DEVICE LOG] 2020-07-10 23:41:32.845074-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:32.849208-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.859564-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:32.862099-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:32.879486-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:32.888143-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:32.895188-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:32.897371-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:32.904373-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:32.917522-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.927746-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[        ] [DEVICE LOG] 2020-07-10 23:41:32.928302-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +16 ms] [DEVICE LOG] 2020-07-10 23:41:32.945016-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:32.950293-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:32.961116-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:32.966519-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:32.982538-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:32.993797-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:32.999266-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +20 ms] [DEVICE LOG] 2020-07-10 23:41:33.019341-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] [DEVICE LOG] 2020-07-10 23:41:33.020384-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(7837)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:33.027447-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:33.033675-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:33.038567-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.050350-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:33.064666-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[   +1 ms] flutter: onChanged(7837)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:33.079339-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:33.081927-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:33.095198-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:33.105315-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:33.114801-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[        ] [DEVICE LOG] 2020-07-10 23:41:33.115866-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:33.128203-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +18 ms] [DEVICE LOG] 2020-07-10 23:41:33.147565-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[        ] [DEVICE LOG] 2020-07-10 23:41:33.148556-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:33.152950-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.164173-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +15 ms] [DEVICE LOG] 2020-07-10 23:41:33.180255-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:33.185362-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.196783-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:33.201662-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:33.210637-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:33.214514-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:33.218194-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.230036-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:33.237153-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +8 ms] [DEVICE LOG] 2020-07-10 23:41:33.246239-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[        ] [DEVICE LOG] 2020-07-10 23:41:33.247187-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:33.259391-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:33.266554-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.277939-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:33.283621-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +12 ms] [DEVICE LOG] 2020-07-10 23:41:33.295925-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:33.303226-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:33.309375-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:33.310922-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:33.316198-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +14 ms] [DEVICE LOG] 2020-07-10 23:41:33.330838-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +1 ms] [DEVICE LOG] 2020-07-10 23:41:33.333192-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:33.337794-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +10 ms] [DEVICE LOG] 2020-07-10 23:41:33.348961-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +13 ms] [DEVICE LOG] 2020-07-10 23:41:33.362233-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:33.367064-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.378373-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:33.384200-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.396105-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +2 ms] [DEVICE LOG] 2020-07-10 23:41:33.398578-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:33.402286-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:33.410670-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +6 ms] [DEVICE LOG] 2020-07-10 23:41:33.417590-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:33.422232-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:33.430541-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:33.438505-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.450418-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:33.460112-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +5 ms] [DEVICE LOG] 2020-07-10 23:41:33.465987-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.478342-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[   +7 ms] [DEVICE LOG] 2020-07-10 23:41:33.486497-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[   +9 ms] [DEVICE LOG] 2020-07-10 23:41:33.495870-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7835)
[        ] flutter: onChanged(7835)
[        ] [DEVICE LOG] 2020-07-10 23:41:33.497128-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7837)
[        ] flutter: onChanged(7837)
[   +3 ms] [DEVICE LOG] 2020-07-10 23:41:33.500898-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(783)
[        ] flutter: onChanged(783)
[  +11 ms] [DEVICE LOG] 2020-07-10 23:41:33.512440-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(7832)
[        ] flutter: onChanged(7832)
[   +4 ms] [DEVICE LOG] 2020-07-10 23:41:33.517010-0700  localhost Runner[67170]: (Flutter) flutter: onChanged(78328)
[        ] flutter: onChanged(78328)
[✓] Flutter (Channel stable, v1.17.5, on Mac OS X 10.15.5 19F101, locale en-US)
    • Flutter version 1.17.5 at /Users/anthony/flutter
    • Framework revision 8af6b2f038 (10 days ago), 2020-06-30 12:53:55 -0700
    • Engine revision ee76268252
    • Dart version 2.8.4

 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0-rc4)
    • Android SDK at /Users/anthony/Library/Android/sdk
    • Platform android-R, build-tools 30.0.0-rc4
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.2

[✓] Connected device (1 available)
    • iPhone 8 • 3F2B7F5B-CFBC-4205-A3DF-6BC9B11AD186 • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-5 (simulator)

• No issues found!

Activity

  1. awhitford commented on Jul 11, 2020

    @awhitford
    Author

    I attached a video of the behavior in action:
    flutter_textfield_bug.mov.zip

  2. awhitford commented on Jul 11, 2020

    @awhitford
    Author

    From what I can tell, the problem is related to manipulating the TextEditingController.text inside onChanged because this triggers the problem:

                TextField(
                  controller: _textController,
                  onChanged: (value) {
                    print('onChanged($value)');
                    _textController.text = value + '0';
                  },
                ),
  3. Pragya007 commented on Jul 11, 2020

    @Pragya007
    Contributor

    Hey, I tried reproducing this and tried writing really fast but not getting this infinite loop!!

  4. awhitford commented on Jul 11, 2020

    @awhitford
    Author

    @Pragya007 I am surprised to hear that reproducing this is difficult because for me it is really easy. I have repeatedly replicated it with the iOS Simulator using a couple of iPhone devices. All I do is hit a few keys at once with both hands and boom. Try alternating your fingers back and forth like playing the piano.

  5. Pragya007 commented on Jul 11, 2020

    @Pragya007
    Contributor

    Okay but I am running in android simulator and it is working fine....and I am pressing keys in speed, refer to video once...tell me then if I did it right..

    textfield_bug.zip

  6. awhitford commented on Jul 11, 2020

    @awhitford
    Author

    @Pragya007 I just tried recreating this bug again and discovered that it behaved fine on the Android Simulator, however I can very easily reproduce the endless loop with the iOS Simulator. So, perhaps this bug is limited to iOS? 🤔

  7. TahaTesser commented on Jul 13, 2020

    @TahaTesser
    Contributor

    i can reproduce on physical XR too

    ezgif com-video-to-gif

    Code Sample
    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Material App',
          theme: ThemeData.dark(),
          home: Home(),
        );
      }
    }
    
    class Home extends StatefulWidget {
      @override
      _HomeState createState() => _HomeState();
    }
    
    class _HomeState extends State<Home> {
      final _textController = TextEditingController();
    
      @override
      void dispose() {
        _textController.dispose();
        super.dispose();
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Material App Bar'),
          ),
          body: Column(
            children: <Widget>[
              TextField(
                controller: _textController,
                keyboardType: TextInputType.numberWithOptions(),
                textAlign: TextAlign.right,
                inputFormatters: [
                  WhitelistingTextInputFormatter.digitsOnly,
                ],
                onChanged: (value) {
                  print('onChanged($value)');
                  // Note that value is pure digits because of the input
                  // formatters.
                  final parsedValue = double.tryParse(value) ?? 0;
                  final newAmountText = parsedValue > 0
                      ? (parsedValue * 0.01).toStringAsFixed(2)
                      : '';
                  setState(() {
                    _textController.text = newAmountText;
                  });
                },
              ),
            ],
          ),
          floatingActionButton: FloatingActionButton(
            child: Icon(Icons.add),
            onPressed: () {},
          ),
        );
      }
    }
    
    
    flutter doctor -v
    [✓] Flutter (Channel dev, 1.20.0-7.1.pre, on Mac OS X 10.15.5 19F101, locale
        en-GB)
        • Flutter version 1.20.0-7.1.pre at /Users/taha/Code/flutter_dev
        • Framework revision 7736f3bc90 (2 days ago), 2020-07-10 16:33:05 -0700
        • Engine revision d48085141c
        • Dart version 2.9.0 (build 2.9.0-21.2.beta)
    
     
    [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
        • Android SDK at /Users/taha/Code/sdk
        • Platform android-30, build-tools 30.0.0
        • ANDROID_HOME = /Users/taha/Code/sdk
        • Java binary at: /Applications/Android
          Studio.app/Contents/jre/jdk/Contents/Home/bin/java
        • Java version OpenJDK Runtime Environment (build
          1.8.0_242-release-1644-b3-6222593)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 11.5)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Xcode 11.5, Build version 11E608c
        • CocoaPods version 1.9.3
    
    [✓] Chrome - develop for the web
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 4.0)
        • Android Studio at /Applications/Android Studio.app/Contents
        • Flutter plugin version 47.1.2
        • Dart plugin version 193.7361
        • Java version OpenJDK Runtime Environment (build
          1.8.0_242-release-1644-b3-6222593)
    
    [✓] VS Code (version 1.47.0)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.12.2
    
    [✓] Connected device (4 available)
        • SM M305F (mobile) • 32003c30dc19668f • android-arm64  • Android 10 (API
          29)
        • macOS (desktop)   • macos            • darwin-x64     • Mac OS X 10.15.5
          19F101
        • Web Server (web)  • web-server       • web-javascript • Flutter Tools
        • Chrome (web)      • chrome           • web-javascript • Google Chrome
          83.0.4103.116
    
    • No issues found!
    
    flutter doctor -v
    [✓] Flutter (Channel stable, v1.17.5, on Mac OS X 10.15.5 19F101, locale en-GB)
        • Flutter version 1.17.5 at /Users/taha/Code/flutter_stable
        • Framework revision 8af6b2f038 (13 days ago), 2020-06-30 12:53:55 -0700
        • Engine revision ee76268252
        • Dart version 2.8.4
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
        • Android SDK at /Users/taha/Code/sdk
        • Platform android-30, build-tools 30.0.0
        • ANDROID_HOME = /Users/taha/Code/sdk
        • Java binary at: /Applications/Android
          Studio.app/Contents/jre/jdk/Contents/Home/bin/java
        • Java version OpenJDK Runtime Environment (build
          1.8.0_242-release-1644-b3-6222593)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 11.5)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • Xcode 11.5, Build version 11E608c
        • CocoaPods version 1.9.3
    
    [✓] Android Studio (version 4.0)
        • Android Studio at /Applications/Android Studio.app/Contents
        • Flutter plugin version 47.1.2
        • Dart plugin version 193.7361
        • Java version OpenJDK Runtime Environment (build
          1.8.0_242-release-1644-b3-6222593)
    
    [✓] VS Code (version 1.47.0)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.12.2
    
     
    [✓] Connected device (2 available)            
        • SM M305F      • 32003c30dc19668f          • android-arm64 • Android 10
          (API 29)
        • Taha’s iPhone • 00008020-001059882212002E • ios           • iOS 13.5.1
    
    • No issues found!
    
  8. changed the title [-]Easy to trigger TextField onChange infinite loop[/-] [+]Easy to trigger TextField onChange infinite loop on iOS[/+] on Jul 13, 2020
  9. added
    a: text inputEntering text in a text field or keyboard related problems
    p: material_uimaterial_ui package in flutter/packages
    frameworkflutter/packages/flutter repository. See also f: labels.
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    platform-iosiOS applications specifically
    on Jul 13, 2020
  10. self-assigned this
    on Jul 13, 2020
  11. justinmc commented on Jul 15, 2020

    @justinmc
    Contributor

    I've done some investigation and wanted to post my findings.

    First of all, it seems that this isn't caused by the formatter or the alignment, so I can simplify the reproduction code a little bit. Here I'm just adding a zero to the end of the string every time a character is pressed, and that reproduces the problem on iOS when typing very fast:

    Code Sample
    import 'package:flutter/material.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Material App',
          theme: ThemeData.dark(),
          home: Home(),
        );
      }
    }
    
    class Home extends StatefulWidget {
      @override
      _HomeState createState() => _HomeState();
    }
    
    class _HomeState extends State<Home> {
      final _textController = TextEditingController();
    
      @override
      void dispose() {
        _textController.dispose();
        super.dispose();
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Material App Bar'),
          ),
          body: Column(
            children: <Widget>[
              TextField(
                controller: _textController,
                onChanged: (String text) {
                  setState(() {
                    _textController.text = text + '0';
                  });
                },
              ),
            ],
          ),
        );
      }
    }

    iOS unsigned integer bug

    Immediately when testing this, I noticed that Android and iOS behave differently:

    Character typed slowly Result (iOS) Result (Android)
    1 10 10
    2 1020 2100
    3 102030 321000

    Android kept the cursor at the beginning of the field, while iOS kept it at the end.

    The correct behavior is actually Android's. When _textController.text is set, the selection is reset to (-1, -1), which Flutter interprets as the cursor being collapsed and at the start of the field. In iOS, it was being put it at the end of the field due to an unsigned integer bug, which I've fixed in flutter-team-archive/engine#19785.

    @awhitford If you want the cursor to remain at the end of the field, set the full _textController.value to a TextEditingValue with the desired selection.

    The infinite loop

    The infinite loops still happens even with that smaller fix, because it's a deeper race condition. It's caused by the asynchronous communication between the engine and framework over the platform channel. Here's what happens on iOS:

    Action iOS Android
    User types "1"
    Engine to Framework: 1 same
    Framework to Engine: 10 same
    Engine to Framework: 10 same
    User types "2" slowly
    Engine to Framework: 102 same
    Framework to Engine: 1020 same
    Engine to Framework: 1020 same
    User types "3" slowly
    Engine to Framework: 10203 same
    Framework to Engine: 102030 same
    Engine to Framework: 102030 same
    User types "4" and then "5" quickly
    Engine to Framework: 1020304 Batching delay
    Engine to Framework: 10203045 Engine to Framework: 10203045
    Framework to Engine: 10203040 Framework to Engine: 102030450
    Framework to Engine: 102030450 Engine to Framework: 102030450
    Engine to Framework: 10203040
    Engine to Framework: 102030450
    Framework to Engine: 102030400
    Framework to Engine: 1020304500
    Engine to Framework: 102030400
    Engine to Framework: 1020304500
    Framework to Engine: 1020304000
    Framework to Engine: 10203045000
    ...

    Android might be combining the two quick "4" and "5" events into one response, or maybe it's just faster than I'm able to type. I'll continue to investigate.

    Updated the table just above to include Android behavior.

  12. augustmuir commented on Feb 6, 2021

    @augustmuir

    This is a very bad bug on iOS only, I can’t seem to change a textcontroller/textfields text programmatically without entering a infinite loop even while adding checks. Is there any update on a fix for this? All my code works perfect on Android but iOS I can’t even do small changes to a textcontrollers text without a infinite loop.

    EDIT:
    This bug is fixed by using beta v1.25.0-8.1.pre 🙏

    Please add this fix to the next stable release 🌱 spent hours trying to fix my code before realizing it was a sdk bug

  13. lyf571321556 commented on Apr 6, 2021

    @lyf571321556

    same issue #79844 when quickly type word.

  14. github-actions commented on Aug 3, 2021

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  15. locked as resolved and limited conversation to collaborators on Aug 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

a: text inputEntering text in a text field or keyboard related problemsfound in release: 1.17Found to occur in 1.17found in release: 1.20Found to occur in 1.20frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onp: material_uimaterial_ui package in flutter/packagesplatform-iosiOS applications specifically

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions