diff --git a/app_widget/example/integration_test/android_diff_package_name_test.dart b/app_widget/example/integration_test/android_diff_package_name_test.dart index 4b158da..1cc877e 100644 --- a/app_widget/example/integration_test/android_diff_package_name_test.dart +++ b/app_widget/example/integration_test/android_diff_package_name_test.dart @@ -15,7 +15,7 @@ void main() { final res = await appWidgetPlugin.configureWidget( androidPackageName: 'tech.noxasch.diff_name', widgetId: 1, - widgetLayout: 'example_layout', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', ); @@ -32,7 +32,7 @@ void main() { final res = await appWidgetPlugin.updateWidget( androidPackageName: 'tech.noxasch.diff_name', widgetId: 1, - widgetLayout: 'example_layout', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', textViews: {'widget_title': 'my title'}, diff --git a/app_widget/example/integration_test/android_test.dart b/app_widget/example/integration_test/android_test.dart index 9ba199a..786e733 100644 --- a/app_widget/example/integration_test/android_test.dart +++ b/app_widget/example/integration_test/android_test.dart @@ -14,7 +14,7 @@ void main() { testWidgets('configureWidget', (tester) async { final res = await appWidgetPlugin.configureWidget( widgetId: 1, - widgetLayout: 'example_layout', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', ); @@ -30,7 +30,7 @@ void main() { testWidgets('updateWidget', (tester) async { final res = await appWidgetPlugin.updateWidget( widgetId: 1, - widgetLayout: 'example_layout', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', textViews: {'widget_title': 'my title'}, diff --git a/app_widget/example/integration_test/android_test_2.dart b/app_widget/example/integration_test/android_test_2.dart index 4786326..9caa6a6 100644 --- a/app_widget/example/integration_test/android_test_2.dart +++ b/app_widget/example/integration_test/android_test_2.dart @@ -12,7 +12,7 @@ void main() { testWidgets('configureWidget', (tester) async { final res = await appWidgetPlugin.configureWidget( widgetId: 1, - widgetLayout: 'example_layout', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', ); @@ -28,7 +28,7 @@ void main() { testWidgets('updateWidget', (tester) async { final res = await appWidgetPlugin.updateWidget( widgetId: 1, - widgetLayout: 'example_layout', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', textViews: {'widget_title': 'my title'}, diff --git a/app_widget/example/lib/main.dart b/app_widget/example/lib/main.dart index 80b4c0f..2ceb450 100644 --- a/app_widget/example/lib/main.dart +++ b/app_widget/example/lib/main.dart @@ -24,8 +24,12 @@ class MyApp extends StatefulWidget { class _MyAppState extends State { late final AppWidgetPlugin _appWidgetPlugin; - late final TextEditingController _controller; + late final TextEditingController _widgetIdcontroller; + late final TextEditingController _layoutIdcontroller; + late final TextEditingController _layoutNamecontroller; int? _widgetId; + int? _layoutId; + String? _layoutName; @override void initState() { @@ -35,17 +39,28 @@ class _MyAppState extends State { onConfigureWidget: onConfigureWidget, onClickWidget: onClickWidget, ); - _controller = TextEditingController(); + _widgetIdcontroller = TextEditingController(); + _layoutIdcontroller = TextEditingController(); + _layoutNamecontroller = TextEditingController(); } @override void dispose() { - _controller.dispose(); + _widgetIdcontroller.dispose(); + _layoutIdcontroller.dispose(); + _layoutNamecontroller.dispose(); super.dispose(); } - void onConfigureWidget(int widgetId) { - setState(() => _widgetId = widgetId); + void onConfigureWidget(int widgetId, int layoutId, String layoutName) { + setState(() { + _widgetId = widgetId; + _layoutId = layoutId; + _layoutName = layoutName; + }); + _widgetIdcontroller.text = widgetId.toString(); + _layoutIdcontroller.text = layoutId.toString(); + _layoutNamecontroller.text = layoutName.toString(); // do something } @@ -65,20 +80,45 @@ class _MyAppState extends State { padding: const EdgeInsets.all(30.0), child: TextField( decoration: const InputDecoration(label: Text('Widget Id')), - controller: _controller, + controller: _widgetIdcontroller, keyboardType: TextInputType.number, ), ), const SizedBox( height: 10, ), + Padding( + padding: const EdgeInsets.all(30.0), + child: TextField( + decoration: const InputDecoration(label: Text('Layout Id')), + controller: _layoutIdcontroller, + readOnly: true, + ), + ), + const SizedBox( + height: 10, + ), + Padding( + padding: const EdgeInsets.all(30.0), + child: TextField( + decoration: + const InputDecoration(label: Text('Layout Name')), + controller: _layoutNamecontroller, + readOnly: true, + ), + ), + const SizedBox( + height: 10, + ), ConfigureButton( - widgetId: _widgetId, appWidgetPlugin: _appWidgetPlugin), + widgetId: _widgetId, + layoutId: _layoutId, + appWidgetPlugin: _appWidgetPlugin), const SizedBox( height: 10, ), WidgetExistButton( - controller: _controller, + controller: _widgetIdcontroller, appWidgetPlugin: _appWidgetPlugin, ), const SizedBox( @@ -89,7 +129,8 @@ class _MyAppState extends State { height: 10, ), UpdateWidgetButton( - controller: _controller, appWidgetPlugin: _appWidgetPlugin), + controller: _widgetIdcontroller, + appWidgetPlugin: _appWidgetPlugin), const SizedBox( height: 10, ), @@ -240,12 +281,15 @@ class ConfigureButton extends StatelessWidget { const ConfigureButton({ Key? key, required int? widgetId, + required int? layoutId, required AppWidgetPlugin appWidgetPlugin, }) : _widgetId = widgetId, + _layoutId = layoutId, _appWidgetPlugin = appWidgetPlugin, super(key: key); final int? _widgetId; + final int? _layoutId; final AppWidgetPlugin _appWidgetPlugin; @override @@ -259,7 +303,7 @@ class ConfigureButton extends StatelessWidget { // send configure await _appWidgetPlugin.configureWidget( widgetId: _widgetId!, - widgetLayout: 'example_layout', + layoutId: _layoutId!, textViews: { 'widget_title': 'App Widget', 'widget_message': 'Configured in flutter' diff --git a/app_widget/example/pubspec.lock b/app_widget/example/pubspec.lock index a822d3c..c0bc608 100644 --- a/app_widget/example/pubspec.lock +++ b/app_widget/example/pubspec.lock @@ -12,18 +12,18 @@ packages: dependency: transitive description: name: app_widget_android - sha256: "9b5fc286e3f4add2404468035effbd584935e31b064b36228623f7b12678b77b" + sha256: "9a0aa193b373bf2e548d5af721e021b166f607ad932fc144334ce55b4ff40320" url: "https://pub.dev" source: hosted - version: "0.3.3" + version: "0.4.0" app_widget_platform_interface: dependency: transitive description: name: app_widget_platform_interface - sha256: "07c7500e83f86703fdad1aa3480e492a7226b322cbad3e71910f2630df96391e" + sha256: a288112ec826c25e7638ddc30c33a5e7279cfc2eadba89ccb33bc8d3ddbb589c url: "https://pub.dev" source: hosted - version: "0.3.1" + version: "0.4.0" async: dependency: transitive description: diff --git a/app_widget/lib/src/app_widget_plugin.dart b/app_widget/lib/src/app_widget_plugin.dart index ee9065c..dc26cab 100644 --- a/app_widget/lib/src/app_widget_plugin.dart +++ b/app_widget/lib/src/app_widget_plugin.dart @@ -24,7 +24,8 @@ class AppWidgetPlugin { String? androidPackageName, /// callback function when the widget is first created - void Function(int widgetId)? onConfigureWidget, + void Function(int widgetId, int layoutId, String layoutName)? + onConfigureWidget, void Function(String? payload)? onClickWidget, }) { if (instance != null) return instance!; @@ -39,7 +40,8 @@ class AppWidgetPlugin { AppWidgetPlugin._({ required String? androidPackageName, - required void Function(int widgetId)? onConfigureWidget, + required void Function(int widgetId, int layoutId, String layoutName)? + onConfigureWidget, required void Function(String? payload)? onClickWidget, }) : _onConfigureWidget = onConfigureWidget, _onClickWidget = onClickWidget, @@ -62,7 +64,8 @@ class AppWidgetPlugin { final String? _androidPackageName; /// callback function when the widget is first created - final void Function(int widgetId)? _onConfigureWidget; + final void Function(int widgetId, int layoutId, String layoutName)? + _onConfigureWidget; /// payload keys: /// - itemId @@ -100,7 +103,7 @@ class AppWidgetPlugin { /// Future configureWidget({ int? widgetId, - String? widgetLayout, + int? layoutId, Map? textViews = const {}, String? payload, String? url, @@ -109,7 +112,7 @@ class AppWidgetPlugin { return AppWidgetPlatform.instance.configureWidget( androidPackageName: androidPackageName ?? _androidPackageName, widgetId: widgetId, - widgetLayout: widgetLayout, + layoutId: layoutId, textViews: textViews, payload: payload, url: url, @@ -177,6 +180,7 @@ class AppWidgetPlugin { /// Future updateWidget({ int? widgetId, + int? layoutId, String? widgetLayout, Map? textViews = const {}, String? payload, @@ -186,7 +190,7 @@ class AppWidgetPlugin { return AppWidgetPlatform.instance.updateWidget( androidPackageName: androidPackageName ?? _androidPackageName, widgetId: widgetId, - widgetLayout: widgetLayout, + layoutId: layoutId, textViews: textViews, payload: payload, url: url, diff --git a/app_widget/pubspec.yaml b/app_widget/pubspec.yaml index 933f68e..b9335c0 100644 --- a/app_widget/pubspec.yaml +++ b/app_widget/pubspec.yaml @@ -13,8 +13,8 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.7 - app_widget_platform_interface: ^0.3.1 - app_widget_android: ^0.3.3 + app_widget_platform_interface: ^0.4.0 + app_widget_android: ^0.4.0 # app_widget_platform_interface: # local dev # path: ../app_widget_platform_interface # app_widget_android: # local dev diff --git a/app_widget/test/app_widget_test.dart b/app_widget/test/app_widget_test.dart index 1da1cfd..5ae3e05 100644 --- a/app_widget/test/app_widget_test.dart +++ b/app_widget/test/app_widget_test.dart @@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; +// NOTE: this merely test platform specific (android) interface void main() { TestWidgetsFlutterBinding.ensureInitialized(); @@ -54,7 +55,7 @@ void main() { expect( appWidgetPlugin.configureWidget( widgetId: 1, - widgetLayout: 'layoutname', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', ), @@ -67,7 +68,7 @@ void main() { arguments: { 'androidPackageName': 'appname', 'widgetId': 1, - 'widgetLayout': 'layoutname', + 'layoutId': 1, 'textViews': {}, 'payload': '{"itemId": 1, "stringUid": "uid"}', 'url': 'https://google.come', @@ -84,7 +85,7 @@ void main() { expect( appWidgetPlugin.configureWidget( widgetId: 1, - widgetLayout: 'layoutname', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', androidPackageName: 'appname2', @@ -98,7 +99,7 @@ void main() { arguments: { 'androidPackageName': 'appname2', 'widgetId': 1, - 'widgetLayout': 'layoutname', + 'layoutId': 1, 'textViews': {}, 'payload': '{"itemId": 1, "stringUid": "uid"}', 'url': 'https://google.come', @@ -115,7 +116,7 @@ void main() { expect( appWidgetPlugin.updateWidget( widgetId: 1, - widgetLayout: 'layoutname', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', ), @@ -128,7 +129,7 @@ void main() { arguments: { 'androidPackageName': 'appname', 'widgetId': 1, - 'widgetLayout': 'layoutname', + 'layoutId': 1, 'textViews': {}, 'payload': '{"itemId": 1, "stringUid": "uid"}', 'url': 'https://google.come', @@ -146,7 +147,7 @@ void main() { appWidgetPlugin.updateWidget( androidPackageName: 'appname2', widgetId: 1, - widgetLayout: 'layoutname', + layoutId: 1, payload: '{"itemId": 1, "stringUid": "uid"}', url: 'https://google.come', ), @@ -159,7 +160,7 @@ void main() { arguments: { 'androidPackageName': 'appname2', 'widgetId': 1, - 'widgetLayout': 'layoutname', + 'layoutId': 1, 'textViews': {}, 'payload': '{"itemId": 1, "stringUid": "uid"}', 'url': 'https://google.come', diff --git a/app_widget_android/CHANGELOG.md b/app_widget_android/CHANGELOG.md index 8a3c969..536228c 100644 --- a/app_widget_android/CHANGELOG.md +++ b/app_widget_android/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.4.0 * breaking changes: `configureWidget` and `updateWidget` accept `layoutId` instead of `layoutName` * breaking changes: `onConfigureWidget` now accept 3 params (`widgetId`, `layoutId`, `layoutName`) + ## 0.3.3 * fix: fix trigger update widget updating the widget multiple time