Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Focus navigation doesn't take transform into account when computing bounds #55338

Closed
lynn opened this issue Apr 21, 2020 · 7 comments · Fixed by #55600
Closed

Focus navigation doesn't take transform into account when computing bounds #55338

lynn opened this issue Apr 21, 2020 · 7 comments · Fixed by #55600
Labels
a: desktop Running on desktop f: focus Focus traversal, gaining or losing focus framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on

Comments

@lynn
Copy link

lynn commented Apr 21, 2020

Steps to Reproduce

  1. Run flutter create bug.
  2. Replace the contents of lib/main.dart with:
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key key}) : super(key: key);

  Widget button(String t) => Padding(
        padding: EdgeInsets.symmetric(horizontal: 2.0),
        child: RaisedButton(color: Colors.green, child: Text(t), onPressed: () {}),
      );

  Widget example() => Column(children: [
        Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [button('a'), button('b'), button('c')]),
        Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [button('d'), button('e'), button('f')]),
      ]);

  @override
  Widget build(BuildContext context) {
    return DefaultFocusTraversal(
      child: MaterialApp(
        home: Scaffold(
          body: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
            example(),
            Transform.scale(scale: 0.5, alignment: Alignment.topCenter, child: example()),
          ]),
        ),
      ),
    );
  }
}
  1. Using a gamepad (or keyboard input?), move focus in little rectangular laps around the big “abc def” rectangle of buttons. Now do the same in the scaled-down copy of the buttons.

image

Expected results

The focus moves the same way in both rectangles of buttons.

Actual results

Sometimes, focus moves diagonally in the scaled-down example, e.g from ec when I press the “right” D-pad button on my gamepad with e focused. It should go to from ef.

Investigation

Adding logging to DirectionalFocusTraversalPolicyMixin.inDirection shows that this is because the scaled-down button FocusNodes have a rect with width/height equal to the originals, i.e. measured in local coordinates rather than global coordinates.

So, c is detected as being “in-band” of e when moving right, because c's rect extends too far down. If c happens to be first in the in-band list, it will get selected rather than f.

Suggested Fix

In flutter/lib/src/widgets/focus_manager.dart, transform the whole rectangle, rather than only transforming its topLeft point and leaving size untouched:

   /// Returns the global rectangle of the attached widget's [RenderObject], in
   /// logical units.
   Rect get rect {
     assert(
         context != null,
         "Tried to get the bounds of a focus node that didn't have its context set yet.\n"
         'The context needs to be set before trying to evaluate traversal policies. This '
         'is typically done with the attach method.');
     final RenderObject object = context.findRenderObject();
-    final Offset globalOffset = MatrixUtils.transformPoint(object.getTransformTo(null), object.semanticBounds.topLeft);
-    return globalOffset & object.semanticBounds.size;
+    return MatrixUtils.transformRect(object.getTransformTo(null), object.semanticBounds);
   }

flutter doctor

[✓] Flutter (Channel stable, v1.12.13+hotfix.7, on Mac OS X 10.15.3 19D49f,
    locale en-US)
    • Flutter version 1.12.13+hotfix.7 at /Users/lynn/code/flutter
    • Framework revision 9f5ff2306b (3 months ago), 2020-01-26 22:38:26 -0800
    • Engine revision a67792536c
    • Dart version 2.7.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/lynn/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling
      support)
    • Platform android-29, build-tools 29.0.2
    • ANDROID_HOME = /Users/lynn/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

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

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)

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

[✓] Connected device (2 available)
    • SM N975U1                  • RF8MA14YK0Y                              • android-arm64 • Android 10 (API 29)
    • Lynn’s iPhone              • 00008020-001E58541478003A                • ios           • iOS 13.4

• No issues found!
@iapicca
Copy link
Contributor

iapicca commented Apr 22, 2020

Hi @lynn
your code doesn't seem to compile
could you please run flutter upgrade --force
and provide your flutter run --verbose
Thank you

@iapicca iapicca added in triage Presently being triaged by the triage team waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds labels Apr 22, 2020
@lynn
Copy link
Author

lynn commented Apr 22, 2020

I ran flutter upgrade --force (to v1.12.13+hotfix.9). Here is the output of flutter run --verbose.

Output
[  +22 ms] executing: [/Users/lynn/code/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +35 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] f139b11009aeb8ed2a3a3aa8b0066e482709dde3
[   +1 ms] executing: [/Users/lynn/code/flutter/] git describe --match v*.*.* --first-parent --long --tags
[  +15 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long --tags
[        ] v1.12.13+hotfix.9-0-gf139b1100
[   +6 ms] executing: [/Users/lynn/code/flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[   +9 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/Users/lynn/code/flutter/] git ls-remote --get-url origin
[   +9 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +46 ms] executing: [/Users/lynn/code/flutter/] git rev-parse --abbrev-ref HEAD
[  +10 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[   +5 ms] executing: sw_vers -productName
[  +13 ms] Exit code 0 from: sw_vers -productName
[        ] Mac OS X
[        ] executing: sw_vers -productVersion
[  +12 ms] Exit code 0 from: sw_vers -productVersion
[        ] 10.15.3
[        ] executing: sw_vers -buildVersion
[  +12 ms] Exit code 0 from: sw_vers -buildVersion
[        ] 19D49f
[  +22 ms] executing: /usr/bin/xcode-select --print-path
[   +7 ms] Exit code 0 from: /usr/bin/xcode-select --print-path
[        ] /Applications/Xcode.app/Contents/Developer
[   +1 ms] executing: /usr/bin/xcodebuild -version
[ +634 ms] Exit code 0 from: /usr/bin/xcodebuild -version
[   +1 ms] Xcode 11.4.1
           Build version 11E503a
[  +46 ms] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb devices -l
[   +7 ms] Exit code 0 from: /Users/lynn/Library/Android/sdk/platform-tools/adb devices -l
[        ] List of devices attached
           RF8MA14YK0Y            device usb:336592896X product:d2que model:SM_N975U1 device:d2q transport_id:1
[  +15 ms] executing: /Users/lynn/code/flutter/bin/cache/artifacts/libimobiledevice/idevice_id -h
[ +381 ms] /usr/bin/xcrun simctl list --json devices
[ +143 ms] /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y shell getprop
[  +94 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[   +3 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +139 ms] Generating /Users/lynn/code/bug/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[  +18 ms] ro.hardware = qcom
[   +9 ms] executing: [/Users/lynn/code/bug/ios/Runner.xcodeproj/] /usr/bin/xcodebuild -project /Users/lynn/code/bug/ios/Runner.xcodeproj -target Runner -showBuildSettings
[        ] executing: [/Users/lynn/code/bug/ios/Runner.xcodeproj/] /usr/bin/xcodebuild -project /Users/lynn/code/bug/ios/Runner.xcodeproj -target Runner -showBuildSettings
[+1785 ms] Command line invocation:
               /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project /Users/lynn/code/bug/ios/Runner.xcodeproj -target Runner -showBuildSettings

           Build settings for action build and target Runner:
               ACTION = build
               AD_HOC_CODE_SIGNING_ALLOWED = NO
               ALTERNATE_GROUP = staff
               ALTERNATE_MODE = u+w,go-w,a+rX
               ALTERNATE_OWNER = lynn
               ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
               ALWAYS_SEARCH_USER_PATHS = NO
               ALWAYS_USE_SEPARATE_HEADERMAPS = NO
               APPLE_INTERNAL_DEVELOPER_DIR = /AppleInternal/Developer
               APPLE_INTERNAL_DIR = /AppleInternal
               APPLE_INTERNAL_DOCUMENTATION_DIR = /AppleInternal/Documentation
               APPLE_INTERNAL_LIBRARY_DIR = /AppleInternal/Library
               APPLE_INTERNAL_TOOLS = /AppleInternal/Developer/Tools
               APPLICATION_EXTENSION_API_ONLY = NO
               APPLY_RULES_IN_COPY_FILES = NO
               APPLY_RULES_IN_COPY_HEADERS = NO
               ARCHS = armv7 arm64
               ARCHS_STANDARD = armv7 arm64
               ARCHS_STANDARD_32_64_BIT = armv7 arm64
               ARCHS_STANDARD_32_BIT = armv7
               ARCHS_STANDARD_64_BIT = arm64
               ARCHS_STANDARD_INCLUDING_64_BIT = armv7 arm64
               ARCHS_UNIVERSAL_IPHONE_OS = armv7 arm64
               ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
               AVAILABLE_PLATFORMS = appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator
               BITCODE_GENERATION_MODE = marker
               BUILD_ACTIVE_RESOURCES_ONLY = NO
               BUILD_COMPONENTS = headers build
               BUILD_DIR = /Users/lynn/code/bug/build/ios
               BUILD_LIBRARY_FOR_DISTRIBUTION = NO
               BUILD_ROOT = /Users/lynn/code/bug/build/ios
               BUILD_STYLE = 
               BUILD_VARIANTS = normal
               BUILT_PRODUCTS_DIR = /Users/lynn/code/bug/build/ios/Release-iphoneos
               BUNDLE_CONTENTS_FOLDER_PATH_deep = Contents/
               BUNDLE_EXECUTABLE_FOLDER_NAME_deep = MacOS
               BUNDLE_FORMAT = shallow
               BUNDLE_FRAMEWORKS_FOLDER_PATH = Frameworks
               BUNDLE_PLUGINS_FOLDER_PATH = PlugIns
               BUNDLE_PRIVATE_HEADERS_FOLDER_PATH = PrivateHeaders
               BUNDLE_PUBLIC_HEADERS_FOLDER_PATH = Headers
               CACHE_ROOT = /var/folders/3j/3gdscc_x69180j83k_yt1ss00000gn/C/com.apple.DeveloperTools/11.4.1-11E503a/Xcode
               CCHROOT = /var/folders/3j/3gdscc_x69180j83k_yt1ss00000gn/C/com.apple.DeveloperTools/11.4.1-11E503a/Xcode
               CHMOD = /bin/chmod
               CHOWN = /usr/sbin/chown
               CLANG_ANALYZER_NONNULL = YES
               CLANG_CXX_LANGUAGE_STANDARD = gnu++0x
               CLANG_CXX_LIBRARY = libc++
               CLANG_ENABLE_MODULES = YES
               CLANG_ENABLE_OBJC_ARC = YES
               CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
               CLANG_WARN_BOOL_CONVERSION = YES
               CLANG_WARN_COMMA = YES
               CLANG_WARN_CONSTANT_CONVERSION = YES
               CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
               CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
               CLANG_WARN_EMPTY_BODY = YES
               CLANG_WARN_ENUM_CONVERSION = YES
               CLANG_WARN_INFINITE_RECURSION = YES
               CLANG_WARN_INT_CONVERSION = YES
               CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
               CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
               CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
               CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
               CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
               CLANG_WARN_STRICT_PROTOTYPES = YES
               CLANG_WARN_SUSPICIOUS_MOVE = YES
               CLANG_WARN_UNREACHABLE_CODE = YES
               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
               CLASS_FILE_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/JavaClasses
               CLEAN_PRECOMPS = YES
               CLONE_HEADERS = NO
               CODESIGNING_FOLDER_PATH = /Users/lynn/code/bug/build/ios/Release-iphoneos/Runner.app
               CODE_SIGNING_ALLOWED = YES
               CODE_SIGNING_REQUIRED = YES
               CODE_SIGN_CONTEXT_CLASS = XCiPhoneOSCodeSignContext
               CODE_SIGN_IDENTITY = iPhone Developer
               CODE_SIGN_INJECT_BASE_ENTITLEMENTS = YES
               COLOR_DIAGNOSTICS = NO
               COMBINE_HIDPI_IMAGES = NO
               COMPILER_INDEX_STORE_ENABLE = Default
               COMPOSITE_SDK_DIRS = /Users/lynn/code/bug/build/ios/CompositeSDKs
               COMPRESS_PNG_FILES = YES
               CONFIGURATION = Release
               CONFIGURATION_BUILD_DIR = /Users/lynn/code/bug/build/ios/Release-iphoneos
               CONFIGURATION_TEMP_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos
               CONTENTS_FOLDER_PATH = Runner.app
               COPYING_PRESERVES_HFS_DATA = NO
               COPY_HEADERS_RUN_UNIFDEF = NO
               COPY_PHASE_STRIP = NO
               COPY_RESOURCES_FROM_STATIC_FRAMEWORKS = YES
               CORRESPONDING_SIMULATOR_PLATFORM_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform
               CORRESPONDING_SIMULATOR_PLATFORM_NAME = iphonesimulator
               CORRESPONDING_SIMULATOR_SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.4.sdk
               CORRESPONDING_SIMULATOR_SDK_NAME = iphonesimulator13.4
               CP = /bin/cp
               CREATE_INFOPLIST_SECTION_IN_BINARY = NO
               CURRENT_ARCH = arm64
               CURRENT_PROJECT_VERSION = 1
               CURRENT_VARIANT = normal
               DEAD_CODE_STRIPPING = YES
               DEBUGGING_SYMBOLS = YES
               DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
               DEFAULT_COMPILER = com.apple.compilers.llvm.clang.1_0
               DEFAULT_DEXT_INSTALL_PATH = /System/Library/DriverExtensions
               DEFAULT_KEXT_INSTALL_PATH = /System/Library/Extensions
               DEFINES_MODULE = NO
               DEPLOYMENT_LOCATION = NO
               DEPLOYMENT_POSTPROCESSING = NO
               DEPLOYMENT_TARGET_CLANG_ENV_NAME = IPHONEOS_DEPLOYMENT_TARGET
               DEPLOYMENT_TARGET_CLANG_FLAG_NAME = miphoneos-version-min
               DEPLOYMENT_TARGET_CLANG_FLAG_PREFIX = -miphoneos-version-min=
               DEPLOYMENT_TARGET_LD_ENV_NAME = IPHONEOS_DEPLOYMENT_TARGET
               DEPLOYMENT_TARGET_LD_FLAG_NAME = ios_version_min
               DEPLOYMENT_TARGET_SETTING_NAME = IPHONEOS_DEPLOYMENT_TARGET
               DEPLOYMENT_TARGET_SUGGESTED_VALUES = 8.0 8.1 8.2 8.3 8.4 9.0 9.1 9.2 9.3 10.0 10.1 10.2 10.3 11.0 11.1 11.2 11.3 11.4 12.0 12.1 12.2 12.3 12.4 13.0 13.1 13.2 13.3 13.4
               DERIVED_FILES_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/DerivedSources
               DERIVED_FILE_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/DerivedSources
               DERIVED_SOURCES_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/DerivedSources
               DEVELOPER_APPLICATIONS_DIR = /Applications/Xcode.app/Contents/Developer/Applications
               DEVELOPER_BIN_DIR = /Applications/Xcode.app/Contents/Developer/usr/bin
               DEVELOPER_DIR = /Applications/Xcode.app/Contents/Developer
               DEVELOPER_FRAMEWORKS_DIR = /Applications/Xcode.app/Contents/Developer/Library/Frameworks
               DEVELOPER_FRAMEWORKS_DIR_QUOTED = /Applications/Xcode.app/Contents/Developer/Library/Frameworks
               DEVELOPER_LIBRARY_DIR = /Applications/Xcode.app/Contents/Developer/Library
               DEVELOPER_SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
               DEVELOPER_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Tools
               DEVELOPER_USR_DIR = /Applications/Xcode.app/Contents/Developer/usr
               DEVELOPMENT_LANGUAGE = en
               DOCUMENTATION_FOLDER_PATH = Runner.app/en.lproj/Documentation
               DONT_GENERATE_INFOPLIST_FILE = NO
               DO_HEADER_SCANNING_IN_JAM = NO
               DSTROOT = /tmp/Runner.dst
               DT_TOOLCHAIN_DIR = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
               DWARF_DSYM_FILE_NAME = Runner.app.dSYM
               DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT = NO
               DWARF_DSYM_FOLDER_PATH = /Users/lynn/code/bug/build/ios/Release-iphoneos
               EFFECTIVE_PLATFORM_NAME = -iphoneos
               EMBEDDED_CONTENT_CONTAINS_SWIFT = NO
               EMBEDDED_PROFILE_NAME = embedded.mobileprovision
               EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE = NO
               ENABLE_BITCODE = NO
               ENABLE_DEFAULT_HEADER_SEARCH_PATHS = YES
               ENABLE_HARDENED_RUNTIME = NO
               ENABLE_HEADER_DEPENDENCIES = YES
               ENABLE_NS_ASSERTIONS = NO
               ENABLE_ON_DEMAND_RESOURCES = YES
               ENABLE_STRICT_OBJC_MSGSEND = YES
               ENABLE_TESTABILITY = NO
               ENABLE_TESTING_SEARCH_PATHS = NO
               ENTITLEMENTS_ALLOWED = YES
               ENTITLEMENTS_DESTINATION = Signature
               ENTITLEMENTS_REQUIRED = YES
               EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS = .DS_Store .svn .git .hg CVS
               EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = *.nib *.lproj *.framework *.gch *.xcode* *.xcassets (*) .DS_Store CVS .svn .git .hg *.pbproj *.pbxproj
               EXECUTABLES_FOLDER_PATH = Runner.app/Executables
               EXECUTABLE_FOLDER_PATH = Runner.app
               EXECUTABLE_NAME = Runner
               EXECUTABLE_PATH = Runner.app/Runner
               EXPANDED_CODE_SIGN_IDENTITY = 
               EXPANDED_CODE_SIGN_IDENTITY_NAME = 
               EXPANDED_PROVISIONING_PROFILE = 
               FILE_LIST = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/Objects/LinkFileList
               FIXED_FILES_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/FixedFiles
               FLUTTER_APPLICATION_PATH = /Users/lynn/code/bug
               FLUTTER_BUILD_DIR = build
               FLUTTER_BUILD_NAME = 1.0.0
               FLUTTER_BUILD_NUMBER = 1
               FLUTTER_FRAMEWORK_DIR = /Users/lynn/code/flutter/bin/cache/artifacts/engine/ios
               FLUTTER_ROOT = /Users/lynn/code/flutter
               FLUTTER_TARGET = lib/main.dart
               FRAMEWORKS_FOLDER_PATH = Runner.app/Frameworks
               FRAMEWORK_FLAG_PREFIX = -framework
               FRAMEWORK_SEARCH_PATHS =  /Users/lynn/code/bug/ios/Flutter
               FRAMEWORK_VERSION = A
               FULL_PRODUCT_NAME = Runner.app
               GCC3_VERSION = 3.3
               GCC_C_LANGUAGE_STANDARD = gnu99
               GCC_INLINES_ARE_PRIVATE_EXTERN = YES
               GCC_NO_COMMON_BLOCKS = YES
               GCC_PFE_FILE_C_DIALECTS = c objective-c c++ objective-c++
               GCC_SYMBOLS_PRIVATE_EXTERN = YES
               GCC_THUMB_SUPPORT = YES
               GCC_TREAT_WARNINGS_AS_ERRORS = NO
               GCC_VERSION = com.apple.compilers.llvm.clang.1_0
               GCC_VERSION_IDENTIFIER = com_apple_compilers_llvm_clang_1_0
               GCC_WARN_64_TO_32_BIT_CONVERSION = YES
               GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
               GCC_WARN_UNDECLARED_SELECTOR = YES
               GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
               GCC_WARN_UNUSED_FUNCTION = YES
               GCC_WARN_UNUSED_VARIABLE = YES
               GENERATE_MASTER_OBJECT_FILE = NO
               GENERATE_PKGINFO_FILE = YES
               GENERATE_PROFILING_CODE = NO
               GENERATE_TEXT_BASED_STUBS = NO
               GID = 20
               GROUP = staff
               HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT = YES
               HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES = YES
               HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS = YES
               HEADERMAP_INCLUDES_PROJECT_HEADERS = YES
               HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES = YES
               HEADERMAP_USES_VFS = NO
               HIDE_BITCODE_SYMBOLS = YES
               HOME = /Users/lynn
               ICONV = /usr/bin/iconv
               INFOPLIST_EXPAND_BUILD_SETTINGS = YES
               INFOPLIST_FILE = Runner/Info.plist
               INFOPLIST_OUTPUT_FORMAT = binary
               INFOPLIST_PATH = Runner.app/Info.plist
               INFOPLIST_PREPROCESS = NO
               INFOSTRINGS_PATH = Runner.app/en.lproj/InfoPlist.strings
               INLINE_PRIVATE_FRAMEWORKS = NO
               INSTALLHDRS_COPY_PHASE = NO
               INSTALLHDRS_SCRIPT_PHASE = NO
               INSTALL_DIR = /tmp/Runner.dst/Applications
               INSTALL_GROUP = staff
               INSTALL_MODE_FLAG = u+w,go-w,a+rX
               INSTALL_OWNER = lynn
               INSTALL_PATH = /Applications
               INSTALL_ROOT = /tmp/Runner.dst
               IPHONEOS_DEPLOYMENT_TARGET = 8.0
               JAVAC_DEFAULT_FLAGS = -J-Xms64m -J-XX:NewSize=4M -J-Dfile.encoding=UTF8
               JAVA_APP_STUB = /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub
               JAVA_ARCHIVE_CLASSES = YES
               JAVA_ARCHIVE_TYPE = JAR
               JAVA_COMPILER = /usr/bin/javac
               JAVA_FOLDER_PATH = Runner.app/Java
               JAVA_FRAMEWORK_RESOURCES_DIRS = Resources
               JAVA_JAR_FLAGS = cv
               JAVA_SOURCE_SUBDIR = .
               JAVA_USE_DEPENDENCIES = YES
               JAVA_ZIP_FLAGS = -urg
               JIKES_DEFAULT_FLAGS = +E +OLDCSO
               KASAN_DEFAULT_CFLAGS = -DKASAN=1 -fsanitize=address -mllvm -asan-globals-live-support -mllvm -asan-force-dynamic-shadow
               KEEP_PRIVATE_EXTERNS = NO
               LD_DEPENDENCY_INFO_FILE = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/Objects-normal/arm64/Runner_dependency_info.dat
               LD_GENERATE_MAP_FILE = NO
               LD_MAP_FILE_PATH = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/Runner-LinkMap-normal-arm64.txt
               LD_NO_PIE = NO
               LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER = YES
               LD_RUNPATH_SEARCH_PATHS =  @executable_path/Frameworks
               LEGACY_DEVELOPER_DIR = /Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer
               LEX = lex
               LIBRARY_DEXT_INSTALL_PATH = /Library/DriverExtensions
               LIBRARY_FLAG_NOSPACE = YES
               LIBRARY_FLAG_PREFIX = -l
               LIBRARY_KEXT_INSTALL_PATH = /Library/Extensions
               LIBRARY_SEARCH_PATHS =  /Users/lynn/code/bug/ios/Flutter
               LINKER_DISPLAYS_MANGLED_NAMES = NO
               LINK_FILE_LIST_normal_arm64 = 
               LINK_FILE_LIST_normal_armv7 = 
               LINK_WITH_STANDARD_LIBRARIES = YES
               LLVM_TARGET_TRIPLE_OS_VERSION = ios8.0
               LLVM_TARGET_TRIPLE_VENDOR = apple
               LOCALIZABLE_CONTENT_DIR = 
               LOCALIZED_RESOURCES_FOLDER_PATH = Runner.app/en.lproj
               LOCALIZED_STRING_MACRO_NAMES = NSLocalizedString CFCopyLocalizedString
               LOCALIZED_STRING_SWIFTUI_SUPPORT = YES
               LOCAL_ADMIN_APPS_DIR = /Applications/Utilities
               LOCAL_APPS_DIR = /Applications
               LOCAL_DEVELOPER_DIR = /Library/Developer
               LOCAL_LIBRARY_DIR = /Library
               LOCROOT = 
               LOCSYMROOT = 
               MACH_O_TYPE = mh_execute
               MAC_OS_X_PRODUCT_BUILD_VERSION = 19D49f
               MAC_OS_X_VERSION_ACTUAL = 101503
               MAC_OS_X_VERSION_MAJOR = 101500
               MAC_OS_X_VERSION_MINOR = 1503
               METAL_LIBRARY_FILE_BASE = default
               METAL_LIBRARY_OUTPUT_DIR = /Users/lynn/code/bug/build/ios/Release-iphoneos/Runner.app
               MODULES_FOLDER_PATH = Runner.app/Modules
               MODULE_CACHE_DIR = /Users/lynn/Library/Developer/Xcode/DerivedData/ModuleCache.noindex
               MTL_ENABLE_DEBUG_INFO = NO
               NATIVE_ARCH = armv7
               NATIVE_ARCH_32_BIT = i386
               NATIVE_ARCH_64_BIT = x86_64
               NATIVE_ARCH_ACTUAL = x86_64
               NO_COMMON = YES
               OBJECT_FILE_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/Objects
               OBJECT_FILE_DIR_normal = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/Objects-normal
               OBJROOT = /Users/lynn/code/bug/build/ios
               ONLY_ACTIVE_ARCH = NO
               OS = MACOS
               OSAC = /usr/bin/osacompile
               PACKAGE_TYPE = com.apple.package-type.wrapper.application
               PASCAL_STRINGS = YES
               PATH = /Applications/Xcode.app/Contents/Developer/usr/bin:/Users/lynn/.rvm/gems/ruby-2.6.3/bin:/Users/lynn/.rvm/gems/ruby-2.6.3@global/bin:/Users/lynn/.rvm/rubies/ruby-2.6.3/bin:/Users/lynn/Library/Android/sdk/tools:/Users/lynn/Library/Android/sdk/platform-tools:/usr/local/opt/python/libexec/bin:/Users/lynn/.elan/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Users/lynn/.rvm/bin:/Users/lynn/code/flutter/bin:/Users/lynn/.pub-cache/bin:/Applications/Visual Studio Code.app/Contents/Resources/app/bin:/usr/local/Cellar/node/12.5.0/bin:/Users/lynn/code/depot_tools
               PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES = /usr/include /usr/local/include /System/Library/Frameworks /System/Library/PrivateFrameworks /Applications/Xcode.app/Contents/Developer/Headers /Applications/Xcode.app/Contents/Developer/SDKs /Applications/Xcode.app/Contents/Developer/Platforms
               PBDEVELOPMENTPLIST_PATH = Runner.app/pbdevelopment.plist
               PFE_FILE_C_DIALECTS = objective-c
               PKGINFO_FILE_PATH = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/PkgInfo
               PKGINFO_PATH = Runner.app/PkgInfo
               PLATFORM_DEVELOPER_APPLICATIONS_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Applications
               PLATFORM_DEVELOPER_BIN_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
               PLATFORM_DEVELOPER_LIBRARY_DIR = /Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library
               PLATFORM_DEVELOPER_SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
               PLATFORM_DEVELOPER_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Tools
               PLATFORM_DEVELOPER_USR_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr
               PLATFORM_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
               PLATFORM_DISPLAY_NAME = iOS
               PLATFORM_NAME = iphoneos
               PLATFORM_PREFERRED_ARCH = arm64
               PLATFORM_PRODUCT_BUILD_VERSION = 17E8258
               PLIST_FILE_OUTPUT_FORMAT = binary
               PLUGINS_FOLDER_PATH = Runner.app/PlugIns
               PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES
               PRECOMP_DESTINATION_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/PrefixHeaders
               PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO
               PRIVATE_HEADERS_FOLDER_PATH = Runner.app/PrivateHeaders
               PRODUCT_BUNDLE_IDENTIFIER = com.example.bug
               PRODUCT_BUNDLE_PACKAGE_TYPE = APPL
               PRODUCT_MODULE_NAME = Runner
               PRODUCT_NAME = Runner
               PRODUCT_SETTINGS_PATH = /Users/lynn/code/bug/ios/Runner/Info.plist
               PRODUCT_TYPE = com.apple.product-type.application
               PROFILING_CODE = NO
               PROJECT = Runner
               PROJECT_DERIVED_FILE_DIR = /Users/lynn/code/bug/build/ios/Runner.build/DerivedSources
               PROJECT_DIR = /Users/lynn/code/bug/ios
               PROJECT_FILE_PATH = /Users/lynn/code/bug/ios/Runner.xcodeproj
               PROJECT_NAME = Runner
               PROJECT_TEMP_DIR = /Users/lynn/code/bug/build/ios/Runner.build
               PROJECT_TEMP_ROOT = /Users/lynn/code/bug/build/ios
               PROVISIONING_PROFILE_REQUIRED = YES
               PUBLIC_HEADERS_FOLDER_PATH = Runner.app/Headers
               RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS = YES
               REMOVE_CVS_FROM_RESOURCES = YES
               REMOVE_GIT_FROM_RESOURCES = YES
               REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES = YES
               REMOVE_HG_FROM_RESOURCES = YES
               REMOVE_SVN_FROM_RESOURCES = YES
               RESOURCE_RULES_REQUIRED = YES
               REZ_COLLECTOR_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/ResourceManagerResources
               REZ_OBJECTS_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build/ResourceManagerResources/Objects
               SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = NO
               SCRIPTS_FOLDER_PATH = Runner.app/Scripts
               SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.4.sdk
               SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.4.sdk
               SDK_DIR_iphoneos13_4 = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.4.sdk
               SDK_NAME = iphoneos13.4
               SDK_NAMES = iphoneos13.4
               SDK_PRODUCT_BUILD_VERSION = 17E8258
               SDK_VERSION = 13.4
               SDK_VERSION_ACTUAL = 130400
               SDK_VERSION_MAJOR = 130000
               SDK_VERSION_MINOR = 400
               SED = /usr/bin/sed
               SEPARATE_STRIP = NO
               SEPARATE_SYMBOL_EDIT = NO
               SET_DIR_MODE_OWNER_GROUP = YES
               SET_FILE_MODE_OWNER_GROUP = NO
               SHALLOW_BUNDLE = YES
               SHARED_DERIVED_FILE_DIR = /Users/lynn/code/bug/build/ios/Release-iphoneos/DerivedSources
               SHARED_FRAMEWORKS_FOLDER_PATH = Runner.app/SharedFrameworks
               SHARED_PRECOMPS_DIR = /Users/lynn/code/bug/build/ios/SharedPrecompiledHeaders
               SHARED_SUPPORT_FOLDER_PATH = Runner.app/SharedSupport
               SKIP_INSTALL = NO
               SOURCE_ROOT = /Users/lynn/code/bug/ios
               SRCROOT = /Users/lynn/code/bug/ios
               STRINGS_FILE_OUTPUT_ENCODING = binary
               STRIP_BITCODE_FROM_COPIED_FILES = YES
               STRIP_INSTALLED_PRODUCT = YES
               STRIP_STYLE = all
               STRIP_SWIFT_SYMBOLS = YES
               SUPPORTED_DEVICE_FAMILIES = 1,2
               SUPPORTED_PLATFORMS = iphoneos
               SUPPORTS_MACCATALYST = NO
               SUPPORTS_TEXT_BASED_API = NO
               SWIFT_COMPILATION_MODE = wholemodule
               SWIFT_OBJC_BRIDGING_HEADER = Runner/Runner-Bridging-Header.h
               SWIFT_OPTIMIZATION_LEVEL = -O
               SWIFT_PLATFORM_TARGET_PREFIX = ios
               SWIFT_VERSION = 5.0
               SYMROOT = /Users/lynn/code/bug/build/ios
               SYSTEM_ADMIN_APPS_DIR = /Applications/Utilities
               SYSTEM_APPS_DIR = /Applications
               SYSTEM_CORE_SERVICES_DIR = /System/Library/CoreServices
               SYSTEM_DEMOS_DIR = /Applications/Extras
               SYSTEM_DEVELOPER_APPS_DIR = /Applications/Xcode.app/Contents/Developer/Applications
               SYSTEM_DEVELOPER_BIN_DIR = /Applications/Xcode.app/Contents/Developer/usr/bin
               SYSTEM_DEVELOPER_DEMOS_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Utilities/Built Examples
               SYSTEM_DEVELOPER_DIR = /Applications/Xcode.app/Contents/Developer
               SYSTEM_DEVELOPER_DOC_DIR = /Applications/Xcode.app/Contents/Developer/ADC Reference Library
               SYSTEM_DEVELOPER_GRAPHICS_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Graphics Tools
               SYSTEM_DEVELOPER_JAVA_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Java Tools
               SYSTEM_DEVELOPER_PERFORMANCE_TOOLS_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Performance Tools
               SYSTEM_DEVELOPER_RELEASENOTES_DIR = /Applications/Xcode.app/Contents/Developer/ADC Reference Library/releasenotes
               SYSTEM_DEVELOPER_TOOLS = /Applications/Xcode.app/Contents/Developer/Tools
               SYSTEM_DEVELOPER_TOOLS_DOC_DIR = /Applications/Xcode.app/Contents/Developer/ADC Reference Library/documentation/DeveloperTools
               SYSTEM_DEVELOPER_TOOLS_RELEASENOTES_DIR = /Applications/Xcode.app/Contents/Developer/ADC Reference Library/releasenotes/DeveloperTools
               SYSTEM_DEVELOPER_USR_DIR = /Applications/Xcode.app/Contents/Developer/usr
               SYSTEM_DEVELOPER_UTILITIES_DIR = /Applications/Xcode.app/Contents/Developer/Applications/Utilities
               SYSTEM_DEXT_INSTALL_PATH = /System/Library/DriverExtensions
               SYSTEM_DOCUMENTATION_DIR = /Library/Documentation
               SYSTEM_KEXT_INSTALL_PATH = /System/Library/Extensions
               SYSTEM_LIBRARY_DIR = /System/Library
               TAPI_VERIFY_MODE = ErrorsOnly
               TARGETED_DEVICE_FAMILY = 1,2
               TARGETNAME = Runner
               TARGET_BUILD_DIR = /Users/lynn/code/bug/build/ios/Release-iphoneos
               TARGET_NAME = Runner
               TARGET_TEMP_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build
               TEMP_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build
               TEMP_FILES_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build
               TEMP_FILE_DIR = /Users/lynn/code/bug/build/ios/Runner.build/Release-iphoneos/Runner.build
               TEMP_ROOT = /Users/lynn/code/bug/build/ios
               TEST_FRAMEWORK_SEARCH_PATHS =  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks
               TEST_LIBRARY_SEARCH_PATHS =  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib
               TOOLCHAIN_DIR = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
               TREAT_MISSING_BASELINES_AS_TEST_FAILURES = NO
               UID = 501
               UNLOCALIZED_RESOURCES_FOLDER_PATH = Runner.app
               UNSTRIPPED_PRODUCT = NO
               USER = lynn
               USER_APPS_DIR = /Users/lynn/Applications
               USER_LIBRARY_DIR = /Users/lynn/Library
               USE_DYNAMIC_NO_PIC = YES
               USE_HEADERMAP = YES
               USE_HEADER_SYMLINKS = NO
               USE_LLVM_TARGET_TRIPLES = YES
               USE_LLVM_TARGET_TRIPLES_FOR_CLANG = YES
               USE_LLVM_TARGET_TRIPLES_FOR_LD = YES
               USE_LLVM_TARGET_TRIPLES_FOR_TAPI = YES
               VALIDATE_PRODUCT = YES
               VALIDATE_WORKSPACE = NO
               VALID_ARCHS = arm64 arm64e armv7 armv7s
               VERBOSE_PBXCP = NO
               VERSIONING_SYSTEM = apple-generic
               VERSIONPLIST_PATH = Runner.app/version.plist
               VERSION_INFO_BUILDER = lynn
               VERSION_INFO_FILE = Runner_vers.c
               VERSION_INFO_STRING = "@(#)PROGRAM:Runner  PROJECT:Runner-1"
               WRAPPER_EXTENSION = app
               WRAPPER_NAME = Runner.app
               WRAPPER_SUFFIX = .app
               WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES = NO
               XCODE_APP_SUPPORT_DIR = /Applications/Xcode.app/Contents/Developer/Library/Xcode
               XCODE_PRODUCT_BUILD_VERSION = 11E503a
               XCODE_VERSION_ACTUAL = 1141
               XCODE_VERSION_MAJOR = 1100
               XCODE_VERSION_MINOR = 1140
               XPCSERVICES_FOLDER_PATH = Runner.app/XPCServices
               YACC = yacc
               arch = arm64
               variant = normal


           2020-04-22 20:23:31.294 xcodebuild[24338:230837] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fdfacc52120), Lynn’s iPhone, iPhone, 13.4 (17E5223h), 00008020-001E58541478003A> == Underlying device preparation errors ==
           2020-04-22 20:23:31.294 xcodebuild[24338:230837] [MT] iPhoneConnect: Failed _shouldMakeReadyForDevelopment check even though device is not locked by passcode.
           Domain: com.apple.platform.iphoneos
           Code: 5
           Failure Reason: allowsSecureServices: 1. isConnected: 0. Platform: <DVTPlatform:0x7fdfacf21520:'com.apple.platform.iphoneos':<DVTFilePath:0x7fdfacf214a0:'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform'>>. DTDKDeviceIdentifierIsIDID: 0
           User Info: {
               DVTDeviceDescription = "\Ud83d\Udcf1<DVTiOSDevice (0x7fdfacc52120), Lynn\U2019s iPhone, iPhone, 13.1.3 (17A878), 00008020-001E58541478003A>";
           }
           --
           2020-04-22 20:23:31.294 xcodebuild[24338:230837] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fdfacc52120), Lynn’s iPhone, iPhone, 13.4 (17E5223h), 00008020-001E58541478003A> == END: Underlying device preparation errors ==
           2020-04-22 20:23:31.351 xcodebuild[24338:230837] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fdfacc52120), Lynn’s iPhone, iPhone, 13.4 (17E5223h), 00008020-001E58541478003A> == Underlying device preparation errors ==
           2020-04-22 20:23:31.351 xcodebuild[24338:230837] [MT] iPhoneConnect: Failed _shouldMakeReadyForDevelopment check even though device is not locked by passcode.
           Domain: com.apple.platform.iphoneos
           Code: 5
           Failure Reason: allowsSecureServices: 1. isConnected: 0. Platform: <DVTPlatform:0x7fdfacf21520:'com.apple.platform.iphoneos':<DVTFilePath:0x7fdfacf214a0:'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform'>>. DTDKDeviceIdentifierIsIDID: 0
           User Info: {
               DVTDeviceDescription = "\Ud83d\Udcf1<DVTiOSDevice (0x7fdfacc52120), Lynn\U2019s iPhone, iPhone, 13.1.3 (17A878), 00008020-001E58541478003A>";
           }
           --
           2020-04-22 20:23:31.351 xcodebuild[24338:230837] [MT] iPhoneConnect: 📱<DVTiOSDevice (0x7fdfacc52120), Lynn’s iPhone, iPhone, 13.4 (17E5223h), 00008020-001E58541478003A> == END: Underlying device preparation errors ==
[  +46 ms] Launching lib/main.dart on SM N975U1 in debug mode...
[   +6 ms] executing: /Users/lynn/Library/Android/sdk/build-tools/29.0.2/aapt dump xmltree /Users/lynn/code/bug/build/app/outputs/apk/app.apk AndroidManifest.xml
[  +15 ms] Exit code 0 from: /Users/lynn/Library/Android/sdk/build-tools/29.0.2/aapt dump xmltree /Users/lynn/code/bug/build/app/outputs/apk/app.apk AndroidManifest.xml
[        ] N: android=http://schemas.android.com/apk/res/android
             E: manifest (line=2)
               A: android:versionCode(0x0101021b)=(type 0x10)0x1
               A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
               A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1c
               A: android:compileSdkVersionCodename(0x01010573)="9" (Raw: "9")
               A: package="com.example.bug" (Raw: "com.example.bug")
               A: platformBuildVersionCode=(type 0x10)0x1c
               A: platformBuildVersionName=(type 0x10)0x9
               E: uses-sdk (line=7)
                 A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
                 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c
               E: uses-permission (line=14)
                 A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
               E: application (line=22)
                 A: android:label(0x01010001)="bug" (Raw: "bug")
                 A: android:icon(0x01010002)=@0x7f080000
                 A: android:name(0x01010003)="io.flutter.app.FlutterApplication" (Raw: "io.flutter.app.FlutterApplication")
                 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
                 A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw: "androidx.core.app.CoreComponentFactory")
                 E: activity (line=28)
                   A: android:theme(0x01010000)=@0x7f0a0000
                   A: android:name(0x01010003)="com.example.bug.MainActivity" (Raw: "com.example.bug.MainActivity")
                   A: android:launchMode(0x0101001d)=(type 0x10)0x1
                   A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
                   A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
                   A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
                   E: intent-filter (line=35)
                     E: action (line=36)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
                     E: category (line=38)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
                 E: meta-data (line=45)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
[   +6 ms] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y shell -x logcat -v time -t 1
[ +122 ms] Exit code 0 from: /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y shell -x logcat -v time -t 1
[        ] --------- beginning of system
           04-22 20:23:34.698 D/io_stats( 3019): !@   8,0 r 152597 8511532 w 476567 15312344 d 134134 489763392 f 165140 212880 iot 449860 304957 th 102400 0 0 pt 0 inp 0 0 142763.754
[   +5 ms] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb version
[        ] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y logcat -v time -T 04-22 20:23:34.698
[  +10 ms] Android Debug Bridge version 1.0.41
           Version 29.0.5-5949299
           Installed as /Users/lynn/Library/Android/sdk/platform-tools/adb
[   +2 ms] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb start-server
[   +5 ms] Building APK
[  +14 ms] Running Gradle task 'assembleDebug'...
[   +1 ms] gradle.properties already sets `android.enableR8`
[   +3 ms] Using gradle from /Users/lynn/code/bug/android/gradlew.
[  +10 ms] executing: /usr/bin/plutil -convert json -o - /Applications/Android Studio.app/Contents/Info.plist
[   +8 ms] Exit code 0 from: /usr/bin/plutil -convert json -o - /Applications/Android Studio.app/Contents/Info.plist
[        ] {"CFBundleName":"Android Studio","JVMOptions":{"ClassPath":"$APP_PACKAGE\/Contents\/lib\/bootstrap.jar:$APP_PACKAGE\/Contents\/lib\/extensions.jar:$APP_PACKAGE\/Contents\/lib\/util.jar:$APP_PACKAGE\/Contents\/lib\/jdom.jar:$APP_PACKAGE\/Contents\/lib\/log4j.jar:$APP_PACKAGE\/Contents\/lib\/trove4j.jar:$APP_PACKAGE\/Contents\/lib\/jna.jar","JVMVersion":"1.8*,1.8+","WorkingDirectory":"$APP_PACKAGE\/Contents\/bin","MainClass":"com.intellij.idea.Main","Properties":{"idea.paths.selector":"AndroidStudio3.5","idea.executable":"studio","idea.platform.prefix":"AndroidStudio","idea.home.path":"$APP_PACKAGE\/Contents"}},"LSArchitecturePriority":["x86_64"],"CFBundleVersion":"AI-191.8026.42.35.5977832","CFBundleDevelopmentRegion":"English","CFBundleDocumentTypes":[{"CFBundleTypeName":"Android Studio Project File","CFBundleTypeExtensions":["ipr"],"CFBundleTypeRole":"Editor","CFBundleTypeIconFile":"studio.icns"},{"CFBundleTypeName":"All documents","CFBundleTypeExtensions":["*"],"CFBundleTypeOSTypes":["****"],"CFBundleTypeRole":"Editor","LSTypeIsPackage":false}],"NSSupportsAutomaticGraphicsSwitching":true,"CFBundlePackageType":"APPL","CFBundleIconFile":"studio.icns","NSHighResolutionCapable":true,"CFBundleShortVersionString":"3.5","CFBundleInfoDictionaryVersion":"6.0","CFBundleExecutable":"studio","LSRequiresNativeExecution":"YES","CFBundleURLTypes":[{"CFBundleTypeRole":"Editor","CFBundleURLName":"Stacktrace","CFBundleURLSchemes":["idea"]}],"CFBundleIdentifier":"com.google.android.studio","LSApplicationCategoryType":"public.app-category.developer-tools","CFBundleSignature":"????","LSMinimumSystemVersion":"10.8","CFBundleGetInfoString":"Android Studio 3.5, build AI-191.8026.42.35.5977832. Copyright JetBrains s.r.o., (c) 2000-2019"}
[   +3 ms] executing: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java -version
[  +56 ms] Exit code 0 from: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java -version
[        ] openjdk version "1.8.0_202-release"
           OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
           OpenJDK 64-Bit Server VM (build 25.202-b49-5587405, mixed mode)
[   +1 ms] executing: [/Users/lynn/code/bug/android/] /Users/lynn/code/bug/android/gradlew -Pverbose=true -Ptarget=/Users/lynn/code/bug/lib/main.dart -Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root -Ptarget-platform=android-arm64 assembleDebug
[ +830 ms] > Task :app:compileFlutterBuildDebug UP-TO-DATE
[        ] > Task :app:packLibsflutterBuildDebug UP-TO-DATE
[        ] > Task :app:preBuild UP-TO-DATE
[        ] > Task :app:preDebugBuild UP-TO-DATE
[        ] > Task :app:compileDebugAidl NO-SOURCE
[        ] > Task :app:checkDebugManifest UP-TO-DATE
[        ] > Task :app:compileDebugRenderscript NO-SOURCE
[        ] > Task :app:generateDebugBuildConfig UP-TO-DATE
[        ] > Task :app:cleanMergeDebugAssets
[        ] > Task :app:mergeDebugShaders UP-TO-DATE
[        ] > Task :app:compileDebugShaders UP-TO-DATE
[        ] > Task :app:generateDebugAssets UP-TO-DATE
[        ] > Task :app:mergeDebugAssets
[ +187 ms] > Task :app:copyFlutterAssetsDebug
[        ] > Task :app:mainApkListPersistenceDebug UP-TO-DATE
[        ] > Task :app:generateDebugResValues UP-TO-DATE
[        ] > Task :app:generateDebugResources UP-TO-DATE
[        ] > Task :app:mergeDebugResources UP-TO-DATE
[        ] > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
[        ] > Task :app:processDebugManifest UP-TO-DATE
[        ] > Task :app:processDebugResources UP-TO-DATE
[        ] > Task :app:compileDebugKotlin UP-TO-DATE
[        ] > Task :app:javaPreCompileDebug UP-TO-DATE
[        ] > Task :app:compileDebugJavaWithJavac UP-TO-DATE
[        ] > Task :app:compileDebugSources UP-TO-DATE
[        ] > Task :app:processDebugJavaRes NO-SOURCE
[ +101 ms] > Task :app:mergeDebugJavaResource UP-TO-DATE
[        ] > Task :app:checkDebugDuplicateClasses UP-TO-DATE
[        ] > Task :app:desugarDebugFileDependencies UP-TO-DATE
[        ] > Task :app:mergeExtDexDebug UP-TO-DATE
[        ] > Task :app:transformClassesWithDexBuilderForDebug UP-TO-DATE
[        ] > Task :app:mergeDexDebug UP-TO-DATE
[        ] > Task :app:validateSigningDebug UP-TO-DATE
[        ] > Task :app:signingConfigWriterDebug UP-TO-DATE
[        ] > Task :app:mergeDebugJniLibFolders UP-TO-DATE
[        ] > Task :app:mergeDebugNativeLibs UP-TO-DATE
[        ] > Task :app:stripDebugDebugSymbols UP-TO-DATE
[  +97 ms] > Task :app:packageDebug UP-TO-DATE
[        ] > Task :app:assembleDebug UP-TO-DATE
[  +21 ms] BUILD SUCCESSFUL in 1s
[        ] 30 actionable tasks: 3 executed, 27 up-to-date
[ +378 ms] Running Gradle task 'assembleDebug'... (completed in 1.7s)
[  +60 ms] calculateSha: LocalDirectory: '/Users/lynn/code/bug/build/app/outputs/apk'/app.apk
[  +41 ms] calculateSha: reading file took 40us
[ +526 ms] calculateSha: computing sha took 526us
[   +2 ms] ✓ Built build/app/outputs/apk/debug/app-debug.apk.
[   +2 ms] executing: /Users/lynn/Library/Android/sdk/build-tools/29.0.2/aapt dump xmltree /Users/lynn/code/bug/build/app/outputs/apk/app.apk AndroidManifest.xml
[   +7 ms] Exit code 0 from: /Users/lynn/Library/Android/sdk/build-tools/29.0.2/aapt dump xmltree /Users/lynn/code/bug/build/app/outputs/apk/app.apk AndroidManifest.xml
[        ] N: android=http://schemas.android.com/apk/res/android
             E: manifest (line=2)
               A: android:versionCode(0x0101021b)=(type 0x10)0x1
               A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
               A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1c
               A: android:compileSdkVersionCodename(0x01010573)="9" (Raw: "9")
               A: package="com.example.bug" (Raw: "com.example.bug")
               A: platformBuildVersionCode=(type 0x10)0x1c
               A: platformBuildVersionName=(type 0x10)0x9
               E: uses-sdk (line=7)
                 A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
                 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c
               E: uses-permission (line=14)
                 A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
               E: application (line=22)
                 A: android:label(0x01010001)="bug" (Raw: "bug")
                 A: android:icon(0x01010002)=@0x7f080000
                 A: android:name(0x01010003)="io.flutter.app.FlutterApplication" (Raw: "io.flutter.app.FlutterApplication")
                 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
                 A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw: "androidx.core.app.CoreComponentFactory")
                 E: activity (line=28)
                   A: android:theme(0x01010000)=@0x7f0a0000
                   A: android:name(0x01010003)="com.example.bug.MainActivity" (Raw: "com.example.bug.MainActivity")
                   A: android:launchMode(0x0101001d)=(type 0x10)0x1
                   A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
                   A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
                   A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
                   E: intent-filter (line=35)
                     E: action (line=36)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
                     E: category (line=38)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
                 E: meta-data (line=45)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
[        ] Stopping app 'app.apk' on SM N975U1.
[        ] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y shell am force-stop com.example.bug
[ +124 ms] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y shell pm list packages com.example.bug
[ +119 ms] package:com.example.bug
[   +4 ms] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y shell cat /data/local/tmp/sky.com.example.bug.sha1
[  +59 ms] c89425bb52249c60dc6f1fdb194ab2681711ebe9
[        ] Latest build already installed.
[        ] SM N975U1 startApp
[   +2 ms] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y shell am start -a android.intent.action.RUN -f 0x20000000 --ez enable-background-compilation true --ez enable-dart-profiling true --ez enable-checked-mode true --ez verify-entry-points true com.example.bug/com.example.bug.MainActivity
[ +113 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000 cmp=com.example.bug/.MainActivity (has extras) }
[        ] Waiting for observatory port to be available...
[ +339 ms] D/FlutterActivity(16944): Using the launch theme as normal theme.
[   +5 ms] D/FlutterActivityAndFragmentDelegate(16944): Setting up FlutterEngine.
[        ] D/FlutterActivityAndFragmentDelegate(16944): No preferred FlutterEngine was provided. Creating a new FlutterEngine for this FlutterFragment.
[ +217 ms] D/FlutterActivityAndFragmentDelegate(16944): Attaching FlutterEngine to the Activity that owns this Fragment.
[  +93 ms] D/FlutterView(16944): Attaching to a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@c238fe
[  +29 ms] D/FlutterActivityAndFragmentDelegate(16944): Executing Dart entrypoint: main, and sending initial route: /
[  +24 ms] D/FlutterView(16944): Detaching from a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@c238fe
[ +164 ms] Observatory URL on device: http://127.0.0.1:33255/xCouSbz1TRs=/
[   +1 ms] executing: /Users/lynn/Library/Android/sdk/platform-tools/adb -s RF8MA14YK0Y forward tcp:0 tcp:33255
[   +6 ms] 56141
[        ] Forwarded host port 56141 to device port 33255 for Observatory
[   +8 ms] Connecting to service protocol: http://127.0.0.1:56141/xCouSbz1TRs=/
[ +465 ms] Successfully connected to service protocol: http://127.0.0.1:56141/xCouSbz1TRs=/
[   +2 ms] Sending to VM service: getVM({})
[   +9 ms] Result: {type: VM, name: vm, architectureBits: 64, hostCPU: Qualcomm Technologies, Inc SM8150, operatingSystem: android, targetCPU: arm64, version: 2.7.2 (Mon Mar 23 22:11:27 2020 +0100) on "android_arm64", _profilerMode: VM, _nativeZoneMemoryUsage: 0, pi...
[   +4 ms] Sending to VM service: getIsolate({isolateId: isolates/3439426844741283})
[   +2 ms] Sending to VM service: _flutter.listViews({})
[  +10 ms] Result: {type: FlutterViewList, views: [{type: FlutterView, id: _flutterView/0x76fb319820, isolate: {type: @Isolate, fixedId: true, id: isolates/3439426844741283, name: main.dart$main-3439426844741283, number: 3439426844741283}}]}
[   +5 ms] DevFS: Creating new filesystem on the device (null)
[        ] Sending to VM service: _createDevFS({fsName: bug})
[  +28 ms] Result: {type: Isolate, id: isolates/3439426844741283, name: main, number: 3439426844741283, _originNumber: 3439426844741283, startTime: 1587579818211, _heaps: {new: {type: HeapSpace, name: new, vmName: Scavenger, collections: 0, avgCollectionPeriodMillis...
[  +50 ms] I/Choreographer(16944): Skipped 45 frames!  The application may be doing too much work on its main thread.
[   +5 ms] D/ViewRootImpl@f27be80[MainActivity](16944): Relayout returned: old=[0,0][1080,2280] new=[0,0][1080,2280] req=(1080,2280)8 dur=8 res=0x1 s={false 0} ch=false
[   +1 ms] Result: {type: FileSystem, name: bug, uri: file:///data/user/0/com.example.bug/code_cache/bugCIRBSQ/bug/}
[        ] DevFS: Created new filesystem on the device (file:///data/user/0/com.example.bug/code_cache/bugCIRBSQ/bug/)
[   +1 ms] Updating assets
[  +71 ms] Syncing files to device SM N975U1...
[   +1 ms] Scanning asset files
[   +1 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +5 ms] /Users/lynn/code/flutter/bin/cache/dart-sdk/bin/dart /Users/lynn/code/flutter/bin/cache/artifacts/engine/darwin-x64/frontend_server.dart.snapshot --sdk-root /Users/lynn/code/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter -Ddart.developer.causal_async_stacks=true --output-dill /var/folders/3j/3gdscc_x69180j83k_yt1ss00000gn/T/flutter_tool.GumQmF/app.dill --packages /Users/lynn/code/bug/.packages -Ddart.vm.profile=false -Ddart.vm.product=false --bytecode-options=source-positions,local-var-info,debugger-stops,instance-field-initializers,keep-unreachable-code,avoid-closure-call-instructions --enable-asserts --track-widget-creation --filesystem-scheme org-dartlang-root
[   +3 ms] <- compile package:bug/main.dart
[+4138 ms] Updating files
[ +204 ms] DevFS: Sync finished
[   +1 ms] Syncing files to device SM N975U1... (completed in 4,354ms, longer than expected)
[        ] Synced 0.9MB.
[        ] Sending to VM service: _flutter.listViews({})
[   +5 ms] Result: {type: FlutterViewList, views: [{type: FlutterView, id: _flutterView/0x76fb319820, isolate: {type: @Isolate, fixedId: true, id: isolates/3439426844741283, name: main.dart$main-3439426844741283, number: 3439426844741283}}]}
[        ] <- accept
[        ] Connected to _flutterView/0x76fb319820.
[   +1 ms] 🔥  To hot reload changes while running, press "r". To hot restart (and rebuild state), press "R".
[        ] An Observatory debugger and profiler on SM N975U1 is available at: http://127.0.0.1:56141/xCouSbz1TRs=/
[        ] For a more detailed help message, press "h". To detach, press "d"; to quit, press "q".
[+5461 ms] D/SurfaceView(16944): onWindowVisibilityChanged(4) false io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ......ID 0,0-1080,2154} of ViewRootImpl@f27be80[MainActivity]
[  +11 ms] D/ViewRootImpl@f27be80[MainActivity](16944): Relayout returned: old=[0,0][1080,2280] new=[0,0][1080,2280] req=(1080,2280)4 dur=2 res=0x1 s={false 0} ch=false
[        ] D/ViewRootImpl@f27be80[MainActivity](16944): stopped(false) old=true
[        ] D/SurfaceView(16944): windowStopped(false) false io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ......ID 0,0-1080,2154} of ViewRootImpl@f27be80[MainActivity]
[        ] D/ViewRootImpl@f27be80[MainActivity](16944): stopped(false) old=false
[   +7 ms] D/SurfaceView(16944): onWindowVisibilityChanged(0) true io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ......ID 0,0-1080,2154} of ViewRootImpl@f27be80[MainActivity]
[        ] D/ViewRootImpl@f27be80[MainActivity](16944): Relayout returned: old=[0,0][1080,2280] new=[0,0][1080,2280] req=(1080,2280)0 dur=6 res=0x7 s={true 508624936960} ch=true
[        ] D/OpenGLRenderer(16944): createReliableSurface : 0x7667e1bbc0, 0x766c68a000
[   +4 ms] D/SurfaceView(16944): surfaceCreated 1 #8 io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ......ID 0,0-1080,2154}
[        ] D/SurfaceView(16944): surfaceChanged (1080,2154) 1 #8 io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ......ID 0,0-1080,2154}
[   +9 ms] W/Gralloc3(16944): mapper 3.x is not supported
[  +10 ms] D/FlutterView(16944): Attaching to a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@c238fe
[  +16 ms] D/ViewRootImpl@f27be80[MainActivity](16944): MSG_RESIZED: frame=[0,0][1080,2280] ci=[0,85][0,126] vi=[0,85][0,126] or=1
[  +63 ms] D/ViewRootImpl@f27be80[MainActivity](16944): MSG_WINDOW_FOCUS_CHANGED 1 1
[        ] D/InputMethodManager(16944): prepareNavigationBarInfo() DecorView@c2f6514[MainActivity]
[        ] D/InputMethodManager(16944): getNavigationBarColor() -855310
[   +2 ms] D/InputMethodManager(16944): prepareNavigationBarInfo() DecorView@c2f6514[MainActivity]
[        ] D/InputMethodManager(16944): getNavigationBarColor() -855310
[        ] V/InputMethodManager(16944): Starting input: tba=com.example.bug ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
[        ] D/InputMethodManager(16944): startInputInner - Id : 0
[        ] I/InputMethodManager(16944): startInputInner - mService.startInputOrWindowGainedFocus
[  +21 ms] D/InputMethodManager(16944): prepareNavigationBarInfo() DecorView@c2f6514[MainActivity]
[   +1 ms] D/InputMethodManager(16944): getNavigationBarColor() -855310
[        ] V/InputMethodManager(16944): Starting input: tba=com.example.bug ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
[        ] D/InputMethodManager(16944): startInputInner - Id : 0
[+3126 ms] D/ViewRootImpl@f27be80[MainActivity](16944): MSG_WINDOW_FOCUS_CHANGED 0 1
[        ] D/InputMethodManager(16944): prepareNavigationBarInfo() DecorView@c2f6514[MainActivity]
[        ] D/InputMethodManager(16944): getNavigationBarColor() -855310
[  +75 ms] D/InputTransport(16944): Input channel destroyed: 'ClientS', fd=98
[ +305 ms] D/SurfaceView(16944): onWindowVisibilityChanged(8) false io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ........ 0,0-1080,2154} of ViewRootImpl@f27be80[MainActivity]
[   +2 ms] D/SurfaceView(16944): surfaceDestroyed callback.size 1 #2 io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ........ 0,0-1080,2154}
[   +6 ms] D/SurfaceView(16944): remove() io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ........ 0,0-1080,2154} Surface(name=SurfaceView - com.example.bug/com.example.bug.MainActivity@784e70a@0)/@0x67fef3
[  +14 ms] D/ViewRootImpl@f27be80[MainActivity](16944): Relayout returned: old=[0,0][1080,2280] new=[0,0][1080,2280] req=(1080,2280)8 dur=7 res=0x5 s={false 0} ch=true
[   +1 ms] D/ViewRootImpl@f27be80[MainActivity](16944): stopped(true) old=false
[   +1 ms] D/SurfaceView(16944): windowStopped(true) false io.flutter.embedding.android.FlutterSurfaceView{784e70a V.E...... ........ 0,0-1080,2154} of ViewRootImpl@f27be80[MainActivity]
[        ] D/FlutterView(16944): Detaching from a FlutterEngine: io.flutter.embedding.engine.FlutterEngine@c238fe
[+49224 ms] DevFS: Deleting filesystem on the device (file:///data/user/0/com.example.bug/code_cache/bugCIRBSQ/bug/)
[        ] Sending to VM service: _deleteDevFS({fsName: bug})
[  +57 ms] Result: {type: Success}
[        ] DevFS: Deleted filesystem on the device (file:///data/user/0/com.example.bug/code_cache/bugCIRBSQ/bug/)
[   +7 ms] Sending to VM service: ext.flutter.exit({isolateId: isolates/3439426844741283})
[ +489 ms] Service protocol connection closed.
[+1517 ms] Application finished.
[   +2 ms] "flutter run" took 72,745ms.

The code compiles fine for me. I don't know why DefaultFocusTraversal is missing(?) for you (what is the error?). It's a standard Flutter widget. For me it's imported via this path:

import 'package:flutter/material.dart';
→ line 129: export 'widgets.dart';
  → line 40: export 'src/widgets/focus_traversal.dart';

But I realized it has no effect anyway, so please try this.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key key}) : super(key: key);

  Widget button(String t) => Padding(
        padding: EdgeInsets.symmetric(horizontal: 2.0),
        child: RaisedButton(color: Colors.green, child: Text(t), onPressed: () {}),
      );

  Widget triangle() => Column(children: [
        Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [button('a'), button('b'), button('c')]),
        Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [button('d'), button('e'), button('f')]),
      ]);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Column(mainAxisAlignment: MainAxisAlignment.center, children: [
          triangle(),
          Transform.scale(scale: 0.5, alignment: Alignment.topCenter, child: triangle()),
        ]),
      ),
    );
  }
}

@no-response no-response bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Apr 22, 2020
@TahaTesser TahaTesser changed the title Focus navigation is wrong for scaled-down widgets Focus navigation is wrong for scaled-down widgets using gamepad Apr 23, 2020
@TahaTesser
Copy link
Member

TahaTesser commented Apr 23, 2020

Hi @lynn
Here i tried to reproduce the issue using bluetooth keyboard

Using Tab to switch

2020-04-23-14-01-44

Using Up and down arrow keys to switch (here we can see focus direction scaled down widgets)

2020-04-23-14-02-13

Can you please confirm the issue is same as this?
Thank you

@TahaTesser TahaTesser added the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Apr 23, 2020
@lynn
Copy link
Author

lynn commented Apr 23, 2020

@TahaTesser yes, I think I can see the issue in your second GIF. To see it most clearly, try moving with the arrow keys like this around the small widgets:

a ← b ← c
↓       ↑
d → e → f

Sometimes, it will jump from e to c or something.

EDIT: Actually, it looks like there is an issue with Tab too? In your GIF, the order is different in the small widgets (adbecf instead of abcdef).

@no-response no-response bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Apr 23, 2020
@jonahwilliams
Copy link
Member

@gspencergoog

@gspencergoog gspencergoog added the f: focus Focus traversal, gaining or losing focus label Apr 23, 2020
@gspencergoog
Copy link
Contributor

Yes, I think this is because the focus traversal code isn't taking the context's transform into account when building the geometry to decide which widget to visit next.

@gspencergoog gspencergoog changed the title Focus navigation is wrong for scaled-down widgets using gamepad Focus navigation doesn't take transform into account when computing bounds Apr 23, 2020
@gspencergoog gspencergoog added a: desktop Running on desktop and removed in triage Presently being triaged by the triage team labels Apr 23, 2020
@TahaTesser TahaTesser added framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on labels Apr 24, 2020
@github-actions
Copy link

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.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 21, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a: desktop Running on desktop f: focus Focus traversal, gaining or losing focus framework flutter/packages/flutter repository. See also f: labels. has reproducible steps The issue has been confirmed reproducible and is ready to work on
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants