Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions integration_tests/lib/bridge/from_native.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import 'dart:io' show Platform;
import 'dart:typed_data';
import 'package:ffi/ffi.dart';
import 'package:flutter/material.dart';
import 'package:kraken/launcher.dart';
import 'package:kraken/dom.dart';
import 'package:kraken/bridge.dart';
import 'package:webf/launcher.dart';
import 'package:webf/dom.dart';
import 'package:webf/bridge.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';
import 'package:test/test.dart';
Expand Down
2 changes: 1 addition & 1 deletion integration_tests/lib/bridge/to_native.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'dart:async';
import 'dart:ffi';

import 'package:ffi/ffi.dart';
import 'package:kraken/bridge.dart';
import 'package:webf/bridge.dart';

// Steps for using dart:ffi to call a C function from Dart:
// 1. Import dart:ffi.
Expand Down
6 changes: 3 additions & 3 deletions integration_tests/lib/custom/custom_element.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
* Copyright (C) 2022-present The Kraken authors. All rights reserved.
*/
import 'dart:async';
import 'package:kraken/dom.dart' as dom;
import 'package:kraken/foundation.dart';
import 'package:kraken/widget.dart';
import 'package:webf/dom.dart' as dom;
import 'package:webf/foundation.dart';
import 'package:webf/widget.dart';
import 'package:waterfall_flow/waterfall_flow.dart';
import 'package:flutter/material.dart';

Expand Down
2 changes: 1 addition & 1 deletion integration_tests/lib/custom/custom_object_element.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import 'dart:async';

import 'package:flutter/rendering.dart';
import 'package:kraken/dom.dart';
import 'package:webf/dom.dart';
import 'package:kraken_video_player/video_player.dart';

class CustomObjectElement implements ObjectElementClient {
Expand Down
8 changes: 4 additions & 4 deletions integration_tests/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import 'dart:async';
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:kraken/css.dart';
import 'package:kraken/dom.dart';
import 'package:kraken/gesture.dart';
import 'package:kraken/kraken.dart';
import 'package:webf/css.dart';
import 'package:webf/dom.dart';
import 'package:webf/gesture.dart';
import 'package:webf/kraken.dart';
import 'package:ansicolor/ansicolor.dart';
import 'package:path/path.dart' as path;

Expand Down
6 changes: 3 additions & 3 deletions integration_tests/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,15 @@ environment:
sdk: '>=2.12.0 <3.0.0'

dependency_overrides:
kraken:
path: ../kraken
webf:
path: ../webf

dependencies:
ffi: ^1.0.0
colorize: ^3.0.0
flutter:
sdk: flutter
kraken: 0.8.0-dev.1
webf: ^0.0.1
image: ^3.0.2
kraken_video_player: ^2.4.0
kraken_websocket: ^2.0.0
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
"pretest": "npm install && ENABLE_ASAN=true node scripts/build_darwin_dylib",
"posttest": "npm run lint",
"benchmark": "npm install && ENABLE_PROFILE=true KRAKEN_BUILD=Release node scripts/run_benchmark.js",
"start": "cd kraken/example && flutter run",
"start": "cd webf/example && flutter run",
"test": "node scripts/run_test.js",
"plugin_test": "node scripts/run_plugin_test.js",
"lint": "cd kraken && flutter pub get && flutter analyze",
"format": "cd kraken && flutter format . --line-length=120",
"lint": "cd webf && flutter pub get && flutter analyze",
"format": "cd webf && flutter format . --line-length=120",
"ci": "npm install && npm run lint",
"test:unit:report": "lcov-summary kraken/coverage/lcov.info"
"test:unit:report": "lcov-summary webf/coverage/lcov.info"
},
"devDependencies": {
"ali-oss": "^6.13.2",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,24 @@

import android.os.Handler;
import android.os.Looper;

import java.util.HashMap;
import java.util.Map;

import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.embedding.engine.plugins.PluginRegistry;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;

import java.util.HashMap;
import java.util.Map;

public class WebF {

private String url;
private String dynamicLibraryPath;
private FlutterEngine flutterEngine;

private MethodChannel.MethodCallHandler handler;
private static Map<FlutterEngine, Kraken> sdkMap = new HashMap<>();
private static Map<FlutterEngine, WebF> sdkMap = new HashMap<>();

public Kraken(FlutterEngine flutterEngine) {
public WebF(FlutterEngine flutterEngine) {
if (flutterEngine != null) {
this.flutterEngine = flutterEngine;
sdkMap.put(flutterEngine, this);
Expand All @@ -29,15 +28,17 @@ public Kraken(FlutterEngine flutterEngine) {
}
}

public static Kraken get(FlutterEngine engine) {
public static WebF get(FlutterEngine engine) {
return sdkMap.get(engine);
}

public void registerMethodCallHandler(MethodChannel.MethodCallHandler handler) {
this.handler = handler;
}

/**
* Load url.
*
* @param url
*/
public void loadUrl(String url) {
Expand All @@ -46,6 +47,7 @@ public void loadUrl(String url) {

/**
* Set the dynamic library path.
*
* @param value
*/
public void setDynamicLibraryPath(String value) {
Expand Down Expand Up @@ -74,7 +76,7 @@ public void invokeMethod(final String method, final Object arguments) {
public void run() {
if (flutterEngine != null) {
PluginRegistry pluginRegistry = flutterEngine.getPlugins();
KrakenPlugin krakenSDKPlugin = (KrakenPlugin) pluginRegistry.get(KrakenPlugin.class);
WebfPlugin krakenSDKPlugin = (WebfPlugin) pluginRegistry.get(WebfPlugin.class);
if (krakenSDKPlugin != null && krakenSDKPlugin.channel != null) {
krakenSDKPlugin.channel.invokeMethod(method, arguments);
}
Expand All @@ -86,7 +88,7 @@ public void run() {
public void reload() {
if (flutterEngine != null) {
PluginRegistry pluginRegistry = flutterEngine.getPlugins();
KrakenPlugin krakenSDKPlugin = (KrakenPlugin) pluginRegistry.get(KrakenPlugin.class);
WebfPlugin krakenSDKPlugin = (WebfPlugin) pluginRegistry.get(WebfPlugin.class);
if (krakenSDKPlugin != null) {
krakenSDKPlugin.reload();
}
Expand Down
168 changes: 84 additions & 84 deletions webf/android/src/main/java/com/openwebf/webf/WebfPlugin.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.openkraken.kraken;
package com.openwebf.webf;

import android.content.Context;
import io.flutter.embedding.engine.FlutterEngine;
Expand All @@ -12,101 +12,101 @@
/**
* KrakenPlugin
*/
public class KrakenPlugin implements FlutterPlugin, MethodCallHandler {
/// The MethodChannel that will the communication between Flutter and native Android
///
/// This local reference serves to register the plugin with the Flutter Engine and unregister it
/// when the Flutter Engine is detached from the Activity
public MethodChannel channel;
private FlutterEngine flutterEngine;
private Context mContext;
private Kraken mKraken;
public class WebfPlugin implements FlutterPlugin, MethodCallHandler {
/// The MethodChannel that will the communication between Flutter and native Android
///
/// This local reference serves to register the plugin with the Flutter Engine and unregister it
/// when the Flutter Engine is detached from the Activity
public MethodChannel channel;
private FlutterEngine flutterEngine;
private Context mContext;
private WebF mKraken;

// This static function is optional and equivalent to onAttachedToEngine. It supports the old
// pre-Flutter-1.12 Android projects. You are encouraged to continue supporting
// plugin registration via this function while apps migrate to use the new Android APIs
// post-flutter-1.12 via https://flutter.dev/go/android-project-migration.
//
// It is encouraged to share logic between onAttachedToEngine and registerWith to keep
// them functionally equivalent. Only one of onAttachedToEngine or registerWith will be called
// depending on the user's project. onAttachedToEngine or registerWith must both be defined
// in the same class.
public static void registerWith(Registrar registrar) {
final MethodChannel channel = new MethodChannel(registrar.messenger(), "kraken");
KrakenPlugin plugin = new KrakenPlugin();
plugin.mContext = registrar.context();
channel.setMethodCallHandler(plugin);
}
// This static function is optional and equivalent to onAttachedToEngine. It supports the old
// pre-Flutter-1.12 Android projects. You are encouraged to continue supporting
// plugin registration via this function while apps migrate to use the new Android APIs
// post-flutter-1.12 via https://flutter.dev/go/android-project-migration.
//
// It is encouraged to share logic between onAttachedToEngine and registerWith to keep
// them functionally equivalent. Only one of onAttachedToEngine or registerWith will be called
// depending on the user's project. onAttachedToEngine or registerWith must both be defined
// in the same class.
public static void registerWith(Registrar registrar) {
final MethodChannel channel = new MethodChannel(registrar.messenger(), "kraken");
WebfPlugin plugin = new WebfPlugin();
plugin.mContext = registrar.context();
channel.setMethodCallHandler(plugin);
}

@Override
public void onAttachedToEngine(FlutterPluginBinding flutterPluginBinding) {
mContext = flutterPluginBinding.getApplicationContext();
channel = new MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "kraken");
flutterEngine = flutterPluginBinding.getFlutterEngine();
channel.setMethodCallHandler(this);
}
@Override
public void onAttachedToEngine(FlutterPluginBinding flutterPluginBinding) {
mContext = flutterPluginBinding.getApplicationContext();
channel = new MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "kraken");
flutterEngine = flutterPluginBinding.getFlutterEngine();
channel.setMethodCallHandler(this);
}

public void reload() {
if (channel != null) {
channel.invokeMethod("reload", null);
}
public void reload() {
if (channel != null) {
channel.invokeMethod("reload", null);
}
}

Kraken getKraken() {
if (mKraken == null) {
mKraken = Kraken.get(flutterEngine);
}
return mKraken;
WebF getKraken() {
if (mKraken == null) {
mKraken = WebF.get(flutterEngine);
}
return mKraken;
}

@Override
public void onMethodCall(MethodCall call, Result result) {
switch (call.method) {
case "getUrl": {
Kraken kraken = getKraken();
result.success(kraken == null ? "" : kraken.getUrl());
break;
}
@Override
public void onMethodCall(MethodCall call, Result result) {
switch (call.method) {
case "getUrl": {
WebF kraken = getKraken();
result.success(kraken == null ? "" : kraken.getUrl());
break;
}

case "getDynamicLibraryPath": {
Kraken kraken = getKraken();
result.success(kraken == null ? "" : kraken.getDynamicLibraryPath());
break;
}
case "getDynamicLibraryPath": {
WebF kraken = getKraken();
result.success(kraken == null ? "" : kraken.getDynamicLibraryPath());
break;
}

case "invokeMethod": {
Kraken kraken = getKraken();
if (kraken != null) {
String method = call.argument("method");
Object args = call.argument("args");
assert method != null;
MethodCall callWrap = new MethodCall(method, args);
kraken._handleMethodCall(callWrap, result);
} else {
result.error("Kraken instance not found.", null, null);
}
break;
}
case "invokeMethod": {
WebF kraken = getKraken();
if (kraken != null) {
String method = call.argument("method");
Object args = call.argument("args");
assert method != null;
MethodCall callWrap = new MethodCall(method, args);
kraken._handleMethodCall(callWrap, result);
} else {
result.error("Kraken instance not found.", null, null);
}
break;
}

case "getTemporaryDirectory":
result.success(getTemporaryDirectory());
break;
case "getTemporaryDirectory":
result.success(getTemporaryDirectory());
break;

default:
result.notImplemented();
}
default:
result.notImplemented();
}
}

@Override
public void onDetachedFromEngine(FlutterPluginBinding binding) {
channel.setMethodCallHandler(null);
Kraken kraken = Kraken.get(flutterEngine);
if (kraken == null) return;
kraken.destroy();
flutterEngine = null;
}
@Override
public void onDetachedFromEngine(FlutterPluginBinding binding) {
channel.setMethodCallHandler(null);
WebF kraken = WebF.get(flutterEngine);
if (kraken == null) return;
kraken.destroy();
flutterEngine = null;
}

private String getTemporaryDirectory() {
return mContext.getCacheDir().getPath() + "/Kraken";
}
private String getTemporaryDirectory() {
return mContext.getCacheDir().getPath() + "/Kraken";
}
}
2 changes: 2 additions & 0 deletions webf/example/android/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.enableR8=true

android.native.buildOutput=verbose
8 changes: 4 additions & 4 deletions webf/example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
* Copyright (C) 2022-present The Kraken authors. All rights reserved.
*/
import 'package:flutter/material.dart';
import 'package:kraken/kraken.dart';
import 'package:kraken/devtools.dart';
import 'package:kraken_websocket/kraken_websocket.dart';
import 'package:webf/kraken.dart';
import 'package:webf/devtools.dart';
// import 'package:kraken_websocket/kraken_websocket.dart';

void main() {
KrakenWebsocket.initialize();
// KrakenWebsocket.initialize();
runApp(MyApp());
}

Expand Down
4 changes: 2 additions & 2 deletions webf/example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ environment:
dependencies:
flutter:
sdk: flutter
webf: ^0.10.0
kraken_websocket: ^2.0.0
webf: ^0.0.1
# kraken_websocket: ^2.0.0

# When depending on this package from a real application,
# you should remove the following overrides.
Expand Down
Loading