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..335bc3e 100644 --- a/app_widget/example/lib/main.dart +++ b/app_widget/example/lib/main.dart @@ -24,8 +24,13 @@ 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; + // ignore: unused_field + String? _layoutName; @override void initState() { @@ -35,17 +40,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 +81,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 +130,8 @@ class _MyAppState extends State { height: 10, ), UpdateWidgetButton( - controller: _controller, appWidgetPlugin: _appWidgetPlugin), + controller: _widgetIdcontroller, + appWidgetPlugin: _appWidgetPlugin), const SizedBox( height: 10, ), @@ -240,12 +282,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 +304,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 a0128b9..536228c 100644 --- a/app_widget_android/CHANGELOG.md +++ b/app_widget_android/CHANGELOG.md @@ -1,3 +1,6 @@ +## 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 diff --git a/app_widget_android/android/src/main/kotlin/tech/noxasch/app_widget/AppWidgetMethodCallHandler.kt b/app_widget_android/android/src/main/kotlin/tech/noxasch/app_widget/AppWidgetMethodCallHandler.kt index e6d25e0..0df3c10 100644 --- a/app_widget_android/android/src/main/kotlin/tech/noxasch/app_widget/AppWidgetMethodCallHandler.kt +++ b/app_widget_android/android/src/main/kotlin/tech/noxasch/app_widget/AppWidgetMethodCallHandler.kt @@ -39,7 +39,15 @@ class AppWidgetMethodCallHandler(private val context: Context, ) fun handleConfigureIntent(intent: Intent): Boolean { val widgetId = intent.extras!!.getInt("widgetId") - channel!!.invokeMethod(AppWidgetPlugin.ON_CONFIGURE_WIDGET_CALLBACK, mapOf("widgetId" to widgetId)) + val layoutId = intent.extras!!.getInt("layoutId") + val layoutName = intent.extras!!.getString("layoutName") + channel!!.invokeMethod(AppWidgetPlugin.ON_CONFIGURE_WIDGET_CALLBACK, + mapOf( + "widgetId" to widgetId, + "layoutId" to layoutId, + "layoutName" to layoutName + ) + ) return true } @@ -67,7 +75,7 @@ class AppWidgetMethodCallHandler(private val context: Context, ) } } - private fun getWidgetIds(@NonNull call: MethodCall, @NonNull result: MethodChannel.Result) { + private fun getWidgetIds(call: MethodCall, result: MethodChannel.Result) { val androidPackageName = call.argument("androidPackageName") ?: context.packageName val widgetProviderName = call.argument("androidProviderName") ?: return result.error( @@ -88,7 +96,7 @@ class AppWidgetMethodCallHandler(private val context: Context, ) } } - private fun cancelConfigureWidget(@NonNull result: MethodChannel.Result) { + private fun cancelConfigureWidget(result: MethodChannel.Result) { return try { activity!!.setResult(Activity.RESULT_CANCELED) result.success(true) @@ -100,7 +108,7 @@ class AppWidgetMethodCallHandler(private val context: Context, ) /// This should be called when configuring individual widgets - private fun configureWidget(@NonNull call: MethodCall, @NonNull result: MethodChannel.Result) { + private fun configureWidget(call: MethodCall, result: MethodChannel.Result) { return try { if (activity == null) return result.error("-2", "Not attached to any activity!", null) @@ -108,10 +116,8 @@ class AppWidgetMethodCallHandler(private val context: Context, ) ?: context.packageName val widgetId = call.argument("widgetId") ?: return result.error("-1", "widgetId is required!", null) - val widgetLayout = call.argument("widgetLayout") - ?: return result.error("-1", "widgetLayout is required!", null) - - val widgetLayoutId: Int = context.resources.getIdentifier(widgetLayout, "layout", context.packageName) + val layoutId = call.argument("layoutId") + ?: return result.error("-1", "layoutId is required!", null) val payload = call.argument("payload") val url = call.argument("url") val activityClass = Class.forName("${context.packageName}.MainActivity") @@ -120,7 +126,7 @@ class AppWidgetMethodCallHandler(private val context: Context, ) val textViewsMap = call.argument>("textViews") if (textViewsMap != null) { - val views : RemoteViews = RemoteViews(context.packageName, widgetLayoutId).apply { + val views : RemoteViews = RemoteViews(context.packageName, layoutId).apply { for ((key, value) in textViewsMap) { val textViewId: Int = context.resources.getIdentifier(key, "id", context.packageName) @@ -143,7 +149,7 @@ class AppWidgetMethodCallHandler(private val context: Context, ) } } - private fun widgetExist(@NonNull call: MethodCall, @NonNull result: MethodChannel.Result) { + private fun widgetExist(call: MethodCall, result: MethodChannel.Result) { val widgetId = call.argument("widgetId") ?: return result.success(false) return try { val widgetManager = AppWidgetManager.getInstance(context) @@ -156,17 +162,15 @@ class AppWidgetMethodCallHandler(private val context: Context, ) } // This should only be called after the widget has been configure for the first time - private fun updateWidget(@NonNull call: MethodCall, @NonNull result: MethodChannel.Result) { + private fun updateWidget(call: MethodCall, result: MethodChannel.Result) { return try { val androidPackageName = call.argument("androidPackageName") ?: context.packageName val widgetId = call.argument("widgetId") ?: return result.error("-1", "widgetId is required!", null) - val widgetLayout = call.argument("widgetLayout") - ?: return result.error("-1", "widgetLayout is required!", null) + val layoutId = call.argument("layoutId") + ?: return result.error("-1", "layoutId is required!", null) - val widgetLayoutId: Int = - context.resources.getIdentifier(widgetLayout, "layout", context.packageName) val payload = call.argument("payload") val url = call.argument("url") val activityClass = Class.forName("${context.packageName}.MainActivity") @@ -175,7 +179,7 @@ class AppWidgetMethodCallHandler(private val context: Context, ) val textViewsMap = call.argument>("textViews") if (textViewsMap != null) { - val views = RemoteViews(context.packageName, widgetLayoutId) + val views = RemoteViews(context.packageName, layoutId) for ((key, value) in textViewsMap) { val textViewId: Int = @@ -230,7 +234,7 @@ class AppWidgetMethodCallHandler(private val context: Context, ) } /// force reload the widget and this will trigger onUpdate in broadcast receiver - private fun reloadWidgets(@NonNull call: MethodCall, @NonNull result: MethodChannel.Result) { + private fun reloadWidgets(call: MethodCall, result: MethodChannel.Result) { val androidPackageName = call.argument("androidPackageName") ?: context.packageName val widgetProviderName = call.argument("androidProviderName") diff --git a/app_widget_android/android/src/main/kotlin/tech/noxasch/app_widget/AppWidgetPlugin.kt b/app_widget_android/android/src/main/kotlin/tech/noxasch/app_widget/AppWidgetPlugin.kt index 637603c..0e99b14 100644 --- a/app_widget_android/android/src/main/kotlin/tech/noxasch/app_widget/AppWidgetPlugin.kt +++ b/app_widget_android/android/src/main/kotlin/tech/noxasch/app_widget/AppWidgetPlugin.kt @@ -72,19 +72,26 @@ class AppWidgetPlugin: FlutterPlugin, ActivityAware, val widgetId: Int = extras?.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID) ?: return if (widgetId == 0) return + val widgetManager = AppWidgetManager.getInstance(context) + val appWidgetInfo = widgetManager.getAppWidgetInfo(widgetId) + val layoutId = appWidgetInfo.initialLayout + val layoutName = context.resources.getResourceName(layoutId) + val configIntent = Intent(context, context.javaClass) configIntent.action = CONFIGURE_WIDGET_ACTION_CALLBACK configIntent.putExtra("widgetId", widgetId) + configIntent.putExtra("layoutId", layoutId) + configIntent.putExtra("layoutName", layoutName) context.startActivity(configIntent) } } - override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + override fun onAttachedToEngine(flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { methodCallHandler = AppWidgetMethodCallHandler(flutterPluginBinding.applicationContext) methodCallHandler!!.open(flutterPluginBinding.binaryMessenger) } - override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { + override fun onDetachedFromEngine(binding: FlutterPlugin.FlutterPluginBinding) { methodCallHandler!!.close() } diff --git a/app_widget_android/example/pubspec.lock b/app_widget_android/example/pubspec.lock index 204da34..bd3a084 100644 --- a/app_widget_android/example/pubspec.lock +++ b/app_widget_android/example/pubspec.lock @@ -12,10 +12,10 @@ packages: 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_android/lib/src/app_widget_android_plugin.dart b/app_widget_android/lib/src/app_widget_android_plugin.dart index a5f3dc1..dba0eab 100644 --- a/app_widget_android/lib/src/app_widget_android_plugin.dart +++ b/app_widget_android/lib/src/app_widget_android_plugin.dart @@ -11,21 +11,25 @@ const MethodChannel _methodChannel = MethodChannel(AppWidgetPlatform.channel); class AppWidgetAndroidPlugin extends AppWidgetAndroid { AppWidgetAndroidPlugin({ - void Function(int widgetId)? onConfigureWidget, + void Function(int widgetId, int layoutId, String layoutName)? + onConfigureWidget, void Function(String? payload)? onClickWidget, }) : _onConfigureWidget = onConfigureWidget, _onClickWidget = onClickWidget { _methodChannel.setMethodCallHandler(handleMethod); } - final void Function(int widgetId)? _onConfigureWidget; + final void Function(int widgetId, int layoutId, String layoutName)? + _onConfigureWidget; final void Function(String? payload)? _onClickWidget; Future handleMethod(MethodCall call) async { switch (call.method) { case onConfigureWidgetCallback: final widgetId = call.arguments['widgetId'] as int; - return _onConfigureWidget?.call(widgetId); + final layoutId = call.arguments['layoutId'] as int; + final layoutName = call.arguments['layoutName'] as String; + return _onConfigureWidget?.call(widgetId, layoutId, layoutName); case onClickWidgetCallback: return _onClickWidget?.call(call.arguments['payload'] as String); default: @@ -42,18 +46,18 @@ class AppWidgetAndroidPlugin extends AppWidgetAndroid { Future configureWidget({ String? androidPackageName, int? widgetId, - String? widgetLayout, + int? layoutId, Map? textViews = const {}, String? payload, String? url, }) { assert(widgetId != null, 'widgetId is required for android!'); - assert(widgetLayout != null, 'widgetLayout is required for android!'); + assert(layoutId != null, 'layoutId is required for android!'); return _methodChannel.invokeMethod('configureWidget', { 'androidPackageName': androidPackageName, - 'widgetLayout': widgetLayout, 'widgetId': widgetId, + 'layoutId': layoutId, 'textViews': textViews, 'payload': payload, 'url': url, @@ -106,20 +110,21 @@ class AppWidgetAndroidPlugin extends AppWidgetAndroid { Future updateWidget({ String? androidPackageName, int? widgetId, + int? layoutId, String? widgetLayout, Map? textViews = const {}, String? payload, String? url, }) { assert(widgetId != null, 'widgetId is required for android!'); - assert(widgetLayout != null, 'widgetLayout is required for android!'); + assert(layoutId != null, 'layoutId is required for android!'); return _methodChannel.invokeMethod('updateWidget', { if (androidPackageName != null) ...{ 'androidPackageName': androidPackageName, }, - 'widgetLayout': widgetLayout, 'widgetId': widgetId, + 'layoutId': layoutId, 'textViews': textViews, 'payload': payload, 'url': url, diff --git a/app_widget_android/pubspec.yaml b/app_widget_android/pubspec.yaml index bbe0c00..3ae9f87 100644 --- a/app_widget_android/pubspec.yaml +++ b/app_widget_android/pubspec.yaml @@ -1,6 +1,6 @@ name: app_widget_android description: Android implementation for app_widget plugin -version: 0.3.3 +version: 0.4.0 homepage: https://noxasch.tech/ repository: https://github.com/noxasch/flutter_app_widget/tree/master/app_widget_android issue_tracker: https://github.com/noxasch/flutter_app_widget/issues @@ -13,7 +13,7 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.7 - app_widget_platform_interface: ^0.3.1 + app_widget_platform_interface: ^0.4.0 # app_widget_platform_interface: # local dev # path: ../app_widget_platform_interface diff --git a/app_widget_android/test/app_widget_android_test.dart b/app_widget_android/test/app_widget_android_test.dart index 62c2256..8fcc219 100644 --- a/app_widget_android/test/app_widget_android_test.dart +++ b/app_widget_android/test/app_widget_android_test.dart @@ -76,6 +76,7 @@ class MockAppWidgetAndroidPlatform Future configureWidget({ String? androidPackageName, int? widgetId, + int? layoutId, String? widgetLayout, String? widgetContainerName, Map? textViews, @@ -97,6 +98,7 @@ class MockAppWidgetAndroidPlatform Future updateWidget({ String? androidPackageName, int? widgetId, + int? layoutId, String? widgetLayout, Map? textViews, String? payload, diff --git a/app_widget_platform_interface/CHANGELOG.md b/app_widget_platform_interface/CHANGELOG.md index 969ae86..04a74ec 100644 --- a/app_widget_platform_interface/CHANGELOG.md +++ b/app_widget_platform_interface/CHANGELOG.md @@ -1,6 +1,10 @@ +## 0.4.0 +* breaking changes: `configureWidget` and `updateWidget` accept `layoutId` instead of `layoutName` + ## 0.3.1 * update platform interface version + ## 0.3.0 * support dart sdk 4.0 diff --git a/app_widget_platform_interface/lib/src/app_widget_platform.dart b/app_widget_platform_interface/lib/src/app_widget_platform.dart index 255606f..64f34b6 100644 --- a/app_widget_platform_interface/lib/src/app_widget_platform.dart +++ b/app_widget_platform_interface/lib/src/app_widget_platform.dart @@ -34,7 +34,7 @@ abstract class AppWidgetPlatform extends PlatformInterface { Future configureWidget({ String? androidPackageName, int? widgetId, - String? widgetLayout, + int? layoutId, Map? textViews, String? payload, String? url, @@ -52,7 +52,7 @@ abstract class AppWidgetPlatform extends PlatformInterface { Future updateWidget({ String? androidPackageName, int? widgetId, - String? widgetLayout, + int? layoutId, Map? textViews, String? payload, String? url, diff --git a/app_widget_platform_interface/pubspec.yaml b/app_widget_platform_interface/pubspec.yaml index b101be4..63f2243 100644 --- a/app_widget_platform_interface/pubspec.yaml +++ b/app_widget_platform_interface/pubspec.yaml @@ -1,6 +1,6 @@ name: app_widget_platform_interface description: Common platform interface for app_widget plugin. -version: 0.3.1 +version: 0.4.0 homepage: https://noxasch.tech/ repository: https://github.com/noxasch/flutter_app_widget/tree/master/app_widget_platform_interface issue_tracker: https://github.com/noxasch/flutter_app_widget/issues