Skip to content

Commit

Permalink
upgrade hetu and flutter
Browse files Browse the repository at this point in the history
  • Loading branch information
hythl0day committed Apr 14, 2021
1 parent 9d04add commit 23dac8d
Show file tree
Hide file tree
Showing 475 changed files with 53,138 additions and 25,870 deletions.
42 changes: 4 additions & 38 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class _MyHomePageState extends State<MyHomePage> {
bool loading = true;

void load() async {
var binding = ManualBinding(widget.interpreter);
var binding = DefaultBindingHander(widget.interpreter);
await widget.interpreter.init();
binding.loadExternalFunctionTypes();
binding.loadExternalClasses();
Expand Down Expand Up @@ -86,42 +86,8 @@ class _MyHomePageState extends State<MyHomePage> {
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: loading ? CircularProgressIndicator() : ScriptController(widget.interpreter));
}
}

class ManualBinding extends DefaultBindingHander {
ManualBinding(Hetu interpreter) : super(interpreter);

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

final functionWrappers = <String, HTExternalFunctionTypedef>{
'ValueChangedInt': (HTFunction function) => (int data) => function.call(positionalArgs: [data]),
'ValueChangedDouble': (HTFunction function) => (double data) => function.call(positionalArgs: [data]),
'ValueChangedString': (HTFunction function) => (String data) => function.call(positionalArgs: [data]),
'ValueChangedBool': (HTFunction function) => (bool data) => function.call(positionalArgs: [data]),
'ValueChangedList': (HTFunction function) => (List data) => function.call(positionalArgs: [data]),
'ValueChangedMap': (HTFunction function) => (Map data) => function.call(positionalArgs: [data]),
'ValueChangedSet': (HTFunction function) => (Set data) => function.call(positionalArgs: [data]),
};

functionWrappers.forEach((key, value) {
interpreter.bindExternalFunctionType(key, value);
});
}

@override
void loadExternalClasses() {
super.loadExternalClasses();
}

@override
Future importScripts() {
var future = super.importScripts();
var futures = <Future>[];
futures.add(future);
return Future.wait(futures);
body: loading
? CircularProgressIndicator()
: ScriptController(widget.interpreter));
}
}
16 changes: 15 additions & 1 deletion example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ packages:
name: hetu_script
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.0+3"
version: "0.1.1+1"
matcher:
dependency: transitive
description:
Expand All @@ -95,6 +95,20 @@ packages:
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.8.0"
pub_semver:
dependency: transitive
description:
name: pub_semver
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.0.0"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.0.1"
script_widget:
dependency: "direct main"
description:
Expand Down
9 changes: 0 additions & 9 deletions ht-lib/dart/core/double.ht

This file was deleted.

25 changes: 0 additions & 25 deletions ht-lib/dart/core/int.ht

This file was deleted.

7 changes: 4 additions & 3 deletions ht-lib/package/widget.ht
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
class Widget {

external static fun _rebuild(instance)

///Dart宿主对象
var host

external fun _rebuild(instance)

//重建Widget的方法,由Dart赋值
fun rebuild {
Expand All @@ -18,7 +19,7 @@ class Widget {
fun init() {}

///用于创建一个Dart Widget,必须override并返回一个Widget
fun build(context)
fun build(context) {}

fun dispose() {
host = null
Expand Down
12 changes: 7 additions & 5 deletions lib/bindings/dart/async/async_error.g.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ class AsyncErrorAutoBinding extends HTExternalClass {
dynamic memberGet(String varName, {String from = HTLexicon.global}) {
switch (varName) {
case 'AsyncError':
return ({positionalArgs, namedArgs, typeArgs}) => AsyncError(positionalArgs[0], positionalArgs[1]);
return ({positionalArgs, namedArgs, typeArgs}) =>
AsyncError(positionalArgs[0], positionalArgs[1]);
case 'AsyncError.defaultStackTrace':
return ({positionalArgs, namedArgs, typeArgs}) => AsyncError.defaultStackTrace(positionalArgs[0]);
return ({positionalArgs, namedArgs, typeArgs}) =>
AsyncError.defaultStackTrace(positionalArgs[0]);
default:
throw HTErrorUndefined(varName);
throw HTError.undefined(varName);
}
}

Expand All @@ -26,15 +28,15 @@ extension AsyncErrorBinding on AsyncError {
dynamic htFetch(String varName) {
switch (varName) {
case 'typeid':
return const HTTypeId('AsyncError');
return const HTType('AsyncError');
case 'error':
return error;
case 'stackTrace':
return stackTrace;
case 'toString':
return ({positionalArgs, namedArgs, typeArgs}) => toString();
default:
throw HTErrorUndefined(varName);
throw HTError.undefined(varName);
}
}
}
9 changes: 5 additions & 4 deletions lib/bindings/dart/async/deferred_load.g.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ class DeferredLoadExceptionAutoBinding extends HTExternalClass {
dynamic memberGet(String varName, {String from = HTLexicon.global}) {
switch (varName) {
case 'DeferredLoadException':
return ({positionalArgs, namedArgs, typeArgs}) => DeferredLoadException(positionalArgs[0]);
return ({positionalArgs, namedArgs, typeArgs}) =>
DeferredLoadException(positionalArgs[0]);
default:
throw HTErrorUndefined(varName);
throw HTError.undefined(varName);
}
}

Expand All @@ -24,11 +25,11 @@ extension DeferredLoadExceptionBinding on DeferredLoadException {
dynamic htFetch(String varName) {
switch (varName) {
case 'typeid':
return const HTTypeId('DeferredLoadException');
return const HTType('DeferredLoadException');
case 'toString':
return ({positionalArgs, namedArgs, typeArgs}) => toString();
default:
throw HTErrorUndefined(varName);
throw HTError.undefined(varName);
}
}
}
6 changes: 3 additions & 3 deletions lib/bindings/dart/async/future.g.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class TimeoutExceptionAutoBinding extends HTExternalClass {
return ({positionalArgs, namedArgs, typeArgs}) =>
TimeoutException(positionalArgs[0], positionalArgs.length > 1 ? positionalArgs[1] : null);
default:
throw HTErrorUndefined(varName);
throw HTError.undefined(varName);
}
}

Expand All @@ -25,15 +25,15 @@ extension TimeoutExceptionBinding on TimeoutException {
dynamic htFetch(String varName) {
switch (varName) {
case 'typeid':
return const HTTypeId('TimeoutException');
return const HTType('TimeoutException');
case 'message':
return message;
case 'duration':
return duration;
case 'toString':
return ({positionalArgs, namedArgs, typeArgs}) => toString();
default:
throw HTErrorUndefined(varName);
throw HTError.undefined(varName);
}
}
}
15 changes: 9 additions & 6 deletions lib/bindings/dart/async/timer.g.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@ class TimerAutoBinding extends HTExternalClass {
dynamic memberGet(String varName, {String from = HTLexicon.global}) {
switch (varName) {
case 'Timer':
return ({positionalArgs, namedArgs, typeArgs}) => Timer(positionalArgs[0], positionalArgs[1]);
return ({positionalArgs, namedArgs, typeArgs}) =>
Timer(positionalArgs[0], positionalArgs[1]);
case 'Timer.periodic':
return ({positionalArgs, namedArgs, typeArgs}) => Timer.periodic(positionalArgs[0], positionalArgs[1]);
return ({positionalArgs, namedArgs, typeArgs}) =>
Timer.periodic(positionalArgs[0], positionalArgs[1]);
case 'Timer.run':
return ({positionalArgs, namedArgs, typeArgs}) => Timer.run(positionalArgs[0]);
return ({positionalArgs, namedArgs, typeArgs}) =>
Timer.run(positionalArgs[0]);
default:
throw HTErrorUndefined(varName);
throw HTError.undefined(varName);
}
}

Expand All @@ -28,15 +31,15 @@ extension TimerBinding on Timer {
dynamic htFetch(String varName) {
switch (varName) {
case 'typeid':
return const HTTypeId('Timer');
return const HTType('Timer');
case 'tick':
return tick;
case 'isActive':
return isActive;
case 'cancel':
return ({positionalArgs, namedArgs, typeArgs}) => cancel();
default:
throw HTErrorUndefined(varName);
throw HTError.undefined(varName);
}
}
}
Loading

0 comments on commit 23dac8d

Please sign in to comment.