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

InteractiveViewer scale detection fails on Android device (cannot zoom in or out) #63006

Closed
filiph opened this issue Aug 5, 2020 · 31 comments · Fixed by #63543
Closed

InteractiveViewer scale detection fails on Android device (cannot zoom in or out) #63006

filiph opened this issue Aug 5, 2020 · 31 comments · Fixed by #63543
Labels
found in release: 1.21 Found to occur in 1.21 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

@filiph
Copy link
Contributor

filiph commented Aug 5, 2020

Steps to Reproduce

  1. Run flutter create bug.
  2. Update the files as follows: replace main.dart with the contents of the interactive sample in https://api.flutter.dev/flutter/widgets/InteractiveViewer-class.html
  3. Run on an Android device
  4. Try to zoom in or out
Code listing

Here's the code in https://api.flutter.dev/flutter/widgets/InteractiveViewer-class.html as of today.

// Flutter code sample for InteractiveViewer

// This example shows a simple Container that can be panned and zoomed.

import 'package:flutter/material.dart';

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

/// This Widget is the main application widget.
class MyApp extends StatelessWidget {
  static const String _title = 'Flutter Code Sample';

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: _title,
      home: Scaffold(
        appBar: AppBar(title: const Text(_title)),
        body: MyStatelessWidget(),
      ),
    );
  }
}

/// This is the stateless widget that the main application instantiates.
class MyStatelessWidget extends StatelessWidget {
  MyStatelessWidget({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Center(
      child: InteractiveViewer(
        boundaryMargin: EdgeInsets.all(20.0),
        minScale: 0.1,
        maxScale: 1.6,
        child: Container(
          decoration: BoxDecoration(
            gradient: LinearGradient(
              begin: Alignment.topCenter,
              end: Alignment.bottomCenter,
              colors: <Color>[Colors.orange, Colors.red],
              stops: <double>[0.0, 1.0],
            ),
          ),
        ),
      ),
    );
  }
}

Expected results:

I can consistently zoom in and out.

Actual results:

I can almost never zoom in or out. I found a way in which I place one finger slightly before the second one and keep it stationary while the other finger moves. But even then the result is hit or miss. When trying it at first, my success rate of actually zooming in was about 5%. Very frustrating.

Logs
[ +169 ms] executing: [/Users/filiph/fvm/versions/stable/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +51 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +1 ms] 840c9205b344a59e48a5926ee2d791cc5640924c
[   +1 ms] executing: [/Users/filiph/fvm/versions/stable/] git tag --contains HEAD
[ +277 ms] Exit code 0 from: git tag --contains HEAD
[        ] 1.20.0
[  +12 ms] executing: [/Users/filiph/fvm/versions/stable/] git rev-parse --abbrev-ref --symbolic @{u}
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/Users/filiph/fvm/versions/stable/] git ls-remote --get-url origin
[   +9 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +65 ms] executing: [/Users/filiph/fvm/versions/stable/] git rev-parse --abbrev-ref HEAD
[   +7 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[   +1 ms] stable
[   +7 ms] executing: sw_vers -productName
[  +19 ms] Exit code 0 from: sw_vers -productName
[        ] Mac OS X
[        ] executing: sw_vers -productVersion
[  +18 ms] Exit code 0 from: sw_vers -productVersion
[        ] 10.15.5
[        ] executing: sw_vers -buildVersion
[  +20 ms] Exit code 0 from: sw_vers -buildVersion
[        ] 19F101
[  +49 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] 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.
[   +3 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.
[  +22 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb devices -l
[   +9 ms] executing: /usr/bin/xcode-select --print-path
[  +10 ms] Exit code 0 from: /usr/bin/xcode-select --print-path
[        ] /Applications/Xcode_11.5.app/Contents/Developer
[   +2 ms] executing: /usr/bin/xcodebuild -version
[ +728 ms] Exit code 0 from: /usr/bin/xcodebuild -version
[        ] Xcode 11.5
           Build version 11E608c
[   +4 ms] executing: xcrun --find xcdevice
[  +12 ms] Exit code 0 from: xcrun --find xcdevice
[        ] /Applications/Xcode_11.5.app/Contents/Developer/usr/bin/xcdevice
[   +1 ms] executing: xcrun xcdevice list --timeout 2
[   +6 ms] /usr/bin/xcrun simctl list --json devices
[        ] executing: /usr/bin/xcrun simctl list --json devices
[  +52 ms] List of devices attached
           711KPZK0592485         device usb:338690048X product:taimen model:Pixel_2_XL device:taimen transport_id:1
[ +124 ms] {
             "devices" : {
               "com.apple.CoreSimulator.SimRuntime.iOS-13-0" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/357316C4-99EC-4DE9-94FC-296E068FE5BD\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/357316C4-99EC-4DE9-94FC-296E068FE5BD",
                   "udid" : "357316C4-99EC-4DE9-94FC-296E068FE5BD",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8",
                   "state" : "Shutdown",
                   "name" : "iPhone 8"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/085CD75E-1530-49D2-8DEC-D4045A72C28D\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/085CD75E-1530-49D2-8DEC-D4045A72C28D",
                   "udid" : "085CD75E-1530-49D2-8DEC-D4045A72C28D",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 8 Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/5528DA71-6A2C-45AD-93C6-22D8DB2392D5\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/5528DA71-6A2C-45AD-93C6-22D8DB2392D5",
                   "udid" : "5528DA71-6A2C-45AD-93C6-22D8DB2392D5",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-11",
                   "state" : "Shutdown",
                   "name" : "iPhone 11"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/4DC632DF-CE83-43A5-AEA4-46969AF64786\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/4DC632DF-CE83-43A5-AEA4-46969AF64786",
                   "udid" : "4DC632DF-CE83-43A5-AEA4-46969AF64786",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro",
                   "state" : "Shutdown",
                   "name" : "iPhone 11 Pro"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/35991B70-E980-42C5-9A1F-2A6AAE7FB78D\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/35991B70-E980-42C5-9A1F-2A6AAE7FB78D",
                   "udid" : "35991B70-E980-42C5-9A1F-2A6AAE7FB78D",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro-Max",
                   "state" : "Shutdown",
                   "name" : "iPhone 11 Pro Max"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/8DDD988C-6545-4905-B84C-81DC7AA11A8C\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/8DDD988C-6545-4905-B84C-81DC7AA11A8C",
                   "udid" : "8DDD988C-6545-4905-B84C-81DC7AA11A8C",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (9.7-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/CCFC288F-A300-4D14-80F3-6F2AB6C3034F\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/CCFC288F-A300-4D14-80F3-6F2AB6C3034F",
                   "udid" : "CCFC288F-A300-4D14-80F3-6F2AB6C3034F",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--11-inch-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (11-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/F57A7FB8-1E4C-453B-9383-2C56137FEA16\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/F57A7FB8-1E4C-453B-9383-2C56137FEA16",
                   "udid" : "F57A7FB8-1E4C-453B-9383-2C56137FEA16",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---3rd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (12.9-inch) (3rd generation)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/1C5AB0D3-FF6A-4263-BF08-AAA292A4C45E\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/1C5AB0D3-FF6A-4263-BF08-AAA292A4C45E",
                   "udid" : "1C5AB0D3-FF6A-4263-BF08-AAA292A4C45E",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Air--3rd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Air (3rd generation)"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.tvOS-13-4" : [
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/A1BD8A9B-EB50-4A4D-BB99-6BA85EF67734\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/A1BD8A9B-EB50-4A4D-BB99-6BA85EF67734",
                   "udid" : "A1BD8A9B-EB50-4A4D-BB99-6BA85EF67734",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p",
                   "state" : "Shutdown",
                   "name" : "Apple TV"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/D4246AFC-1B0A-4113-8673-99E613BBE295\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/D4246AFC-1B0A-4113-8673-99E613BBE295",
                   "udid" : "D4246AFC-1B0A-4113-8673-99E613BBE295",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-4K",
                   "state" : "Shutdown",
                   "name" : "Apple TV 4K"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/49691C70-5ECC-4DE2-9AC1-0BDE1F2E2E91\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/49691C70-5ECC-4DE2-9AC1-0BDE1F2E2E91",
                   "udid" : "49691C70-5ECC-4DE2-9AC1-0BDE1F2E2E91",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-1080p",
                   "state" : "Shutdown",
                   "name" : "Apple TV 4K (at 1080p)"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.iOS-13-5" : [
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/285E23BA-C212-4D69-8EF7-1F7C1DDBF67E\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/285E23BA-C212-4D69-8EF7-1F7C1DDBF67E",
                   "udid" : "285E23BA-C212-4D69-8EF7-1F7C1DDBF67E",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8",
                   "state" : "Shutdown",
                   "name" : "iPhone 8"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/03661CBA-6CC2-4767-8F69-39C0323C2FA1\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/03661CBA-6CC2-4767-8F69-39C0323C2FA1",
                   "udid" : "03661CBA-6CC2-4767-8F69-39C0323C2FA1",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 8 Plus"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/2AFDE367-5DAE-4E21-817F-3B759BEFE3B6\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/2AFDE367-5DAE-4E21-817F-3B759BEFE3B6",
                   "udid" : "2AFDE367-5DAE-4E21-817F-3B759BEFE3B6",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-11",
                   "state" : "Shutdown",
                   "name" : "iPhone 11"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/0CEB4E37-7E18-44DF-9C9F-EE85FD271766\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/0CEB4E37-7E18-44DF-9C9F-EE85FD271766",
                   "udid" : "0CEB4E37-7E18-44DF-9C9F-EE85FD271766",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro",
                   "state" : "Shutdown",
                   "name" : "iPhone 11 Pro"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/CF197348-7880-4495-8061-06384F807EB8\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/CF197348-7880-4495-8061-06384F807EB8",
                   "udid" : "CF197348-7880-4495-8061-06384F807EB8",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro-Max",
                   "state" : "Shutdown",
                   "name" : "iPhone 11 Pro Max"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/19401806-91B8-4C2A-BC1C-4CE0836316C0\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/19401806-91B8-4C2A-BC1C-4CE0836316C0",
                   "udid" : "19401806-91B8-4C2A-BC1C-4CE0836316C0",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-SE--2nd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPhone SE (2nd generation)"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/16D92317-E9E6-4135-9ED5-4DB7C5171A33\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/16D92317-E9E6-4135-9ED5-4DB7C5171A33",
                   "udid" : "16D92317-E9E6-4135-9ED5-4DB7C5171A33",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (9.7-inch)"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/BAECE298-4DE8-4DFB-A1A3-4F52DD73CAC9\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/BAECE298-4DE8-4DFB-A1A3-4F52DD73CAC9",
                   "udid" : "BAECE298-4DE8-4DFB-A1A3-4F52DD73CAC9",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad--7th-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad (7th generation)"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/966F9B25-59A0-4F95-8E56-0F48C70548ED\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/966F9B25-59A0-4F95-8E56-0F48C70548ED",
                   "udid" : "966F9B25-59A0-4F95-8E56-0F48C70548ED",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--11-inch---2nd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (11-inch) (2nd generation)"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/B62C4F04-3857-4524-9632-60A44527482A\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/B62C4F04-3857-4524-9632-60A44527482A",
                   "udid" : "B62C4F04-3857-4524-9632-60A44527482A",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---4th-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (12.9-inch) (4th generation)"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/0C4D6869-BD54-491F-B3DD-74478A9B097B\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/0C4D6869-BD54-491F-B3DD-74478A9B097B",
                   "udid" : "0C4D6869-BD54-491F-B3DD-74478A9B097B",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Air--3rd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Air (3rd generation)"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.watchOS-5-2" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/8B86D715-0198-4824-BCD5-4256DF482D41\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/8B86D715-0198-4824-BCD5-4256DF482D41",
                   "udid" : "8B86D715-0198-4824-BCD5-4256DF482D41",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-2-38mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 2 - 38mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/EE9EE493-C908-4B54-B772-15D8A2AC36A5\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/EE9EE493-C908-4B54-B772-15D8A2AC36A5",
                   "udid" : "EE9EE493-C908-4B54-B772-15D8A2AC36A5",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-2-42mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 2 - 42mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/D4899415-725B-454D-BE9A-CDC805FA4178\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/D4899415-725B-454D-BE9A-CDC805FA4178",
                   "udid" : "D4899415-725B-454D-BE9A-CDC805FA4178",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-3-38mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 3 - 38mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/6A709750-EEDE-4AD1-9FEB-A9938679A500\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/6A709750-EEDE-4AD1-9FEB-A9938679A500",
                   "udid" : "6A709750-EEDE-4AD1-9FEB-A9938679A500",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-3-42mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 3 - 42mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/7E357C8B-D056-4E6C-BDCB-C9DB3AF3182E\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/7E357C8B-D056-4E6C-BDCB-C9DB3AF3182E",
                   "udid" : "7E357C8B-D056-4E6C-BDCB-C9DB3AF3182E",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-40mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 4 - 40mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/AF0C0CB7-91F0-4B76-893C-120AF9226FB2\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/AF0C0CB7-91F0-4B76-893C-120AF9226FB2",
                   "udid" : "AF0C0CB7-91F0-4B76-893C-120AF9226FB2",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-44mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 4 - 44mm"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.iOS-12-0" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/BA65DF3C-CC2C-450E-9619-D028C4AAE1BE\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/BA65DF3C-CC2C-450E-9619-D028C4AAE1BE",
                   "udid" : "BA65DF3C-CC2C-450E-9619-D028C4AAE1BE",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-5s",
                   "state" : "Shutdown",
                   "name" : "iPhone 5s"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/C4E55090-9BFA-4AE4-A98C-458DFFEFE73D\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/C4E55090-9BFA-4AE4-A98C-458DFFEFE73D",
                   "udid" : "C4E55090-9BFA-4AE4-A98C-458DFFEFE73D",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-6-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 6 Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/7299B8A9-FF63-4764-86B5-93B187213432\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/7299B8A9-FF63-4764-86B5-93B187213432",
                   "udid" : "7299B8A9-FF63-4764-86B5-93B187213432",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-6",
                   "state" : "Shutdown",
                   "name" : "iPhone 6"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/545043CB-D3A6-4091-95FD-184B418DD0FE\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/545043CB-D3A6-4091-95FD-184B418DD0FE",
                   "udid" : "545043CB-D3A6-4091-95FD-184B418DD0FE",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-6s",
                   "state" : "Shutdown",
                   "name" : "iPhone 6s"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/0761189F-1B14-4F06-99B0-A905301696A2\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/0761189F-1B14-4F06-99B0-A905301696A2",
                   "udid" : "0761189F-1B14-4F06-99B0-A905301696A2",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-6s-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 6s Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/8905733D-091B-4F91-B3FC-F7F4AB38D2C8\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/8905733D-091B-4F91-B3FC-F7F4AB38D2C8",
                   "udid" : "8905733D-091B-4F91-B3FC-F7F4AB38D2C8",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-SE",
                   "state" : "Shutdown",
                   "name" : "iPhone SE"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/71A2A351-DA93-4209-A6F1-E44F56125947\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/71A2A351-DA93-4209-A6F1-E44F56125947",
                   "udid" : "71A2A351-DA93-4209-A6F1-E44F56125947",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-7",
                   "state" : "Shutdown",
                   "name" : "iPhone 7"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/87A10BD5-94DC-4D6E-BDD9-9648AF6DAF33\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/87A10BD5-94DC-4D6E-BDD9-9648AF6DAF33",
                   "udid" : "87A10BD5-94DC-4D6E-BDD9-9648AF6DAF33",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-7-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 7 Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/D227907A-F3F5-4B0A-AF6D-70BD79C1B16A\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/D227907A-F3F5-4B0A-AF6D-70BD79C1B16A",
                   "udid" : "D227907A-F3F5-4B0A-AF6D-70BD79C1B16A",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8",
                   "state" : "Shutdown",
                   "name" : "iPhone 8"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/5D9F5F8B-542E-4611-A9E7-F355B2BEEC76\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/5D9F5F8B-542E-4611-A9E7-F355B2BEEC76",
                   "udid" : "5D9F5F8B-542E-4611-A9E7-F355B2BEEC76",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 8 Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/020C1218-499F-4C9F-A288-5B37E321BF7D\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/020C1218-499F-4C9F-A288-5B37E321BF7D",
                   "udid" : "020C1218-499F-4C9F-A288-5B37E321BF7D",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-X",
                   "state" : "Shutdown",
                   "name" : "iPhone X"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/F9343F83-7E1C-428E-AE1A-15D7D4C4AC39\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/F9343F83-7E1C-428E-AE1A-15D7D4C4AC39",
                   "udid" : "F9343F83-7E1C-428E-AE1A-15D7D4C4AC39",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-XS",
                   "state" : "Shutdown",
                   "name" : "iPhone XS"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/7D03A0C3-705D-48E7-88EB-25024C5B6582\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/7D03A0C3-705D-48E7-88EB-25024C5B6582",
                   "udid" : "7D03A0C3-705D-48E7-88EB-25024C5B6582",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-XS-Max",
                   "state" : "Shutdown",
                   "name" : "iPhone XS Max"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/D3335418-BC03-425E-A57B-FDA10E282CA0\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/D3335418-BC03-425E-A57B-FDA10E282CA0",
                   "udid" : "D3335418-BC03-425E-A57B-FDA10E282CA0",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-XR",
                   "state" : "Shutdown",
                   "name" : "iPhone XR"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/68471A07-E3B3-4F18-A8B7-B4375796B54C\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/68471A07-E3B3-4F18-A8B7-B4375796B54C",
                   "udid" : "68471A07-E3B3-4F18-A8B7-B4375796B54C",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Air",
                   "state" : "Shutdown",
                   "name" : "iPad Air"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/DCB39254-30C0-49FB-88CC-C35AFEAC4109\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/DCB39254-30C0-49FB-88CC-C35AFEAC4109",
                   "udid" : "DCB39254-30C0-49FB-88CC-C35AFEAC4109",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Air-2",
                   "state" : "Shutdown",
                   "name" : "iPad Air 2"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/9E34BE15-6BDE-4E25-BA30-28903D3E8BD1\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/9E34BE15-6BDE-4E25-BA30-28903D3E8BD1",
                   "udid" : "9E34BE15-6BDE-4E25-BA30-28903D3E8BD1",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (9.7-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/B60F4396-92BA-4F70-90E9-F3B7811A4E7B\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/B60F4396-92BA-4F70-90E9-F3B7811A4E7B",
                   "udid" : "B60F4396-92BA-4F70-90E9-F3B7811A4E7B",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (12.9-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/40460F8F-5C63-40C9-BC05-B08B4D5BB7AD\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/40460F8F-5C63-40C9-BC05-B08B4D5BB7AD",
                   "udid" : "40460F8F-5C63-40C9-BC05-B08B4D5BB7AD",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad--5th-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad (5th generation)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/FADC96B7-83A0-4E49-9AEE-1636E933E73F\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/FADC96B7-83A0-4E49-9AEE-1636E933E73F",
                   "udid" : "FADC96B7-83A0-4E49-9AEE-1636E933E73F",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---2nd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (12.9-inch) (2nd generation)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/E34AAEF1-FAE4-4A64-8456-532EE5C56C6E\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/E34AAEF1-FAE4-4A64-8456-532EE5C56C6E",
                   "udid" : "E34AAEF1-FAE4-4A64-8456-532EE5C56C6E",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--10-5-inch-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (10.5-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/590A5708-1FFA-4749-B781-1FD353AD5337\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/590A5708-1FFA-4749-B781-1FD353AD5337",
                   "udid" : "590A5708-1FFA-4749-B781-1FD353AD5337",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad--6th-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad (6th generation)"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.tvOS-12-0" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/C24F58B0-E961-4986-8F3E-699249546A69\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/C24F58B0-E961-4986-8F3E-699249546A69",
                   "udid" : "C24F58B0-E961-4986-8F3E-699249546A69",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p",
                   "state" : "Shutdown",
                   "name" : "Apple TV"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/A6B21AAF-E558-4AA7-98AF-63E939D3C4EE\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/A6B21AAF-E558-4AA7-98AF-63E939D3C4EE",
                   "udid" : "A6B21AAF-E558-4AA7-98AF-63E939D3C4EE",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-4K",
                   "state" : "Shutdown",
                   "name" : "Apple TV 4K"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/6D551EF9-93A7-45D7-98D9-700C90287ED7\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/6D551EF9-93A7-45D7-98D9-700C90287ED7",
                   "udid" : "6D551EF9-93A7-45D7-98D9-700C90287ED7",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-1080p",
                   "state" : "Shutdown",
                   "name" : "Apple TV 4K (at 1080p)"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.iOS-12-2" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/C1BBCC6A-20B3-4910-84F5-C27D70154D51\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/C1BBCC6A-20B3-4910-84F5-C27D70154D51",
                   "udid" : "C1BBCC6A-20B3-4910-84F5-C27D70154D51",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-5s",
                   "state" : "Shutdown",
                   "name" : "iPhone 5s"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/8676D217-62F1-4C01-87DB-407A0A0F1EB0\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/8676D217-62F1-4C01-87DB-407A0A0F1EB0",
                   "udid" : "8676D217-62F1-4C01-87DB-407A0A0F1EB0",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-6-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 6 Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/7143AECA-FD95-49C9-B50D-0A04DE7F8D94\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/7143AECA-FD95-49C9-B50D-0A04DE7F8D94",
                   "udid" : "7143AECA-FD95-49C9-B50D-0A04DE7F8D94",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-6",
                   "state" : "Shutdown",
                   "name" : "iPhone 6"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/D887815E-337C-4FFC-9B16-0830C1669641\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/D887815E-337C-4FFC-9B16-0830C1669641",
                   "udid" : "D887815E-337C-4FFC-9B16-0830C1669641",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-6s",
                   "state" : "Shutdown",
                   "name" : "iPhone 6s"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/FC63B526-3407-4302-A083-75E687999061\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/FC63B526-3407-4302-A083-75E687999061",
                   "udid" : "FC63B526-3407-4302-A083-75E687999061",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-6s-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 6s Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/C64CAC8B-AF26-49E6-9968-B10440C408B4\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/C64CAC8B-AF26-49E6-9968-B10440C408B4",
                   "udid" : "C64CAC8B-AF26-49E6-9968-B10440C408B4",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-SE",
                   "state" : "Shutdown",
                   "name" : "iPhone SE"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/5B990DF3-369C-4047-8C44-C360859C5F35\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/5B990DF3-369C-4047-8C44-C360859C5F35",
                   "udid" : "5B990DF3-369C-4047-8C44-C360859C5F35",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-7",
                   "state" : "Shutdown",
                   "name" : "iPhone 7"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/94E0A14A-B1C1-47F4-996B-B37D23C5E981\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/94E0A14A-B1C1-47F4-996B-B37D23C5E981",
                   "udid" : "94E0A14A-B1C1-47F4-996B-B37D23C5E981",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-7-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 7 Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/FCC5ABD9-48CC-45CC-8A90-4B3B9549D9E9\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/FCC5ABD9-48CC-45CC-8A90-4B3B9549D9E9",
                   "udid" : "FCC5ABD9-48CC-45CC-8A90-4B3B9549D9E9",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8",
                   "state" : "Shutdown",
                   "name" : "iPhone 8"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/4EC1998A-C422-425F-B063-BB39E1288F12\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/4EC1998A-C422-425F-B063-BB39E1288F12",
                   "udid" : "4EC1998A-C422-425F-B063-BB39E1288F12",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-8-Plus",
                   "state" : "Shutdown",
                   "name" : "iPhone 8 Plus"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/12D1034F-602F-4101-9F96-6F82E14C68D6\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/12D1034F-602F-4101-9F96-6F82E14C68D6",
                   "udid" : "12D1034F-602F-4101-9F96-6F82E14C68D6",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-X",
                   "state" : "Shutdown",
                   "name" : "iPhone X"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/60802107-C218-416E-B7B0-56D446041FC0\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/60802107-C218-416E-B7B0-56D446041FC0",
                   "udid" : "60802107-C218-416E-B7B0-56D446041FC0",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-XS",
                   "state" : "Shutdown",
                   "name" : "iPhone Xs"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/05EE7E48-F8D6-4C0C-907F-FFA5574FA924\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/05EE7E48-F8D6-4C0C-907F-FFA5574FA924",
                   "udid" : "05EE7E48-F8D6-4C0C-907F-FFA5574FA924",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-XS-Max",
                   "state" : "Shutdown",
                   "name" : "iPhone Xs Max"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/8E275451-8E57-48F9-95F6-7E2D3C3D8AEF\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/8E275451-8E57-48F9-95F6-7E2D3C3D8AEF",
                   "udid" : "8E275451-8E57-48F9-95F6-7E2D3C3D8AEF",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPhone-XR",
                   "state" : "Shutdown",
                   "name" : "iPhone Xʀ"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/1F9EC823-BAFC-4CD0-8EAD-CA808A8DA20D\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/1F9EC823-BAFC-4CD0-8EAD-CA808A8DA20D",
                   "udid" : "1F9EC823-BAFC-4CD0-8EAD-CA808A8DA20D",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Air",
                   "state" : "Shutdown",
                   "name" : "iPad Air"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/CB794D9A-1030-46A3-9221-733E966DB056\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/CB794D9A-1030-46A3-9221-733E966DB056",
                   "udid" : "CB794D9A-1030-46A3-9221-733E966DB056",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Air-2",
                   "state" : "Shutdown",
                   "name" : "iPad Air 2"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/A31000A3-4324-4C3E-9FB3-03D9A981907E\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/A31000A3-4324-4C3E-9FB3-03D9A981907E",
                   "udid" : "A31000A3-4324-4C3E-9FB3-03D9A981907E",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (9.7-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/45E4F240-BA8B-4C2D-BFF3-E01AFEE92AFA\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/45E4F240-BA8B-4C2D-BFF3-E01AFEE92AFA",
                   "udid" : "45E4F240-BA8B-4C2D-BFF3-E01AFEE92AFA",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (12.9-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/8C5EE750-66F5-4317-9CAD-56A801C798D9\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/8C5EE750-66F5-4317-9CAD-56A801C798D9",
                   "udid" : "8C5EE750-66F5-4317-9CAD-56A801C798D9",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad--5th-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad (5th generation)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/38FD1DE0-DF54-46FA-B0E3-150A2B8B68F2\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/38FD1DE0-DF54-46FA-B0E3-150A2B8B68F2",
                   "udid" : "38FD1DE0-DF54-46FA-B0E3-150A2B8B68F2",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---2nd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (12.9-inch) (2nd generation)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/39A79BB7-D02E-4190-996F-69676472EEB2\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/39A79BB7-D02E-4190-996F-69676472EEB2",
                   "udid" : "39A79BB7-D02E-4190-996F-69676472EEB2",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--10-5-inch-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (10.5-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/4DFCF409-03BF-4C4A-A9D4-C46545E46FEF\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/4DFCF409-03BF-4C4A-A9D4-C46545E46FEF",
                   "udid" : "4DFCF409-03BF-4C4A-A9D4-C46545E46FEF",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad--6th-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad (6th generation)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/B9BB82EA-82CF-4944-9DDA-602C4D0CB00A\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/B9BB82EA-82CF-4944-9DDA-602C4D0CB00A",
                   "udid" : "B9BB82EA-82CF-4944-9DDA-602C4D0CB00A",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--11-inch-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (11-inch)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/AAECF7B4-C05F-413E-BF18-7B7E9452CEA0\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/AAECF7B4-C05F-413E-BF18-7B7E9452CEA0",
                   "udid" : "AAECF7B4-C05F-413E-BF18-7B7E9452CEA0",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---3rd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Pro (12.9-inch) (3rd generation)"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/E36AB8A8-BBC4-4CF3-A0FC-912F103C572C\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/E36AB8A8-BBC4-4CF3-A0FC-912F103C572C",
                   "udid" : "E36AB8A8-BBC4-4CF3-A0FC-912F103C572C",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.iPad-Air--3rd-generation-",
                   "state" : "Shutdown",
                   "name" : "iPad Air (3rd generation)"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.tvOS-13-0" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/BCD9A1DD-9900-4CDF-AABA-F4E4E296A69D\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/BCD9A1DD-9900-4CDF-AABA-F4E4E296A69D",
                   "udid" : "BCD9A1DD-9900-4CDF-AABA-F4E4E296A69D",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p",
                   "state" : "Shutdown",
                   "name" : "Apple TV"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/E2590DEC-03AC-42BE-8B3C-B804A32ADE8B\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/E2590DEC-03AC-42BE-8B3C-B804A32ADE8B",
                   "udid" : "E2590DEC-03AC-42BE-8B3C-B804A32ADE8B",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-4K",
                   "state" : "Shutdown",
                   "name" : "Apple TV 4K"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/BCA5A363-9892-4F16-9926-CA237775DE54\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/BCA5A363-9892-4F16-9926-CA237775DE54",
                   "udid" : "BCA5A363-9892-4F16-9926-CA237775DE54",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-1080p",
                   "state" : "Shutdown",
                   "name" : "Apple TV 4K (at 1080p)"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.watchOS-5-0" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/098FD693-16F5-4064-B0D5-C1908A133C46\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/098FD693-16F5-4064-B0D5-C1908A133C46",
                   "udid" : "098FD693-16F5-4064-B0D5-C1908A133C46",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-2-38mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 2 - 38mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/49917219-FF9A-40B3-A0AB-11A46EF76E5D\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/49917219-FF9A-40B3-A0AB-11A46EF76E5D",
                   "udid" : "49917219-FF9A-40B3-A0AB-11A46EF76E5D",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-2-42mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 2 - 42mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/A2004928-CC27-4EEE-9867-AD710FE33C1F\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/A2004928-CC27-4EEE-9867-AD710FE33C1F",
                   "udid" : "A2004928-CC27-4EEE-9867-AD710FE33C1F",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-3-38mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 3 - 38mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/765A333B-2809-4A94-B6DB-C0F4160533C8\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/765A333B-2809-4A94-B6DB-C0F4160533C8",
                   "udid" : "765A333B-2809-4A94-B6DB-C0F4160533C8",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-3-42mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 3 - 42mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/C3AFCAEC-8E73-4FDC-85BB-6DD73F1E9909\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/C3AFCAEC-8E73-4FDC-85BB-6DD73F1E9909",
                   "udid" : "C3AFCAEC-8E73-4FDC-85BB-6DD73F1E9909",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-40mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 4 - 40mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/FCAFFE4B-87D1-4569-A25B-59BE68D15402\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/FCAFFE4B-87D1-4569-A25B-59BE68D15402",
                   "udid" : "FCAFFE4B-87D1-4569-A25B-59BE68D15402",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-44mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 4 - 44mm"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.watchOS-6-2" : [
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/122E4942-4BBC-49B5-9601-6CFDD2755399\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/122E4942-4BBC-49B5-9601-6CFDD2755399",
                   "udid" : "122E4942-4BBC-49B5-9601-6CFDD2755399",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-40mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 4 - 40mm"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/1DA01418-440F-4063-B4F2-01619375DAD0\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/1DA01418-440F-4063-B4F2-01619375DAD0",
                   "udid" : "1DA01418-440F-4063-B4F2-01619375DAD0",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-44mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 4 - 44mm"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/31D269D0-D44A-4290-A28A-594E8394C0AE\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/31D269D0-D44A-4290-A28A-594E8394C0AE",
                   "udid" : "31D269D0-D44A-4290-A28A-594E8394C0AE",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-5-40mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 5 - 40mm"
                 },
                 {
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/F80AF03F-2A93-427E-836A-5910E6E74F69\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/F80AF03F-2A93-427E-836A-5910E6E74F69",
                   "udid" : "F80AF03F-2A93-427E-836A-5910E6E74F69",
                   "isAvailable" : true,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-5-44mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 5 - 44mm"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.watchOS-6-0" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/5EC06B09-97BB-41B9-B6E9-CF8647C72BC6\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/5EC06B09-97BB-41B9-B6E9-CF8647C72BC6",
                   "udid" : "5EC06B09-97BB-41B9-B6E9-CF8647C72BC6",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-40mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 4 - 40mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/92D6D2EE-49FC-4F84-9827-9C3AB9BE0A22\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/92D6D2EE-49FC-4F84-9827-9C3AB9BE0A22",
                   "udid" : "92D6D2EE-49FC-4F84-9827-9C3AB9BE0A22",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-44mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 4 - 44mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/2AECE4B9-C49E-40CD-81BD-53F588727DC6\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/2AECE4B9-C49E-40CD-81BD-53F588727DC6",
                   "udid" : "2AECE4B9-C49E-40CD-81BD-53F588727DC6",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-5-40mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 5 - 40mm"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/289A7667-CBEC-4B74-AE35-2293DFD1D109\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/289A7667-CBEC-4B74-AE35-2293DFD1D109",
                   "udid" : "289A7667-CBEC-4B74-AE35-2293DFD1D109",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-5-44mm",
                   "state" : "Shutdown",
                   "name" : "Apple Watch Series 5 - 44mm"
                 }
               ],
               "com.apple.CoreSimulator.SimRuntime.tvOS-12-2" : [
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/2273F1CC-0B90-4082-A661-52EAB312F254\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/2273F1CC-0B90-4082-A661-52EAB312F254",
                   "udid" : "2273F1CC-0B90-4082-A661-52EAB312F254",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p",
                   "state" : "Shutdown",
                   "name" : "Apple TV"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/D29586E3-2CB7-4173-ABC8-E473A37510E4\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/D29586E3-2CB7-4173-ABC8-E473A37510E4",
                   "udid" : "D29586E3-2CB7-4173-ABC8-E473A37510E4",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-4K",
                   "state" : "Shutdown",
                   "name" : "Apple TV 4K"
                 },
                 {
                   "availabilityError" : "runtime profile not found",
                   "dataPath" : "\/Users\/filiph\/Library\/Developer\/CoreSimulator\/Devices\/9A5A28A4-BD9D-4C4E-AA46-79200F2F8524\/data",
                   "logPath" : "\/Users\/filiph\/Library\/Logs\/CoreSimulator\/9A5A28A4-BD9D-4C4E-AA46-79200F2F8524",
                   "udid" : "9A5A28A4-BD9D-4C4E-AA46-79200F2F8524",
                   "isAvailable" : false,
                   "deviceTypeIdentifier" : "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-1080p",
                   "state" : "Shutdown",
                   "name" : "Apple TV 4K (at 1080p)"
                 }
               ]
             }
           }
[+2715 ms] [
             {
               "simulator" : true,
               "operatingSystemVersion" : "6.2.1 (17T531)",
               "available" : true,
               "platform" : "com.apple.platform.watchsimulator",
               "modelCode" : "Watch5,3",
               "identifier" : "31D269D0-D44A-4290-A28A-594E8394C0AE",
               "architecture" : "i386",
               "modelUTI" : "com.apple.watch-series5-1",
               "modelName" : "Apple Watch Series 5 - 40mm",
               "name" : "Apple Watch Series 5 - 40mm"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "6.2.1 (17T531)",
               "available" : true,
               "platform" : "com.apple.platform.watchsimulator",
               "modelCode" : "Watch5,4",
               "identifier" : "F80AF03F-2A93-427E-836A-5910E6E74F69",
               "architecture" : "i386",
               "modelUTI" : "com.apple.watch-series5-1",
               "modelName" : "Apple Watch Series 5 - 44mm",
               "name" : "Apple Watch Series 5 - 44mm"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPhone12,3",
               "identifier" : "0CEB4E37-7E18-44DF-9C9F-EE85FD271766",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.iphone-11-pro-1",
               "modelName" : "iPhone 11 Pro",
               "name" : "iPhone 11 Pro"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPad7,12",
               "identifier" : "BAECE298-4DE8-4DFB-A1A3-4F52DD73CAC9",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.ipad-7-wwan-1",
               "modelName" : "iPad (7th generation)",
               "name" : "iPad (7th generation)"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPhone10,4",
               "identifier" : "285E23BA-C212-4D69-8EF7-1F7C1DDBF67E",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.iphone-8-2",
               "modelName" : "iPhone 8",
               "name" : "iPhone 8"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPad6,4",
               "identifier" : "16D92317-E9E6-4135-9ED5-4DB7C5171A33",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.ipad-pro-9point7-a1674-b9b7ba",
               "modelName" : "iPad Pro (9.7-inch)",
               "name" : "iPad Pro (9.7-inch)"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPhone12,5",
               "identifier" : "CF197348-7880-4495-8061-06384F807EB8",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.iphone-11-pro-max-1",
               "modelName" : "iPhone 11 Pro Max",
               "name" : "iPhone 11 Pro Max"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPad8,12",
               "identifier" : "B62C4F04-3857-4524-9632-60A44527482A",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.ipad-pro-12point9-4th-1",
               "modelName" : "iPad Pro (12.9-inch) (4th generation)",
               "name" : "iPad Pro (12.9-inch) (4th generation)"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.4 (17L255)",
               "available" : true,
               "platform" : "com.apple.platform.appletvsimulator",
               "modelCode" : "AppleTV5,3",
               "identifier" : "A1BD8A9B-EB50-4A4D-BB99-6BA85EF67734",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.apple-tv-4",
               "modelName" : "Apple TV",
               "name" : "Apple TV"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPad11,3",
               "identifier" : "0C4D6869-BD54-491F-B3DD-74478A9B097B",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.ipad-air3-wifi-1",
               "modelName" : "iPad Air (3rd generation)",
               "name" : "iPad Air (3rd generation)"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPhone12,8",
               "identifier" : "19401806-91B8-4C2A-BC1C-4CE0836316C0",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.iphone-se-1",
               "modelName" : "iPhone SE (2nd generation)",
               "name" : "iPhone SE (2nd generation)"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.4 (17L255)",
               "available" : true,
               "platform" : "com.apple.platform.appletvsimulator",
               "modelCode" : "AppleTV6,2",
               "identifier" : "D4246AFC-1B0A-4113-8673-99E613BBE295",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.apple-tv-4k",
               "modelName" : "Apple TV 4K",
               "name" : "Apple TV 4K"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPhone10,5",
               "identifier" : "03661CBA-6CC2-4767-8F69-39C0323C2FA1",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.iphone-8-plus-2",
               "modelName" : "iPhone 8 Plus",
               "name" : "iPhone 8 Plus"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "6.2.1 (17T531)",
               "available" : true,
               "platform" : "com.apple.platform.watchsimulator",
               "modelCode" : "Watch4,4",
               "identifier" : "1DA01418-440F-4063-B4F2-01619375DAD0",
               "architecture" : "i386",
               "modelUTI" : "com.apple.watch-series4-1",
               "modelName" : "Apple Watch Series 4 - 44mm",
               "name" : "Apple Watch Series 4 - 44mm"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPhone12,1",
               "identifier" : "2AFDE367-5DAE-4E21-817F-3B759BEFE3B6",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.iphone-11-1",
               "modelName" : "iPhone 11",
               "name" : "iPhone 11"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.4 (17L255)",
               "available" : true,
               "platform" : "com.apple.platform.appletvsimulator",
               "modelCode" : "AppleTV6,2",
               "identifier" : "49691C70-5ECC-4DE2-9AC1-0BDE1F2E2E91",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.apple-tv-4k",
               "modelName" : "Apple TV 4K (at 1080p)",
               "name" : "Apple TV 4K (at 1080p)"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "13.5 (17F61)",
               "available" : true,
               "platform" : "com.apple.platform.iphonesimulator",
               "modelCode" : "iPad8,9",
               "identifier" : "966F9B25-59A0-4F95-8E56-0F48C70548ED",
               "architecture" : "x86_64",
               "modelUTI" : "com.apple.ipad-pro-11-2nd-1",
               "modelName" : "iPad Pro (11-inch) (2nd generation)",
               "name" : "iPad Pro (11-inch) (2nd generation)"
             },
             {
               "simulator" : true,
               "operatingSystemVersion" : "6.2.1 (17T531)",
               "available" : true,
               "platform" : "com.apple.platform.watchsimulator",
               "modelCode" : "Watch4,3",
               "identifier" : "122E4942-4BBC-49B5-9601-6CFDD2755399",
               "architecture" : "i386",
               "modelUTI" : "com.apple.watch-series4-1",
               "modelName" : "Apple Watch Series 4 - 40mm",
               "name" : "Apple Watch Series 4 - 40mm"
             }
           ]
[   +6 ms] /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 shell getprop
[  +88 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[   +4 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.
[   +1 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.
[ +245 ms] Generating /Users/filiph/dev/wotw_interactive_viewer/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
[  +29 ms] ro.hardware = taimen
[        ] ro.build.characteristics = nosdcard
[  +76 ms] Starting incremental build...
[   +3 ms] Initializing file store
[  +14 ms] Skipping target: gen_localizations
[   +8 ms] complete
[   +6 ms] Launching lib/main.dart on Pixel 2 XL in debug mode...
[   +9 ms] /Users/filiph/fvm/versions/stable/bin/cache/dart-sdk/bin/dart --disable-dart-dev /Users/filiph/fvm/versions/stable/bin/cache/artifacts/engine/darwin-x64/frontend_server.dart.snapshot --sdk-root /Users/filiph/fvm/versions/stable/bin/cache/artifacts/engine/common/flutter_patched_sdk/ --incremental --target=flutter --debugger-module-names -Ddart.developer.causal_async_stacks=true --output-dill /var/folders/np/gmysjh1j2159hv7wssjzrw440028jd/T/flutter_tools.kf8wp8/flutter_tool.80CxOz/app.dill --packages .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 --initialize-from-dill build/cache.dill.track.dill
[  +15 ms] executing: /Users/filiph/Library/Android/sdk/build-tools/28.0.3/aapt dump xmltree /Users/filiph/dev/wotw_interactive_viewer/build/app/outputs/flutter-apk/app.apk AndroidManifest.xml
[   +9 ms] Exit code 0 from: /Users/filiph/Library/Android/sdk/build-tools/28.0.3/aapt dump xmltree /Users/filiph/dev/wotw_interactive_viewer/build/app/outputs/flutter-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="dev.flutter.wotwinteractiveviewer" (Raw: "dev.flutter.wotwinteractiveviewer")
               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)="wotwinteractiveviewer" (Raw: "wotwinteractiveviewer")
                 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)="dev.flutter.wotwinteractiveviewer.MainActivity" (Raw: "dev.flutter.wotwinteractiveviewer.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: meta-data (line=42)
                     A: android:name(0x01010003)="io.flutter.embedding.android.NormalTheme" (Raw: "io.flutter.embedding.android.NormalTheme")
                     A: android:resource(0x01010025)=@0x7f0a0001
                   E: meta-data (line=52)
                     A: android:name(0x01010003)="io.flutter.embedding.android.SplashScreenDrawable" (Raw: "io.flutter.embedding.android.SplashScreenDrawable")
                     A: android:resource(0x01010025)=@0x7f040000
                   E: intent-filter (line=56)
                     E: action (line=57)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
                     E: category (line=59)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
                 E: meta-data (line=66)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
[  +11 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 shell -x logcat -v time -t 1
[  +64 ms] Exit code 0 from: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 shell -x logcat -v time -t 1
[        ] --------- beginning of main
           08-05 11:23:41.048 I/netd    (  783): bandwidthSetGlobalAlert(2097152) <0.83ms>
[   +2 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 shell -x logcat -v time -t 1
[  +88 ms] Exit code 0 from: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 shell -x logcat -v time -t 1
[        ] --------- beginning of main
           08-05 11:23:41.048 I/netd    (  783): bandwidthSetGlobalAlert(2097152) <0.83ms>
[  +18 ms] <- compile package:wotwinteractiveviewer/main.dart
[  +14 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb version
[  +22 ms] Android Debug Bridge version 1.0.41
           Version 29.0.6-6198805
           Installed as /Users/filiph/Library/Android/sdk/platform-tools/adb
[   +4 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb start-server
[  +15 ms] Building APK
[  +37 ms] Running Gradle task 'assembleDebug'...
[   +2 ms] gradle.properties already sets `android.enableR8`
[   +3 ms] Using gradle from /Users/filiph/dev/wotw_interactive_viewer/android/gradlew.
[        ] /Users/filiph/dev/wotw_interactive_viewer/android/gradlew mode: 33261 rwxr-xr-x.
[+4698 ms] executing: /usr/bin/plutil -convert json -o - /Applications/Android Studio.app/Contents/Info.plist
[  +11 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.6","idea.executable":"studio","idea.platform.prefix":"AndroidStudio","idea.home.path":"$APP_PACKAGE\/Contents"}},"NSDesktopFolderUsageDescription":"An application in Android Studio requests access to the user's Desktop folder.","LSArchitecturePriority":["x86_64"],"CFBundleVersion":"AI-192.7142.36.36.6308749","CFBundleDevelopmentRegion":"English","NSCameraUsageDescription":"An application in Android Studio requests access to the device's camera.","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.6","NSMicrophoneUsageDescription":"An application in Android Studio requests access to the device's microphone.","CFBundleInfoDictionaryVersion":"6.0","CFBundleExecutable":"studio","NSLocationUsageDescription":"An application in Android Studio requests access to the user's location information.","LSRequiresNativeExecution":"YES","CFBundleURLTypes":[{"CFBundleTypeRole":"Editor","CFBundleURLName":"Stacktrace","CFBundleURLSchemes":["idea"]}],"CFBundleIdentifier":"com.google.android.studio","LSApplicationCategoryType":"public.app-category.developer-tools","CFBundleSignature":"????","LSMinimumSystemVersion":"10.8","NSDocumentsFolderUsageDescription":"An application in Android Studio requests access to the user's Documents folder.","NSDownloadsFolderUsageDescription":"An application in Android Studio requests access to the user's Downloads folder.","NSNetworkVolumesUsageDescription":"An application in Android Studio requests access to files on a network volume.","CFBundleGetInfoString":"Android Studio 3.6, build AI-192.7142.36.36.6308749. Copyright JetBrains s.r.o., (c) 2000-2020","NSRemovableVolumesUsageDescription":"An application in Android Studio requests access to files on a removable volume."}
[   +2 ms] executing: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java -version
[  +85 ms] Exit code 0 from: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java -version
[        ] openjdk version "1.8.0_212-release"
           OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
           OpenJDK 64-Bit Server VM (build 25.212-b4-5784211, mixed mode)
[   +2 ms] executing: [/Users/filiph/dev/wotw_interactive_viewer/android/] /Users/filiph/dev/wotw_interactive_viewer/android/gradlew -Pverbose=true -Ptarget-platform=android-arm64 -Ptarget=/Users/filiph/dev/wotw_interactive_viewer/lib/main.dart -Ptrack-widget-creation=true -Pfilesystem-scheme=org-dartlang-root assembleDebug
[+1421 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:checkDebugManifest UP-TO-DATE
[        ] > Task :app:generateDebugBuildConfig UP-TO-DATE
[        ] > Task :app:cleanMergeDebugAssets
[        ] > Task :app:compileDebugAidl NO-SOURCE
[        ] > Task :app:compileDebugRenderscript NO-SOURCE
[  +77 ms] > Task :app:mergeDebugShaders UP-TO-DATE
[        ] > Task :app:compileDebugShaders UP-TO-DATE
[        ] > Task :app:generateDebugAssets UP-TO-DATE
[        ] > Task :app:mergeDebugAssets
[ +400 ms] > Task :app:copyFlutterAssetsDebug
[        ] > Task :app:mainApkListPersistenceDebug UP-TO-DATE
[        ] > Task :app:generateDebugResValues UP-TO-DATE
[        ] > Task :app:generateDebugResources UP-TO-DATE
[  +98 ms] > 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
[        ] > Task :app:mergeDebugJavaResource UP-TO-DATE
[        ] > Task :app:checkDebugDuplicateClasses UP-TO-DATE
[        ] > Task :app:transformClassesWithDexBuilderForDebug UP-TO-DATE
[        ] > Task :app:desugarDebugFileDependencies UP-TO-DATE
[        ] > Task :app:mergeExtDexDebug 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
[  +92 ms] > Task :app:mergeDebugNativeLibs UP-TO-DATE
[        ] > Task :app:stripDebugDebugSymbols UP-TO-DATE
[        ] Compatible side by side NDK version was not found.
[        ] > Task :app:packageDebug UP-TO-DATE
[ +250 ms] > Task :app:assembleDebug
[        ] BUILD SUCCESSFUL in 2s
[        ] 31 actionable tasks: 4 executed, 27 up-to-date
[ +382 ms] Running Gradle task 'assembleDebug'... (completed in 7.5s)
[ +253 ms] calculateSha: LocalDirectory: '/Users/filiph/dev/wotw_interactive_viewer/build/app/outputs/flutter-apk'/app.apk
[  +77 ms] calculateSha: reading file took 76us
[ +694 ms] calculateSha: computing sha took 694us
[   +4 ms] ✓ Built build/app/outputs/flutter-apk/app-debug.apk.
[   +4 ms] executing: /Users/filiph/Library/Android/sdk/build-tools/28.0.3/aapt dump xmltree /Users/filiph/dev/wotw_interactive_viewer/build/app/outputs/flutter-apk/app.apk AndroidManifest.xml
[  +13 ms] Exit code 0 from: /Users/filiph/Library/Android/sdk/build-tools/28.0.3/aapt dump xmltree /Users/filiph/dev/wotw_interactive_viewer/build/app/outputs/flutter-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="dev.flutter.wotwinteractiveviewer" (Raw: "dev.flutter.wotwinteractiveviewer")
               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)="wotwinteractiveviewer" (Raw: "wotwinteractiveviewer")
                 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)="dev.flutter.wotwinteractiveviewer.MainActivity" (Raw: "dev.flutter.wotwinteractiveviewer.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: meta-data (line=42)
                     A: android:name(0x01010003)="io.flutter.embedding.android.NormalTheme" (Raw: "io.flutter.embedding.android.NormalTheme")
                     A: android:resource(0x01010025)=@0x7f0a0001
                   E: meta-data (line=52)
                     A: android:name(0x01010003)="io.flutter.embedding.android.SplashScreenDrawable" (Raw: "io.flutter.embedding.android.SplashScreenDrawable")
                     A: android:resource(0x01010025)=@0x7f040000
                   E: intent-filter (line=56)
                     E: action (line=57)
                       A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
                     E: category (line=59)
                       A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
                 E: meta-data (line=66)
                   A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
                   A: android:value(0x01010024)=(type 0x10)0x2
[   +1 ms] Stopping app 'app.apk' on Pixel 2 XL.
[   +1 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 shell am force-stop dev.flutter.wotwinteractiveviewer
[ +124 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 shell pm list packages dev.flutter.wotwinteractiveviewer
[  +85 ms] package:dev.flutter.wotwinteractiveviewer
[   +2 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 shell cat /data/local/tmp/sky.dev.flutter.wotwinteractiveviewer.sha1
[  +35 ms] 8f08d40a9292a2a4b16d8012a13e3f2b06a354e3
[        ] Latest build already installed.
[        ] Pixel 2 XL startApp
[   +3 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 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 dev.flutter.wotwinteractiveviewer/dev.flutter.wotwinteractiveviewer.MainActivity
[  +56 ms] Starting: Intent { act=android.intent.action.RUN flg=0x20000000 cmp=dev.flutter.wotwinteractiveviewer/.MainActivity (has extras) }
[  +36 ms] Waiting for observatory port to be available...
[ +615 ms] Observatory URL on device: http://127.0.0.1:40428/qQJFkJ3dqgg=/
[   +1 ms] executing: /Users/filiph/Library/Android/sdk/platform-tools/adb -s 711KPZK0592485 forward tcp:0 tcp:40428
[  +10 ms] 53653
[        ] Forwarded host port 53653 to device port 40428 for Observatory
[   +6 ms] Caching compiled dill
[  +54 ms] Connecting to service protocol: http://127.0.0.1:53653/qQJFkJ3dqgg=/
[ +300 ms] Successfully connected to service protocol: http://127.0.0.1:53653/qQJFkJ3dqgg=/
[        ] Waiting for Pixel 2 XL to report its views...
[   +9 ms] Waiting for Pixel 2 XL to report its views... (completed in 8ms)
[  +11 ms] DevFS: Creating new filesystem on the device (null)
[  +33 ms] DevFS: Created new filesystem on the device (file:///data/user/0/dev.flutter.wotwinteractiveviewer/code_cache/wotw_interactive_viewerXJTBOE/wotw_interactive_viewer/)
[   +2 ms] Updating assets
[  +89 ms] Syncing files to device Pixel 2 XL...
[   +1 ms] Scanning asset files
[   +3 ms] <- reset
[        ] Compiling dart to kernel with 0 updated files
[   +1 ms] <- recompile package:wotwinteractiveviewer/main.dart a736f95f-e62c-48cf-8227-532a2781244b
[        ] <- a736f95f-e62c-48cf-8227-532a2781244b
[  +51 ms] Updating files
[ +157 ms] DevFS: Sync finished
[        ] Syncing files to device Pixel 2 XL... (completed in 216ms)
[   +1 ms] Synced 0.9MB.
[   +1 ms] <- accept
[   +8 ms] Connected to _flutterView/0x6fe334a820.
[   +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 Pixel 2 XL is available at: http://127.0.0.1:53653/qQJFkJ3dqgg=/
[+8998 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(192.9, 382.9), localFocalPoint: Offset(192.9, 298.9))
[  +25 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +5 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(211.0, 439.0), localFocalPoint: Offset(211.0, 355.0))
[+1242 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +4 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(189.7, 642.9), localFocalPoint: Offset(189.7, 558.9))
[   +1 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(-105.2, -180.1))
[ +612 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(160.0, 256.0), localFocalPoint: Offset(160.0, 172.0))
[  +16 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[        ] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(154.6, 419.7), localFocalPoint: Offset(154.6, 335.7))
[ +773 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(-52.0, 480.9))
[ +379 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(134.3, 301.4), localFocalPoint: Offset(134.3, 217.4))
[  +34 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +1 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(154.4, 431.4), localFocalPoint: Offset(154.4, 347.4))
[+1042 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[        ] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(183.4, 401.7), localFocalPoint: Offset(183.4, 317.7))
[   +5 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(-114.6, -153.3))
[ +521 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(158.3, 544.6), localFocalPoint: Offset(158.3, 460.6))
[  +22 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +8 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(192.3, 441.1), localFocalPoint: Offset(192.3, 357.1))
[+1147 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(34.1, -124.5))
[   +3 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(144.3, 242.0), localFocalPoint: Offset(144.3, 158.0))
[   +1 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(-8.0, 132.8))
[ +291 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(118.3, 349.7), localFocalPoint: Offset(118.3, 265.7))
[  +17 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +7 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(131.9, 451.4), localFocalPoint: Offset(131.9, 367.4))
[ +820 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[        ] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(152.6, 407.7), localFocalPoint: Offset(152.6, 323.7))
[  +15 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(27.7, 137.6))
[ +292 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(125.7, 552.0), localFocalPoint: Offset(125.7, 468.0))
[  +22 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[        ] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(157.6, 495.7), localFocalPoint: Offset(157.6, 411.7))
[+1954 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(61.8, 32.5))
[   +2 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(266.9, 555.7), localFocalPoint: Offset(266.9, 471.7))
[   +2 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(-88.7, -187.9))
[ +231 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(92.0, 348.3), localFocalPoint: Offset(92.0, 264.3))
[  +16 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +3 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(156.3, 456.6), localFocalPoint: Offset(156.3, 372.6))
[ +926 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(-127.5, 472.9))
[ +387 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(146.3, 571.7), localFocalPoint: Offset(146.3, 487.7))
[  +49 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +9 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(145.4, 438.9), localFocalPoint: Offset(145.4, 354.9))
[ +642 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(-58.3, -198.2))
[        ] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(200.6, 371.7), localFocalPoint: Offset(200.6, 287.7))
[   +6 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(94.8, 95.9))
[ +171 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(82.3, 517.4), localFocalPoint: Offset(82.3, 433.4))
[  +39 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +6 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(157.7, 446.3), localFocalPoint: Offset(157.7, 362.3))
[ +895 ms] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
[   +4 ms] I/flutter ( 7299): START: ScaleStartDetails(focalPoint: Offset(198.6, 438.0), localFocalPoint: Offset(198.6, 354.0))
[        ] I/flutter ( 7299): END: ScaleEndDetails(velocity: Velocity(0.0, 0.0))
$ flutter analyze                                                                               11:24:14
Analyzing wotw_interactive_viewer...                                    
No issues found! (ran in 13.6s)

$ flutter doctor -v                                                                             11:25:00
[✓] Flutter (Channel stable, 1.20.0, on Mac OS X 10.15.5 19F101, locale en-US)
    • Flutter version 1.20.0 at /Users/filiph/fvm/versions/stable
    • Framework revision 840c9205b3 (15 hours ago), 2020-08-04 20:55:12 -0700
    • Engine revision c8e3b94853
    • Dart version 2.9.0

 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/filiph/Library/Android/sdk
    • Platform android-29, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

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

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

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

[✓] Connected device (1 available)
    • Pixel 2 XL (mobile) • 711KPZK0592485 • android-arm64 • Android 10 (API 29)

• No issues found!

Discussion

I was wondering whether I'll see the same issue with vanilla GestureDetector. I made a tiny test and saw no problem (except when I put one finger outside the red box, but that's to be expected):

Test code

class Scaling extends StatefulWidget {
  @override
  _ScalingState createState() => _ScalingState();
}

class _ScalingState extends State<Scaling> {
  double size = 200.0;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onScaleStart: (details) {
        print('scalestart');
      },
      onScaleEnd: (details) {
        print('scale end');
      },
      onScaleUpdate: (details) {
        print(details);
        setState(() {
          size = 200 * details.scale;
        });
      },
      child: Center(
        child: SizedBox(
          width: size, height: size, child: Container(color: Colors.red),
        )
      ),
    );
  }
}

working-scale 2020-08-05 11_33_13

For comparison, here's me trying to scale the InteractiveViewer in the example app. I succeed maybe two times out of many.

interactive-viewer-scale 2020-08-05 11_44_26

@filiph filiph changed the title InteractiveViewer scale detection fails on Android device InteractiveViewer scale detection fails on Android device (cannot zoom in or out) Aug 5, 2020
@filiph
Copy link
Contributor Author

filiph commented Aug 5, 2020

cc @justinmc

@justinmc
Copy link
Contributor

justinmc commented Aug 5, 2020

Thanks for filing this! I wasn't seeing this happening on an emulator, is this only on a physical device?

I suspect this might be related to #58636. There is some weirdness with scale gestures in general due to having multiple gesture detectors listening on top of each other.

@filiph
Copy link
Contributor Author

filiph commented Aug 5, 2020

Yes, this is on a physical device (Pixel 2 XL, Android 10).

I saw #58636 but I don't think it's directly responsible. The code in question is literally just the InteractiveViewer, no other gesture detector in sight.

@Abhilash-Chandran
Copy link

I think this is also the case with the web. In the interactive example there is a script error shown in the console, however it doesn't describe it. I will test this locally and post an update.

@Abhilash-Chandran
Copy link

Looks like the zoom is not working neither in emulator nor in a device(mi A1). I also tested in flutter web master channel and same result. The code I used is just the the sample code from the documentation.

@pedromassangocode
Copy link

pedromassangocode commented Aug 6, 2020

Able to reproduce in 1.21.0-6.0.pre.223. It looks like it happens mostly once you zoom in and move the child a little bit horizontally, or move it away from the center of the InteractiveViewer.

flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-6.0.pre.223, on Mac OS X 10.15.6 19G73,
    locale en)
    • Flutter version 1.21.0-6.0.pre.223 at
      /Users/pedromassango/dev/SDKs/flutter_master
    • Framework revision 6d487355a3 (4 hours ago), 2020-08-05 20:21:02 -0700
    • Engine revision d728f691f4
    • Dart version 2.10.0 (build 2.10.0-3.0.dev d5ff386abe)
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

 
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/pedromassango/Library/Android/sdk
    • Platform android-30, build-tools 30.0.1
    • 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)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor
      --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • 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 not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Community Edition (version 2020.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 47.1.4
    • Dart plugin version 202.6397.47

 
[✓] Connected device (4 available)            
    • sdk gphone x86 (mobile) • emulator-5554 • android-x86    • Android 11 (API
      30) (emulator)
    • macOS (desktop)         • macos         • darwin-x64     • Mac OS X
      10.15.6 19G73
    • Web Server (web)        • web-server    • web-javascript • Flutter Tools
    • Chrome (web)            • chrome        • web-javascript • Google Chrome
      84.0.4147.105

! Doctor found issues in 2 categories.

@pedromassangocode pedromassangocode added found in release: 1.21 Found to occur in 1.21 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 Aug 6, 2020
@vHanda
Copy link

vHanda commented Aug 6, 2020

I'm also able to reproduce this in my Android One Plus 5 device. I'm using the code given in the documentation.

$ flutter doctor -v                                            [13:14:14]
[✓] Flutter (Channel stable, 1.20.0, on Mac OS X 10.14.6 18G87, locale en-IN)
    • Flutter version 1.20.0 at /Users/vishesh/src/flutter/flutter
    • Framework revision 840c9205b3 (31 hours ago), 2020-08-04 20:55:12 -0700
    • Engine revision c8e3b94853
    • Dart version 2.9.0


[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/vishesh/Library/Android/sdk
    • Platform android-29, build-tools 28.0.3
    • ANDROID_HOME = /Users/vishesh/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/vishesh/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_152-release-1343-b01)
    • All Android licenses accepted.

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

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 35.1.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

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

[✓] Connected device (1 available)
    • ONEPLUS A5000 (mobile) • 6bf122e6 • android-arm64 • Android 10 (API 29)

• No issues found!

@pedromassango : This seems to be in release 1.20 not 1.21. I think you assigned it the wrong tag, maybe?

@pedromassangocode
Copy link

@pedromassango : This seems to be in release 1.20 not 1.21. I think you assigned it the wrong tag, maybe?

I tested in release 1.21.

@agordeev
Copy link
Contributor

agordeev commented Aug 7, 2020

I'm also experiencing this issue on iOS (both device and simulator). Flutter version: 1.20.0
It's quite easy to reproduce if you set maxScale to 10.

@luyentm
Copy link

luyentm commented Aug 8, 2020

I also see same issue in flutter version 1.20.0. Anyone can give other version not meet this issue? thanks

@pedromassangocode
Copy link

The best way to have this fixed is to thumbs up this issue so that it will take priority over other issues.

@markusaksli-nc
Copy link
Member

I can repro this on both a physical device when tapping at different times (SM G950F) as the author suggested.

and an Android 11 emulator so this is not just a physical device issue.

flutter doctor -v
[√] Flutter (Channel master, 1.21.0-8.0.pre.140, on Microsoft Windows [Version 10.0.19041.388], locale en-US)
    • Flutter version 1.21.0-8.0.pre.140 at C:\Development\flutter_master
    • Framework revision c8d051295a (5 hours ago), 2020-08-11 00:26:02 -0400
    • Engine revision a62703778b
    • Dart version 2.10.0 (build 2.10.0-5.0.dev e2a67723ca)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at C:\Users\marku\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.1
    • Java binary at: C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.6.5)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.6.30320.27
    • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.0)
    • Android Studio at C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (5 available)
    • SM G950F (mobile)           • ce12171c51cc001c03 • android-arm64  • Android 9 (API 28)
    • sdk gphone x86 arm (mobile) • emulator-5554      • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)           • windows            • windows-x64    • Microsoft Windows [Version 10.0.19041.388]
    • Web Server (web)            • web-server         • web-javascript • Flutter Tools
    • Chrome (web)                • chrome             • web-javascript • Google Chrome 84.0.4147.105

• No issues found!

@AlexV525
Copy link
Member

Bring my tests result to here:

Failures are following steps below:

  1. Two fingers press at the same time.
  2. Try to scale the widget.
  3. ~50% of the gesture is no response with scale.

Succeeds are following steps below, and have some specific cases:

①: Fingers pressed one-by-one (~100%):

  1. Only one finger pressed down at first.
  2. Move the finger for a little bit.
  3. At the same time of moving, press the second finger and start scaling.

②: Rapidly scaling on the screen (~65%):

  1. Press two fingers on the screen with a rapidly enlarge gesture.

③: Place two fingers close (~85%):

  1. Place two fingers which makes them as close as possible.
  2. Scale it.

@justinmc
Copy link
Contributor

I was able to reproduce this on a physical Pixel 2 and I tracked the problem down to some scale gestures reporting a scale value of 1.0 at first, so they got interpreted as pans by InteractiveViewer. The fix is in #63543 and it seems to feel much much better to me.

@justinmc
Copy link
Contributor

Should be fixed in #63543 on master now. If anyone still sees this let me know.

@markusaksli-nc
Copy link
Member

I can also still repro this behavior on iOS and Android (both emulator and physical). It's gotten better but it's still pretty easy to get some weird behavior here. Should this be re-opened @justinmc?

@AlexV525
Copy link
Member

Could anyone who can reproduce this issue provides the layout you currently implemented? Because if you're using something like Stack it might take side effect to your scale gesture which you might not noticed.

As a prettier format:

Layout
codes

@markusaksli-nc
Copy link
Member

Not using a Stack. If there is a differentiable effect on the usability maybe it should be opened as a separate issue.

Used code sample
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Demo',
      home: Scaffold(
        appBar: AppBar(title: Text('Demo')),
        body: Center(
          child: InteractiveViewer(
            child: Container(
              color: Colors.brown,
              child: Image.network(
                'https://1001freedownloads.s3.amazonaws.com/vector/thumb/116435/go_board_09x09.png',
              ),
            ),
          ),
        ),
      ),
    );
  }
}

@AlexV525
Copy link
Member

@justinmc Should we reopen this?

@justinmc
Copy link
Contributor

Thanks everyone for following up on this. I tried @markusaksli-nc's code above and was able to reproduce some weirdness.

I've created a new issue, is this what everyone is seeing? #63999

Also watch out for this somewhat related issue: #58636

@filiph
Copy link
Contributor Author

filiph commented Aug 18, 2020

Thanks @justinmc for the quick fix!

Would it make sense to cherry pick this into the next stable hotfix? The bug is currently in stable and I'm afraid this could get really annoying for people who want to test the new widget out. Especially if they don't see the issue on their simulator/emulator and then are as surprised as I was when testing it out on a real device (or worse, after pushing to users).

@markusaksli-nc
Copy link
Member

@justinmc The new issue describes most of what I meant. The only seemingly outright failure of gesture detection I can still easily reproduce is zooming out from the close to the corners of the screen (zooming in works fine from the corners). Though on emulator this often just results in the panning problem so it's unclear if it's a separate issue.

@justinmc
Copy link
Contributor

@filiph No problem! That's a good idea, I'll look into it.

@justinmc
Copy link
Contributor

@markusaksli-nc That problem seems to a mistake in the demo code. I'll respond with a full explanation over in #63999.

@justinmc
Copy link
Contributor

I discussed this with my team and the conclusion was that it is not vital enough for a cherry pick. The next stable release cutoff is September 7th, so it shouldn't be too long of a wait. I'll remove the CP label. FYI @pcsosinski.

@p-kuen
Copy link

p-kuen commented Aug 21, 2020

@justinmc Thanks for the information. I personally would suggest to cherry pick it for a hotfix as the InteractiveView is just not usable in production. But IMHO a stable branch should only include stable widgets.

We transformed our self made zoom and pan technology to InteractiveViewer and can not release because of this bug (don't want to release with master branch). Waiting until September 7th is a long time though.

@justinmc
Copy link
Contributor

@Patcher56 Ah so sorry for interfering with your release. You may be able to get the fix a little earlier if you're able to use the dev channel. It doesn't contain the fix now, but it should be updated before stable.

@fichna
Copy link

fichna commented Dec 17, 2020

This bug makes InteractiveViewer useless. It's shame.

@filiph
Copy link
Contributor Author

filiph commented Dec 17, 2020

@fichna This bug has been fixed and the fix is in the current stable release. If you're still seeing similar problems with InteractiveViewer, please do report. Ideally in a new bug that references this one.

@fichna
Copy link

fichna commented Dec 18, 2020

Here it is. I realized it's not problem when child is Container but it is problem when child is Image. It can't zoom out.

@github-actions
Copy link

github-actions bot commented Aug 8, 2021

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 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
found in release: 1.21 Found to occur in 1.21 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.