From 9afbd022233d4f904140cd7e7b088a8f0313c56e Mon Sep 17 00:00:00 2001 From: TheNoumanDev Date: Fri, 15 Nov 2024 05:29:57 +0500 Subject: [PATCH 1/9] chat widget customization --- modules/chat/lib/chat_page.dart | 146 +++++++++++++----- modules/chat/lib/ensemble_chat.dart | 26 +++- .../chat/lib/helpers/bubble_container.dart | 52 ++++--- 3 files changed, 165 insertions(+), 59 deletions(-) diff --git a/modules/chat/lib/chat_page.dart b/modules/chat/lib/chat_page.dart index eb8390d41..3a0ddc6c0 100644 --- a/modules/chat/lib/chat_page.dart +++ b/modules/chat/lib/chat_page.dart @@ -5,6 +5,8 @@ import 'dart:convert'; import 'package:ensemble/framework/scope.dart'; import 'package:ensemble/framework/view/data_scope_widget.dart'; +import 'package:ensemble/util/utils.dart'; +import 'package:ensemble/widget/helpers/controllers.dart'; import 'package:ensemble_chat/ensemble_chat.dart'; import 'package:flutter/material.dart'; import 'package:yaml/yaml.dart'; @@ -16,29 +18,79 @@ class ChatPage extends StatefulWidget { super.key, required this.messages, required this.onMessageSend, + required this.controller, }); final List messages; final Function(String value) onMessageSend; + final EnsembleChatController controller; @override State createState() => _ChatPageState(); } -class _ChatPageState extends State { - final ScrollController scrollController = ScrollController(); +class BubbleStyleComposite extends WidgetCompositeProperty { + BubbleStyleComposite(ChangeNotifier widgetController) : super(widgetController); - final TextEditingController _textController = TextEditingController(); + Color? backgroundColor; + Color? textColor; + double borderRadius = 20.0; + TextStyle? textStyle; + EdgeInsets padding = const EdgeInsets.symmetric(horizontal: 16, vertical: 12); + EdgeInsets margin = const EdgeInsets.symmetric(vertical: 4); - @override - void didUpdateWidget(covariant ChatPage oldWidget) { - super.didUpdateWidget(oldWidget); + factory BubbleStyleComposite.from( + ChangeNotifier widgetController, dynamic payload) { + BubbleStyleComposite composite = BubbleStyleComposite(widgetController); + if (payload is Map) { + composite.backgroundColor = Utils.getColor(payload['backgroundColor']); + composite.textColor = Utils.getColor(payload['textColor']); + composite.borderRadius = + Utils.getDouble(payload['borderRadius'], fallback: 20.0); + composite.textStyle = Utils.getTextStyle(payload['textStyle']); + composite.padding = Utils.getInsets(payload['padding'], + fallback: const EdgeInsets.symmetric(horizontal: 16, vertical: 12)); + composite.margin = Utils.getInsets(payload['margin'], + fallback: const EdgeInsets.symmetric(vertical: 4)); + } + return composite; } + @override + Map setters() => { + 'backgroundColor': (value) => backgroundColor = Utils.getColor(value), + 'textColor': (value) => textColor = Utils.getColor(value), + 'borderRadius': (value) => + borderRadius = Utils.getDouble(value, fallback: 20.0), + 'textStyle': (value) => textStyle = Utils.getTextStyle(value), + 'padding': (value) => padding = Utils.getInsets(value, + fallback: const EdgeInsets.symmetric(horizontal: 16, vertical: 12)), + 'margin': (value) => margin = Utils.getInsets(value, + fallback: const EdgeInsets.symmetric(vertical: 4)), + }; + + @override + Map getters() => { + 'backgroundColor': () => backgroundColor, + 'textColor': () => textColor, + 'borderRadius': () => borderRadius, + 'textStyle': () => textStyle, + 'padding': () => padding, + 'margin': () => margin, + }; + + @override + Map methods() => {}; +} + +class _ChatPageState extends State { + final ScrollController scrollController = ScrollController(); + final TextEditingController _textController = TextEditingController(); + @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: Colors.black, + backgroundColor: widget.controller.backgroundColor ?? Colors.black, body: Column( children: [ Flexible( @@ -53,13 +105,10 @@ class _ChatPageState extends State { child: MessageWidget( key: ValueKey(message.id), message: message, + controller: widget.controller, ), ); }, - findChildIndexCallback: (key) { - // TODO: https://www.youtube.com/watch?v=2FjCg1IAeds - return null; - }, ), ), const SizedBox(height: 8), @@ -77,28 +126,21 @@ class _ChatPageState extends State { Expanded( child: Container( decoration: BoxDecoration( - boxShadow: [ - BoxShadow( - color: Colors.grey.withOpacity(0.5), - spreadRadius: 1, - blurRadius: 5, - offset: const Offset(0, 2), - ), - ], + color: widget.controller.textFieldBackgroundColor ?? + Colors.white.withOpacity(0.1), borderRadius: BorderRadius.circular(16), ), child: TextFormField( controller: _textController, + style: widget.controller.textFieldTextStyle ?? + const TextStyle(color: Colors.white), maxLines: 5, minLines: 1, - onFieldSubmitted: (value) { - if (_textController.text.trim().isEmpty) return; - widget.onMessageSend.call(_textController.text); - _textController.clear(); - }, + onFieldSubmitted: _handleSubmit, decoration: InputDecoration( hintText: 'Send a message', filled: true, + fillColor: Colors.transparent, border: OutlineInputBorder( borderRadius: BorderRadius.circular(16.0), borderSide: BorderSide.none, @@ -120,15 +162,11 @@ class _ChatPageState extends State { minHeight: 24, minWidth: 24, ), - icon: const Icon( + icon: Icon( Icons.send, - color: Colors.white, + color: widget.controller.iconColor ?? Colors.white, ), - onPressed: () { - if (_textController.text.trim().isEmpty) return; - widget.onMessageSend.call(_textController.text); - _textController.clear(); - }, + onPressed: () => _handleSubmit(), padding: const EdgeInsets.symmetric(horizontal: 16.0), splashRadius: 24, ) @@ -139,15 +177,39 @@ class _ChatPageState extends State { ), ); } + + void _handleSubmit([String? value]) { + if (_textController.text.trim().isEmpty) return; + widget.onMessageSend.call(_textController.text); + _textController.clear(); + } } class MessageWidget extends StatelessWidget { - const MessageWidget({super.key, required this.message}); + const MessageWidget({ + super.key, + required this.message, + required this.controller, + }); final InternalMessage message; + final EnsembleChatController controller; + + BubbleStyleComposite _getStyleForRole() { + switch (message.role) { + case MessageRole.user: + return controller.userBubbleStyle; + case MessageRole.assistant: + return controller.assistantBubbleStyle; + case MessageRole.system: + return controller.assistantBubbleStyle; // Fallback to assistant style + } + } @override Widget build(BuildContext context) { + final bubbleStyle = _getStyleForRole(); + return Padding( padding: const EdgeInsets.symmetric(horizontal: 12.0), child: message.role == MessageRole.system @@ -160,14 +222,26 @@ class MessageWidget extends StatelessWidget { ) : Column( mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: message.role == MessageRole.user + ? CrossAxisAlignment.end + : CrossAxisAlignment.start, children: [ const SizedBox(height: 4), if (message.content != null) BubbleContainer( text: message.content ?? '', - color: const Color(0xFFEAEAEA), - bubbleAlignment: BubbleAlignment.left, + bubbleAlignment: message.role == MessageRole.user + ? BubbleAlignment.right + : BubbleAlignment.left, + color: bubbleStyle.backgroundColor ?? + Colors.white.withOpacity(0.15), + textStyle: bubbleStyle.textStyle?.copyWith( + color: bubbleStyle.textColor, + ) ?? + TextStyle(color: bubbleStyle.textColor ?? Colors.white), + padding: bubbleStyle.padding, + margin: bubbleStyle.margin, + bubbleRadius: bubbleStyle.borderRadius, ), if (message.widget != null) Container( @@ -197,7 +271,7 @@ Widget? buildWidgetsFromTemplate( final widget = parentScope?.buildWidgetFromDefinition(definition); return widget; } on Exception catch (e) { - print("EnsembleChat: error while buidling inline widget:\n$e"); + print("EnsembleChat: error while building inline widget:\n$e"); } return null; } diff --git a/modules/chat/lib/ensemble_chat.dart b/modules/chat/lib/ensemble_chat.dart index 8aeaf74fb..8f41ddef6 100644 --- a/modules/chat/lib/ensemble_chat.dart +++ b/modules/chat/lib/ensemble_chat.dart @@ -43,6 +43,7 @@ class EnsembleChatState extends EnsembleWidgetState { return ChatPage( messages: messages, onMessageSend: sendMessage, + controller: widget.controller, ); }, ); @@ -125,6 +126,21 @@ class EnsembleChatController extends EnsembleBoxController { Map? config; ChatType type = ChatType.local; + Color? backgroundColor; + Color? textFieldBackgroundColor; + Color? iconColor; + TextStyle? textFieldTextStyle; + + BubbleStyleComposite? _userBubbleStyle; + BubbleStyleComposite get userBubbleStyle => + _userBubbleStyle ??= BubbleStyleComposite(this); + set userBubbleStyle(BubbleStyleComposite value) => _userBubbleStyle = value; + + BubbleStyleComposite? _assistantBubbleStyle; + BubbleStyleComposite get assistantBubbleStyle => + _assistantBubbleStyle ??= BubbleStyleComposite(this); + set assistantBubbleStyle(BubbleStyleComposite value) => _assistantBubbleStyle = value; + Future Function(String newMessage)? sendMessage; bool get isLocalChat => type == ChatType.local; @@ -187,6 +203,15 @@ class EnsembleChatController extends EnsembleBoxController { }, "type": (value) => type = ChatType.values.from(value ?? 'local') ?? ChatType.local, + 'backgroundColor': (value) => backgroundColor = Utils.getColor(value), + 'textFieldBackgroundColor': (value) => + textFieldBackgroundColor = Utils.getColor(value), + 'textFieldTextStyle': (value) => textFieldTextStyle = Utils.getTextStyle(value), + 'iconColor': (value) => iconColor = Utils.getColor(value), + 'userBubbleStyle': (value) => + userBubbleStyle = BubbleStyleComposite.from(this, value), + 'assistantBubbleStyle': (value) => + assistantBubbleStyle = BubbleStyleComposite.from(this, value), }; } @@ -227,7 +252,6 @@ class EnsembleChatController extends EnsembleBoxController { tool[key]["inputs"]?.keys.forEach((inpKey) { properties[inpKey] = {"type": tool[key]["inputs"][inpKey]}; }); - toolMap["name"] = key; toolMap["description"] = tool[key]["description"]; toolMap["parameters"] = properties.isNotEmpty diff --git a/modules/chat/lib/helpers/bubble_container.dart b/modules/chat/lib/helpers/bubble_container.dart index fd61539dc..ebf755e8d 100644 --- a/modules/chat/lib/helpers/bubble_container.dart +++ b/modules/chat/lib/helpers/bubble_container.dart @@ -8,6 +8,8 @@ class BubbleContainer extends StatelessWidget { final String text; final TextStyle textStyle; final BubbleAlignment bubbleAlignment; + final EdgeInsets? padding; + final EdgeInsets? margin; const BubbleContainer({ Key? key, @@ -19,34 +21,40 @@ class BubbleContainer extends StatelessWidget { fontSize: 17, ), required this.bubbleAlignment, + this.padding, + this.margin, }) : super(key: key); ///chat bubble builder method @override Widget build(BuildContext context) { - return Align( - alignment: bubbleAlignment == BubbleAlignment.left - ? Alignment.bottomLeft - : Alignment.bottomRight, - child: Container( - constraints: - BoxConstraints(maxWidth: MediaQuery.of(context).size.width * 0.8), - decoration: BoxDecoration( - color: Colors.white.withOpacity(0.15), - borderRadius: BorderRadius.only( - topLeft: Radius.circular( - bubbleAlignment == BubbleAlignment.left ? 0 : bubbleRadius), - topRight: Radius.circular( - bubbleAlignment == BubbleAlignment.right ? 0 : bubbleRadius), - bottomLeft: Radius.circular(bubbleRadius), - bottomRight: Radius.circular(bubbleRadius), + return Container( + margin: margin, + child: Align( + alignment: bubbleAlignment == BubbleAlignment.left + ? Alignment.bottomLeft + : Alignment.bottomRight, + child: Container( + constraints: + BoxConstraints(maxWidth: MediaQuery.of(context).size.width * 0.8), + decoration: BoxDecoration( + color: color, + borderRadius: BorderRadius.only( + topLeft: Radius.circular( + bubbleAlignment == BubbleAlignment.left ? 0 : bubbleRadius), + topRight: Radius.circular( + bubbleAlignment == BubbleAlignment.right ? 0 : bubbleRadius), + bottomLeft: Radius.circular(bubbleRadius), + bottomRight: Radius.circular(bubbleRadius), + ), ), - ), - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 24), - child: Text( - text, - style: textStyle, + child: Padding( + padding: padding ?? + const EdgeInsets.symmetric(vertical: 16, horizontal: 24), + child: Text( + text, + style: textStyle, + ), ), ), ), From 6bc2bcf9b36b5daadb4f4bb64948dff87f290ddd Mon Sep 17 00:00:00 2001 From: TheNoumanDev Date: Fri, 15 Nov 2024 18:38:39 +0500 Subject: [PATCH 2/9] added safeArea --- modules/chat/lib/chat_page.dart | 160 ++++++++++++++++---------------- 1 file changed, 81 insertions(+), 79 deletions(-) diff --git a/modules/chat/lib/chat_page.dart b/modules/chat/lib/chat_page.dart index 3a0ddc6c0..7249ae614 100644 --- a/modules/chat/lib/chat_page.dart +++ b/modules/chat/lib/chat_page.dart @@ -89,91 +89,93 @@ class _ChatPageState extends State { @override Widget build(BuildContext context) { - return Scaffold( - backgroundColor: widget.controller.backgroundColor ?? Colors.black, - body: Column( - children: [ - Flexible( - child: ListView.builder( - reverse: true, - itemCount: widget.messages.length, - itemBuilder: (context, index) { - final effectiveIndex = widget.messages.length - 1 - index; - final message = widget.messages.elementAt(effectiveIndex); - return Container( - margin: const EdgeInsets.only(top: 8.0), - child: MessageWidget( - key: ValueKey(message.id), - message: message, - controller: widget.controller, - ), - ); - }, - ), - ), - const SizedBox(height: 8), - Padding( - padding: EdgeInsets.fromLTRB( - MediaQuery.of(context).padding.left + 16, - 0, - MediaQuery.of(context).padding.right + 16, - MediaQuery.of(context).viewInsets.bottom + - MediaQuery.of(context).padding.bottom + - 8, - ), - child: Row( - children: [ - Expanded( - child: Container( - decoration: BoxDecoration( - color: widget.controller.textFieldBackgroundColor ?? - Colors.white.withOpacity(0.1), - borderRadius: BorderRadius.circular(16), + return SafeArea( + child: Scaffold( + backgroundColor: widget.controller.backgroundColor ?? Colors.black, + body: Column( + children: [ + Flexible( + child: ListView.builder( + reverse: true, + itemCount: widget.messages.length, + itemBuilder: (context, index) { + final effectiveIndex = widget.messages.length - 1 - index; + final message = widget.messages.elementAt(effectiveIndex); + return Container( + margin: const EdgeInsets.only(top: 8.0), + child: MessageWidget( + key: ValueKey(message.id), + message: message, + controller: widget.controller, ), - child: TextFormField( - controller: _textController, - style: widget.controller.textFieldTextStyle ?? - const TextStyle(color: Colors.white), - maxLines: 5, - minLines: 1, - onFieldSubmitted: _handleSubmit, - decoration: InputDecoration( - hintText: 'Send a message', - filled: true, - fillColor: Colors.transparent, - border: OutlineInputBorder( - borderRadius: BorderRadius.circular(16.0), - borderSide: BorderSide.none, - ), - focusedBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(16.0), - borderSide: BorderSide.none, - ), - enabledBorder: OutlineInputBorder( - borderRadius: BorderRadius.circular(16.0), - borderSide: BorderSide.none, + ); + }, + ), + ), + const SizedBox(height: 8), + Padding( + padding: EdgeInsets.fromLTRB( + MediaQuery.of(context).padding.left + 16, + 0, + MediaQuery.of(context).padding.right + 16, + MediaQuery.of(context).viewInsets.bottom + + MediaQuery.of(context).padding.bottom + + 8, + ), + child: Row( + children: [ + Expanded( + child: Container( + decoration: BoxDecoration( + color: widget.controller.textFieldBackgroundColor ?? + Colors.white.withOpacity(0.1), + borderRadius: BorderRadius.circular(16), + ), + child: TextFormField( + controller: _textController, + style: widget.controller.textFieldTextStyle ?? + const TextStyle(color: Colors.white), + maxLines: 5, + minLines: 1, + onFieldSubmitted: _handleSubmit, + decoration: InputDecoration( + hintText: 'Send a message', + filled: true, + fillColor: Colors.transparent, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16.0), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16.0), + borderSide: BorderSide.none, + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16.0), + borderSide: BorderSide.none, + ), ), ), ), ), - ), - IconButton( - constraints: const BoxConstraints( - minHeight: 24, - minWidth: 24, - ), - icon: Icon( - Icons.send, - color: widget.controller.iconColor ?? Colors.white, - ), - onPressed: () => _handleSubmit(), - padding: const EdgeInsets.symmetric(horizontal: 16.0), - splashRadius: 24, - ) - ], + IconButton( + constraints: const BoxConstraints( + minHeight: 24, + minWidth: 24, + ), + icon: Icon( + Icons.send, + color: widget.controller.iconColor ?? Colors.white, + ), + onPressed: () => _handleSubmit(), + padding: const EdgeInsets.symmetric(horizontal: 16.0), + splashRadius: 24, + ) + ], + ), ), - ), - ], + ], + ), ), ); } From 4e9ac55fef47444b3e6c90f7679cffc3d23b8c75 Mon Sep 17 00:00:00 2001 From: TheNoumanDev Date: Fri, 15 Nov 2024 19:37:02 +0500 Subject: [PATCH 3/9] dded padding --- modules/chat/lib/chat_page.dart | 5 +++++ modules/chat/lib/ensemble_chat.dart | 1 + 2 files changed, 6 insertions(+) diff --git a/modules/chat/lib/chat_page.dart b/modules/chat/lib/chat_page.dart index 7249ae614..00fa6f473 100644 --- a/modules/chat/lib/chat_page.dart +++ b/modules/chat/lib/chat_page.dart @@ -90,6 +90,11 @@ class _ChatPageState extends State { @override Widget build(BuildContext context) { return SafeArea( + top: true, + bottom: true, + left: true, + right: true, + minimum: widget.controller.padding ?? const EdgeInsets.all(0), child: Scaffold( backgroundColor: widget.controller.backgroundColor ?? Colors.black, body: Column( diff --git a/modules/chat/lib/ensemble_chat.dart b/modules/chat/lib/ensemble_chat.dart index 8f41ddef6..6cdea2ccb 100644 --- a/modules/chat/lib/ensemble_chat.dart +++ b/modules/chat/lib/ensemble_chat.dart @@ -204,6 +204,7 @@ class EnsembleChatController extends EnsembleBoxController { "type": (value) => type = ChatType.values.from(value ?? 'local') ?? ChatType.local, 'backgroundColor': (value) => backgroundColor = Utils.getColor(value), + 'padding': (value) => padding = Utils.getInsets(value, fallback: const EdgeInsets.all(0)), 'textFieldBackgroundColor': (value) => textFieldBackgroundColor = Utils.getColor(value), 'textFieldTextStyle': (value) => textFieldTextStyle = Utils.getTextStyle(value), From 1e89ba7c0fce74a4dc0792e3456911e8639f876b Mon Sep 17 00:00:00 2001 From: TheNoumanDev Date: Mon, 18 Nov 2024 10:45:11 +0500 Subject: [PATCH 4/9] fixed initialmessages error about inlineWidget --- modules/chat/lib/chat_page.dart | 9 +++------ modules/chat/lib/ensemble_chat.dart | 24 ++++++++++++++++++------ modules/chat/lib/helpers/openai.dart | 6 ++++-- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/modules/chat/lib/chat_page.dart b/modules/chat/lib/chat_page.dart index 00fa6f473..28af9351b 100644 --- a/modules/chat/lib/chat_page.dart +++ b/modules/chat/lib/chat_page.dart @@ -30,7 +30,8 @@ class ChatPage extends StatefulWidget { } class BubbleStyleComposite extends WidgetCompositeProperty { - BubbleStyleComposite(ChangeNotifier widgetController) : super(widgetController); + BubbleStyleComposite(ChangeNotifier widgetController) + : super(widgetController); Color? backgroundColor; Color? textColor; @@ -90,10 +91,6 @@ class _ChatPageState extends State { @override Widget build(BuildContext context) { return SafeArea( - top: true, - bottom: true, - left: true, - right: true, minimum: widget.controller.padding ?? const EdgeInsets.all(0), child: Scaffold( backgroundColor: widget.controller.backgroundColor ?? Colors.black, @@ -278,7 +275,7 @@ Widget? buildWidgetsFromTemplate( final widget = parentScope?.buildWidgetFromDefinition(definition); return widget; } on Exception catch (e) { - print("EnsembleChat: error while building inline widget:\n$e"); + print("EnsembleChat: error while buidling inline widget:\n$e"); } return null; } diff --git a/modules/chat/lib/ensemble_chat.dart b/modules/chat/lib/ensemble_chat.dart index 6cdea2ccb..4b6bece5d 100644 --- a/modules/chat/lib/ensemble_chat.dart +++ b/modules/chat/lib/ensemble_chat.dart @@ -40,6 +40,12 @@ class EnsembleChatState extends EnsembleWidgetState { return ValueListenableBuilder>( valueListenable: widget.controller.messages, builder: (context, messages, child) { + for (var message in messages) { + if (message.inlineWidget != null && message.widget == null) { + message.widget = + buildWidgetsFromTemplate(context, message.inlineWidget); + } + } return ChatPage( messages: messages, onMessageSend: sendMessage, @@ -139,7 +145,8 @@ class EnsembleChatController extends EnsembleBoxController { BubbleStyleComposite? _assistantBubbleStyle; BubbleStyleComposite get assistantBubbleStyle => _assistantBubbleStyle ??= BubbleStyleComposite(this); - set assistantBubbleStyle(BubbleStyleComposite value) => _assistantBubbleStyle = value; + set assistantBubbleStyle(BubbleStyleComposite value) => + _assistantBubbleStyle = value; Future Function(String newMessage)? sendMessage; @@ -188,9 +195,12 @@ class EnsembleChatController extends EnsembleBoxController { Map setters() { return { 'initialMessages': (value) { - if (value is! List) return; - messages.value - .addAll(value.map((data) => InternalMessage.fromMap(data, this))); + if (value is! List || messages.value.isNotEmpty) return; + messages.value.addAll(value.map((data) { + final message = InternalMessage.fromMap(data, this); + return message; + })); + messages.notifyListeners(); }, "onMessageSend": (value) => onMessageSend = EnsembleAction.from(value), "inlineWidgetKey": (value) => @@ -204,10 +214,12 @@ class EnsembleChatController extends EnsembleBoxController { "type": (value) => type = ChatType.values.from(value ?? 'local') ?? ChatType.local, 'backgroundColor': (value) => backgroundColor = Utils.getColor(value), - 'padding': (value) => padding = Utils.getInsets(value, fallback: const EdgeInsets.all(0)), + 'padding': (value) => + padding = Utils.getInsets(value, fallback: const EdgeInsets.all(0)), 'textFieldBackgroundColor': (value) => textFieldBackgroundColor = Utils.getColor(value), - 'textFieldTextStyle': (value) => textFieldTextStyle = Utils.getTextStyle(value), + 'textFieldTextStyle': (value) => + textFieldTextStyle = Utils.getTextStyle(value), 'iconColor': (value) => iconColor = Utils.getColor(value), 'userBubbleStyle': (value) => userBubbleStyle = BubbleStyleComposite.from(this, value), diff --git a/modules/chat/lib/helpers/openai.dart b/modules/chat/lib/helpers/openai.dart index 2b3889069..0fab49bf8 100644 --- a/modules/chat/lib/helpers/openai.dart +++ b/modules/chat/lib/helpers/openai.dart @@ -47,8 +47,10 @@ class OpenAIClient extends AIClient { if (message.content == null) { messages.add({ "role": role, - "content": message - .rawResponse['message']['tool_calls'].first['function']['name'] + "content": message.rawResponse != null + ? message.rawResponse['message']['tool_calls'].first['function'] + ['name'] + : message.inlineWidget.keys.last, }); } else { messages.add({"role": role, "content": message.content}); From b8354557593b92409daa8aae461d6855a0b36159 Mon Sep 17 00:00:00 2001 From: TheNoumanDev Date: Mon, 18 Nov 2024 22:40:35 +0500 Subject: [PATCH 5/9] fixed bad state error --- modules/chat/lib/ensemble_chat.dart | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/chat/lib/ensemble_chat.dart b/modules/chat/lib/ensemble_chat.dart index 4b6bece5d..b49dc9988 100644 --- a/modules/chat/lib/ensemble_chat.dart +++ b/modules/chat/lib/ensemble_chat.dart @@ -35,19 +35,27 @@ class EnsembleChatState extends EnsembleWidgetState { super.initState(); } + @override + void dispose() { + for (var message in widget.controller.messages.value) { + message.widget = null; + } + super.dispose(); + } + @override Widget buildWidget(BuildContext context) { return ValueListenableBuilder>( valueListenable: widget.controller.messages, builder: (context, messages, child) { - for (var message in messages) { - if (message.inlineWidget != null && message.widget == null) { - message.widget = - buildWidgetsFromTemplate(context, message.inlineWidget); - } - } return ChatPage( - messages: messages, + messages: messages.map((message) { + if (message.inlineWidget != null && message.widget == null) { + message.widget = + buildWidgetsFromTemplate(context, message.inlineWidget); + } + return message; + }).toList(), onMessageSend: sendMessage, controller: widget.controller, ); @@ -265,6 +273,7 @@ class EnsembleChatController extends EnsembleBoxController { tool[key]["inputs"]?.keys.forEach((inpKey) { properties[inpKey] = {"type": tool[key]["inputs"][inpKey]}; }); + toolMap["name"] = key; toolMap["description"] = tool[key]["description"]; toolMap["parameters"] = properties.isNotEmpty From b763e4a28d0158d90bbd1f50fe8c4a145d02d404 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 26 Nov 2024 22:59:25 +0530 Subject: [PATCH 6/9] fix android build issue --- modules/ensemble/lib/receive_intent_manager.dart | 8 ++++---- modules/ensemble/pubspec.yaml | 15 ++++++++++++--- modules/high_chart/android/build.gradle | 8 ++++++++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/modules/ensemble/lib/receive_intent_manager.dart b/modules/ensemble/lib/receive_intent_manager.dart index 4ce215ae4..fa4e1cf4e 100644 --- a/modules/ensemble/lib/receive_intent_manager.dart +++ b/modules/ensemble/lib/receive_intent_manager.dart @@ -36,13 +36,13 @@ class ReceiveIntentManager { /// For sharing images coming from outside the app while the app is in the memory void receiveMediaWhenInMemory() { - ReceiveSharingIntent.getMediaStream().listen((List value) { + ReceiveSharingIntent.instance.getMediaStream().listen((List value) { if (context != null && onReceive != null) { final medias = _getMedias(value); _addToContext(context!, medias); ScreenController().executeAction(context!, onReceive!); // Tell the library that we are done processing the intent. - ReceiveSharingIntent.reset(); + ReceiveSharingIntent.instance.reset(); } }, onError: (err) { if (context != null && onError != null) { @@ -54,13 +54,13 @@ class ReceiveIntentManager { /// For sharing images coming from outside the app while the app is closed void receiveMediaWhenClosed() { - ReceiveSharingIntent.getInitialMedia().then((List value) { + ReceiveSharingIntent.instance.getInitialMedia().then((List value) { if (context != null && onReceive != null) { final medias = _getMedias(value); _addToContext(context!, medias); ScreenController().executeAction(context!, onReceive!); // Tell the library that we are done processing the intent. - ReceiveSharingIntent.reset(); + ReceiveSharingIntent.instance.reset(); } }, onError: (err) { if (context != null && onError != null) { diff --git a/modules/ensemble/pubspec.yaml b/modules/ensemble/pubspec.yaml index 47eb5f116..16aa73266 100644 --- a/modules/ensemble/pubspec.yaml +++ b/modules/ensemble/pubspec.yaml @@ -76,7 +76,7 @@ dependencies: qr_flutter: ^4.1.0 device_info_plus: ^10.1.0 carousel_slider: ^5.0.0 - fluttertoast: 8.2.2 + fluttertoast: ^8.2.8 video_player: ^2.6.1 lottie: ^3.0.0 cookie_jar: ^4.0.8 @@ -123,11 +123,20 @@ dependencies: url: https://github.com/EnsembleUI/table_calendar.git ref: master - flutter_app_badger: ^1.5.0 + # old app_badger is unsupported so using a supported fork + flutter_app_badger: + git: + url: https://github.com/ppprakhar/flutter_app_badger.git + ref: master + webview_flutter_wkwebview: ^3.9.2 webview_flutter_android: ^3.12.0 - receive_sharing_intent: 1.6.7 + # Current pub.dev version isn't compatible with 3.24 + receive_sharing_intent: + git: + url: https://github.com/Piyush-e7/receive_sharing_intent.git + ref: master change_case: ^1.1.0 dropdown_button2: ^2.3.9 collection: ^1.17.1 diff --git a/modules/high_chart/android/build.gradle b/modules/high_chart/android/build.gradle index 129131f5f..13909ceda 100644 --- a/modules/high_chart/android/build.gradle +++ b/modules/high_chart/android/build.gradle @@ -26,6 +26,14 @@ apply plugin: 'kotlin-android' android { compileSdkVersion 29 + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17 + } sourceSets { main.java.srcDirs += 'src/main/kotlin' From 030b60d271ab36b15460814ec3b58a9b57386d82 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 26 Nov 2024 23:22:56 +0530 Subject: [PATCH 7/9] chore(release): publish packages - ensemble@1.1.5 --- CHANGELOG.md | 46 ++++++++++++++++++++++ modules/auth/pubspec.yaml | 2 +- modules/bracket/pubspec.yaml | 2 +- modules/camera/pubspec.yaml | 2 +- modules/chat/pubspec.yaml | 2 +- modules/connect/pubspec.yaml | 2 +- modules/contacts/pubspec.yaml | 2 +- modules/deeplink/pubspec.yaml | 2 +- modules/ensemble/CHANGELOG.md | 4 ++ modules/ensemble/pubspec.yaml | 2 +- modules/ensemble_bluetooth/pubspec.yaml | 2 +- modules/ensemble_network_info/pubspec.yaml | 2 +- modules/file_manager/pubspec.yaml | 2 +- modules/firebase_analytics/pubspec.yaml | 2 +- modules/location/pubspec.yaml | 2 +- starter/pubspec.yaml | 2 +- 16 files changed, 64 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14f8f77d4..cf4f397f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,52 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 2024-11-26 + +### Changes + +--- + +Packages with breaking changes: + + - There are no breaking changes in this release. + +Packages with other changes: + + - [`ensemble` - `v1.1.5`](#ensemble---v115) + - [`ensemble_chat` - `v0.0.1+1`](#ensemble_chat---v0011) + - [`ensemble_auth` - `v1.0.1`](#ensemble_auth---v101) + - [`ensemble_camera` - `v0.0.1+1`](#ensemble_camera---v0011) + - [`ensemble_contacts` - `v0.0.1+1`](#ensemble_contacts---v0011) + - [`ensemble_location` - `v0.0.1+1`](#ensemble_location---v0011) + - [`ensemble_file_manager` - `v0.0.1+1`](#ensemble_file_manager---v0011) + - [`ensemble_bluetooth` - `v0.0.1+1`](#ensemble_bluetooth---v0011) + - [`ensemble_connect` - `v0.0.1+1`](#ensemble_connect---v0011) + - [`ensemble_network_info` - `v0.0.1+1`](#ensemble_network_info---v0011) + - [`ensemble_deeplink` - `v0.0.1+1`](#ensemble_deeplink---v0011) + +Packages with dependency updates only: + +> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project. + + - `ensemble_chat` - `v0.0.1+1` + - `ensemble_auth` - `v1.0.1` + - `ensemble_camera` - `v0.0.1+1` + - `ensemble_contacts` - `v0.0.1+1` + - `ensemble_location` - `v0.0.1+1` + - `ensemble_file_manager` - `v0.0.1+1` + - `ensemble_bluetooth` - `v0.0.1+1` + - `ensemble_connect` - `v0.0.1+1` + - `ensemble_network_info` - `v0.0.1+1` + - `ensemble_deeplink` - `v0.0.1+1` + +--- + +#### `ensemble` - `v1.1.5` + + - **FIX**: uninitialized getIt and handle externalKey properly. ([9b46738a](https://github.com/ensembleUI/ensemble/commit/9b46738a4a9cde57f09db7f40d174baed9e57550)) + + ## 2024-11-18 ### Changes diff --git a/modules/auth/pubspec.yaml b/modules/auth/pubspec.yaml index e31249340..b228cb829 100644 --- a/modules/auth/pubspec.yaml +++ b/modules/auth/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble ensemble_ts_interpreter: diff --git a/modules/bracket/pubspec.yaml b/modules/bracket/pubspec.yaml index a67bd3943..766c4a40b 100644 --- a/modules/bracket/pubspec.yaml +++ b/modules/bracket/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble dev_dependencies: diff --git a/modules/camera/pubspec.yaml b/modules/camera/pubspec.yaml index d95e91636..89204dae1 100644 --- a/modules/camera/pubspec.yaml +++ b/modules/camera/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble ensemble_ts_interpreter: git: diff --git a/modules/chat/pubspec.yaml b/modules/chat/pubspec.yaml index b7910ef49..7eed85ff3 100644 --- a/modules/chat/pubspec.yaml +++ b/modules/chat/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble ensemble_ts_interpreter: diff --git a/modules/connect/pubspec.yaml b/modules/connect/pubspec.yaml index 115e7605c..141decd49 100644 --- a/modules/connect/pubspec.yaml +++ b/modules/connect/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble plaid_flutter: ^3.1.2 diff --git a/modules/contacts/pubspec.yaml b/modules/contacts/pubspec.yaml index 30445500f..a4756d7d0 100644 --- a/modules/contacts/pubspec.yaml +++ b/modules/contacts/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble flutter_contacts: ^1.1.7+1 diff --git a/modules/deeplink/pubspec.yaml b/modules/deeplink/pubspec.yaml index 615db9382..38c3fdd5b 100644 --- a/modules/deeplink/pubspec.yaml +++ b/modules/deeplink/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble flutter_branch_sdk: ^7.0.1 diff --git a/modules/ensemble/CHANGELOG.md b/modules/ensemble/CHANGELOG.md index 902592819..8fdb89e02 100644 --- a/modules/ensemble/CHANGELOG.md +++ b/modules/ensemble/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.5 + + - **FIX**: uninitialized getIt and handle externalKey properly. ([9b46738a](https://github.com/ensembleUI/ensemble/commit/9b46738a4a9cde57f09db7f40d174baed9e57550)) + ## 1.1.4 - Ensemble version with flutter 3.24.3 support diff --git a/modules/ensemble/pubspec.yaml b/modules/ensemble/pubspec.yaml index 16aa73266..98d01ae77 100644 --- a/modules/ensemble/pubspec.yaml +++ b/modules/ensemble/pubspec.yaml @@ -15,7 +15,7 @@ description: Ensemble Runtime # This version is used _only_ for the Runner app, which is used if you just do # a `flutter run` or a `flutter make-host-app-editable`. It has no impact # on any other native host app that you embed your Flutter project into. -version: 1.1.4 +version: 1.1.5 environment: sdk: ">=3.5.0" diff --git a/modules/ensemble_bluetooth/pubspec.yaml b/modules/ensemble_bluetooth/pubspec.yaml index 74786c563..aecdd8aaa 100644 --- a/modules/ensemble_bluetooth/pubspec.yaml +++ b/modules/ensemble_bluetooth/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble ensemble_ts_interpreter: git: diff --git a/modules/ensemble_network_info/pubspec.yaml b/modules/ensemble_network_info/pubspec.yaml index 4799c8449..d8d5c71f3 100644 --- a/modules/ensemble_network_info/pubspec.yaml +++ b/modules/ensemble_network_info/pubspec.yaml @@ -12,7 +12,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble network_info_plus: ^5.0.3 diff --git a/modules/file_manager/pubspec.yaml b/modules/file_manager/pubspec.yaml index b9803cc10..a90678f6d 100644 --- a/modules/file_manager/pubspec.yaml +++ b/modules/file_manager/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble ensemble_ts_interpreter: git: diff --git a/modules/firebase_analytics/pubspec.yaml b/modules/firebase_analytics/pubspec.yaml index e77d7f834..61070c5f7 100644 --- a/modules/firebase_analytics/pubspec.yaml +++ b/modules/firebase_analytics/pubspec.yaml @@ -40,7 +40,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble dev_dependencies: diff --git a/modules/location/pubspec.yaml b/modules/location/pubspec.yaml index 4ed58636f..ef77c29ab 100644 --- a/modules/location/pubspec.yaml +++ b/modules/location/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble ensemble_ts_interpreter: diff --git a/starter/pubspec.yaml b/starter/pubspec.yaml index 178045873..87c4decf5 100644 --- a/starter/pubspec.yaml +++ b/starter/pubspec.yaml @@ -36,7 +36,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.4 + ref: ensemble-v1.1.5 path: modules/ensemble From e0a5de7519777265f4cfee8bf1096640eebeac02 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 27 Nov 2024 00:02:32 +0530 Subject: [PATCH 8/9] fix app badger android issue --- modules/ensemble/pubspec.yaml | 2 +- starter/android/build.gradle | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/ensemble/pubspec.yaml b/modules/ensemble/pubspec.yaml index 98d01ae77..170331a84 100644 --- a/modules/ensemble/pubspec.yaml +++ b/modules/ensemble/pubspec.yaml @@ -126,7 +126,7 @@ dependencies: # old app_badger is unsupported so using a supported fork flutter_app_badger: git: - url: https://github.com/ppprakhar/flutter_app_badger.git + url: https://github.com/EnsembleUI/flutter_app_badger.git ref: master webview_flutter_wkwebview: ^3.9.2 diff --git a/starter/android/build.gradle b/starter/android/build.gradle index f5c9bc25d..dbccb363c 100644 --- a/starter/android/build.gradle +++ b/starter/android/build.gradle @@ -29,6 +29,9 @@ subprojects { project.android { compileSdk 34 } + if (namespace == null) { + namespace project.group + } } } } From bd7fd9176066f90987fc40fcdd98b2ba5c36243d Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 27 Nov 2024 00:11:32 +0530 Subject: [PATCH 9/9] chore(release): publish packages - ensemble@1.1.6 --- CHANGELOG.md | 46 ++++++++++++++++++++++ modules/auth/pubspec.yaml | 2 +- modules/bracket/pubspec.yaml | 2 +- modules/camera/pubspec.yaml | 2 +- modules/chat/pubspec.yaml | 2 +- modules/connect/pubspec.yaml | 2 +- modules/contacts/pubspec.yaml | 2 +- modules/deeplink/pubspec.yaml | 2 +- modules/ensemble/CHANGELOG.md | 4 ++ modules/ensemble/pubspec.yaml | 2 +- modules/ensemble_bluetooth/pubspec.yaml | 2 +- modules/ensemble_network_info/pubspec.yaml | 2 +- modules/file_manager/pubspec.yaml | 2 +- modules/firebase_analytics/pubspec.yaml | 2 +- modules/location/pubspec.yaml | 2 +- starter/pubspec.yaml | 2 +- 16 files changed, 64 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf4f397f0..09d289d3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,52 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 2024-11-27 + +### Changes + +--- + +Packages with breaking changes: + + - There are no breaking changes in this release. + +Packages with other changes: + + - [`ensemble` - `v1.1.6`](#ensemble---v116) + - [`ensemble_camera` - `v0.0.1+1`](#ensemble_camera---v0011) + - [`ensemble_chat` - `v0.0.1+1`](#ensemble_chat---v0011) + - [`ensemble_auth` - `v1.0.1`](#ensemble_auth---v101) + - [`ensemble_location` - `v0.0.1+1`](#ensemble_location---v0011) + - [`ensemble_contacts` - `v0.0.1+1`](#ensemble_contacts---v0011) + - [`ensemble_file_manager` - `v0.0.1+1`](#ensemble_file_manager---v0011) + - [`ensemble_bluetooth` - `v0.0.1+1`](#ensemble_bluetooth---v0011) + - [`ensemble_connect` - `v0.0.1+1`](#ensemble_connect---v0011) + - [`ensemble_deeplink` - `v0.0.1+1`](#ensemble_deeplink---v0011) + - [`ensemble_network_info` - `v0.0.1+1`](#ensemble_network_info---v0011) + +Packages with dependency updates only: + +> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project. + + - `ensemble_camera` - `v0.0.1+1` + - `ensemble_chat` - `v0.0.1+1` + - `ensemble_auth` - `v1.0.1` + - `ensemble_location` - `v0.0.1+1` + - `ensemble_contacts` - `v0.0.1+1` + - `ensemble_file_manager` - `v0.0.1+1` + - `ensemble_bluetooth` - `v0.0.1+1` + - `ensemble_connect` - `v0.0.1+1` + - `ensemble_deeplink` - `v0.0.1+1` + - `ensemble_network_info` - `v0.0.1+1` + +--- + +#### `ensemble` - `v1.1.6` + + - Bump "ensemble" to `1.1.6`. + + ## 2024-11-26 ### Changes diff --git a/modules/auth/pubspec.yaml b/modules/auth/pubspec.yaml index b228cb829..41200a43c 100644 --- a/modules/auth/pubspec.yaml +++ b/modules/auth/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble ensemble_ts_interpreter: diff --git a/modules/bracket/pubspec.yaml b/modules/bracket/pubspec.yaml index 766c4a40b..2fe61778f 100644 --- a/modules/bracket/pubspec.yaml +++ b/modules/bracket/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble dev_dependencies: diff --git a/modules/camera/pubspec.yaml b/modules/camera/pubspec.yaml index 89204dae1..bd340e161 100644 --- a/modules/camera/pubspec.yaml +++ b/modules/camera/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble ensemble_ts_interpreter: git: diff --git a/modules/chat/pubspec.yaml b/modules/chat/pubspec.yaml index 7eed85ff3..25a2e9393 100644 --- a/modules/chat/pubspec.yaml +++ b/modules/chat/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble ensemble_ts_interpreter: diff --git a/modules/connect/pubspec.yaml b/modules/connect/pubspec.yaml index 141decd49..3a8f07e6c 100644 --- a/modules/connect/pubspec.yaml +++ b/modules/connect/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble plaid_flutter: ^3.1.2 diff --git a/modules/contacts/pubspec.yaml b/modules/contacts/pubspec.yaml index a4756d7d0..4e9d37ec5 100644 --- a/modules/contacts/pubspec.yaml +++ b/modules/contacts/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble flutter_contacts: ^1.1.7+1 diff --git a/modules/deeplink/pubspec.yaml b/modules/deeplink/pubspec.yaml index 38c3fdd5b..e524d5cc1 100644 --- a/modules/deeplink/pubspec.yaml +++ b/modules/deeplink/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble flutter_branch_sdk: ^7.0.1 diff --git a/modules/ensemble/CHANGELOG.md b/modules/ensemble/CHANGELOG.md index 8fdb89e02..05008c726 100644 --- a/modules/ensemble/CHANGELOG.md +++ b/modules/ensemble/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.6 + + - Bump "ensemble" to `1.1.6`. + ## 1.1.5 - **FIX**: uninitialized getIt and handle externalKey properly. ([9b46738a](https://github.com/ensembleUI/ensemble/commit/9b46738a4a9cde57f09db7f40d174baed9e57550)) diff --git a/modules/ensemble/pubspec.yaml b/modules/ensemble/pubspec.yaml index 170331a84..aa7a6e549 100644 --- a/modules/ensemble/pubspec.yaml +++ b/modules/ensemble/pubspec.yaml @@ -15,7 +15,7 @@ description: Ensemble Runtime # This version is used _only_ for the Runner app, which is used if you just do # a `flutter run` or a `flutter make-host-app-editable`. It has no impact # on any other native host app that you embed your Flutter project into. -version: 1.1.5 +version: 1.1.6 environment: sdk: ">=3.5.0" diff --git a/modules/ensemble_bluetooth/pubspec.yaml b/modules/ensemble_bluetooth/pubspec.yaml index aecdd8aaa..199bed179 100644 --- a/modules/ensemble_bluetooth/pubspec.yaml +++ b/modules/ensemble_bluetooth/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble ensemble_ts_interpreter: git: diff --git a/modules/ensemble_network_info/pubspec.yaml b/modules/ensemble_network_info/pubspec.yaml index d8d5c71f3..b04d4bc95 100644 --- a/modules/ensemble_network_info/pubspec.yaml +++ b/modules/ensemble_network_info/pubspec.yaml @@ -12,7 +12,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble network_info_plus: ^5.0.3 diff --git a/modules/file_manager/pubspec.yaml b/modules/file_manager/pubspec.yaml index a90678f6d..94e7133b6 100644 --- a/modules/file_manager/pubspec.yaml +++ b/modules/file_manager/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble ensemble_ts_interpreter: git: diff --git a/modules/firebase_analytics/pubspec.yaml b/modules/firebase_analytics/pubspec.yaml index 61070c5f7..3e034b69e 100644 --- a/modules/firebase_analytics/pubspec.yaml +++ b/modules/firebase_analytics/pubspec.yaml @@ -40,7 +40,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble dev_dependencies: diff --git a/modules/location/pubspec.yaml b/modules/location/pubspec.yaml index ef77c29ab..537a5e256 100644 --- a/modules/location/pubspec.yaml +++ b/modules/location/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble ensemble_ts_interpreter: diff --git a/starter/pubspec.yaml b/starter/pubspec.yaml index 87c4decf5..4784b978c 100644 --- a/starter/pubspec.yaml +++ b/starter/pubspec.yaml @@ -36,7 +36,7 @@ dependencies: ensemble: git: url: https://github.com/EnsembleUI/ensemble.git - ref: ensemble-v1.1.5 + ref: ensemble-v1.1.6 path: modules/ensemble