Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43355755
engine
提交
61cf4c01
E
engine
项目概览
weixin_43355755
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
61cf4c01
编写于
10月 10, 2018
作者:
G
Gary Qian
提交者:
GitHub
10月 10, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Pass scriptcode and variantcode to dart:ui Window. (#6493)
上级
0eda0cfd
变更
9
显示空白变更内容
内联
并排
Showing
9 changed file
with
38 addition
and
11 deletion
+38
-11
lib/ui/hooks.dart
lib/ui/hooks.dart
+1
-1
lib/ui/window/window.cc
lib/ui/window/window.cc
+5
-1
lib/ui/window/window.h
lib/ui/window/window.h
+3
-1
runtime/runtime_controller.cc
runtime/runtime_controller.cc
+9
-3
runtime/runtime_controller.h
runtime/runtime_controller.h
+5
-1
shell/common/engine.cc
shell/common/engine.cc
+4
-1
shell/platform/android/io/flutter/view/FlutterView.java
shell/platform/android/io/flutter/view/FlutterView.java
+1
-1
shell/platform/darwin/ios/framework/Source/FlutterViewController.mm
...form/darwin/ios/framework/Source/FlutterViewController.mm
+9
-1
testing/dart/window_hooks_integration_test.dart
testing/dart/window_hooks_integration_test.dart
+1
-1
未找到文件。
lib/ui/hooks.dart
浏览文件 @
61cf4c01
...
...
@@ -48,7 +48,7 @@ String _localeClosure() => window._locale.toString();
_LocaleClosure
_getLocaleClosure
(
)
=>
_localeClosure
;
@pragma
(
'vm:entry-point'
)
void
_updateLocale
(
String
languageCode
,
String
countryCode
)
{
void
_updateLocale
(
String
languageCode
,
String
countryCode
,
String
scriptCode
,
String
variantCode
)
{
window
.
_locale
=
new
Locale
(
languageCode
,
countryCode
);
_invoke
(
window
.
onLocaleChanged
,
window
.
_onLocaleChangedZone
);
}
...
...
lib/ui/window/window.cc
浏览文件 @
61cf4c01
...
...
@@ -163,7 +163,9 @@ void Window::UpdateWindowMetrics(const ViewportMetrics& metrics) {
}
void
Window
::
UpdateLocale
(
const
std
::
string
&
language_code
,
const
std
::
string
&
country_code
)
{
const
std
::
string
&
country_code
,
const
std
::
string
&
script_code
,
const
std
::
string
&
variant_code
)
{
std
::
shared_ptr
<
tonic
::
DartState
>
dart_state
=
library_
.
dart_state
().
lock
();
if
(
!
dart_state
)
return
;
...
...
@@ -173,6 +175,8 @@ void Window::UpdateLocale(const std::string& language_code,
{
StdStringToDart
(
language_code
),
StdStringToDart
(
country_code
),
StdStringToDart
(
script_code
),
StdStringToDart
(
variant_code
),
});
}
...
...
lib/ui/window/window.h
浏览文件 @
61cf4c01
...
...
@@ -60,7 +60,9 @@ class Window final {
void
DidCreateIsolate
();
void
UpdateWindowMetrics
(
const
ViewportMetrics
&
metrics
);
void
UpdateLocale
(
const
std
::
string
&
language_code
,
const
std
::
string
&
country_code
);
const
std
::
string
&
country_code
,
const
std
::
string
&
script_code
,
const
std
::
string
&
variant_code
);
void
UpdateUserSettingsData
(
const
std
::
string
&
data
);
void
UpdateSemanticsEnabled
(
bool
enabled
);
void
UpdateAccessibilityFeatures
(
int32_t
flags
);
...
...
runtime/runtime_controller.cc
浏览文件 @
61cf4c01
...
...
@@ -124,7 +124,8 @@ std::unique_ptr<RuntimeController> RuntimeController::Clone() const {
bool
RuntimeController
::
FlushRuntimeStateToIsolate
()
{
return
SetViewportMetrics
(
window_data_
.
viewport_metrics
)
&&
SetLocale
(
window_data_
.
language_code
,
window_data_
.
country_code
)
&&
SetLocale
(
window_data_
.
language_code
,
window_data_
.
country_code
,
window_data_
.
script_code
,
window_data_
.
variant_code
)
&&
SetSemanticsEnabled
(
window_data_
.
semantics_enabled
)
&&
SetAccessibilityFeatures
(
window_data_
.
accessibility_feature_flags_
);
}
...
...
@@ -140,12 +141,17 @@ bool RuntimeController::SetViewportMetrics(const ViewportMetrics& metrics) {
}
bool
RuntimeController
::
SetLocale
(
const
std
::
string
&
language_code
,
const
std
::
string
&
country_code
)
{
const
std
::
string
&
country_code
,
const
std
::
string
&
script_code
,
const
std
::
string
&
variant_code
)
{
window_data_
.
language_code
=
language_code
;
window_data_
.
country_code
=
country_code
;
window_data_
.
script_code
=
script_code
;
window_data_
.
variant_code
=
variant_code
;
if
(
auto
window
=
GetWindowIfAvailable
())
{
window
->
UpdateLocale
(
window_data_
.
language_code
,
window_data_
.
country_code
);
window
->
UpdateLocale
(
window_data_
.
language_code
,
window_data_
.
country_code
,
window_data_
.
script_code
,
window_data_
.
variant_code
);
return
true
;
}
...
...
runtime/runtime_controller.h
浏览文件 @
61cf4c01
...
...
@@ -41,7 +41,9 @@ class RuntimeController final : public WindowClient {
bool
SetViewportMetrics
(
const
ViewportMetrics
&
metrics
);
bool
SetLocale
(
const
std
::
string
&
language_code
,
const
std
::
string
&
country_code
);
const
std
::
string
&
country_code
,
const
std
::
string
&
script_code
,
const
std
::
string
&
variant_code
);
bool
SetUserSettingsData
(
const
std
::
string
&
data
);
...
...
@@ -80,6 +82,8 @@ class RuntimeController final : public WindowClient {
ViewportMetrics
viewport_metrics
;
std
::
string
language_code
;
std
::
string
country_code
;
std
::
string
script_code
;
std
::
string
variant_code
;
std
::
string
user_settings_data
=
"{}"
;
bool
semantics_enabled
=
false
;
bool
assistive_technology_enabled
=
false
;
...
...
shell/common/engine.cc
浏览文件 @
61cf4c01
...
...
@@ -327,12 +327,15 @@ bool Engine::HandleLocalizationPlatformMessage(
const
auto
&
language
=
args
->
value
[
0
];
const
auto
&
country
=
args
->
value
[
1
];
const
auto
&
script
=
args
->
value
[
2
];
const
auto
&
variant
=
args
->
value
[
3
];
if
(
!
language
.
IsString
()
||
!
country
.
IsString
())
return
false
;
return
runtime_controller_
->
SetLocale
(
language
.
GetString
(),
country
.
GetString
());
country
.
GetString
(),
script
.
GetString
(),
variant
.
GetString
());
}
void
Engine
::
HandleSettingsPlatformMessage
(
blink
::
PlatformMessage
*
message
)
{
...
...
shell/platform/android/io/flutter/view/FlutterView.java
浏览文件 @
61cf4c01
...
...
@@ -317,7 +317,7 @@ public class FlutterView extends SurfaceView
}
private
void
setLocale
(
Locale
locale
)
{
mFlutterLocalizationChannel
.
invokeMethod
(
"setLocale"
,
Arrays
.
asList
(
locale
.
getLanguage
(),
locale
.
getCountry
()));
mFlutterLocalizationChannel
.
invokeMethod
(
"setLocale"
,
Arrays
.
asList
(
locale
.
getLanguage
(),
locale
.
getCountry
()
,
locale
.
getScript
(),
locale
.
getVariant
()
));
}
@Override
...
...
shell/platform/darwin/ios/framework/Source/FlutterViewController.mm
浏览文件 @
61cf4c01
...
...
@@ -894,8 +894,16 @@ static blink::PointerData::DeviceKind DeviceKindFromTouchType(UITouch* touch) {
NSLocale
*
currentLocale
=
[
NSLocale
currentLocale
];
NSString
*
languageCode
=
[
currentLocale
objectForKey
:
NSLocaleLanguageCode
];
NSString
*
countryCode
=
[
currentLocale
objectForKey
:
NSLocaleCountryCode
];
NSString
*
scriptCode
=
[
currentLocale
objectForKey
:
NSLocaleScriptCode
];
NSString
*
variantCode
=
[
currentLocale
objectForKey
:
NSLocaleVariantCode
];
if
(
languageCode
&&
countryCode
)
[
_localizationChannel
.
get
()
invokeMethod
:
@"setLocale"
arguments
:@[
languageCode
,
countryCode
]];
// We pass empty strings for undefined scripts and variants to ensure the JSON encoder/decoder
// functions properly.
[
_localizationChannel
.
get
()
invokeMethod
:
@"setLocale"
arguments:
@[
languageCode
,
countryCode
,
scriptCode
?
scriptCode
:
@""
,
variantCode
?
variantCode
:
@""
]];
}
#pragma mark - Set user settings
...
...
testing/dart/window_hooks_integration_test.dart
浏览文件 @
61cf4c01
...
...
@@ -100,7 +100,7 @@ void main() {
};
});
_updateLocale
(
'en'
,
'US'
);
_updateLocale
(
'en'
,
'US'
,
''
,
''
);
expect
(
runZone
,
isNotNull
);
expect
(
runZone
,
same
(
innerZone
));
expect
(
locale
,
equals
(
const
Locale
(
'en'
,
'US'
)));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录