Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sxychenjing
engine
提交
4effc3e9
E
engine
项目概览
sxychenjing
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
4effc3e9
编写于
12月 07, 2015
作者:
J
Jason Simmons
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2149 from jason-simmons/platform_locale
Tell Flutter about the host platform's locale
上级
6d0c4e52
98427a27
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
82 addition
and
1 deletion
+82
-1
sky/engine/bindings/dart_vm_entry_points.txt
sky/engine/bindings/dart_vm_entry_points.txt
+1
-0
sky/engine/core/dart/hooks.dart
sky/engine/core/dart/hooks.dart
+6
-0
sky/engine/core/dart/window.dart
sky/engine/core/dart/window.dart
+13
-0
sky/engine/core/window/window.cc
sky/engine/core/window/window.cc
+13
-0
sky/engine/core/window/window.h
sky/engine/core/window/window.h
+2
-0
sky/engine/public/sky/sky_view.cc
sky/engine/public/sky/sky_view.cc
+11
-0
sky/engine/public/sky/sky_view.h
sky/engine/public/sky/sky_view.h
+4
-0
sky/services/engine/sky_engine.mojom
sky/services/engine/sky_engine.mojom
+1
-0
sky/shell/platform/android/AndroidManifest.xml
sky/shell/platform/android/AndroidManifest.xml
+1
-1
sky/shell/platform/android/org/domokit/sky/shell/SkyActivity.java
...l/platform/android/org/domokit/sky/shell/SkyActivity.java
+15
-0
sky/shell/ui/engine.cc
sky/shell/ui/engine.cc
+11
-0
sky/shell/ui/engine.h
sky/shell/ui/engine.h
+4
-0
未找到文件。
sky/engine/bindings/dart_vm_entry_points.txt
浏览文件 @
4effc3e9
...
...
@@ -9,6 +9,7 @@ dart:ui,::,_getPrintClosure
dart:ui,::,_getScheduleMicrotaskClosure
dart:ui,::,_popRoute
dart:ui,::,_pushRoute
dart:ui,::,_updateLocale
dart:ui,::,_updateWindowMetrics
dart:ui,Canvas,Canvas.
dart:ui,Drawable,Drawable.
...
...
sky/engine/core/dart/hooks.dart
浏览文件 @
4effc3e9
...
...
@@ -20,6 +20,12 @@ void _updateWindowMetrics(double devicePixelRatio,
window
.
onMetricsChanged
();
}
void
_updateLocale
(
String
languageCode
,
String
countryCode
)
{
window
.
_locale
=
new
Locale
(
languageCode
,
countryCode
);
if
(
window
.
onLocaleChanged
!=
null
)
window
.
onLocaleChanged
();
}
void
_pushRoute
(
String
route
)
{
assert
(
window
.
defaultRouteName
==
null
);
window
.
defaultRouteName
=
route
;
...
...
sky/engine/core/dart/window.dart
浏览文件 @
4effc3e9
...
...
@@ -18,6 +18,15 @@ class WindowPadding {
final
double
left
;
}
class
Locale
{
Locale
(
this
.
languageCode
,
this
.
countryCode
);
final
String
languageCode
;
final
String
countryCode
;
String
toString
()
=>
'
${languageCode}
_
$countryCode
'
;
}
class
Window
{
Window
.
_
();
...
...
@@ -30,10 +39,14 @@ class Window {
WindowPadding
get
padding
=>
_padding
;
WindowPadding
_padding
;
Locale
get
locale
=>
_locale
;
Locale
_locale
;
_FrameCallback
onBeginFrame
;
_EventCallback
onEvent
;
// TODO(abarth): Remove.
_PointerPacketCallback
onPointerPacket
;
VoidCallback
onMetricsChanged
;
VoidCallback
onLocaleChanged
;
String
defaultRouteName
;
VoidCallback
onPopRoute
;
...
...
sky/engine/core/window/window.cc
浏览文件 @
4effc3e9
...
...
@@ -66,6 +66,19 @@ void Window::UpdateWindowMetrics(const SkyDisplayMetrics& metrics) {
});
}
void
Window
::
UpdateLocale
(
const
std
::
string
&
language_code
,
const
std
::
string
&
country_code
)
{
DartState
*
dart_state
=
library_
.
dart_state
().
get
();
if
(
!
dart_state
)
return
;
DartState
::
Scope
scope
(
dart_state
);
DartInvokeField
(
library_
.
value
(),
"_updateLocale"
,
{
StdStringToDart
(
language_code
),
StdStringToDart
(
country_code
),
});
}
void
Window
::
PushRoute
(
const
std
::
string
&
route
)
{
DartState
*
dart_state
=
library_
.
dart_state
().
get
();
if
(
!
dart_state
)
...
...
sky/engine/core/window/window.h
浏览文件 @
4effc3e9
...
...
@@ -33,6 +33,8 @@ class Window {
void
DidCreateIsolate
();
void
UpdateWindowMetrics
(
const
SkyDisplayMetrics
&
metrics
);
void
UpdateLocale
(
const
std
::
string
&
language_code
,
const
std
::
string
&
country_code
);
void
DispatchPointerPacket
(
const
pointer
::
PointerPacketPtr
&
packet
);
void
BeginFrame
(
base
::
TimeTicks
frameTime
);
...
...
sky/engine/public/sky/sky_view.cc
浏览文件 @
4effc3e9
...
...
@@ -33,6 +33,16 @@ void SkyView::SetDisplayMetrics(const SkyDisplayMetrics& metrics) {
GetWindow
()
->
UpdateWindowMetrics
(
display_metrics_
);
}
void
SkyView
::
SetLocale
(
const
std
::
string
&
language_code
,
const
std
::
string
&
country_code
)
{
if
(
language_code_
==
language_code
&&
country_code_
==
country_code
)
return
;
language_code_
=
language_code
;
country_code_
=
country_code
;
GetWindow
()
->
UpdateLocale
(
language_code_
,
country_code_
);
}
void
SkyView
::
PushRoute
(
const
std
::
string
&
route
)
{
GetWindow
()
->
PushRoute
(
route
);
}
...
...
@@ -54,6 +64,7 @@ void SkyView::CreateView(const String& name) {
client_
->
DidCreateIsolate
(
dart_state
->
isolate
());
GetWindow
()
->
UpdateWindowMetrics
(
display_metrics_
);
GetWindow
()
->
UpdateLocale
(
language_code_
,
country_code_
);
}
void
SkyView
::
RunFromLibrary
(
const
WebString
&
name
,
...
...
sky/engine/public/sky/sky_view.h
浏览文件 @
4effc3e9
...
...
@@ -38,6 +38,8 @@ class SkyView : public WindowClient {
const
SkyDisplayMetrics
&
display_metrics
()
const
{
return
display_metrics_
;
}
void
SetDisplayMetrics
(
const
SkyDisplayMetrics
&
metrics
);
void
SetLocale
(
const
std
::
string
&
language_code
,
const
std
::
string
&
country_code
);
void
PushRoute
(
const
std
::
string
&
route
);
void
PopRoute
();
...
...
@@ -64,6 +66,8 @@ class SkyView : public WindowClient {
SkyViewClient
*
client_
;
SkyDisplayMetrics
display_metrics_
;
std
::
string
language_code_
;
std
::
string
country_code_
;
std
::
unique_ptr
<
DartController
>
dart_controller_
;
std
::
unique_ptr
<
sky
::
compositor
::
LayerTree
>
layer_tree_
;
...
...
sky/services/engine/sky_engine.mojom
浏览文件 @
4effc3e9
...
...
@@ -36,6 +36,7 @@ interface SkyEngine {
OnActivityResumed();
OnViewportMetricsChanged(ViewportMetrics metrics);
OnLocaleChanged(string language_code, string country_code);
OnPointerPacket(pointer.PointerPacket packet);
PushRoute(string route);
...
...
sky/shell/platform/android/AndroidManifest.xml
浏览文件 @
4effc3e9
...
...
@@ -11,7 +11,7 @@
<uses-feature
android:name=
"android.hardware.sensor.accelerometer"
android:required=
"true"
/>
<application
android:label=
"Sky Shell"
android:name=
"SkyApplication"
android:debuggable=
"true"
>
<activity
android:configChanges=
"orientation|keyboardHidden|keyboard|screenSize"
<activity
android:configChanges=
"orientation|keyboardHidden|keyboard|screenSize
|locale|layoutDirection
"
android:hardwareAccelerated=
"true"
android:launchMode=
"standard"
android:name=
"SkyActivity"
...
...
sky/shell/platform/android/org/domokit/sky/shell/SkyActivity.java
浏览文件 @
4effc3e9
...
...
@@ -6,6 +6,7 @@ package org.domokit.sky.shell;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.content.res.Configuration
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.view.View
;
...
...
@@ -20,6 +21,8 @@ import org.domokit.activity.ActivityImpl;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.Locale
;
/**
* Base class for activities that use Sky.
...
...
@@ -124,6 +127,10 @@ public class SkyActivity extends Activity {
protected
void
onSkyReady
()
{
TraceEvent
.
instant
(
"SkyActivity.onSkyReady"
);
Locale
locale
=
getResources
().
getConfiguration
().
locale
;
mView
.
getEngine
().
onLocaleChanged
(
locale
.
getLanguage
(),
locale
.
getCountry
());
if
(
loadIntent
(
getIntent
()))
{
return
;
}
...
...
@@ -162,4 +169,12 @@ public class SkyActivity extends Activity {
mView
.
getEngine
().
runFromBundle
(
bundle
.
getPath
());
return
true
;
}
public
void
onConfigurationChanged
(
Configuration
newConfig
)
{
super
.
onConfigurationChanged
(
newConfig
);
Locale
locale
=
getResources
().
getConfiguration
().
locale
;
mView
.
getEngine
().
onLocaleChanged
(
locale
.
getLanguage
(),
locale
.
getCountry
());
}
}
sky/shell/ui/engine.cc
浏览文件 @
4effc3e9
...
...
@@ -149,6 +149,14 @@ void Engine::OnViewportMetricsChanged(ViewportMetricsPtr metrics) {
sky_view_
->
SetDisplayMetrics
(
display_metrics_
);
}
void
Engine
::
OnLocaleChanged
(
const
mojo
::
String
&
language_code
,
const
mojo
::
String
&
country_code
)
{
language_code_
=
language_code
;
country_code_
=
country_code
;
if
(
sky_view_
)
sky_view_
->
SetLocale
(
language_code_
,
country_code_
);
}
void
Engine
::
OnPointerPacket
(
pointer
::
PointerPacketPtr
packet
)
{
TRACE_EVENT0
(
"flutter"
,
"Engine::OnPointerPacket"
);
...
...
@@ -169,6 +177,7 @@ void Engine::RunFromLibrary(const std::string& name) {
sky_view_
->
RunFromLibrary
(
blink
::
WebString
::
fromUTF8
(
name
),
dart_library_provider_
.
get
());
sky_view_
->
SetDisplayMetrics
(
display_metrics_
);
sky_view_
->
SetLocale
(
language_code_
,
country_code_
);
if
(
!
initial_route_
.
empty
())
sky_view_
->
PushRoute
(
initial_route_
);
}
...
...
@@ -181,6 +190,7 @@ void Engine::RunFromSnapshotStream(
sky_view_
->
CreateView
(
blink
::
WebString
::
fromUTF8
(
name
));
sky_view_
->
RunFromSnapshot
(
blink
::
WebString
::
fromUTF8
(
name
),
snapshot
.
Pass
());
sky_view_
->
SetDisplayMetrics
(
display_metrics_
);
sky_view_
->
SetLocale
(
language_code_
,
country_code_
);
if
(
!
initial_route_
.
empty
())
sky_view_
->
PushRoute
(
initial_route_
);
}
...
...
@@ -196,6 +206,7 @@ void Engine::RunFromPrecompiledSnapshot(const mojo::String& bundle_path) {
sky_view_
->
CreateView
(
"http://localhost"
);
sky_view_
->
RunFromPrecompiledSnapshot
();
sky_view_
->
SetDisplayMetrics
(
display_metrics_
);
sky_view_
->
SetLocale
(
language_code_
,
country_code_
);
if
(
!
initial_route_
.
empty
())
sky_view_
->
PushRoute
(
initial_route_
);
}
...
...
sky/shell/ui/engine.h
浏览文件 @
4effc3e9
...
...
@@ -58,6 +58,8 @@ class Engine : public UIDelegate,
// SkyEngine implementation:
void
SetServices
(
ServicesDataPtr
services
)
override
;
void
OnViewportMetricsChanged
(
ViewportMetricsPtr
metrics
)
override
;
void
OnLocaleChanged
(
const
mojo
::
String
&
language_code
,
const
mojo
::
String
&
country_code
)
override
;
void
OnPointerPacket
(
pointer
::
PointerPacketPtr
packet
)
override
;
void
RunFromFile
(
const
mojo
::
String
&
main
,
...
...
@@ -94,6 +96,8 @@ class Engine : public UIDelegate,
gfx
::
Size
physical_size_
;
std
::
string
initial_route_
;
blink
::
SkyDisplayMetrics
display_metrics_
;
std
::
string
language_code_
;
std
::
string
country_code_
;
mojo
::
Binding
<
SkyEngine
>
binding_
;
// TODO(eseidel): This should move into an AnimatorStateMachine.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录