diff --git a/.github/labeler.yml b/.github/labeler.yml index 6b1a79cd4..aeae90a65 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -63,8 +63,8 @@ - packages/wakelock/**/* "p: wearable_rotary": - packages/wearable_rotary/**/* -"p: webview_flutter": - - packages/webview_flutter/**/* +"p: webview_flutter_lwe": + - packages/webview_flutter_lwe/**/* # Tools "tools": diff --git a/.github/recipe.yaml b/.github/recipe.yaml index 0b1c2f20c..0017d67c4 100644 --- a/.github/recipe.yaml +++ b/.github/recipe.yaml @@ -24,7 +24,7 @@ plugins: camera: [] google_maps_flutter: [] network_info_plus: [] - webview_flutter: [] + webview_flutter_lwe: [] # No tests. google_sign_in: [] diff --git a/README.md b/README.md index 9278bb61c..fa4747de8 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ The _"non-endorsed"_ status means that the plugin is not endorsed by the origina | [**video_player_tizen**](packages/video_player) | [video_player](https://github.com/flutter/plugins/tree/main/packages/video_player) (1st-party) | [![pub package](https://img.shields.io/pub/v/video_player_tizen.svg)](https://pub.dev/packages/video_player_tizen) | No | | [**wakelock_tizen**](packages/wakelock) | [wakelock](https://github.com/creativecreatorormaybenot/wakelock) (3rd-party) | [![pub package](https://img.shields.io/pub/v/wakelock_tizen.svg)](https://pub.dev/packages/wakelock_tizen) | No | | [**wearable_rotary**](packages/wearable_rotary) | (Tizen-only) | [![pub package](https://img.shields.io/pub/v/wearable_rotary.svg)](https://pub.dev/packages/wearable_rotary) | N/A | -| [**webview_flutter_tizen**](packages/webview_flutter) | [webview_flutter](https://github.com/flutter/plugins/tree/main/packages/webview_flutter) (1st-party) | [![pub package](https://img.shields.io/pub/v/webview_flutter_tizen.svg)](https://pub.dev/packages/webview_flutter_tizen) | No | +| [**webview_flutter_lwe**](packages/webview_flutter) | [webview_flutter](https://github.com/flutter/plugins/tree/main/packages/webview_flutter) (1st-party) | [![pub package](https://img.shields.io/pub/v/webview_flutter_lwe.svg)](https://pub.dev/packages/webview_flutter_lwe) | No | ## Device limitations @@ -84,4 +84,5 @@ The _"non-endorsed"_ status means that the plugin is not endorsed by the origina | [**video_player_tizen**](packages/video_player) | 4.0 | ✔️ | ✔️ | ⚠️ | ❌ | Functional limitations,
TV emulator issue | | [**wakelock_tizen**](packages/wakelock) | 4.0 | ✔️ | ✔️ | ❌ | ❌ | Cannot override system settings | | [**wearable_rotary**](packages/wearable_rotary) | 4.0 | ✔️ | ✔️ | ❌ | ❌ | Not applicable for TV | -| [**webview_flutter_tizen**](packages/webview_flutter) | 5.5 | ✔️ | ✔️ | ✔️ | ✔️ | Not for production use | +| [**webview_flutter_lwe**](packages/webview_flutter_lwe) | 5.5 | ✔️ | ✔️ | ✔️ | ✔️ | Not for production use | + diff --git a/packages/webview_flutter/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md deleted file mode 100644 index ae58e29f3..000000000 --- a/packages/webview_flutter/CHANGELOG.md +++ /dev/null @@ -1,130 +0,0 @@ -## 0.5.6 - -* Update LWE binary (9af6ea4101d173935fe6e6cd3f2c91ca17ed451e). - -## 0.5.5 - -* Update README. -* Add `-Wl,-rpath=$ORIGIN` linker option. - -## 0.5.4 - -* Change the project type to sharedLib. - -## 0.5.3 - -* Apply new texture APIs. - -## 0.5.2 - -* Add back key handling. - -## 0.5.1 - -* Apply PlatformView API change. -* Code refactoring. - -## 0.5.0 - -* Code refactoring. -* Update the example app and integration_test. -* Sync with the latest framework code. -* Migrate to new analysis options. -* Update LWE binary (f0ca15ee41d2fc96b59fd57b63b6c32cf6c1906b). - -## 0.4.4 - -* Update LWE binary (645719ed084d899ec7d53de1758db71a8974e446). - -## 0.4.3 - -* Remove unused things. -* Fix build warnings. - -## 0.4.2 - -* Support background color. - -## 0.4.1 - -* Apply texture api change. - -## 0.4.0 - -* Support emulator. -* Update LWE binary (b22fd0c4e50cde2b9203150d80e9d0bd1a1b0602). -* Update webivew_flutter to 3.0.1. - -## 0.3.11 - -* Organize includes. - -## 0.3.10 - -* Apply `PlatformView` and `PlatformViewFactory` API changes. - -## 0.3.9 - -* Update LWE binary (6bae13cb915bd41c5aac4aaaae72865f20924c03). - -## 0.3.8 - -* Update webivew_flutter to 2.3.0. - -## 0.3.7 - -* Update webivew_flutter to 2.1.1. - -## 0.3.6 - -* Update LWE binary (3dff8724bfb4b2b0b9e7c4e3976a9b02e74ee13c). -* Fix various issues. - -## 0.3.5 - -* Update LWE binary (b2fad69f50d693c86abc45b363a39b0625f5e95f). -* Fix crash issue. - -## 0.3.4 - -* Fix buffer synchronization issue. - -## 0.3.3 - -* Update LWE binary (c57d045a513455115a8a4c66517e5e51f5a4dfbd). -* Fix issue of multiple webviews. - -## 0.3.2 - -* Update LWE binary (2226c28429391407d7c875c3af7531f5e1d5dfa7) for supporting google_map_flutter_tizen. - -## 0.3.1 - -* Update lightweight web engine binary (ad0e77631f96180e19a11c3dc80b6b72c32bdffb). -* Fix bug on handling parameter of `loadUrl` API. - -## 0.3.0 - -* Apply `PlatformView` and `PlatformViewFactory` API changes. - -## 0.2.2 - -* Update lightweight web engine binary & header file (6263be6c888d5cb9dcca5466dfc3941a70b424eb). -* Activate resizing function. -* Apply embedder's texture API changes. - -## 0.2.1 - -* Add lightweight web engine binary for arm64. - -## 0.2.0 - -* Update Dart and Flutter SDK constraints. -* Update Flutter and Samsung copyright information. -* Update webview_flutter_tizen to use platform view interface. -* Update example and integration_test. -* Update webivew_flutter to 2.0.4. - -## 0.1.0 - -* Initial release. diff --git a/packages/webview_flutter/example/tizen/tizen-manifest.xml b/packages/webview_flutter/example/tizen/tizen-manifest.xml deleted file mode 100644 index 3f9e1a889..000000000 --- a/packages/webview_flutter/example/tizen/tizen-manifest.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - ic_launcher.png - - - - http://tizen.org/privilege/internet - - - diff --git a/packages/webview_flutter/lib/src/platform_view_tizen.dart b/packages/webview_flutter/lib/src/platform_view_tizen.dart deleted file mode 100644 index 66835e57b..000000000 --- a/packages/webview_flutter/lib/src/platform_view_tizen.dart +++ /dev/null @@ -1,659 +0,0 @@ -// Copyright 2021 Samsung Electronics Co., Ltd. All rights reserved. -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// github.com:flutter/flutter.git@57a688c1f04d56eaa40beeb9f44e549eaf0ce54d -// packages/flutter/lib/src/rendering/platform_view.dart -// packages/flutter/lib/src/widgets/platform_view.dart -// packages/flutter/lib/src/services/platform_views.dart -// Imported from above files, the content has been minimally modified. -// (e.g. Rename keyword 'Android' -> 'Tizen' ) - -// ignore_for_file: public_member_api_docs - -part of '../webview_flutter_tizen.dart'; - -enum _PlatformViewState { - uninitialized, - resizing, - ready, -} - -class TizenView extends StatefulWidget { - const TizenView({ - super.key, - required this.viewType, - this.onPlatformViewCreated, - this.hitTestBehavior = PlatformViewHitTestBehavior.opaque, - this.layoutDirection, - this.gestureRecognizers, - this.creationParams, - this.creationParamsCodec, - this.clipBehavior = Clip.hardEdge, - }) : assert(viewType != null), - assert(hitTestBehavior != null), - assert(creationParams == null || creationParamsCodec != null); - - final String viewType; - final PlatformViewCreatedCallback? onPlatformViewCreated; - final PlatformViewHitTestBehavior hitTestBehavior; - final TextDirection? layoutDirection; - final Set>? gestureRecognizers; - final dynamic creationParams; - final MessageCodec? creationParamsCodec; - final Clip clipBehavior; - - @override - State createState() => _TizenWebViewState(); -} - -class _TizenWebViewState extends State { - int? _id; - late TizenViewController _controller; - TextDirection? _layoutDirection; - bool _initialized = false; - FocusNode? _focusNode; - - static final Set> _emptyRecognizersSet = - >{}; - - @override - Widget build(BuildContext context) { - return Focus( - focusNode: _focusNode, - onFocusChange: _onFocusChange, - child: _TizenPlatformTextureView( - controller: _controller, - hitTestBehavior: widget.hitTestBehavior, - gestureRecognizers: widget.gestureRecognizers ?? _emptyRecognizersSet, - clipBehavior: widget.clipBehavior, - ), - ); - } - - void _initializeOnce() { - if (_initialized) { - return; - } - _initialized = true; - _createNewTizenWebView(); - _focusNode = FocusNode(debugLabel: 'TizenWebView(id: $_id)'); - } - - @override - void didChangeDependencies() { - super.didChangeDependencies(); - final TextDirection newLayoutDirection = _findLayoutDirection(); - final bool didChangeLayoutDirection = - _layoutDirection != newLayoutDirection; - _layoutDirection = newLayoutDirection; - - _initializeOnce(); - if (didChangeLayoutDirection) { - _controller.setLayoutDirection(_layoutDirection!); - } - } - - @override - void didUpdateWidget(TizenView oldWidget) { - super.didUpdateWidget(oldWidget); - - final TextDirection newLayoutDirection = _findLayoutDirection(); - final bool didChangeLayoutDirection = - _layoutDirection != newLayoutDirection; - _layoutDirection = newLayoutDirection; - - if (widget.viewType != oldWidget.viewType) { - _controller.dispose(); - _createNewTizenWebView(); - return; - } - - if (didChangeLayoutDirection) { - _controller.setLayoutDirection(_layoutDirection!); - } - } - - TextDirection _findLayoutDirection() { - assert( - widget.layoutDirection != null || debugCheckHasDirectionality(context)); - return widget.layoutDirection ?? Directionality.of(context); - } - - @override - void dispose() { - _controller.dispose(); - super.dispose(); - } - - void _createNewTizenWebView() { - _id = platformViewsRegistry.getNextPlatformViewId(); - _controller = PlatformViewsServiceTizen.initTizenView( - id: _id!, - viewType: widget.viewType, - layoutDirection: _layoutDirection!, - creationParams: widget.creationParams, - creationParamsCodec: widget.creationParamsCodec, - onFocus: () { - _focusNode!.requestFocus(); - }, - ); - if (widget.onPlatformViewCreated != null) { - _controller - .addOnPlatformViewCreatedListener(widget.onPlatformViewCreated!); - } - } - - void _onFocusChange(bool isFocused) { - if (!_controller.isCreated) { - return; - } - if (!isFocused) { - _controller.clearFocus().catchError((dynamic e) { - if (e is MissingPluginException) { - return; - } - }); - return; - } - SystemChannels.textInput.invokeMethod( - 'TextInput.setPlatformViewClient', - {'platformViewId': _id}, - ).catchError((dynamic e) { - if (e is MissingPluginException) { - return; - } - }); - } -} - -enum _TizenViewState { - waitingForSize, - creating, - created, - disposed, -} - -class TizenViewController extends PlatformViewController { - TizenViewController._({ - required this.viewId, - required String viewType, - required TextDirection layoutDirection, - dynamic creationParams, - MessageCodec? creationParamsCodec, - bool waitingForSize = true, - }) : assert(viewId != null), - assert(viewType != null), - assert(layoutDirection != null), - assert(creationParams == null || creationParamsCodec != null), - _viewType = viewType, - _layoutDirection = layoutDirection, - _creationParams = creationParams, - _creationParamsCodec = creationParamsCodec, - _state = waitingForSize - ? _TizenViewState.waitingForSize - : _TizenViewState.creating; - - @override - final int viewId; - - final String _viewType; - - TextDirection _layoutDirection; - - _TizenViewState _state; - - final dynamic _creationParams; - - final MessageCodec? _creationParamsCodec; - - final List _platformViewCreatedCallbacks = - []; - - static int pointerAction(int pointerId, int action) { - return ((pointerId << 8) & 0xff00) | (action & 0xff); - } - - int? _textureId; - - int? get textureId => _textureId; - - /// The current offset of the platform view. - Offset _off = Offset.zero; - - Future setSize(Size size) async { - assert(_state != _TizenViewState.disposed, - 'Tizen view is disposed. View id: $viewId'); - assert(_state != _TizenViewState.waitingForSize, - 'Tizen view must have an initial size. View id: $viewId'); - assert(size != null); - assert(!size.isEmpty); - - final Map? meta = - await SystemChannels.platform_views.invokeMapMethod( - 'resize', - { - 'id': viewId, - 'width': size.width, - 'height': size.height, - }, - ); - assert(meta != null); - assert(meta!.containsKey('width')); - assert(meta!.containsKey('height')); - return Size(meta!['width']! as double, meta['height']! as double); - } - - Future setOffset(Offset off) async { - if (off == _off) { - return; - } - - if (_state != _TizenViewState.created) { - return; - } - - _off = off; - - await SystemChannels.platform_views.invokeMethod( - 'offset', - { - 'id': viewId, - 'top': off.dy, - 'left': off.dx, - }, - ); - } - - Future _sendCreateMessage({Size? size}) async { - if (size == null) { - return; - } - - assert(!size.isEmpty, - 'trying to create $TizenViewController without setting a valid size.'); - - final Map args = { - 'id': viewId, - 'viewType': _viewType, - 'width': size.width, - 'height': size.height, - 'direction': _layoutDirection == TextDirection.ltr ? 0 : 1, - }; - if (_creationParams != null) { - final ByteData paramsByteData = - _creationParamsCodec!.encodeMessage(_creationParams)!; - args['params'] = Uint8List.view( - paramsByteData.buffer, - 0, - paramsByteData.lengthInBytes, - ); - } - _textureId = - await SystemChannels.platform_views.invokeMethod('create', args); - } - - Future _sendDisposeMessage() { - return SystemChannels.platform_views - .invokeMethod('dispose', { - 'id': viewId, - 'hybrid': false, - }); - } - - @override - Future create({Size? size}) async { - assert(_state != _TizenViewState.disposed, - 'trying to create a disposed Tizen view'); - await _sendCreateMessage(size: size); - - _state = _TizenViewState.created; - for (final PlatformViewCreatedCallback callback - in _platformViewCreatedCallbacks) { - callback(viewId); - } - } - - bool get isCreated => _state == _TizenViewState.created; - - void addOnPlatformViewCreatedListener(PlatformViewCreatedCallback listener) { - assert(listener != null); - assert(_state != _TizenViewState.disposed); - _platformViewCreatedCallbacks.add(listener); - } - - /// Removes a callback added with [addOnPlatformViewCreatedListener]. - void removeOnPlatformViewCreatedListener( - PlatformViewCreatedCallback listener) { - assert(_state != _TizenViewState.disposed); - _platformViewCreatedCallbacks.remove(listener); - } - - Future setLayoutDirection(TextDirection layoutDirection) async { - assert(_state != _TizenViewState.disposed, - 'trying to set a layout direction for a disposed UIView. View id: $viewId'); - - if (layoutDirection == _layoutDirection) { - return; - } - - assert(layoutDirection != null); - _layoutDirection = layoutDirection; - - if (_state == _TizenViewState.waitingForSize) { - return; - } - - await SystemChannels.platform_views - .invokeMethod('setDirection', { - 'id': viewId, - 'direction': layoutDirection == TextDirection.ltr ? 0 : 1, - }); - } - - @override - Future dispatchPointerEvent(PointerEvent event) async { - if (event is PointerHoverEvent) { - return; - } - - int eventType = 0; - if (event is PointerDownEvent) { - eventType = 0; - } else if (event is PointerMoveEvent) { - eventType = 1; - } else if (event is PointerUpEvent) { - eventType = 2; - } else { - throw UnimplementedError('Not Implemented'); - } - await SystemChannels.platform_views - .invokeMethod('touch', { - 'id': viewId, - 'event': [ - eventType, // int, pointer event type - event.buttons, // int, mouse button type (left, right, middle) - event.localPosition.dx, // double, global position x - event.localPosition.dy, // double, global position y - event.localDelta.dx, // double, moved position x - event.localDelta.dy, // double, moved position y - ] - }); - } - - @override - Future clearFocus() { - if (_state != _TizenViewState.created) { - return Future.value(); - } - return SystemChannels.platform_views - .invokeMethod('clearFocus', viewId); - } - - @override - Future dispose() async { - if (_state == _TizenViewState.creating || - _state == _TizenViewState.created) { - await _sendDisposeMessage(); - } - _platformViewCreatedCallbacks.clear(); - _state = _TizenViewState.disposed; - PlatformViewsServiceTizen._instance._focusCallbacks.remove(viewId); - } -} - -class PlatformViewsServiceTizen { - PlatformViewsServiceTizen._() { - SystemChannels.platform_views.setMethodCallHandler(_onMethodCall); - } - static final PlatformViewsServiceTizen _instance = - PlatformViewsServiceTizen._(); - - Future _onMethodCall(MethodCall call) { - switch (call.method) { - case 'viewFocused': - final int id = call.arguments as int; - if (_focusCallbacks.containsKey(id)) { - _focusCallbacks[id]!(); - } - break; - default: - throw UnimplementedError( - "${call.method} was invoked but isn't implemented by PlatformViewsService"); - } - return Future.value(); - } - - final Map _focusCallbacks = {}; - - static TizenViewController initTizenView({ - required int id, - required String viewType, - required TextDirection layoutDirection, - dynamic creationParams, - MessageCodec? creationParamsCodec, - VoidCallback? onFocus, - }) { - assert(id != null); - assert(viewType != null); - assert(layoutDirection != null); - assert(creationParams == null || creationParamsCodec != null); - - final TizenViewController controller = TizenViewController._( - viewId: id, - viewType: viewType, - layoutDirection: layoutDirection, - creationParams: creationParams, - creationParamsCodec: creationParamsCodec, - ); - - _instance._focusCallbacks[id] = onFocus ?? () {}; - return controller; - } -} - -/// A render object for an Tizen view. -/// -/// [RenderTizenView] is responsible for sizing, displaying and passing touch events to Tizen -/// -/// See also: -/// -/// * [PlatformViewsService] which is a service for controlling platform views. -class RenderTizenView extends PlatformViewRenderBox { - /// Creates a render object for an Tizen view. - RenderTizenView({ - required TizenViewController viewController, - required PlatformViewHitTestBehavior hitTestBehavior, - required Set> gestureRecognizers, - Clip clipBehavior = Clip.hardEdge, - }) : assert(viewController != null), - assert(hitTestBehavior != null), - assert(gestureRecognizers != null), - assert(clipBehavior != null), - _viewController = viewController, - _clipBehavior = clipBehavior, - super( - controller: viewController, - hitTestBehavior: hitTestBehavior, - gestureRecognizers: gestureRecognizers) { - updateGestureRecognizers(gestureRecognizers); - _viewController.addOnPlatformViewCreatedListener(_onPlatformViewCreated); - this.hitTestBehavior = hitTestBehavior; - } - - _PlatformViewState _state = _PlatformViewState.uninitialized; - - Size? _currentTextureSize; - - @override - TizenViewController get controller => _viewController; - - TizenViewController _viewController; - - /// Sets a new Tizen view controller. - /// - /// `viewController` must not be null. - @override - set controller(TizenViewController viewController) { - assert(_viewController != null); - assert(viewController != null); - if (_viewController == viewController) { - return; - } - _viewController.removeOnPlatformViewCreatedListener(_onPlatformViewCreated); - _viewController = viewController; - _sizePlatformView(); - if (_viewController.isCreated) { - markNeedsSemanticsUpdate(); - } - _viewController.addOnPlatformViewCreatedListener(_onPlatformViewCreated); - } - - /// {@macro flutter.material.Material.clipBehavior} - /// - /// Defaults to [Clip.hardEdge], and must not be null. - Clip get clipBehavior => _clipBehavior; - Clip _clipBehavior = Clip.hardEdge; - set clipBehavior(Clip value) { - assert(value != null); - if (value != _clipBehavior) { - _clipBehavior = value; - markNeedsPaint(); - markNeedsSemanticsUpdate(); - } - } - - void _onPlatformViewCreated(int id) { - markNeedsSemanticsUpdate(); - } - - @override - bool get sizedByParent => true; - - @override - bool get alwaysNeedsCompositing => true; - - @override - bool get isRepaintBoundary => true; - - @override - Size computeDryLayout(BoxConstraints constraints) { - return constraints.biggest; - } - - @override - void performResize() { - super.performResize(); - _sizePlatformView(); - } - - Future _sizePlatformView() async { - if (_state == _PlatformViewState.resizing || size.isEmpty) { - return; - } - - _state = _PlatformViewState.resizing; - markNeedsPaint(); - - Size targetSize; - do { - targetSize = size; - if (_viewController.isCreated) { - _currentTextureSize = await _viewController.setSize(targetSize); - } else { - await _viewController.create(size: targetSize); - _currentTextureSize = targetSize; - } - } while (size != targetSize); - - _state = _PlatformViewState.ready; - markNeedsPaint(); - } - - @override - void paint(PaintingContext context, Offset offset) { - if (_viewController.textureId == null || _currentTextureSize == null) - return; - - final bool isTextureLargerThanWidget = - _currentTextureSize!.width > size.width || - _currentTextureSize!.height > size.height; - if (isTextureLargerThanWidget && clipBehavior != Clip.none) { - _clipRectLayer.layer = context.pushClipRect( - true, - offset, - offset & size, - _paintTexture, - clipBehavior: clipBehavior, - oldLayer: _clipRectLayer.layer, - ); - return; - } - _clipRectLayer.layer = null; - _paintTexture(context, offset); - } - - final LayerHandle _clipRectLayer = - LayerHandle(); - - @override - void dispose() { - _clipRectLayer.layer = null; - super.dispose(); - } - - void _paintTexture(PaintingContext context, Offset offset) { - if (_currentTextureSize == null) { - return; - } - - context.addLayer(TextureLayer( - rect: offset & _currentTextureSize!, - textureId: _viewController.textureId!, - )); - } - - @override - void describeSemanticsConfiguration(SemanticsConfiguration config) { - super.describeSemanticsConfiguration(config); - - config.isSemanticBoundary = true; - - if (_viewController.isCreated) { - config.platformViewId = _viewController.viewId; - } - } -} - -class _TizenPlatformTextureView extends LeafRenderObjectWidget { - const _TizenPlatformTextureView({ - required this.controller, - required this.hitTestBehavior, - required this.gestureRecognizers, - this.clipBehavior = Clip.hardEdge, - }) : assert(controller != null), - assert(hitTestBehavior != null), - assert(gestureRecognizers != null); - - final TizenViewController controller; - final PlatformViewHitTestBehavior hitTestBehavior; - final Set> gestureRecognizers; - final Clip clipBehavior; - - @override - RenderObject createRenderObject(BuildContext context) => RenderTizenView( - viewController: controller, - hitTestBehavior: hitTestBehavior, - gestureRecognizers: gestureRecognizers, - clipBehavior: clipBehavior, - ); - - @override - void updateRenderObject(BuildContext context, RenderTizenView renderObject) { - renderObject.controller = controller; - renderObject.hitTestBehavior = hitTestBehavior; - renderObject.updateGestureRecognizers(gestureRecognizers); - renderObject.clipBehavior = clipBehavior; - } -} diff --git a/packages/webview_flutter/.gitignore b/packages/webview_flutter_lwe/.gitignore similarity index 100% rename from packages/webview_flutter/.gitignore rename to packages/webview_flutter_lwe/.gitignore diff --git a/packages/webview_flutter_lwe/CHANGELOG.md b/packages/webview_flutter_lwe/CHANGELOG.md new file mode 100644 index 000000000..1d30ecd7c --- /dev/null +++ b/packages/webview_flutter_lwe/CHANGELOG.md @@ -0,0 +1,4 @@ +## 0.1.0 + +* Initial release. +* Rename from webview_flutter_tizen to webview_flutter_lwe. \ No newline at end of file diff --git a/packages/webview_flutter/LICENSE b/packages/webview_flutter_lwe/LICENSE similarity index 100% rename from packages/webview_flutter/LICENSE rename to packages/webview_flutter_lwe/LICENSE diff --git a/packages/webview_flutter/README.md b/packages/webview_flutter_lwe/README.md similarity index 59% rename from packages/webview_flutter/README.md rename to packages/webview_flutter_lwe/README.md index b21eee605..7b9a31cb6 100644 --- a/packages/webview_flutter/README.md +++ b/packages/webview_flutter_lwe/README.md @@ -1,8 +1,8 @@ -# webview_flutter_tizen +# webview_flutter_lwe -[![pub package](https://img.shields.io/pub/v/webview_flutter_tizen.svg)](https://pub.dev/packages/webview_flutter_tizen) +[![pub package](https://img.shields.io/pub/v/webview_flutter_lwe.svg)](https://pub.dev/packages/webview_flutter_lwe) -The Tizen implementation of [`webview_flutter`](https://github.com/flutter/plugins/tree/main/packages/webview_flutter). +The Tizen implementation of [`webview_flutter`](https://github.com/flutter/plugins/tree/main/packages/webview_flutter) backed by the Lightweight Web Engine (LWE). ## Required privileges @@ -16,12 +16,12 @@ To use this plugin, add below lines under the `` section in your `tize ## Usage -This package is not an _endorsed_ implementation of `webview_flutter`. Therefore, you have to include `webview_flutter_tizen` alongside `webview_flutter` as dependencies in your `pubspec.yaml` file. +This package is not an _endorsed_ implementation of `webview_flutter`. Therefore, you have to include `webview_flutter_lwe` alongside `webview_flutter` as dependencies in your `pubspec.yaml` file. ```yaml dependencies: webview_flutter: ^3.0.4 - webview_flutter_tizen: ^0.5.6 + webview_flutter_lwe: ^0.1.0 ``` ## Example @@ -48,4 +48,4 @@ class WebViewExampleState extends State { This plugin is supported on devices running Tizen 5.5 or later. -The WebView widget is backed by the Lightweight Web Engine (LWE) on Tizen. For a detailed list of features supported by the Lightweight Web Engine, refer to [this page](https://git.tizen.org/cgit/platform/upstream/lightweight-web-engine/tree/docs/Spec.md?h=tizen). +For a detailed list of features supported by the Lightweight Web Engine, refer to [this page](https://git.tizen.org/cgit/platform/upstream/lightweight-web-engine/tree/docs/Spec.md?h=tizen). diff --git a/packages/webview_flutter/example/.gitignore b/packages/webview_flutter_lwe/example/.gitignore similarity index 100% rename from packages/webview_flutter/example/.gitignore rename to packages/webview_flutter_lwe/example/.gitignore diff --git a/packages/webview_flutter/example/README.md b/packages/webview_flutter_lwe/example/README.md similarity index 58% rename from packages/webview_flutter/example/README.md rename to packages/webview_flutter_lwe/example/README.md index 2f0f82a64..f86f4681b 100644 --- a/packages/webview_flutter/example/README.md +++ b/packages/webview_flutter_lwe/example/README.md @@ -1,6 +1,6 @@ -# webview_flutter_tizen_example +# webview_flutter_lwe_example -Demonstrates how to use the webview_flutter_tizen plugin. +Demonstrates how to use the webview_flutter_lwe plugin. ## Getting Started diff --git a/packages/webview_flutter/example/assets/sample_audio.ogg b/packages/webview_flutter_lwe/example/assets/sample_audio.ogg similarity index 100% rename from packages/webview_flutter/example/assets/sample_audio.ogg rename to packages/webview_flutter_lwe/example/assets/sample_audio.ogg diff --git a/packages/webview_flutter/example/assets/sample_video.mp4 b/packages/webview_flutter_lwe/example/assets/sample_video.mp4 similarity index 100% rename from packages/webview_flutter/example/assets/sample_video.mp4 rename to packages/webview_flutter_lwe/example/assets/sample_video.mp4 diff --git a/packages/webview_flutter/example/assets/www/index.html b/packages/webview_flutter_lwe/example/assets/www/index.html similarity index 100% rename from packages/webview_flutter/example/assets/www/index.html rename to packages/webview_flutter_lwe/example/assets/www/index.html diff --git a/packages/webview_flutter/example/assets/www/styles/style.css b/packages/webview_flutter_lwe/example/assets/www/styles/style.css similarity index 100% rename from packages/webview_flutter/example/assets/www/styles/style.css rename to packages/webview_flutter_lwe/example/assets/www/styles/style.css diff --git a/packages/webview_flutter/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter_lwe/example/integration_test/webview_flutter_test.dart similarity index 100% rename from packages/webview_flutter/example/integration_test/webview_flutter_test.dart rename to packages/webview_flutter_lwe/example/integration_test/webview_flutter_test.dart diff --git a/packages/webview_flutter/example/lib/main.dart b/packages/webview_flutter_lwe/example/lib/main.dart similarity index 100% rename from packages/webview_flutter/example/lib/main.dart rename to packages/webview_flutter_lwe/example/lib/main.dart diff --git a/packages/webview_flutter/example/pubspec.yaml b/packages/webview_flutter_lwe/example/pubspec.yaml similarity index 82% rename from packages/webview_flutter/example/pubspec.yaml rename to packages/webview_flutter_lwe/example/pubspec.yaml index 31a1e34be..779a88c58 100644 --- a/packages/webview_flutter/example/pubspec.yaml +++ b/packages/webview_flutter_lwe/example/pubspec.yaml @@ -1,5 +1,5 @@ -name: webview_flutter_tizen_example -description: Demonstrates how to use the webview_flutter_tizen plugin. +name: webview_flutter_lwe_example +description: Demonstrates how to use the webview_flutter_lwe plugin. publish_to: none environment: @@ -13,7 +13,7 @@ dependencies: path_provider_tizen: path: ../../path_provider/ webview_flutter: ^3.0.4 - webview_flutter_tizen: + webview_flutter_lwe: path: ../ dev_dependencies: diff --git a/packages/webview_flutter/example/test_driver/integration_test.dart b/packages/webview_flutter_lwe/example/test_driver/integration_test.dart similarity index 100% rename from packages/webview_flutter/example/test_driver/integration_test.dart rename to packages/webview_flutter_lwe/example/test_driver/integration_test.dart diff --git a/packages/webview_flutter/example/tizen/.gitignore b/packages/webview_flutter_lwe/example/tizen/.gitignore similarity index 100% rename from packages/webview_flutter/example/tizen/.gitignore rename to packages/webview_flutter_lwe/example/tizen/.gitignore diff --git a/packages/webview_flutter/example/tizen/App.cs b/packages/webview_flutter_lwe/example/tizen/App.cs similarity index 100% rename from packages/webview_flutter/example/tizen/App.cs rename to packages/webview_flutter_lwe/example/tizen/App.cs diff --git a/packages/webview_flutter/example/tizen/Runner.csproj b/packages/webview_flutter_lwe/example/tizen/Runner.csproj similarity index 100% rename from packages/webview_flutter/example/tizen/Runner.csproj rename to packages/webview_flutter_lwe/example/tizen/Runner.csproj diff --git a/packages/webview_flutter/example/tizen/shared/res/ic_launcher.png b/packages/webview_flutter_lwe/example/tizen/shared/res/ic_launcher.png similarity index 100% rename from packages/webview_flutter/example/tizen/shared/res/ic_launcher.png rename to packages/webview_flutter_lwe/example/tizen/shared/res/ic_launcher.png diff --git a/packages/webview_flutter_lwe/example/tizen/tizen-manifest.xml b/packages/webview_flutter_lwe/example/tizen/tizen-manifest.xml new file mode 100644 index 000000000..e14dc6c40 --- /dev/null +++ b/packages/webview_flutter_lwe/example/tizen/tizen-manifest.xml @@ -0,0 +1,13 @@ + + + + + + ic_launcher.png + + + + http://tizen.org/privilege/internet + + + diff --git a/packages/webview_flutter/lib/webview_flutter_tizen.dart b/packages/webview_flutter_lwe/lib/webview_flutter_lwe.dart similarity index 94% rename from packages/webview_flutter/lib/webview_flutter_tizen.dart rename to packages/webview_flutter_lwe/lib/webview_flutter_lwe.dart index 1470cba7d..95858ec0b 100644 --- a/packages/webview_flutter/lib/webview_flutter_tizen.dart +++ b/packages/webview_flutter_lwe/lib/webview_flutter_lwe.dart @@ -7,23 +7,20 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; -import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; - +import 'package:flutter_tizen/widgets.dart'; import 'package:webview_flutter/webview_flutter.dart'; import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart'; -part 'src/platform_view_tizen.dart'; - -/// Builds an Tizen webview. +/// Builds a Tizen webview. /// /// This is used as the default implementation for [WebView.platform] on Tizen. It uses a method channel to /// communicate with the platform code. -class TizenWebView implements WebViewPlatform { +class LweWebView implements WebViewPlatform { /// Sets a tizen [WebViewPlatform]. static void register() { - WebView.platform = TizenWebView(); + WebView.platform = LweWebView(); WebViewCookieManagerPlatform.instance = WebViewTizenCookieManager(); } diff --git a/packages/webview_flutter/pubspec.yaml b/packages/webview_flutter_lwe/pubspec.yaml similarity index 55% rename from packages/webview_flutter/pubspec.yaml rename to packages/webview_flutter_lwe/pubspec.yaml index 942969c7c..cb6c9f2b2 100644 --- a/packages/webview_flutter/pubspec.yaml +++ b/packages/webview_flutter_lwe/pubspec.yaml @@ -1,8 +1,8 @@ -name: webview_flutter_tizen -description: Tizen implementation of the webview plugin +name: webview_flutter_lwe +description: Tizen implementation of the webview plugin backed by Lightweight Web Engine. homepage: https://github.com/flutter-tizen/plugins -repository: https://github.com/flutter-tizen/plugins/tree/master/packages/webview_flutter -version: 0.5.6 +repository: https://github.com/flutter-tizen/plugins/tree/master/packages/webview_flutter_lwe +version: 0.1.0 environment: sdk: ">=2.17.0 <3.0.0" @@ -12,13 +12,14 @@ flutter: plugin: platforms: tizen: - pluginClass: WebviewFlutterTizenPlugin - fileName: webview_flutter_tizen_plugin.h - dartPluginClass: TizenWebView + pluginClass: WebviewFlutterLwePlugin + fileName: webview_flutter_lwe_plugin.h + dartPluginClass: LweWebView dependencies: flutter: sdk: flutter + flutter_tizen: ^0.2.0 webview_flutter: ^3.0.4 webview_flutter_platform_interface: ^1.8.0 diff --git a/packages/webview_flutter/tizen/.gitignore b/packages/webview_flutter_lwe/tizen/.gitignore similarity index 100% rename from packages/webview_flutter/tizen/.gitignore rename to packages/webview_flutter_lwe/tizen/.gitignore diff --git a/packages/webview_flutter/tizen/inc/lwe/LWEWebView.h b/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h similarity index 100% rename from packages/webview_flutter/tizen/inc/lwe/LWEWebView.h rename to packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h diff --git a/packages/webview_flutter/tizen/inc/lwe/PlatformIntegrationData.h b/packages/webview_flutter_lwe/tizen/inc/lwe/PlatformIntegrationData.h similarity index 100% rename from packages/webview_flutter/tizen/inc/lwe/PlatformIntegrationData.h rename to packages/webview_flutter_lwe/tizen/inc/lwe/PlatformIntegrationData.h diff --git a/packages/webview_flutter/tizen/inc/webview_flutter_tizen_plugin.h b/packages/webview_flutter_lwe/tizen/inc/webview_flutter_lwe_plugin.h similarity index 57% rename from packages/webview_flutter/tizen/inc/webview_flutter_tizen_plugin.h rename to packages/webview_flutter_lwe/tizen/inc/webview_flutter_lwe_plugin.h index ecaada214..1a906cbb5 100644 --- a/packages/webview_flutter/tizen/inc/webview_flutter_tizen_plugin.h +++ b/packages/webview_flutter_lwe/tizen/inc/webview_flutter_lwe_plugin.h @@ -1,5 +1,5 @@ -#ifndef FLUTTER_PLUGIN_WEBVIEW_FLUTTER_TIZEN_PLUGIN_H_ -#define FLUTTER_PLUGIN_WEBVIEW_FLUTTER_TIZEN_PLUGIN_H_ +#ifndef FLUTTER_PLUGIN_WEBVIEW_FLUTTER_LWE_PLUGIN_H_ +#define FLUTTER_PLUGIN_WEBVIEW_FLUTTER_LWE_PLUGIN_H_ #include @@ -13,11 +13,11 @@ extern "C" { #endif -FLUTTER_PLUGIN_EXPORT void WebviewFlutterTizenPluginRegisterWithRegistrar( +FLUTTER_PLUGIN_EXPORT void WebviewFlutterLwePluginRegisterWithRegistrar( FlutterDesktopPluginRegistrarRef registrar); #if defined(__cplusplus) } // extern "C" #endif -#endif // FLUTTER_PLUGIN_WEBVIEW_FLUTTER_TIZEN_PLUGIN_H_ +#endif // FLUTTER_PLUGIN_WEBVIEW_FLUTTER_LWE_PLUGIN_H_ diff --git a/packages/webview_flutter/tizen/lib/aarch64/liblightweight-web-engine.flutter.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter.so similarity index 100% rename from packages/webview_flutter/tizen/lib/aarch64/liblightweight-web-engine.flutter.so rename to packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter.so diff --git a/packages/webview_flutter/tizen/lib/aarch64/libtuv.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libtuv.so similarity index 100% rename from packages/webview_flutter/tizen/lib/aarch64/libtuv.so rename to packages/webview_flutter_lwe/tizen/lib/aarch64/libtuv.so diff --git a/packages/webview_flutter/tizen/lib/armel/liblightweight-web-engine.flutter.so b/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter.so similarity index 100% rename from packages/webview_flutter/tizen/lib/armel/liblightweight-web-engine.flutter.so rename to packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter.so diff --git a/packages/webview_flutter/tizen/lib/armel/libtuv.so b/packages/webview_flutter_lwe/tizen/lib/armel/libtuv.so similarity index 100% rename from packages/webview_flutter/tizen/lib/armel/libtuv.so rename to packages/webview_flutter_lwe/tizen/lib/armel/libtuv.so diff --git a/packages/webview_flutter/tizen/lib/i586/liblightweight-web-engine.flutter.so b/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter.so similarity index 100% rename from packages/webview_flutter/tizen/lib/i586/liblightweight-web-engine.flutter.so rename to packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter.so diff --git a/packages/webview_flutter/tizen/lib/i586/libtuv.so b/packages/webview_flutter_lwe/tizen/lib/i586/libtuv.so similarity index 100% rename from packages/webview_flutter/tizen/lib/i586/libtuv.so rename to packages/webview_flutter_lwe/tizen/lib/i586/libtuv.so diff --git a/packages/webview_flutter/tizen/project_def.prop b/packages/webview_flutter_lwe/tizen/project_def.prop similarity index 93% rename from packages/webview_flutter/tizen/project_def.prop rename to packages/webview_flutter_lwe/tizen/project_def.prop index c497d3003..0cbbd41ea 100644 --- a/packages/webview_flutter/tizen/project_def.prop +++ b/packages/webview_flutter_lwe/tizen/project_def.prop @@ -1,7 +1,7 @@ # See https://docs.tizen.org/application/tizen-studio/native-tools/project-conversion # for details. -APPNAME = webview_flutter_tizen_plugin +APPNAME = webview_flutter_lwe_plugin type = sharedLib profile = common-5.5 diff --git a/packages/webview_flutter/tizen/src/buffer_pool.cc b/packages/webview_flutter_lwe/tizen/src/buffer_pool.cc similarity index 100% rename from packages/webview_flutter/tizen/src/buffer_pool.cc rename to packages/webview_flutter_lwe/tizen/src/buffer_pool.cc diff --git a/packages/webview_flutter/tizen/src/buffer_pool.h b/packages/webview_flutter_lwe/tizen/src/buffer_pool.h similarity index 100% rename from packages/webview_flutter/tizen/src/buffer_pool.h rename to packages/webview_flutter_lwe/tizen/src/buffer_pool.h diff --git a/packages/webview_flutter/tizen/src/log.h b/packages/webview_flutter_lwe/tizen/src/log.h similarity index 93% rename from packages/webview_flutter/tizen/src/log.h rename to packages/webview_flutter_lwe/tizen/src/log.h index 286d42cba..a0b770132 100644 --- a/packages/webview_flutter/tizen/src/log.h +++ b/packages/webview_flutter_lwe/tizen/src/log.h @@ -6,7 +6,7 @@ #ifdef LOG_TAG #undef LOG_TAG #endif -#define LOG_TAG "WebviewFlutterTizenPlugin" +#define LOG_TAG "WebviewFlutterLwePlugin" #ifndef __MODULE__ #define __MODULE__ strrchr("/" __FILE__, '/') + 1 diff --git a/packages/webview_flutter/tizen/src/webview.cc b/packages/webview_flutter_lwe/tizen/src/webview.cc similarity index 100% rename from packages/webview_flutter/tizen/src/webview.cc rename to packages/webview_flutter_lwe/tizen/src/webview.cc diff --git a/packages/webview_flutter/tizen/src/webview.h b/packages/webview_flutter_lwe/tizen/src/webview.h similarity index 100% rename from packages/webview_flutter/tizen/src/webview.h rename to packages/webview_flutter_lwe/tizen/src/webview.h diff --git a/packages/webview_flutter/tizen/src/webview_factory.cc b/packages/webview_flutter_lwe/tizen/src/webview_factory.cc similarity index 100% rename from packages/webview_flutter/tizen/src/webview_factory.cc rename to packages/webview_flutter_lwe/tizen/src/webview_factory.cc diff --git a/packages/webview_flutter/tizen/src/webview_factory.h b/packages/webview_flutter_lwe/tizen/src/webview_factory.h similarity index 100% rename from packages/webview_flutter/tizen/src/webview_factory.h rename to packages/webview_flutter_lwe/tizen/src/webview_factory.h diff --git a/packages/webview_flutter/tizen/src/webview_flutter_tizen_plugin.cc b/packages/webview_flutter_lwe/tizen/src/webview_flutter_lwe_plugin.cc similarity index 70% rename from packages/webview_flutter/tizen/src/webview_flutter_tizen_plugin.cc rename to packages/webview_flutter_lwe/tizen/src/webview_flutter_lwe_plugin.cc index 66b6fd6e3..570b471c1 100644 --- a/packages/webview_flutter/tizen/src/webview_flutter_tizen_plugin.cc +++ b/packages/webview_flutter_lwe/tizen/src/webview_flutter_lwe_plugin.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "webview_flutter_tizen_plugin.h" +#include "webview_flutter_lwe_plugin.h" #include #include @@ -15,26 +15,26 @@ namespace { constexpr char kViewType[] = "plugins.flutter.io/webview"; -class WebviewFlutterTizenPlugin : public flutter::Plugin { +class WebviewFlutterLwePlugin : public flutter::Plugin { public: static void RegisterWithRegistrar(flutter::PluginRegistrar* registrar) { - auto plugin = std::make_unique(); + auto plugin = std::make_unique(); registrar->AddPlugin(std::move(plugin)); } - WebviewFlutterTizenPlugin() {} + WebviewFlutterLwePlugin() {} - virtual ~WebviewFlutterTizenPlugin() {} + virtual ~WebviewFlutterLwePlugin() {} }; } // namespace -void WebviewFlutterTizenPluginRegisterWithRegistrar( +void WebviewFlutterLwePluginRegisterWithRegistrar( FlutterDesktopPluginRegistrarRef core_registrar) { flutter::PluginRegistrar* registrar = flutter::PluginRegistrarManager::GetInstance() ->GetRegistrar(core_registrar); FlutterDesktopRegisterViewFactory( core_registrar, kViewType, std::make_unique(registrar)); - WebviewFlutterTizenPlugin::RegisterWithRegistrar(registrar); + WebviewFlutterLwePlugin::RegisterWithRegistrar(registrar); }