From 305e6e486e0cbd830fcabcab4af9581875df4e8c Mon Sep 17 00:00:00 2001 From: shijie Date: Wed, 23 Oct 2024 18:32:52 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3getContext(this)=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E8=8E=B7=E5=8F=96=E7=9A=84window=E6=98=AFundefine?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shijie --- .../src/main/ets/embedding/ohos/FlutterAbility.ets | 2 +- .../src/main/ets/embedding/ohos/FlutterManager.ets | 11 ++++++----- .../flutter/src/main/ets/plugin/PlatformPlugin.ets | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbility.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbility.ets index 4013fed189..c011613e1d 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbility.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterAbility.ets @@ -179,7 +179,7 @@ export class FlutterAbility extends UIAbility implements Host { Log.i(TAG, 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); }); - FlutterManager.getInstance().setUseFullScreen(true); + FlutterManager.getInstance().setUseFullScreen(true, this.context); } catch (exception) { Log.e(TAG, 'Failed to enable the listener for window stage event changes. Cause:' + JSON.stringify(exception)); } diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterManager.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterManager.ets index e2ef4d772b..363878dd12 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterManager.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterManager.ets @@ -109,8 +109,8 @@ export default class FlutterManager { return this.mFullScreenListener; } - setUseFullScreen(use: boolean) { - this.mFullScreenListener.setUseFullScreen(use) + setUseFullScreen(use: boolean, context?: Context) { + this.mFullScreenListener.setUseFullScreen(use, context); } useFullScreen(): boolean { @@ -120,7 +120,7 @@ export default class FlutterManager { export interface FullScreenListener { useFullScreen(): boolean; - setUseFullScreen(useFullScreen: boolean): void; + setUseFullScreen(useFullScreen: boolean, context?: Context): void; onScreenStateChanged(data: window.WindowStatusType): void; } @@ -132,12 +132,13 @@ export class DefaultFullScreenListener implements FullScreenListener { return this.fullScreen; } - setUseFullScreen(useFullScreen: boolean): void { + setUseFullScreen(useFullScreen: boolean, context?: Context): void { this.fullScreen = useFullScreen; this.skipCheck = true; + context = context??getContext(this); let window = FlutterManager.getInstance() - .getWindowStage(FlutterManager.getInstance().getUIAbility(getContext(this))); + .getWindowStage(FlutterManager.getInstance().getUIAbility(context)); window.getMainWindowSync().setWindowLayoutFullScreen(useFullScreen); Log.i(TAG, "WindowLayoutFullScreen is on") } diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/plugin/PlatformPlugin.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/plugin/PlatformPlugin.ets index 949480ec65..500390aeb9 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/plugin/PlatformPlugin.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/plugin/PlatformPlugin.ets @@ -279,13 +279,13 @@ export class PlatformPluginCallback implements PlatformMessageHandler { let uiConfig: ('status' | 'navigation')[] = []; if (mode == SystemUiMode.LEAN_BACK) { //全屏显示,通过点击显示器上的任何位置都可以显示状态和导航栏 - FlutterManager.getInstance().setUseFullScreen(true); + FlutterManager.getInstance().setUseFullScreen(true, null); } else if (mode == SystemUiMode.IMMERSIVE) { //全屏显示,通过在显示器边缘的滑动手势可以显示状态和导航栏,应用程序不会接收到此手势 - FlutterManager.getInstance().setUseFullScreen(true); + FlutterManager.getInstance().setUseFullScreen(true, null); } else if (mode == SystemUiMode.IMMERSIVE_STICKY) { //全屏显示,通过在显示器边缘的滑动手势可以显示状态和导航栏,此手势由应用程序接收 - FlutterManager.getInstance().setUseFullScreen(true); + FlutterManager.getInstance().setUseFullScreen(true, null); } else if (mode == SystemUiMode.EDGE_TO_EDGE) { uiConfig = ['status', 'navigation']; } else { -- Gitee From 8877a568dabfff5855ef581fe1f6ef3faba25399 Mon Sep 17 00:00:00 2001 From: shijie Date: Wed, 23 Oct 2024 19:41:14 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E6=8A=A5=E9=94=99=EF=BC=9AArgument=20of=20type=20'null'=20is?= =?UTF-8?q?=20not=20assignable=20to=20parameter=20of=20type=20'Context=20|?= =?UTF-8?q?=20undefined'=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shijie --- .../flutter/src/main/ets/embedding/ohos/FlutterManager.ets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterManager.ets b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterManager.ets index 363878dd12..0f449572ed 100644 --- a/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterManager.ets +++ b/shell/platform/ohos/flutter_embedding/flutter/src/main/ets/embedding/ohos/FlutterManager.ets @@ -109,7 +109,7 @@ export default class FlutterManager { return this.mFullScreenListener; } - setUseFullScreen(use: boolean, context?: Context) { + setUseFullScreen(use: boolean, context?: Context | null | undefined) { this.mFullScreenListener.setUseFullScreen(use, context); } @@ -120,7 +120,7 @@ export default class FlutterManager { export interface FullScreenListener { useFullScreen(): boolean; - setUseFullScreen(useFullScreen: boolean, context?: Context): void; + setUseFullScreen(useFullScreen: boolean, context?: Context | null | undefined): void; onScreenStateChanged(data: window.WindowStatusType): void; } @@ -132,7 +132,7 @@ export class DefaultFullScreenListener implements FullScreenListener { return this.fullScreen; } - setUseFullScreen(useFullScreen: boolean, context?: Context): void { + setUseFullScreen(useFullScreen: boolean, context?: Context | null | undefined): void { this.fullScreen = useFullScreen; this.skipCheck = true; -- Gitee From 462c08aac873229fd57d08d62e576600f40f3f58 Mon Sep 17 00:00:00 2001 From: shijie Date: Tue, 26 Nov 2024 21:17:51 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A1=A5=E4=B8=81?= =?UTF-8?q?=E3=80=82=E8=A7=A3=E5=86=B3=E6=B5=81=E6=B0=B4=E7=BA=BF=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=8A=A5=E5=A6=82=E4=B8=8B=E9=94=99=E8=AF=AF=EF=BC=9A?= =?UTF-8?q?noSuchMethod(=5F)=20=3D>=20throw=20"Unimplemented=20ServiceMap?= =?UTF-8?q?=20method"=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shijie --- attachment/repos/dart.patch0 | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/attachment/repos/dart.patch0 b/attachment/repos/dart.patch0 index 8094cc2e31..2f221eb864 100644 --- a/attachment/repos/dart.patch0 +++ b/attachment/repos/dart.patch0 @@ -76,7 +76,7 @@ index 33be98fc0aa..eda146a0580 100644 String? _authCode; diff --git a/pkg/vm/lib/transformations/ffi/abi.dart b/pkg/vm/lib/transformations/ffi/abi.dart -index cc2d86bafd7..e703419eed7 100644 +index cc2d86bafd7..9674d4b42d6 100644 --- a/pkg/vm/lib/transformations/ffi/abi.dart +++ b/pkg/vm/lib/transformations/ffi/abi.dart @@ -40,6 +40,7 @@ enum _OS { @@ -109,7 +109,7 @@ index cc2d86bafd7..e703419eed7 100644 static const _androidX64 = Abi._(_Architecture.x64, _OS.android); static const _fuchsiaArm64 = Abi._(_Architecture.arm64, _OS.fuchsia); static const _fuchsiaX64 = Abi._(_Architecture.x64, _OS.fuchsia); -+ static const _ohosX64 = Abi._(_Architecture.x64, _OS.ohos); ++ static const _ohosX64 = Abi._(_Architecture.x64, _OS.ohos); static const _iosArm = Abi._(_Architecture.arm, _OS.ios); static const _iosArm64 = Abi._(_Architecture.arm64, _OS.ios); static const _iosX64 = Abi._(_Architecture.x64, _OS.ios); @@ -5409,6 +5409,19 @@ index d7296c98e0f..d1abac994ff 100644 // Prepare builtin and its dependent libraries for use to resolve URIs. // Set up various closures, e.g: printing, timers etc. // Set up 'package root' for URI resolution. +diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart +index 81d1cea8610..af4387649f8 100644 +--- a/runtime/observatory/lib/src/service/object.dart ++++ b/runtime/observatory/lib/src/service/object.dart +@@ -2136,7 +2136,7 @@ class ServiceMap extends ServiceObject + int get length => _map.length; + + // Suppress compile-time error about missing Map methods. +- noSuchMethod(_) => throw "Unimplemented ServiceMap method"; ++ noSuchMethod(Invocation i) => super.noSuchMethod(i); + + String toString() => "ServiceMap($_map)"; + } diff --git a/runtime/platform/globals.h b/runtime/platform/globals.h index 9c8d00fc657..7122f9f7d08 100644 --- a/runtime/platform/globals.h -- Gitee