text:
Android Studio Problems

Android Studio keeps "updating indices" all the time, every 2 or 3 seconds it repeats the process.
Also it can't create a new project.
using Android Studio 3.1.0-rc01 with latest flutter plugin and flutter 0.1.8-pre.43

Can you please add the output of flutter doctor -v?

@dovahkiin98  I had the similar problem, try to invalidate caches and restart studio.

Same issue here. Invalidate and restart doesn't help. This is my flutter doctor -v
[✓] Flutter (Channel beta, v0.1.5, on Mac OS X 10.13.3 17D102, locale pl-PL)
    • Flutter version 0.1.5 at /Users/bartolini/workspace-private/flutter
    • Framework revision 3ea4d06340 (4 weeks ago), 2018-02-22 11:12:39 -0800
    • Engine revision ead227f118
    • Dart version 2.0.0-dev.28.0.flutter-0b4f01f759

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /Users/bartolini/Library/Android/sdk
    • Android NDK at /Users/bartolini/Library/Android/sdk/ndk-bundle
    • Platform android-27, build-tools 27.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_152-release-1024-b01)

[✓] iOS toolchain - develop for iOS devices (Xcode 9.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.2, Build version 9C40b
    • ios-deploy 1.9.2
    • CocoaPods version 1.4.0

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

• No issues found!

I have exactly the same issue on Windows, since I updated the version of Android Studio
Invalidate and restart does not help.
Here is the version:
Android Studio 3.1
Build #AI-173.4670197, built on March 22, 2018
JRE: 1.8.0_152-release-1024-b02 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 7 6.1

try flutter channel dev flutter doctor
The beta channel is a bit outdated already especially if you are using the latest versions of plugins.

I have the same problem and found an earlier issue on the flutter-intellij repo (https://github.com/flutter/flutter-intellij/issues/1735), which was fixed in the case of creating a new project. However I have no idea how to solve this when you have an existing project.

It looks like they're on it. (https://github.com/flutter/flutter-intellij/issues/1735)
As for now I'm downloading the older version of AS to circumvent: https://developer.android.com/studio/archive.html

Same issue on Android Studio 3.1.

Sorry for not being able to come back to this earlier but we weren't able to reproduce.
Is this still an issue.

Not anymore.

@bartektartanus thanks for the feedback!
I'm going to close this issue then. Just add a comment if you think this is still an issue to get it reopened or create a new issue.

authors: Gustik SeaRoth bartektartanus boeledi dovahkiin98 geiszla jaredzhang zoechi


text:
removeRoute unresolved future

Steps to reproduce
In some scenarios, developers may want to use removeRoute() instead of pop() to remove a nested route which is not the first one. By calling removeRoute() alone, all codes which await a call to push() will never end : the future will never be resolved.
final Object? result = await Navigator.of(context).push() // By using removeRoute(), this will never end

To fix this issue, developper should maybe call route.didPop(any_data_or_null) after any removeRoute(route) call. I didn't know if this solution is 'perfect' and 'enough'. That's why i created this issue : to point an unresolved behavior and get a solution.
Documentation well mention this limitation but didn't provide any solution to release the futures.

My potential solution is to add after Navigator.of(context).removeRoute(route) a call to route.didPop(). If i'm right and didPop is not a bad idea, maybe the documentation should be updated to inform developers about this.

Launch app
Click on "open test page"
Click on "Remove current route"
Observe console logs

Expected results
In logs :
Open test page
Test page is closed: null

Actual results
In logs :
Open test page

Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(
    const MaterialApp(
      home: Home(),
    ),
  );
}

class Home extends StatelessWidget {
  const Home({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Home'),
      ),
      body: Center(
        child: SingleChildScrollView(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              ElevatedButton(
                onPressed: () async {
                  print("Open test page");
                  final Object? result = await Navigator.of(context).push(
                    MaterialPageRoute(
                      settings: const RouteSettings(name: TestRoute.routeName),
                      builder: (BuildContext context) => const TestRoute(),
                    ),
                  );

                  print("Test page is closed: $result");
                },
                child: const Text('Open test page'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class TestRoute extends StatelessWidget {
  const TestRoute({super.key});

  static const String routeName = 'test-route';

  Route<dynamic>? currentRoute(BuildContext context) {
    Route<dynamic>? result;
    Navigator.of(context).popUntil((Route<dynamic> route) {
      result = route;
      return true;
    });
    return result;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Test page'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            final Route<dynamic> route = currentRoute(context)!;
            Navigator.of(context).removeRoute(route);
          },
          child: const Text('Remove current route'),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
Not needed

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.24.3, on macOS 15.0.1 24A348 darwin-arm64, locale fr-FR)
    • Flutter version 3.24.3 on channel stable at /Users/earminjon/fvm/versions/3.24.3
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2663184aa7 (6 weeks ago), 2024-09-11 16:27:48 -0500
    • Engine revision 36335019a8
    • Dart version 3.5.3
    • DevTools version 2.37.3

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /Users/earminjon/Library/Android/Sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_HOME = /Users/earminjon/Library/Android/Sdk
    • Java binary at: /Users/earminjon/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16A242d
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Users/earminjon/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] Android Studio (version 2023.2)
    • Android Studio at /Users/perso/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.2.3)
    • IntelliJ at /Users/earminjon/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 82.0.3
    • Dart plugin version 242.22855.32

[✓] Connected device (4 available)
    • sdk gphone64 arm64 (mobile)     • emulator-5554         • android-arm64  • Android 15 (API 35) (emulator)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 15.0.1 24A348 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 15.0.1 24A348 darwin-arm64

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Thanks for the report. Seeing the same behavior as reported on latest versions.
stable : 3.24.3
master : 3.27.0-1.0.pre.231

It seems to work well if we call route.didComplete(null) after removeRoute().
Navigator.removeRoute(context, route);
route.didComplete(null);

the removeRoute should do something to the future, we could resolve it with null or have the push return a future subclass that provide way to listen to remove.

source: gharchive/issue

authors: EArminjon chunhtai darshankawar

repo: flutter/flutter

license_type: permissive

license_source: github-api


text:
[in_app_purchase_storekit] add expirationDate to Transaction

Use case
The current Transaction wrapper doesn't include many properties available in the swift object, we should expose those to the dart layer as well, specially expirationDate as it helps with determining how long for a subscription to end.
Proposal
Add expirationDate to Transaction and possibly all other properties as well.

@feinstein
Can you confirm if this issue resembles your case ?

@darshankawar my issue is only about the iOS integration, the other one seems to include all platforms, I am sending a PR that will close the iOS side only, so I can only reference this issue, otherwise I will close the other issue

The linked issue is part of umbrella issue https://github.com/flutter/flutter/issues/157558 related to storekit.

Yeah, but I can't close it too with my PR

Ok, reopening this for better tracking. You are welcome to send a PR to add this feature as described.

authors: darshankawar feinstein


text:
Scaffold without AppBar still drawing its container in iOS

My app has a BottomNavigationBar. I have a Stack with Offstage widgets holding each one a MaterialApp widget as child.
Inside each MaterialApp widget there's a default Scaffold, but with no AppBar (because the main AppBar is outside already, this MaterialApp is inside a tab).
So, even setting the AppBar to null or not setting it at all, the bar empty space still appears on the screen.
In my app, I have a ListView taking the whole screen of the tab. So the list starts beneath the "invisible" AppBar. I realized that I can set padding 0 to listview and it appears on top of the screen again. But then the first item of the list is almost unclickable because the "invisible" AppBar is on top of it, avoiding the touch.
This happens only on iOS. It doesn't happen on Android.
flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v0.3.5, on Mac OS X 10.13.4 17E202, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
[✓] Android Studio (version 3.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.3)
[✓] VS Code (version 1.23.1)
[✓] Connected devices (3 available)
• No issues found!

Can you please provide the code for a minimal reproduction?

authors: cetorres zoechi


text:
ArCore Plugin permission issues

Hey guys, so i have successfully written a ARCore plugin that for Flutter and it seemed to be working fine for a about 2 months. Well ... not anymore. Somehow my application is not able to access my flutter camera anymore. Need help ...
This is the output i get:
E/libc    (25739): Access denied finding property "camera.aux.packagelist"
W/Binder:25739_4(25739): type=1400 audit(0.0:447942): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=21329 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
E/libc    (25739): Access denied finding property "camera.aux.packagelist"
W/Binder:25739_5(25739): type=1400 audit(0.0:447943): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=21329 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
I/third_party/arcore/ar/core/android/sdk/session_create.cc(25739): Entering ArSession_create
I/third_party/arcore/ar/core/android/sdk/session_create.cc(25739): ARCore Version: APK version code: 181112096
I/native  (25739): version_check.cc:23 ARCore Version: APK version:1.6.181112096
I/native  (25739): version_check.cc:24 ARCore Version: emulated SDK version:1.5.180815000
I/third_party/arcore/ar/core/android/sdk/session_create.cc(25739): ARCore Version: SDK build name: 1.5
I/third_party/arcore/ar/core/android/sdk/session_create.cc(25739): Dynamite load ok.
I/native  (25739): session_create_implementation.cc:49 Entering ArSession_createWithSettingsImplementation_private. ARCore SDK version: [1.5.180815000].
V/third_party/redwood/base/jni_common/jni_helper.cc(25739): JniHelper: attached thread. (Called from line 189.)
I/native  (25739): session_create_implementation_shared.cc:784 Persistent online recalibration is enabled by Phenotype.
E/native  (25739): online_calibration_manager.cc:47 OnlineCalibrationManager: Could not open /data/user/0/com.peqas.peqas/cache/arcore-online-recalibration for reading.
I/native  (25739): cpu_feature_extractor.cc:56 Doing adaptive frequency feature extraction using KLT.
I/native  (25739): device_profile_conversions.cc:143 used_active_calibration: 2
I/native  (25739): device_profile_conversions.cc:143 used_active_calibration: 2
I/native  (25739): android_sensors.cc:80 Using uncalibrated accelerometer.
I/native  (25739): android_sensors.cc:110 Using uncalibrated magnetometer.
I/native  (25739): config_helpers.cc:207 Does not find IMU intrinsic covariance matrix in profile for id: 100
I/native  (25739): calibration_provider.cc:1000 Using default initial IMU intrinsic covariance matrix.
I/native  (25739): config_helpers.cc:60 Does not find camera intrinsic covariance matrix in profile for id 0
I/native  (25739): calibration_provider.cc:874 Using default initial camera intrinsic covariance matrix.
I/native  (25739): config_helpers.cc:133 Does not find extrinsic covariance matrix in profile for IMU id 100
I/native  (25739): calibration_provider.cc:936 Using default initial extrinsic covariance matrix.
I/native  (25739): vio_helper.cc:32 Use calibrated IMU scale factors.
I/native  (25739): vio_helper.cc:44 Use calibrated IMU misalignment factors.
I/native  (25739): device_profile_conversions.cc:143 used_active_calibration: 2
W/ARCore-AnchorServiceClientFactory(25739): The API key for use with the Google AR service could not be obtained!
I/native  (25739): android_camera.cc:1188 Initializing camera manager.
E/libc    (25739): Access denied finding property "camera.nolimit.clientname"
E/ACameraManager(25739): [Eeee] 374@getCameraIdList available number of camera is 2.
W/com.peqas.peqas(25739): type=1400 audit(0.0:447944): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=21329 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
I/native  (25739): android_camera.cc:1212 Camera manager initialized successfully with 2 cameras.
W/native  (25739): motion_analysis_calculator.cc:361 No input video header found. Downstream calculators expecting video headers are likely to fail.
I/native  (25739): session_create_implementation.cc:183 ArSession_createWithSettingsImplementation_private returning OK.
I/third_party/arcore/ar/core/android/sdk/arimage_jni.cc(25739): Loading AImage symbols
I/third_party/arcore/ar/core/android/sdk/image_metadata_jni.cc(25739): Loading ACameraMetadata symbols
I/FlutterArcoreView(25739): Session created man
E/native  (25739): status.cc:156 ArStatusErrorSpace::AR_ERROR_DATA_INVALID_FORMAT: Failed to parse bytes containing image database.
I/flutter (25739): Scanner.ArCore
D/libEGL  (25739): eglInitialize: enter
D/libEGL  (25739): eglInitialize: exit(res=1)
D/libEGL  (25739): eglInitialize: enter
D/libEGL  (25739): eglInitialize: exit(res=1)
I/System.out(25739): android: image recognition resumed
W/com.peqas.peqas(25739): type=1400 audit(0.0:447945): avc: denied { search } for comm=474C5468726561642033363638 name="ctx" dev="debugfs" ino=14805 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:qti_debugfs:s0 tclass=dir permissive=0
E/native  (25739): status.cc:156 ArStatusErrorSpace::AR_ERROR_SESSION_PAUSED: Could not update frame, session is paused.
E/FlutterArcoreView(25739): Exception on the OpenGL thread
E/FlutterArcoreView(25739): com.google.ar.core.exceptions.SessionPausedException
E/FlutterArcoreView(25739): 	at com.google.ar.core.V.b(Unknown Source:2)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.throwExceptionFromArStatus(Unknown Source:14)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.nativeUpdate(Native Method)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.update(Unknown Source:12)
E/FlutterArcoreView(25739): 	at com.peqas.arcoreplugin.FlutterArcoreView.onDrawFrame(FlutterArcoreView.java:302)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1575)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)
E/native  (25739): status.cc:156 ArStatusErrorSpace::AR_ERROR_SESSION_PAUSED: Could not update frame, session is paused.
E/FlutterArcoreView(25739): Exception on the OpenGL thread
E/FlutterArcoreView(25739): com.google.ar.core.exceptions.SessionPausedException
E/FlutterArcoreView(25739): 	at com.google.ar.core.V.b(Unknown Source:2)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.throwExceptionFromArStatus(Unknown Source:14)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.nativeUpdate(Native Method)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.update(Unknown Source:12)
E/FlutterArcoreView(25739): 	at com.peqas.arcoreplugin.FlutterArcoreView.onDrawFrame(FlutterArcoreView.java:302)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1575)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)
E/native  (25739): status.cc:156 ArStatusErrorSpace::AR_ERROR_SESSION_PAUSED: Could not update frame, session is paused.
E/FlutterArcoreView(25739): Exception on the OpenGL thread
E/FlutterArcoreView(25739): com.google.ar.core.exceptions.SessionPausedException
E/FlutterArcoreView(25739): 	at com.google.ar.core.V.b(Unknown Source:2)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.throwExceptionFromArStatus(Unknown Source:14)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.nativeUpdate(Native Method)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.update(Unknown Source:12)
E/FlutterArcoreView(25739): 	at com.peqas.arcoreplugin.FlutterArcoreView.onDrawFrame(FlutterArcoreView.java:302)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1575)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)
D/libEGL  (25739): eglInitialize: enter
D/libEGL  (25739): eglInitialize: exit(res=1)
D/libEGL  (25739): eglInitialize: enter
D/libEGL  (25739): eglInitialize: exit(res=1)
E/native  (25739): status.cc:156 ArStatusErrorSpace::AR_ERROR_SESSION_PAUSED: Could not update frame, session is paused.
E/FlutterArcoreView(25739): Exception on the OpenGL thread
E/FlutterArcoreView(25739): com.google.ar.core.exceptions.SessionPausedException
E/FlutterArcoreView(25739): 	at com.google.ar.core.V.b(Unknown Source:2)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.throwExceptionFromArStatus(Unknown Source:14)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.nativeUpdate(Native Method)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.update(Unknown Source:12)
E/FlutterArcoreView(25739): 	at com.peqas.arcoreplugin.FlutterArcoreView.onDrawFrame(FlutterArcoreView.java:302)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1575)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)
E/native  (25739): status.cc:156 ArStatusErrorSpace::AR_ERROR_SESSION_PAUSED: Could not update frame, session is paused.
E/FlutterArcoreView(25739): Exception on the OpenGL thread
E/FlutterArcoreView(25739): com.google.ar.core.exceptions.SessionPausedException
E/FlutterArcoreView(25739): 	at com.google.ar.core.V.b(Unknown Source:2)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.throwExceptionFromArStatus(Unknown Source:14)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.nativeUpdate(Native Method)
E/FlutterArcoreView(25739): 	at com.google.ar.core.Session.update(Unknown Source:12)
E/FlutterArcoreView(25739): 	at com.peqas.arcoreplugin.FlutterArcoreView.onDrawFrame(FlutterArcoreView.java:302)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1575)
E/FlutterArcoreView(25739): 	at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270)
E/native  (25739): status.cc:156 ArStatusErrorSpace::AR_ERROR_SESSION_PAUSED: Could not update frame, session is paused.
E/FlutterArcoreView(25739): Exception on the OpenGL thread

Flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.0.0, on Mac OS X 10.13.6 17G3025, locale en-DE)
[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
[✓] Android Studio (version 3.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.2.5)
[!] VS Code (version 1.30.2)
[✓] Connected device (1 available)

! Doctor found issues in 1 category.

my Plugin  AndoidManifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.peqas.arcoreplugin">
    <!-- "AR Required" apps must declare minSdkVersion ≥ 24 -->

    <uses-permission android:name="android.permission.CAMERA" />

    <!-- Indicates that app requires ARCore ("AR Required"). Ensures app is only
         visible in the Google Play Store on devices that support ARCore.
    -->
    <uses-feature android:name="android.hardware.camera.ar" />

    <application>
        <!-- Indicates that app requires ARCore ("AR Required"). Causes Google
             Play Store to download and install ARCore when the app is installed.
        -->
        <meta-data android:name="com.google.ar.core" android:value="required" />
    </application>
</manifest>

App Android Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.peqas.peqas">

    <!-- The INTERNET permission is required for development. Specifically,
         flutter needs it to communicate with the running application
         to allow setting breakpoints, to provide hot reload, etc.
    -->
    <uses-permission android:name="android.permission.INTERNET"/>

    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="peqas"
        android:icon="@mipmap/ic_launcher"
        tools:ignore="GoogleAppIndexingWarning">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- This keeps the window background of the activity showing
                 until Flutter renders its first frame. It can be removed if
                 there is no splash screen (such as the default splash screen
                 defined in @style/LaunchTheme). -->
            <meta-data
                android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
                android:value="true" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

Pleaseee  help ....
Thank you in advance 👍

Thank you for the fast reply. I managed to fix the error. Turned out not to be related to the plugin at all.
Kind Regards
@khalithartmann how did you solve the issue?

Thank you for the fast reply. I managed to fix the error. Turned out not to be related to the plugin at all.
Kind Regards 👍

how did you solve?


text:
Windows shell should not open a console in Release

This is something we'll want to address before making a flutter create template.
From my preliminary research on this, it seems like what we probably want to do is use the WINDOWS subsystem rather than the CONSOLE subsystem, then AllocConsole in Debug builds.

I saw It add in milestone! But If someone need a workaround, I found out a simple way to do it.

Open flutter_embedder_example.cpp
Add the following code at certain line (I added after the line of plugin loaded):

::ShowWindow(::GetConsoleWindow(), SW_HIDE);

This would popup up command in a second, but is going to be disappeared finally.

adjust linker option:  /subsystem: windows in Release Mode. but I think we need resolve engine release build first. please assign this issuse to me.

I think we need resolve engine release build first

Isn't this an exe-level setting? The runner executable already has distinct debug and release modes, it's only the Flutter library that's currently debug regardless of the build mode.

@stuartmorgan , This modification cannot be mapped to flutter/engine. It only exists in flutter-desktop-embedding/example. What is our migration plan for example/runner?

PR: https://github.com/google/flutter-desktop-embedding/pull/511

Fixed by the above PR.

authors: Tokenyet gnf shoryukenn stuartmorgan


text:
flutter_tools\test\asset_bundle_test.dart is flaky on windows

test\asset_bundle_test.dart: AssetBundle.build handle removal of wildcard directories

When did it start being flaky?

Do you have an example Cirrus task that failed, and what the output was?

It was on my latest commit but someone clicked rerun, or cirrus re-ran it

https://cirrus-ci.com/task/6705135426732032
00:19 +144: test\asset_bundle_test.dart: AssetBundle.build handle removal of wildcard directories                                                                                Expected: <true>
  Actual: <false>

#0      fail (package:test_api/src/frontend/expect.dart:152:30)
#1      _expect (package:test_api/src/frontend/expect.dart:146:3)
#2      expect (package:test_api/src/frontend/expect.dart:59:3)
#3      main.<anonymous closure>.<anonymous closure> (org-dartlang-app:///test/asset_bundle_test.dart:131:7)
<asynchronous suspension>
#4      testUsingContext.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (org-dartlang-app:///test/src/context.dart:108:42)
<asynchronous suspension>
#5      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:29)
<asynchronous suspension>
#6      _rootRun (dart:async/zone.dart:1124:13)
#7      _CustomZone.run (dart:async/zone.dart:1021:19)
#8      _runZoned (dart:async/zone.dart:1516:10)
#9      runZoned (dart:async/zone.dart:1463:12)
#10     AppContext.run (package:flutter_tools/src/base/context.dart:152:18)
<asynchronous suspension>
#11     testUsingContext.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (org-dartlang-app:///test/src/context.dart:96:30)
#12     _rootRun (dart:async/zone.dart:1124:13)
#13     _CustomZone.run (dart:async/zone.dart:1021:19)
#14     _runZoned (dart:async/zone.dart:1516:10)
#15     runZoned (dart:async/zone.dart:1500:12)
#16     testUsingContext.<anonymous closure>.<anonymous closure>.<anonymous closure> (org-dartlang-app:///test/src/context.dart:94:18)
#17     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:29)
<asynchronous suspension>
#18     _rootRun (dart:async/zone.dart:1124:13)
#19     _CustomZone.run (dart:async/zone.dart:1021:19)
#20     _runZoned (dart:async/zone.dart:1516:10)
#21     runZoned (dart:async/zone.dart:1463:12)
#22     AppContext.run (package:flutter_tools/src/base/context.dart:152:18)
<asynchronous suspension>
#23     testUsingContext.<anonymous closure>.<anonymous closure> (org-dartlang-app:///test/src/context.dart:69:22)
#24     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:29)
<asynchronous suspension>
#25     _rootRun (dart:async/zone.dart:1124:13)
#26     _CustomZone.run (dart:async/zone.dart:1021:19)
#27     _runZoned (dart:async/zone.dart:1516:10)
#28     runZoned (dart:async/zone.dart:1463:12)
#29     AppContext.run (package:flutter_tools/src/base/context.dart:152:18)
<asynchronous suspension>
#30     runInContext (package:flutter_tools/src/context_runner.dart:56:24)
<asynchronous suspension>
#31     testUsingContext.<anonymous closure> (org-dartlang-app:///test/src/context.dart:68:11)
<asynchronous suspension>
#32     Declarer.test.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:168:27)
<asynchronous suspension>
#33     Invoker.waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:250:15)
<asynchronous suspension>
#34     _rootRun (dart:async/zone.dart:1124:13)
#35     _CustomZone.run (dart:async/zone.dart:1021:19)
#36     _runZoned (dart:async/zone.dart:1516:10)
#37     runZoned (dart:async/zone.dart:1463:12)
#38     Invoker.waitForOutstandingCallbacks (package:test_api/src/backend/invoker.dart:247:5)
#39     Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:166:33)
#40     _rootRun (dart:async/zone.dart:1124:13)
#41     _CustomZone.run (dart:async/zone.dart:1021:19)
#42     _runZoned (dart:async/zone.dart:1516:10)
#43     runZoned (dart:async/zone.dart:1463:12)
#44     Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:165:13)
<asynchronous suspension>
#45     Invoker._onRun.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart:400:25)
<asynchronous suspension>
#46     new Future.<anonymous closure> (dart:async/future.dart:176:37)
#47     StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:209:15)
#48     StackZoneSpecification._registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:119:48)
#49     _rootRun (dart:async/zone.dart:1120:38)
#50     _CustomZone.run (dart:async/zone.dart:1021:19)
#51     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#52     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
#53     StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:209:15)
#54     StackZoneSpecification._registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:119:48)
#55     _rootRun (dart:async/zone.dart:1124:13)
#56     _CustomZone.run (dart:async/zone.dart:1021:19)
#57     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#58     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:21:15)
#59     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)
#60     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)
#61     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)

00:19 +144 -1: test\asset_bundle_test.dart: AssetBundle.build handle removal of wildcard directories [E]
  Expected: <true>
    Actual: <false>

  package:test_api                                       expect
  org-dartlang-app:///test/asset_bundle_test.dart 131:7  main.<fn>.<fn>
  ===== asynchronous gap ===========================
  dart:async                                             _AsyncAwaitCompleter.completeError
  org-dartlang-app:///test/asset_bundle_test.dart        main.<fn>.<fn>
  ===== asynchronous gap ===========================
  dart:async                                             _asyncThenWrapperHelper
  org-dartlang-app:///test/asset_bundle_test.dart        main.<fn>.<fn>
  org-dartlang-app:///test/src/context.dart 108:42       testUsingContext.<fn>.<fn>.<fn>.<fn>.<fn>

I looked at the last 100 Cirrus runs, and this failed on 4 of them - all indications are that it's been flaky before that.  So we're looking at ~4% flakiness potentially since the test was written.

Skipping the test on Windows, and removing the TODAY label.

Hmm. this started failing very consistently again today.  Failed three times, and reverting the first PR didn't stop the failing:
https://cirrus-ci.com/task/6014762248306688?command=test_all#L570

I'm pretty sure this is flaky because it's trying to compare timestamps that end up not being what's expected.
https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/asset.dart#L103 in particular is looking at the stat of the file in a MemoryFileSystem. It's possible that the file writes are happening quickly enough where it's resolving to the same time (instead of some time later).

https://github.com/google/file.dart/pull/129 was merged yesterday to allow this to be fixed - published in package:file version 5.1.0.

@tvolkert  - that actually just makes the failure 100% instead of flakily dependent on the clock.  We'd still end up with an implementation that wants to compare a timestamp of when a method got called with the stat of a file, which .. probably needs to change.  I'm going to mark the test as skipped again to unblock the tree.  @jonahwilliams says he's going to work on this some more on Monday.

authors: Hixie dnfield gspencergoog jonahwilliams tvolkert


text:
webview_flutter and linear progress indicator

When loading a Web page, showing a linear progress indicator to the user estimating how much of the loading work has been done (and how much remains) is standard at least on iOS. How to get a progress estimate from WebView so a linear progress indicator can be updated?

any solution?how to know the loading progress?

Duplicate of https://github.com/flutter/flutter/issues/28872. Please add votes there if you are interested in this feature.


text:
In webview_flutter, how can I inject js script atDocumentStart instead of onload?

I am trying to create a webview in flutter so that web browser can inject some js code to the document before it loads (atDocumentStart).
I have tried several ways, but it always seems to inject the code too late (onload).
final String injectScript =  ("some js code");

class WebPage extends StatefulWidget {
  WebPage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _WebPageState createState() => _WebPageState();
}

class _WebPageState extends State<WebPage> {
  GlobalKey<ScaffoldState> scaffoldState;
  bool isLoading = false;
  final assetIdController = TextEditingController(text: "");
  bool isValid = true;
  static Completer<WebViewController> _webViewController =
      Completer<WebViewController>();

  @override
  void initState() {
    super.initState();

  }

    Widget favoriteButton() {
    return FutureBuilder<WebViewController>(
        future: _webViewController.future,
        builder: (BuildContext context,
            AsyncSnapshot<WebViewController> controller) {
          if (controller.hasData) {

            return FloatingActionButton(
              onPressed: () async {
//                TOO LATE HERE:
                controller.data.evaluateJavascript(injectScript);
              },
              child: const Icon(Icons.refresh),
            );
          }
          return Container();
        });
    }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        key: scaffoldState,
        appBar: AppBar(
          centerTitle: true,
          elevation: 0.0,
          iconTheme: IconThemeData(color: Theme.of(context).primaryColor),
          backgroundColor: Theme.of(context).canvasColor,
        ),
        backgroundColor: const Color(0xFFF8F8F8),
        body: WebView(
          initialUrl: 'https://communities-qa.cln.network',
          javascriptMode: JavascriptMode.unrestricted,
          onWebViewCreated: (WebViewController webViewController) async {
//            NOT WORKING HERE:
//            await webViewController.evaluateJavascript(injectScript);

            _webViewController.complete(webViewController);
          },
        ),
        floatingActionButton: favoriteButton(),);
  }
}

I expect it to load the code before the page (the page relying on the evaluated code to run), but it is either too late or not working.

Hello @bejavu !
Thank you for posting an issue.
Can you please provide the flutter doctor -v command output?
Your question seems to be a good fit for the StackOverflow as well. Flutter has a very active and helpful community there, so feel free to post it there too.
This issue is probably related to that one: https://github.com/fluttercommunity/flutter_webview_plugin/issues/459
Thank you.

Thank you for the reply, I don't think that flutter doctor -v is relevant here.
I also asked in the SO site: https://stackoverflow.com/questions/56258406/in-flutter-how-can-i-inject-an-js-script-atdocumentstart-instead-of-onload
The issue you linked also has no answer.

Hi @bejavu - it's been a while since this issue was created, did you find any workaround?

authors: Aulig bejavu janmoppel


text:
[luci] Upload framework coverage?

Per discussion at https://github.com/flutter/infra/pull/71#issuecomment-556240160, LUCI isn't uploading framework coverage data currently. Is it really needed?
/cc @goderbauer @dnfield @Hixie

It is, see https://github.com/flutter/flutter/wiki/Test-coverage-for-package%3Aflutter.

This is a duplicate of https://github.com/flutter/flutter/issues/31615

authors: Hixie digiter


text:
TextField overflow not working when read onlly

Hi  Team
Can you add  overflow  option in TextField  widget ,if the read only attribute set true for single line
Regards
Rakesh

Hi @RakeshJv
TextField overflows automatically.
Code sample
Could you specify what do you mean with 'overflow option'? Option to overflow not only in the end?
Thank you
Possibly related to #26006

Hi sir
Thanks for the reply but  this working well with hint not with TextEditingController
Here is code  please run and check ,you find the issue
 TextEditingController _partNoController = TextEditingController();

@override
void initState() {
super.initState();
_partNoController.text="SDAWDWDWdwZZZZZZC"+
"AAAASASASssaassssssssss"+
"asASDDddSDadAdaAAaDDaDAc zxzzxscascsascsasAcxsaASAdaDA"+
"DFSDFSDFSDFSDSDASSaeaFQWAs"
;
}
static const String _long = "part description";
@override
Widget build(BuildContext context) => Scaffold(
body: Center(
child: TextField(
readOnly: true,
controller:_partNoController,
decoration: InputDecoration(
hintText: _long),
),
),
);
}

HI @RakeshJv, I am having a hard time understanding the issue, Running your code sample seems to give the desired output

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

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

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;
  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  TextEditingController _partNoController = TextEditingController();

  @override
  void initState() {
    super.initState();

    _partNoController.text = "SDAWDWDWdwZZZZZZC" +
        "AAAASASASssaassssssssss" +
        "asASDDddSDadAdaAAaDDaDAc zxzzxscascsascsasAcxsaASAdaDA" +
        "DFSDFSDFSDFSDSDASSaeaFQWAs";
  }

  String _long = "part description";
  @override
  Widget build(BuildContext context) => Scaffold(
        body: Center(
          child: TextField(
            readOnly: true,
            controller: _partNoController,
            decoration: InputDecoration(hintText: _long),
          ),
        ),
      );
}

flutter doctor -v (mac)
[✓] Flutter (Channel stable, 2.10.5, on macOS 12.3 21E230 darwin-arm, locale en-IN)
    • Flutter version 2.10.5 at /Users/mahesh/Documents/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 5464c5bac7 (12 hours ago), 2022-04-18 09:55:37 -0700
    • Engine revision 57d3bac3dd
    • Dart version 2.16.2
    • DevTools version 2.9.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.10.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

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

[✓] Connected device (4 available)
    • Redmi K20 Pro (mobile) • 192.168.1.2:55555                    • android-arm64  • Android 11 (API 30)
    • iPhone 12 Pro (mobile) • 535317A4-921C-488F-B234-C2CC6D4AE5A1 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.3 21E230 darwin-arm
    • Chrome (web)           • chrome                               • web-javascript • Google Chrome 100.0.4896.88

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

authors: RakeshJv VladyslavBondarenko maheshmnj


text:
Flutter Service Worker not working with Github pages

I have created a app with flutter web and enabled git hub pages with it.
(here is the link: https://github.com/Adrieldf/allthewidgets)
The gh-pages is the branch containing the web app.
This is the error message:

A bad HTTP response code (404) was received when fetching the script.
Uncaught (in promise) TypeError: Failed to register a ServiceWorker for scope ('https://adrieldf.github.io/') with script ('https://adrieldf.github.io/flutter_service_worker.js'): A bad HTTP response code (404) was received when fetching the script.

It only happens on the github pages website, while running locally it works as expected.

Did you upload the build/web directory? It doesn't look like flutter_service_worker.js was actually uploaded to github.

I'm using the default git ignore for Flutter and the web folder it is on root of master branch

Are you using the folder that is output as a result of flutter build web? See flutter.dev/web for more information

Yes, I have a action that it is triggered for every commit and runs these commands:

flutter config --enable-web
flutter pub get
flutter build web --release
cd build/web
git init
git config --global user.email adriel.idf@gmail.com
git config --global user.name Adrieldf
git status
git remote add origin https://${{secrets.commit_secret}}@github.com/Adrieldf/allthewidgets.git
git checkout -b gh-pages
git add --all
git commit -m "update"
git push origin gh-pages -f

So that the branch "ph-pages" only haves the build/web folder to load the website on Github Pages..
But if I run the application via Visual Studio Code the website starts normally.

If you're literally get 404s, it means the file likely wasn't updated. Can you share the repo that is being served on github pages?

Yes, here is the link https://github.com/Adrieldf/allthewidgets/tree/gh-pages?files=1

Ahh, okay - this was probably https://github.com/flutter/flutter/issues/50580. This might be fixed on master, but you do need to slightly update or regenerate index.html so that there are no leading / on the resource paths

Thank you. I've deleted that script tag that was referencing the service worker and then the problem was with flutter.dart.js so I've checked on git ignore and it was ignoring *.dart.js, just removing that and everything went back to normal.

authors: Adrieldf jonahwilliams


text:
deploy_gallery-macos certificate appears to have expired

Build is consistently red on the deploy_gallery-macos shard.
https://cirrus-ci.com/task/5601766490243072
[17:25:04]: fastlane finished with errors
[!] Your certificate '7NT48M7VVR.cer' is not valid, please check end date and renew it if necessary

This is duplicated of https://github.com/flutter/flutter/issues/54016

authors: digiter tvolkert


text:
Allow platforms to save user input for future autofill

Continuation of https://github.com/flutter/flutter/issues/13015.
Android and many web browsers save user input for future autofill, when a form is finalized.
Android Documentation: https://developer.android.com/guide/topics/text/autofill-optimize#ensure

Thank you for your efforts.
Will it be available in the first quarter of 2020?
We are all looking forward to it.

Note: Required for web implementation of autofill.

Hi @LongCatIsLooong ,
Did you had time to have a look at this issue? Please let me know if there are any parts I can help.

Assigning to @LongCatIsLooong since you have a PR out for this.

Is autofill save now available for iOS and Android? If Yes, how to enable autofill save for iOS?

@nakuzm you should be able to manually trigger it by calling TextInput.finishAutofillContext() (or TextInput.finishAutofillContext(shouldSave: false) if you wish to create a new context without saving the current user input).

@nakuzm you should be able to manually trigger it by calling TextInput.finishAutofillContext() (or TextInput.finishAutofillContext(shouldSave: false) if you wish to create a new context without saving the current user input).

Those methods are not available for me and I just upgraded my flutter to stable 1.20.  What I am doing wrong?

@shinayser The same goes for me... I too was not able to use those methods

@nakuzm you should be able to manually trigger it by calling TextInput.finishAutofillContext() (or TextInput.finishAutofillContext(shouldSave: false) if you wish to create a new context without saving the current user input).

Those methods are not available for me and I just upgraded my flutter to stable 1.20. What I am doing wrong?

Looks like it's been merged to master, not yet in stable. You'll need to switch channels if you require the Autofill save feature immediately

as MichaelPSN pointed out, this was merged recently so it's not part of the 1.20 release.

I might be wrong, but since there is not way to save user input right now, there is no reason to reason to use autofill right now, right?
Or am I wrong?

I might be wrong, but since there is not way to save user input right now, there is no reason to reason to use autofill right now, right?
Or am I too noob?

The sms code auto fill on iOS is really nice and works now. If you use an external password manager where you add an entry manually, that works too.

@nturgut I think we can close this one now that the web PR has been merged?

@nturgut I think we can close this one now that the web PR has been merged?

Yes, that is correct. Thanks for letting me know I closed the web issue but forgot about this one.

authors: BirjuVachhani HeebeLee LongCatIsLooong MichaelPSN acoutts ferhatb goderbauer nakuzm nturgut shinayser


text:
issue related to bottom sheet

Steps to Reproduce

Run flutter create bug.
Update the files as follows: ...
...

Expected results:
Actual results:

Logs

Hi @raheena-raeen
opening an issue please try to provide
all or some of the information indicated in the template

Issue Template
If you are looking for support, please check out our documentation
or consider asking a question on Stack Overflow:
- https://flutter.dev/
- https://api.flutter.dev/
- https://stackoverflow.com/questions/tagged/flutter?sort=frequent

If you have found a bug or if our documentation doesn't have an answer
to what you're looking for, then fill our the template below. Please read
our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports

Steps to Reproduce

Please tell us exactly how to reproduce the problem you are running into.

Please attach a small application (ideally just one main.dart file) that
reproduces the problem. You could use https://gist.github.com/ for this.

If the problem is with your application's rendering, then please attach
a screenshot and explain what the problem is.

1. ...
2. ...
3. ...

Please tell us which target platform(s) the problem occurs (Android / iOS / Web / macOS / Linux / Windows)
Which target OS version, for Web, browser, is the test system running?
Does the problem occur on emulator/simulator as well as on physical devices?

Target Platform:
Target OS version/browser:
Devices:

Run your application with `flutter run --verbose` and attach all the
log output below between the lines with the backticks. If there is an
exception, please see if the error message includes enough information
to explain how to solve the issue.

Run `flutter analyze` and attach any output of that command below.
If there are any analysis errors, try resolving them before filing this issue.

Finally, paste the output of running `flutter doctor -v` here.

Closing this issue, since no information has been provided.
Thank you.

authors: VladyslavBondarenko raheena-raeen


text:
Background color obstructs ListView hover effect

Steps to reproduce
Run the following app:
import 'package:flutter/material.dart';

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

class FailingListTileHover extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: DecoratedBox(
          decoration: BoxDecoration(
            color: Colors.white,
          ),
          child: ListView(
            children: [
              Material(
                child: ListTile(
                  title: Text('Enabled; has Material ancestor'),
                  hoverColor: Colors.red,
                  enabled: true,
                  onTap: () {},
                ),
              ),
              Material(
                child: ListTile(
                  title: Text('Disabled; has Material ancestor'),
                  hoverColor: Colors.red,
                  enabled: false,
                  onTap: () {},
                ),
              ),
              ListTile(
                title: Text('Enabled; does not have Material ancestor'),
                hoverColor: Colors.red,
                enabled: true,
                onTap: () {},
              ),
              ListTile(
                title: Text('Disabled; does not have Material ancestor'),
                hoverColor: Colors.red,
                enabled: false,
                onTap: () {},
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Expected behavior
You expect the hover effect (red color) to work on all enabled list tiles (in the example above, the first and the third).
Actual behavior
Only the list tile that's wrapped in a Material widget displays the hover effect.  The list tile that's not wrapped in a Material widget does not show the red hover, presumably because the box decoration background is obscuring the hover effect.
This can be seen at https://dartpad.dev/0d2cdf67ab201445667b4d9230844234

/cc @dkwingsmt

This is working as intended; replace DecoratedBox with InkDecoration.

How would I as an app developer know that?  i.e. how would I know that the hover effect is painted on a Material surface?

By reading the material spec or the API docs for the widgets that do the focus/hover effects, probably. We may need to update the API docs if they're not clear about it.

The net effect of this is that I can't use a DecoratedBox anywhere in the ancestry of the ListView, which is unfortunate, because it disqualifies some widgets available on pub.
It also means you can't use ListTile.divideTiles, which creates decorated boxes.  Should that change to use Ink?

flutter doctor -v
[✓] Flutter (Channel dev, 1.20.0-3.0.pre, on Mac OS X 10.15.5 19F101, locale
    en-GB)
    • Flutter version 1.20.0-3.0.pre at /Users/taha/Code/flutter_dev
    • Framework revision 0af027f805 (5 days ago), 2020-07-04 12:19:20 -0700
    • Engine revision a751393804
    • Dart version 2.9.0 (build 2.9.0-20.0.dev 22da8934ac)

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

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

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

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

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

[✓] Connected device (4 available)
    • SM M305F (mobile)      • 32003c30dc19668f          • android-arm64  •
      Android 10 (API 29)
    • Taha’s iPhone (mobile) • 00008020-001059882212002E • ios            • iOS
      13.5.1
    • Web Server (web)       • web-server                • web-javascript •
      Flutter Tools
    • Chrome (web)           • chrome                    • web-javascript •
      Google Chrome 83.0.4103.116

• No issues found!

authors: Hixie TahaTesser tvolkert


text:
iOS crash on startup not caught by engine integration tests

An upstream change in Skia caused the empty font manager to be selected in the iOS embedder. This wasn't caught by:

Skia tests (issue)
Engine tests (this issue)
Framework presubmit (intentionally skipped due to current lack of infra)
and was only caught in devicelab tests after the engine rolled to the framework.

We should ensure we've got a test that catches crash/abort() on startup issues.

I think our scenario tests would now catch this.

authors: cbracken jmagman


text:
My flutter web application is not running, I've tried everything.

From flutter MASTER, to BETA, to STABLE. I've shifted channels everywhere, but the error I always get while executing flutter run -d chrome is:
Launching lib\main.dart on Chrome in debug mode...
Syncing files to device Chrome...
18,003ms (!)
Failed to compile application.

I've ran flutter doctor multiple times, upgraded flutter multiple times. Still the error persists.
Want to see my flutter doctor result? Here it is:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, 1.20.0-1.0.pre.91, on Microsoft Windows [Version 10.0.18363.900], locale en-IN)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Chrome - develop for the web
[√] Android Studio (version 4.0)
[!] IntelliJ IDEA Community Edition (version 2018.3)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[√] IntelliJ IDEA Community Edition (version 2019.2)
[√] Connected device (4 available)

! Doctor found issues in 1 category.

Want to see my flutter devices reslult? Here it is:
POCO F1    • 488f7b1    • android-arm64  • Android 9 (API 28)
Web Server • web-server • web-javascript • Flutter Tools
Chrome     • chrome     • web-javascript • Google Chrome 83.0.4103.106
Edge       • edge       • web-javascript • Microsoft Edge 83.0.478.54

What shall I do?

Can you show us what steps you've followed? also, are you on mac?

I am on Windows.

Can you show us what steps you've followed? also, are you on mac?

I just created an app for android phone. But then I wanted to test it out on web after it was established well for android phone. I followed all the traditional steps of
flutter channel beta
flutter configure --enable-web
flutter upgrade --force
flutter run -d chrome
and it fails to run it on chrome.
I have tried on all other channels as well, not just beta.

Could you provide the output of flutter analyze

Could you provide the output of flutter analyze

Ok. There was some weird import dart.fft in one of the dart files somewhere. I removed that and it made the connection. But now the problem is that the chrome is giving a blank white screen. I think it requires a different issue, so I'm going to close this now. Thanks for your help everyone.


text:
RTL text rendering glitch on web

When hovering over an interactive element (e.g. a regular FlatButton), the text is drawn incorrectly as seen here (GIF):

Digging a bit more into it, it seems that when displaying the element as a flt-dom-canvas everything looks good but when its turned into a canvas element flt-canvas and checking the CanvasRenderingContext2D.direction it seems it is set to ltr even though the theme of the app is rtl. So bottom line, this optimization seems to be broken for RTL.
Testing with FLUTTER_WEB_USE_SKIA behaves correctly but it introduces many other different unrelated issues.

Flutter 1.23.0-18.1.pre
Flutter 1.23.0-18.1.pre • channel beta • https://github.com/flutter/flutter.git
Framework • revision 198df796aa (2 weeks ago) • 2020-10-15 12:04:33 -0700
Engine • revision 1d12d82d9c
Tools • Dart 2.11.0 (build 2.11.0-213.1.beta)

Hi @ialhashim
For me, RTL doesn't render properly using simple FlatButton with mixed Text as shown in your GIF

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      theme: ThemeData.dark(),
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Material App Bar'),
      ),
      body: Center(
        child: FlatButton(
          child: Text('Hello رسالة (4)'),
          onPressed: () {},
        ),
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
        onPressed: () {},
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel beta, 1.23.0-18.1.pre, on Mac OS X 10.15.7 19H2 x86_64,
    locale en-GB)
    • Flutter version 1.23.0-18.1.pre at /Users/tahatesser/Code/flutter_beta
    • Framework revision 198df796aa (2 weeks ago), 2020-10-15 12:04:33 -0700
    • Engine revision 1d12d82d9c
    • Dart version 2.11.0 (build 2.11.0-213.1.beta)

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

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.10.0.rc.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

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

[✓] Connected device (4 available)
    • Taha’s iPad (mobile) • 00008020-000255113EE8402E            • ios
      • iOS 14.1
    • iPhone 12 (mobile)   • BAFAB765-173F-4B78-93AC-F6FB6E6783C3 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-14-1 (simulator)
    • Web Server (web)     • web-server                           •
      web-javascript • Flutter Tools
    • Chrome (web)         • chrome                               •
      web-javascript • Google Chrome 86.0.4240.111

• No issues found!

Can you please provide your  flutter run --debug --dart-define=FLUTTER_WEB_USE_SKIA=true -d chrome -v  and a complete reproducible minimal code sample
Thank you

Here is a complete reproducible minimal code sample:
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      localizationsDelegates: [
        GlobalCupertinoLocalizations.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: [Locale("ar")],
      locale: Locale("ar"),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('title'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            FlatButton(
              child: Text('message (4) رسالة'),
              onPressed: () {},
            ),
          ],
        ),
      ),
    );
  }
}

When running flutter run --debug --dart-define=FLUTTER_WEB_USE_SKIA=true -d chrome -v I get the same thing with boxes (i.e. missing Arabic letters). I am including the output here.

Complete reproducible minimal code sample
[  +89 ms] executing: [F:\flutter\flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +49 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] 198df796aa80073ef22bdf249e614e2ff33c6895
[        ] executing: [F:\flutter\flutter/] git tag --points-at HEAD
[  +34 ms] Exit code 0 from: git tag --points-at HEAD
[        ] 1.23.0-18.1.pre
[   +8 ms] executing: [F:\flutter\flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +25 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/beta
[        ] executing: [F:\flutter\flutter/] git ls-remote --get-url origin
[  +23 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +53 ms] executing: [F:\flutter\flutter/] git rev-parse --abbrev-ref HEAD
[  +24 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] beta
[  +41 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.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +58 ms] executing: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[  +32 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.
[   +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.
[  +54 ms] executing: C:\Users\User\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[ +117 ms] Generating F:\Temp\rtl_test\myapp\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[  +29 ms] List of devices attached
[  +46 ms] Launching lib\main.dart on Chrome in debug mode...
[  +14 ms] List of devices attached
[  +75 ms] Updating assets
[  +67 ms] Syncing files to device Chrome...
[  +35 ms] Generating F:\Temp\rtl_test\myapp\android\app\src\main\java\io\flutter\plugins\GeneratedPluginRegistrant.java
[  +44 ms] <- reset
[   +7 ms] F:\flutter\flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev F:\flutter\flutter\bin\cache\artifacts\engine\windows-x64\frontend_server.dart.snapshot --sdk-root F:\flutter\flutter\bin\cache\flutter_web_sdk/ --incremental --target=dartdevc --debugger-module-names --experimental-emit-debug-metadata -Ddart.developer.causal_async_stacks=true -DFLUTTER_WEB_USE_SKIA=true --output-dill C:\Users\User\AppData\Local\Temp\flutter_tools.b25ed98e\flutter_tool.b58cc77e\app.dill --libraries-spec file:///F:/flutter/flutter/bin/cache/flutter_web_sdk/libraries.json --packages .packages -Ddart.vm.profile=false -Ddart.vm.product=false --enable-asserts --track-widget-creation --filesystem-root C:\Users\User\AppData\Local\Temp\flutter_tools.b25ed98e\flutter_tools.cefc459 --filesystem-scheme org-dartlang-app --initialize-from-dill build\dfea9bfe94cb64da780a8ef62c567803.cache.dill.track.dill --platform file:///F:/flutter/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk.dill
[   +5 ms] <- compile org-dartlang-app:/web_entrypoint.dart
[+7880 ms] Syncing files to device Chrome... (completed in 7,966ms, longer than expected)
[        ] Synced 30.4MB.
[        ] <- accept
[        ] Caching compiled dill
[ +261 ms] Using Opening in existing browser session.

[ +164 ms] [CHROME]:
[        ] [CHROME]:DevTools listening on ws://127.0.0.1:53660/devtools/browser/a6e95dad-80f0-41e8-942a-44efec5b8853
[+5927 ms] Debug service listening on ws://127.0.0.1:53693/PNhqqbTWEM4=

[ +191 ms] Debug service listening on ws://127.0.0.1:53693/PNhqqbTWEM4=
[   +1 ms] Warning: Flutter's support for web development is not stable yet and hasn't
[        ] been thoroughly tested in production environments.
[        ] For more information see https://flutter.dev/web
[        ]   To hot restart changes while running, press "r" or "R".
[        ] For a more detailed help message, press "h". To quit, press "q".
[+5942 ms] Stopped debug service on ws://127.0.0.1:53693

[  +34 ms] Application finished.
[   +3 ms] "flutter run" took 21,016ms.
[ +256 ms] ensureAnalyticsSent: 253ms
[   +3 ms] Running shutdown hooks
[        ] Shutdown hook priority 4
[   +7 ms] Shutdown hooks complete
[   +1 ms] exiting with code 0

With `FLUTTER_WEB_USE_SKIA=false` we can see the letters but the switching issue is there.

Hi @ialhashim
Forgot about localization, thanks for the code sample, I can reproduce the issue

HTML
Canvaskit

code sample
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:i18n_example/generated/i18n.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final i18n = I18n.delegate;

    return MaterialApp(
      onGenerateTitle: (context) => I18n.of(context).title,
      theme: ThemeData.dark(),
      home: MyHomePage(),
      locale: Locale('ar', 'SA'),
      localizationsDelegates: [
        i18n,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: i18n.supportedLocales,
      localeResolutionCallback: i18n.resolution(
        fallback: Locale('en', 'US'),
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('title'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            FlatButton(
              child: Text('message (4) رسالة'),
              onPressed: () {},
            ),
          ],
        ),
      ),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel beta, 1.23.0-18.1.pre, on Microsoft Windows [Version 10.0.19041.572], locale en-US)
    • Flutter version 1.23.0-18.1.pre at C:\Code\flutter_beta
    • Framework revision 198df796aa (3 weeks ago), 2020-10-15 12:04:33 -0700
    • Engine revision 1d12d82d9c
    • Dart version 2.11.0 (build 2.11.0-213.1.beta)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Code\sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = C:\Code\sdk
    • Java binary at: C:\Code\android-studio\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\Google\Chrome\Application\chrome.exe

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] VS Code (version 1.50.1)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.16.0

[✓] Connected device (3 available)
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome 86.0.4240.111
    • Edge (web)       • edge       • web-javascript • Microsoft Edge 86.0.622.56

• No issues found!

[✓] Flutter (Channel dev, 1.24.0-6.0.pre, on Microsoft Windows [Version 10.0.19041.572], locale en-US)
    • Flutter version 1.24.0-6.0.pre at C:\Code\flutter_dev
    • Framework revision 13896b3bd1 (4 days ago), 2020-10-28 19:43:19 -0700
    • Engine revision 073263e39d
    • Dart version 2.11.0 (build 2.11.0-260.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Code\sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = C:\Code\sdk
    • Java binary at: C:\Code\android-studio\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\Google\Chrome\Application\chrome.exe

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

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] VS Code (version 1.50.1)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.16.0

[✓] Connected device (4 available)
    • Windows (desktop) • windows    • windows-x64    • Microsoft Windows [Version 10.0.19041.572]
    • Web Server (web)  • web-server • web-javascript • Flutter Tools
    • Chrome (web)      • chrome     • web-javascript • Google Chrome 86.0.4240.111
    • Edge (web)        • edge       • web-javascript • Microsoft Edge 86.0.622.56

• No issues found!

[✓] Flutter (Channel master, 1.24.0-7.0.pre.47, on Microsoft Windows [Version 10.0.19041.572], locale en-US)
    • Flutter version 1.24.0-7.0.pre.47 at C:\Code\flutter_master
    • Framework revision 2f18e0b23d (18 hours ago), 2020-11-01 20:58:04 +0530
    • Engine revision 3460519398
    • Dart version 2.12.0 (build 2.12.0-3.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Code\sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = C:\Code\sdk
    • Java binary at: C:\Code\android-studio\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\Google\Chrome\Application\chrome.exe

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

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] VS Code (version 1.50.1)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.16.0

[✓] Connected device (4 available)
    • Windows (desktop) • windows    • windows-x64    • Microsoft Windows [Version 10.0.19041.572]
    • Web Server (web)  • web-server • web-javascript • Flutter Tools
    • Chrome (web)      • chrome     • web-javascript • Google Chrome 86.0.4240.111
    • Edge (web)        • edge       • web-javascript • Microsoft Edge 86.0.622.56

• No issues found!

The missing fonts issue for canvaskit is being worked on. The non-canvaskit issue seems text layout related.

Is there a way to globally disable this flt-canvas optimization for a specific type of widget?
I really wish to know an easy way to just temporarily disable this for Text widget and have a perfect looking web app.

Tried using the [direction](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/direction) property on canvas2d but that didn't work, and it doesn't have good support across browsers anyway. So we will need to programmatically detect and position the RTL text blocks.

Hi @yjbanov
Closed duplicate for canvaskit font issue https://github.com/flutter/flutter/issues/73165
You mentioned it's being worked on in https://github.com/flutter/flutter/issues/69396#issuecomment-722698952
Can you please point to the issue/PR so I can reference it, can't find any obvious issue tracking this.
Thank you

Hi @yjbanov
Closed duplicate for canvaskit font issue https://github.com/flutter/flutter/issues/73165
You mentioned it's being worked on in https://github.com/flutter/flutter/issues/69396#issuecomment-722698952
Can you please point to the issue/PR so I can reference it, can't find any obvious issue tracking this.
Thank you

@TahaTesser we had several reports. Here's one example: https://github.com/flutter/flutter/issues/53897. Although it's marked as fixed, the fix had to be rolled back due to a regression. @hterkelsen is working on a new iteration.

@TahaTesser we had several reports. Here's one example: https://github.com/flutter/flutter/issues/53897. Although it's marked as fixed, the fix had to be rolled back due to a regression. @hterkelsen is working on a new iteration.

/cc @hterkelsen

/cc @hterkelsen

Any news on this?

this issue has in stable 2.2.3 just on web html render mode

authors: BeshoyMelika TahaTesser ahmednfwela ialhashim kiaxseventh mdebbar yjbanov


text:
Proposal to add iOS VoiceOver Two-finger scrub

There is a VoiceOver gesture to navigate to the previous screen (Two-finger scrub). It looks like flutter is not implementing it. See documentation on https://support.apple.com/guide/iphone/learn-voiceover-gestures-iph3e2e2281/14.0/ios/14.0

Any news update that? We also wait for the support of the two finger scrub z gesture in flutter. We got some feedback from a blind person, who told us that this functionality is quite important in VoiceOver mode.

Hi,
i am blind myself and use my iPhone with VoiceOver.
Without this gesture i'll have to search for the back button on the display with my finger manually.
Then I and have tto doubletab this button to go back.
This takes me several seconds.
This is a very big problem!
Even if i have to go back more times.
With this gesture implemented i only would perform a z with 2 fingers on my display.
Thank you for implementing it
Guenter from Germany.

A simple solution would be subclassing the FlutterViewController and adding following method:
- (BOOL)accessibilityPerformEscape {
    [self popRoute];
    return YES;
}

And in dart/flutter code it should work out of the box like the android back button.

Hello, I would like to ask where I need to rewrite FlutterViewController? Is there a demo for reference?
@yasargil

Copy these classes in to your xcodeworkspace and modify Main.storyboard
<viewController id="BYZ-38-t0r" customClass="OVPFlutterViewController" sceneMemberID="viewController">
Archiv.zip

Hello, this is my Demo code. According to your method, it still doesn't seem to work. Could it be convenient for you to take a look? Thank you very much
demo.zip

@wapscccs i added the class and modified the storyboard.
demo.zip

@yasargil Thank you very much, you helped me a lot~

hi
@yasargil
Thank you for the solution.
Although this can solve this problem, I think it should be supported by flutter by default.
After all, you cannot ask every developer to make this modification.
And this gesture is very important for blind users, and it makes sense to support it by default.
In iOS native, this gesture is supported by default.
I also submitted an issue before
#95567
I hope that flutter can be supported by default as soon as possible, so that countless software that uses flutter will also support it by default.

@wapscccs i added the class and modified the storyboard. demo.zip

@yasargil  Hello, I want to ask you again,
After running the project according to your method, I found that the third-party libraries I installed did not work, such as Flutter_tts,
Since I don't know much about OC, I don't know how to deal with this?
Or can it be added in GeneratedPluginRegistrant?
Thank you so much

@wapscccs i don't use that plugin, but others and they are still working. My change should also not touch any plugin code. So i am not sure why it would stop working.

@yasargil  Okay, thank you very much, but I think any program will use third-party plug-ins. Once the third-party plug-ins are referenced, the third-party plug-ins will not work properly if you use this method. So I wonder if it can be added to the default ios project file generated by Flutter instead of adding two files separately

Once the third-party plug-ins are referenced, the third-party plug-ins will not work properly if you use this method.
That is not what we do observer in our project, we have multiple plugins active and working. I' am sorry but i can't provide you more support at the moment.

Once the third-party plug-ins are referenced, the third-party plug-ins will not work properly if you use this method.

That is not what we do observer in our project, we have multiple plugins active and working. I' am sorry but i can't provide you more support at the moment.

Okay thank you

@yasargil The problem is solved, my code was a bit problem before, thank you again~

Any news about the two-finger scrub gesture? Currently working at adjusting my game for blind players. Burnt several hours adding Semantics/MergeSemantics/BlockSemantics into the widget tree, as well as making extra adjustments "visible" only for blind peeps. Unfortunately the biggest issue I'm trying to handle right now is the VO back gesture which is not exposed in any way by the framework.

It seems reasonable to just move this logic to FlutterViewController.mm directly, which should achieve the same effect as subclassing it.

Scratch my earlier workaround. While it does work, it impacts VoiceOver's ability to explore the screen.
We're now borrowing an idea from https://github.com/flutter/flutter/issues/3816#issuecomment-659922085 and adding a custom BackButton to our app bar that uses SemanticsProperties.onDismiss. Updated code sample below.
Code sample
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:go_router/go_router.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  // Auto-enable accessibility for our Blind and Low Vision customers.
  RendererBinding.instance.setSemanticsEnabled(true);

  runApp(const MyApp());
}

final GoRouter _router = GoRouter(
  routes: <RouteBase>[
    GoRoute(
      path: '/',
      builder: (BuildContext context, GoRouterState state) {
        return const HomeScreen();
      },
      routes: <RouteBase>[
        GoRoute(
          path: 'details',
          builder: (BuildContext context, GoRouterState state) {
            return const DetailsScreen();
          },
        ),
      ],
    ),
  ],
);

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routerConfig: _router,
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Home Screen'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () => context.go('/details'),
              child: const Text('Go to the Details screen'),
            ),
          ],
        ),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: DismissibleBackButton(
          onDismiss: () => context.go('/'),
        ),
        title: const Text('Details Screen'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <ElevatedButton>[
            ElevatedButton(
              onPressed: () => context.go('/'),
              child: const Text('Go back to the Home screen'),
            ),
          ],
        ),
      ),
    );
  }
}

/// A custom [BackButton] that supports the VoiceOver two-finger scrub gesture.
///
/// This workaround for https://github.com/flutter/flutter/issues/74246 was borrowed from
/// https://github.com/flutter/flutter/issues/3816#issuecomment-659922085.
class DismissibleBackButton extends StatelessWidget {
  const DismissibleBackButton({Key? key, this.onDismiss}) : super(key: key);

  final VoidCallback? onDismiss;

  @override
  Widget build(BuildContext context) {
    final ModalRoute<dynamic>? parentRoute = ModalRoute.of(context);
    final bool canPop = parentRoute?.canPop ?? false;

    // If we can't pop the current route, don't show a button.
    if (!canPop) {
      return const SizedBox.shrink();
    }

    final VoidCallback? onPressed = onDismiss ?? () => Navigator.of(context).maybePop();

    return Semantics(
      button: true,
      excludeSemantics: true,
      label: MaterialLocalizations.of(context).backButtonTooltip,
      onDismiss: onPressed,
      child: BackButton(
        onPressed: onPressed,
      ),
    );
  }
}

authors: guenterhanke hellohuanlin luomo-pro robertguggenmos vintage vsomayaji wapscccs yasargil


text:
Duplicate #includes of the Pods-Runner xcconfig

The tool is adding #include? and #include imports of the Pods-Runner xcconfig.
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"

Caused by https://github.com/flutter/flutter/pull/73112

This dirties the working copy of any project using plugins created before https://github.com/flutter/flutter/pull/73112 on a flutter pub get, build, run, etc.
Request for cp.

we have the same problem with duplicated includes or faulty includes which produce linker issues. it generally works after the 3. or 4. try when flutter clean is performed followed by flutter build, followed by retrying in xcode. Is there a better workaround regarding linker issues?
:)

@digitalwert-developer I don't think this include duplication would cause any linker issues.  Can you file a new issue and completely fill out the template?  Include a --verbose flutter run so I can see the linker flags and errors.

authors: digitalwert-developer jmagman


text:
image picker: Suggest to stop using UIAlertView but use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead

Everything is working well. But there is just an annoying warning from Xcode every time.
/Users/ME/development/flutter/.pub-cache/hosted/pub.flutter-io.cn/image_picker-0.7.3/ios/Classes/FLTImagePickerPlugin.m:149:20:
'UIAlertView' is deprecated: first deprecated in iOS 9.0 - UIAlertView is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead

So may I suggest that can we follow the suggested message to Use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead of UIAlertView or if there is other ways?
Thank you

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.2, on macOS 11.2.2 20D80 darwin-x64, locale en-US)
    • Flutter version 2.0.2 at /Users/ME/development/flutter
    • Framework revision 8962f6dc68 (6 days ago), 2021-03-11 13:22:20 -0800
    • Engine revision 5d8bf811b3
    • Dart version 2.12.1
    • 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.2)
    • Android SDK at /Volumes/ZK/Applications/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Volumes/ZK/Applications/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_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (2 available)
    • Zenko iPho (mobile) • b3ebbe93864b12b2d71234da9ac512fc4e • ios            • iOS 14.4
    • Chrome (web)        • chrome                                   • web-javascript • Google
      Chrome 89.0.4389.90

• No issues found!

Didn't find already open issue to address this, except this open PR (but it seems to use AlertViewController instead of UIAlertControllerStyleAlert), https://github.com/flutter/plugins/pull/3372

UIAlertController is available in iOS 8, so it looks like we could do this without breaking iOS 8 (which we still support), unlike many iOS 9 deprecation warnings.

Implementation of UIAlertController will be ready soon! @zenkog

authors: darshankawar stuartmorgan ydag zenkog


text:
[in_app_purchase] Ability to discern error versus cancel in PurchaseStatus.error

Today there is no reasonable way to discern between a "user cancelling the purchase" and "a real error" for in app purchases.
The source code (see excerpt below) states "Some error occurred in the purchase. The purchasing process if aborted".
/// Status for a [PurchaseDetails].
///
/// This is the type for [PurchaseDetails.status].
enum PurchaseStatus {
....
  /// Some error occurred in the purchase. The purchasing process if aborted.
  error,
...
}

There needs to be a way to know if this "error" is simply a user cancelling the purchase or if it's a real error.
The purchaseDetails.error does contain some information, but it seems like figuring out whether or not this was a user cancellation error (at least for iOS) would require parsing the JSON of purchaseDetails.error.details which is extremely unreasonable (and possibly unreliable) and is something that should be handled at the library level.

Proposal
Add a new enum type: PurchaseStatus.cancel so that library to separate these two different occurrences.

Here's some code I wrote for an temporary workaround:
  bool _isUserCancel(IAPError iapError) {
    if (Platform.isIOS) {
      try {
        final Map<String, dynamic> errorMap = Map.from(iapError?.details);
        final reason = errorMap["NSUnderlyingError"]["userInfo"]["NSUnderlyingError"]["userInfo"]["NSLocalizedFailureReason"];
        return reason == "Payment sheet cancelled";
      } catch (e) {
        // could not parse map, must not be user cancel. Ignore error
      }
    }
    if (Platform.isAndroid) {
      return iapError?.message == "BillingResponse.userCanceled";
    }
    return false;
  }