From 16a40b7451472fa03571f84af3508363bb7f6c22 Mon Sep 17 00:00:00 2001 From: mike doornenbal Date: Tue, 30 Jan 2024 15:52:56 +0100 Subject: [PATCH] feat: local service --- .gitignore | 1 + CHANGELOG.md | 4 + packages/flutter_chat/example/.gitignore | 1 + packages/flutter_chat/example/README.md | 16 +++ packages/flutter_chat/example/lib/main.dart | 51 +------- packages/flutter_chat/example/pubspec.yaml | 2 + .../example/test/widget_test.dart | 14 +++ packages/flutter_chat/lib/flutter_chat.dart | 11 +- .../lib/src}/chat_entry_widget.dart | 36 ++++-- .../src/flutter_chat_navigator_userstory.dart | 14 ++- packages/flutter_chat/pubspec.yaml | 11 +- packages/flutter_chat_firebase/pubspec.yaml | 4 +- packages/flutter_chat_interface/pubspec.yaml | 4 +- .../flutter_chat_local/analysis_options.yaml | 4 + .../lib/local_chat_service.dart | 6 + .../service/local_chat_detail_service.dart | 113 ++++++++++++++++++ .../service/local_chat_overview_service.dart | 75 ++++++++++++ .../lib/service/local_chat_service.dart | 34 ++++++ .../lib/service/local_chat_user_service.dart | 33 +++++ packages/flutter_chat_local/pubspec.yaml | 24 ++++ .../ios/Flutter/Generated.xcconfig | 14 --- .../ios/Flutter/flutter_export_environment.sh | 13 -- packages/flutter_chat_view/ios/Podfile | 41 ------- .../ios/Runner/GeneratedPluginRegistrant.h | 19 --- .../ios/Runner/GeneratedPluginRegistrant.m | 63 ---------- .../lib/flutter_chat_view.dart | 1 - packages/flutter_chat_view/pubspec.yaml | 4 +- 27 files changed, 390 insertions(+), 223 deletions(-) create mode 100644 packages/flutter_chat/example/README.md create mode 100644 packages/flutter_chat/example/test/widget_test.dart rename packages/{flutter_chat_view/lib/src/screens => flutter_chat/lib/src}/chat_entry_widget.dart (80%) create mode 100644 packages/flutter_chat_local/analysis_options.yaml create mode 100644 packages/flutter_chat_local/lib/local_chat_service.dart create mode 100644 packages/flutter_chat_local/lib/service/local_chat_detail_service.dart create mode 100644 packages/flutter_chat_local/lib/service/local_chat_overview_service.dart create mode 100644 packages/flutter_chat_local/lib/service/local_chat_service.dart create mode 100644 packages/flutter_chat_local/lib/service/local_chat_user_service.dart create mode 100644 packages/flutter_chat_local/pubspec.yaml delete mode 100644 packages/flutter_chat_view/ios/Flutter/Generated.xcconfig delete mode 100755 packages/flutter_chat_view/ios/Flutter/flutter_export_environment.sh delete mode 100644 packages/flutter_chat_view/ios/Podfile delete mode 100644 packages/flutter_chat_view/ios/Runner/GeneratedPluginRegistrant.h delete mode 100644 packages/flutter_chat_view/ios/Runner/GeneratedPluginRegistrant.m diff --git a/.gitignore b/.gitignore index 7a871bb..6e829e6 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ migrate_working_dir/ *.ipr *.iws .idea/ +ios # The .vscode folder contains launch configuration and tasks you configure in # VS Code which you may wish to be included in version control, so this line diff --git a/CHANGELOG.md b/CHANGELOG.md index 97ac6f1..a683ca2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.0 + +- Added LocalChatService for example app + ## 1.0.0 - Added pagination for the ChatDetailScreen diff --git a/packages/flutter_chat/example/.gitignore b/packages/flutter_chat/example/.gitignore index 29a3a50..e63bc79 100644 --- a/packages/flutter_chat/example/.gitignore +++ b/packages/flutter_chat/example/.gitignore @@ -15,6 +15,7 @@ migrate_working_dir/ *.ipr *.iws .idea/ +ios # The .vscode folder contains launch configuration and tasks you configure in # VS Code which you may wish to be included in version control, so this line diff --git a/packages/flutter_chat/example/README.md b/packages/flutter_chat/example/README.md new file mode 100644 index 0000000..2b3fce4 --- /dev/null +++ b/packages/flutter_chat/example/README.md @@ -0,0 +1,16 @@ +# example + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/packages/flutter_chat/example/lib/main.dart b/packages/flutter_chat/example/lib/main.dart index bc4bcae..8c8d809 100644 --- a/packages/flutter_chat/example/lib/main.dart +++ b/packages/flutter_chat/example/lib/main.dart @@ -1,17 +1,9 @@ -import 'package:firebase_auth/firebase_auth.dart'; -import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_chat/flutter_chat.dart'; -import 'package:flutter_chat_firebase/flutter_chat_firebase.dart'; void main(List args) async { WidgetsFlutterBinding.ensureInitialized(); - await Firebase.initializeApp( - // Set your firebase app here - // options: FirebaseOptions(apiKey: 'apiKey', appId: 'appId', messagingSenderId: 'messagingSenderId', projectId: 'projectId') - ); - runApp(const App()); } @@ -26,50 +18,13 @@ class App extends StatelessWidget { } } -class Home extends StatefulWidget { +class Home extends StatelessWidget { const Home({super.key}); - @override - State createState() => _HomeState(); -} - -class _HomeState extends State { - @override - void initState() { - FirebaseAuth.instance.signInWithEmailAndPassword( - email: 'your email', password: 'your password'); - super.initState(); - } - @override Widget build(BuildContext context) { - return Scaffold( - body: SafeArea( - child: Stack( - children: [ - Align( - alignment: Alignment.bottomRight, - child: ChatEntryWidget( - chatService: FirebaseChatService(), - onTap: _onTap, - ), - ), - ], - ), - ), - ); - } - - void _onTap() { - Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => chatNavigatorUserStory( - ChatUserStoryConfiguration( - chatService: FirebaseChatService(), - chatOptionsBuilder: (ctx) => const ChatOptions(), - ), - context), - ), + return Center( + child: chatNavigatorUserStory(context), ); } } diff --git a/packages/flutter_chat/example/pubspec.yaml b/packages/flutter_chat/example/pubspec.yaml index 61bf253..c0292a6 100644 --- a/packages/flutter_chat/example/pubspec.yaml +++ b/packages/flutter_chat/example/pubspec.yaml @@ -16,6 +16,8 @@ dependencies: path: ../ flutter_chat_firebase: path: ../../flutter_chat_firebase + flutter_chat_local: + path: ../../flutter_chat_local dev_dependencies: flutter_test: diff --git a/packages/flutter_chat/example/test/widget_test.dart b/packages/flutter_chat/example/test/widget_test.dart new file mode 100644 index 0000000..c1f4ea0 --- /dev/null +++ b/packages/flutter_chat/example/test/widget_test.dart @@ -0,0 +1,14 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + expect(true, true); + }); +} diff --git a/packages/flutter_chat/lib/flutter_chat.dart b/packages/flutter_chat/lib/flutter_chat.dart index 5c5a302..b35027e 100644 --- a/packages/flutter_chat/lib/flutter_chat.dart +++ b/packages/flutter_chat/lib/flutter_chat.dart @@ -4,9 +4,10 @@ library flutter_chat; -export 'package:flutter_chat_view/flutter_chat_view.dart'; -export 'package:flutter_chat_interface/flutter_chat_interface.dart'; -export 'package:flutter_chat/src/routes.dart'; -export 'package:flutter_chat/src/models/chat_configuration.dart'; -export 'package:flutter_chat/src/flutter_chat_userstory.dart'; +export 'package:flutter_chat/src/chat_entry_widget.dart'; export 'package:flutter_chat/src/flutter_chat_navigator_userstory.dart'; +export 'package:flutter_chat/src/flutter_chat_userstory.dart'; +export 'package:flutter_chat/src/models/chat_configuration.dart'; +export 'package:flutter_chat/src/routes.dart'; +export 'package:flutter_chat_interface/flutter_chat_interface.dart'; +export 'package:flutter_chat_view/flutter_chat_view.dart'; diff --git a/packages/flutter_chat_view/lib/src/screens/chat_entry_widget.dart b/packages/flutter_chat/lib/src/chat_entry_widget.dart similarity index 80% rename from packages/flutter_chat_view/lib/src/screens/chat_entry_widget.dart rename to packages/flutter_chat/lib/src/chat_entry_widget.dart index 3be4ad2..702201d 100644 --- a/packages/flutter_chat_view/lib/src/screens/chat_entry_widget.dart +++ b/packages/flutter_chat/lib/src/chat_entry_widget.dart @@ -1,12 +1,13 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:flutter_chat_view/flutter_chat_view.dart'; +import 'package:flutter_chat/flutter_chat.dart'; +import 'package:flutter_chat_local/local_chat_service.dart'; class ChatEntryWidget extends StatefulWidget { const ChatEntryWidget({ - required this.chatService, - required this.onTap, + this.chatService, + this.onTap, this.widgetSize = 75, this.backgroundColor = Colors.grey, this.icon = Icons.chat, @@ -16,11 +17,11 @@ class ChatEntryWidget extends StatefulWidget { super.key, }); - final ChatService chatService; + final ChatService? chatService; final Color backgroundColor; final double widgetSize; final Color counterBackgroundColor; - final Function() onTap; + final Function()? onTap; final IconData icon; final Color iconColor; final TextStyle? textStyle; @@ -30,13 +31,32 @@ class ChatEntryWidget extends StatefulWidget { } class _ChatEntryWidgetState extends State { + ChatService? chatService; + + @override + void initState() { + super.initState(); + chatService ??= widget.chatService ?? LocalChatService(); + } + @override Widget build(BuildContext context) { return GestureDetector( - onTap: () => widget.onTap.call(), + onTap: () => + widget.onTap?.call() ?? + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => chatNavigatorUserStory( + context, + configuration: ChatUserStoryConfiguration( + chatService: chatService!, + chatOptionsBuilder: (ctx) => const ChatOptions(), + ), + ), + ), + ), child: StreamBuilder( - stream: - widget.chatService.chatOverviewService.getUnreadChatsCountStream(), + stream: chatService!.chatOverviewService.getUnreadChatsCountStream(), builder: (BuildContext context, snapshot) { return Stack( alignment: Alignment.center, diff --git a/packages/flutter_chat/lib/src/flutter_chat_navigator_userstory.dart b/packages/flutter_chat/lib/src/flutter_chat_navigator_userstory.dart index f66583d..663d988 100644 --- a/packages/flutter_chat/lib/src/flutter_chat_navigator_userstory.dart +++ b/packages/flutter_chat/lib/src/flutter_chat_navigator_userstory.dart @@ -4,10 +4,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_chat/flutter_chat.dart'; +import 'package:flutter_chat_local/service/local_chat_service.dart'; Widget chatNavigatorUserStory( - ChatUserStoryConfiguration configuration, BuildContext context) { - return _chatScreenRoute(configuration, context); + BuildContext context, { + ChatUserStoryConfiguration? configuration, +}) { + return _chatScreenRoute( + configuration ?? + ChatUserStoryConfiguration( + chatService: LocalChatService(), + chatOptionsBuilder: (ctx) => const ChatOptions(), + ), + context, + ); } Widget _chatScreenRoute( diff --git a/packages/flutter_chat/pubspec.yaml b/packages/flutter_chat/pubspec.yaml index d5fdb59..4be42a3 100644 --- a/packages/flutter_chat/pubspec.yaml +++ b/packages/flutter_chat/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_chat description: A new Flutter package project. -version: 1.0.0 +version: 1.1.0 publish_to: none @@ -20,12 +20,17 @@ dependencies: git: url: https://github.com/Iconica-Development/flutter_chat path: packages/flutter_chat_view - ref: 1.0.0 + ref: 1.1.0 flutter_chat_interface: git: url: https://github.com/Iconica-Development/flutter_chat path: packages/flutter_chat_interface - ref: 1.0.0 + ref: 1.1.0 + flutter_chat_local: + git: + url: https://github.com/Iconica-Development/flutter_chat + path: packages/flutter_chat_local + ref: 1.1.0 dev_dependencies: flutter_lints: ^2.0.0 diff --git a/packages/flutter_chat_firebase/pubspec.yaml b/packages/flutter_chat_firebase/pubspec.yaml index db7b393..35708cb 100644 --- a/packages/flutter_chat_firebase/pubspec.yaml +++ b/packages/flutter_chat_firebase/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_chat_firebase description: A new Flutter package project. -version: 1.0.0 +version: 1.1.0 publish_to: none environment: @@ -23,7 +23,7 @@ dependencies: git: url: https://github.com/Iconica-Development/flutter_chat path: packages/flutter_chat_interface - ref: 1.0.0 + ref: 1.1.0 dev_dependencies: flutter_lints: ^2.0.0 diff --git a/packages/flutter_chat_interface/pubspec.yaml b/packages/flutter_chat_interface/pubspec.yaml index 5f96d22..a03cef3 100644 --- a/packages/flutter_chat_interface/pubspec.yaml +++ b/packages/flutter_chat_interface/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_chat_interface description: A new Flutter package project. -version: 1.0.0 +version: 1.1.0 publish_to: none environment: @@ -17,7 +17,7 @@ dependencies: flutter_data_interface: git: url: https://github.com/Iconica-Development/flutter_data_interface.git - ref: 1.0.0 + ref: 1.1.0 dev_dependencies: flutter_lints: ^2.0.0 diff --git a/packages/flutter_chat_local/analysis_options.yaml b/packages/flutter_chat_local/analysis_options.yaml new file mode 100644 index 0000000..a5744c1 --- /dev/null +++ b/packages/flutter_chat_local/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/packages/flutter_chat_local/lib/local_chat_service.dart b/packages/flutter_chat_local/lib/local_chat_service.dart new file mode 100644 index 0000000..4db41b2 --- /dev/null +++ b/packages/flutter_chat_local/lib/local_chat_service.dart @@ -0,0 +1,6 @@ +library local_chat_service; + +export 'service/local_chat_service.dart'; +export 'service/local_chat_detail_service.dart'; +export 'service/local_chat_overview_service.dart'; +export 'service/local_chat_user_service.dart'; diff --git a/packages/flutter_chat_local/lib/service/local_chat_detail_service.dart b/packages/flutter_chat_local/lib/service/local_chat_detail_service.dart new file mode 100644 index 0000000..8210169 --- /dev/null +++ b/packages/flutter_chat_local/lib/service/local_chat_detail_service.dart @@ -0,0 +1,113 @@ +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter_chat_interface/flutter_chat_interface.dart'; +import 'package:flutter_chat_local/local_chat_service.dart'; + +class LocalChatDetailService with ChangeNotifier implements ChatDetailService { + final ChatOverviewService chatOverviewService; + + LocalChatDetailService({required this.chatOverviewService}); + final List _cumulativeMessages = []; + final StreamController> _controller = + StreamController>.broadcast(); + late StreamSubscription? _subscription; + + @override + Future fetchMoreMessage(int pageSize, String chatId) async { + await chatOverviewService.getChatById(chatId).then((value) { + _cumulativeMessages.clear(); + _cumulativeMessages.addAll(value.messages!); + _controller.add(_cumulativeMessages); + }); + notifyListeners(); + return Future.value(); + } + + @override + List getMessages() { + return _cumulativeMessages; + } + + @override + Stream> getMessagesStream(String chatId) { + _controller.onListen = () { + _subscription = + chatOverviewService.getChatById(chatId).asStream().listen((event) { + _cumulativeMessages.clear(); + _cumulativeMessages.addAll(event.messages!); + _controller.add(_cumulativeMessages); + }); + }; + + return _controller.stream; + } + + @override + Future sendImageMessage( + {required String chatId, required Uint8List image}) async { + var chat = (chatOverviewService as LocalChatOverviewService) + .chats + .firstWhere((element) => element.id == chatId); + var message = ChatImageMessageModel( + sender: ChatUserModel( + id: "3", + firstName: "ico", + lastName: "nica", + imageUrl: "https://picsum.photos/100/200", + ), + timestamp: DateTime.now(), + imageUrl: "https://picsum.photos/200/300", + ); + + await (chatOverviewService as LocalChatOverviewService).updateChat( + chat.copyWith( + messages: [...chat.messages!, message], + lastMessage: message, + lastUsed: DateTime.now(), + ), + ); + chat.messages?.add(message); + _cumulativeMessages.add(message); + notifyListeners(); + + return Future.value(); + } + + @override + Future sendTextMessage( + {required String chatId, required String text}) async { + var chat = (chatOverviewService as LocalChatOverviewService) + .chats + .firstWhere((element) => element.id == chatId); + var message = ChatTextMessageModel( + sender: ChatUserModel( + id: "3", + firstName: "ico", + lastName: "nica", + imageUrl: "https://picsum.photos/100/200", + ), + timestamp: DateTime.now(), + text: text, + ); + await (chatOverviewService as LocalChatOverviewService).updateChat( + chat.copyWith( + messages: [...chat.messages!, message], + lastMessage: message, + lastUsed: DateTime.now(), + ), + ); + + chat.messages?.add(message); + _cumulativeMessages.add(message); + notifyListeners(); + + return Future.value(); + } + + @override + void stopListeningForMessages() { + _subscription?.cancel(); + _subscription = null; + } +} diff --git a/packages/flutter_chat_local/lib/service/local_chat_overview_service.dart b/packages/flutter_chat_local/lib/service/local_chat_overview_service.dart new file mode 100644 index 0000000..8c0a0d7 --- /dev/null +++ b/packages/flutter_chat_local/lib/service/local_chat_overview_service.dart @@ -0,0 +1,75 @@ +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter_chat_interface/flutter_chat_interface.dart'; + +class LocalChatOverviewService + with ChangeNotifier + implements ChatOverviewService { + final List _chats = []; + List get chats => _chats; + + final StreamController> _chatsController = + StreamController>.broadcast(); + + Future updateChat(ChatModel chat) { + var index = _chats.indexWhere((element) => element.id == chat.id); + _chats[index] = chat as PersonalChatModel; + _chatsController.addStream(Stream.value(_chats)); + notifyListeners(); + return Future.value(); + } + + @override + Future deleteChat(ChatModel chat) { + _chats.removeWhere((element) => element.id == chat.id); + _chatsController.add(_chats); + notifyListeners(); + return Future.value(); + } + + @override + Future getChatById(String id) { + return Future.value(_chats.firstWhere((element) => element.id == id)); + } + + @override + Future getChatByUser(ChatUserModel user) { + PersonalChatModel? chat; + try { + chat = _chats.firstWhere((element) => element.user.id == user.id); + } catch (e) { + chat = PersonalChatModel( + user: user, + messages: [], + id: '', + ); + chat.id = chat.hashCode.toString(); + _chats.add(chat); + } + + _chatsController.add([..._chats]); + notifyListeners(); + return Future.value(chat); + } + + @override + Stream> getChatsStream() { + return _chatsController.stream; + } + + @override + Stream getUnreadChatsCountStream() { + return Stream.value(0); + } + + @override + Future readChat(ChatModel chat) async { + return Future.value(); + } + + @override + Future storeChatIfNot(ChatModel chat) { + return Future.value(chat); + } +} diff --git a/packages/flutter_chat_local/lib/service/local_chat_service.dart b/packages/flutter_chat_local/lib/service/local_chat_service.dart new file mode 100644 index 0000000..992c3d5 --- /dev/null +++ b/packages/flutter_chat_local/lib/service/local_chat_service.dart @@ -0,0 +1,34 @@ +import 'package:flutter_chat_interface/flutter_chat_interface.dart'; +import 'package:flutter_chat_local/service/local_chat_detail_service.dart'; +import 'package:flutter_chat_local/service/local_chat_overview_service.dart'; +import 'package:flutter_chat_local/service/local_chat_user_service.dart'; + +class LocalChatService implements ChatService { + LocalChatService({ + this.localChatDetailService, + this.localChatOverviewService, + this.localChatUserService, + }) { + { + localChatOverviewService ??= LocalChatOverviewService(); + localChatDetailService ??= LocalChatDetailService( + chatOverviewService: localChatOverviewService!, + ); + + localChatUserService ??= LocalChatUserService(); + } + } + + ChatDetailService? localChatDetailService; + ChatOverviewService? localChatOverviewService; + ChatUserService? localChatUserService; + + @override + ChatDetailService get chatDetailService => localChatDetailService!; + + @override + ChatOverviewService get chatOverviewService => localChatOverviewService!; + + @override + ChatUserService get chatUserService => localChatUserService!; +} diff --git a/packages/flutter_chat_local/lib/service/local_chat_user_service.dart b/packages/flutter_chat_local/lib/service/local_chat_user_service.dart new file mode 100644 index 0000000..6ba8b3e --- /dev/null +++ b/packages/flutter_chat_local/lib/service/local_chat_user_service.dart @@ -0,0 +1,33 @@ +import 'package:flutter_chat_interface/flutter_chat_interface.dart'; + +class LocalChatUserService implements ChatUserService { + List users = [ + ChatUserModel( + id: '1', + firstName: 'John', + lastName: "Doe", + imageUrl: 'https://picsum.photos/200/300', + ), + ChatUserModel( + id: '2', + firstName: 'Jane', + lastName: "Doe", + imageUrl: 'https://picsum.photos/200/300', + ), + ]; + @override + Future> getAllUsers() { + return Future.value(users); + } + + @override + Future getCurrentUser() { + return Future.value(ChatUserModel()); + } + + @override + Future getUser(String id) { + var user = users.firstWhere((element) => element.id == id); + return Future.value(user); + } +} diff --git a/packages/flutter_chat_local/pubspec.yaml b/packages/flutter_chat_local/pubspec.yaml new file mode 100644 index 0000000..7c1dfb3 --- /dev/null +++ b/packages/flutter_chat_local/pubspec.yaml @@ -0,0 +1,24 @@ +name: flutter_chat_local +description: "A new Flutter package project." +version: 1.1.0 +publish_to: none +homepage: + +environment: + sdk: ">=3.2.5 <4.0.0" + flutter: ">=1.17.0" + +dependencies: + flutter: + sdk: flutter + flutter_chat_interface: + git: + url: https://github.com/Iconica-Development/flutter_chat + path: packages/flutter_chat_interface + ref: 1.1.0 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^2.0.0 +flutter: diff --git a/packages/flutter_chat_view/ios/Flutter/Generated.xcconfig b/packages/flutter_chat_view/ios/Flutter/Generated.xcconfig deleted file mode 100644 index 047dd88..0000000 --- a/packages/flutter_chat_view/ios/Flutter/Generated.xcconfig +++ /dev/null @@ -1,14 +0,0 @@ -// This is a generated file; do not edit or check into version control. -FLUTTER_ROOT=/opt/homebrew/Caskroom/flutter/3.10.2/flutter -FLUTTER_APPLICATION_PATH=/Users/mikedoornenbal/Documents/iconica/flutter_community_chat/packages/flutter_chat_view -COCOAPODS_PARALLEL_CODE_SIGN=true -FLUTTER_TARGET=lib/main.dart -FLUTTER_BUILD_DIR=build -FLUTTER_BUILD_NAME=1.0.0 -FLUTTER_BUILD_NUMBER=1.0.0 -EXCLUDED_ARCHS[sdk=iphonesimulator*]=i386 -EXCLUDED_ARCHS[sdk=iphoneos*]=armv7 -DART_OBFUSCATION=false -TRACK_WIDGET_CREATION=true -TREE_SHAKE_ICONS=false -PACKAGE_CONFIG=.dart_tool/package_config.json diff --git a/packages/flutter_chat_view/ios/Flutter/flutter_export_environment.sh b/packages/flutter_chat_view/ios/Flutter/flutter_export_environment.sh deleted file mode 100755 index 64fffaf..0000000 --- a/packages/flutter_chat_view/ios/Flutter/flutter_export_environment.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# This is a generated file; do not edit or check into version control. -export "FLUTTER_ROOT=/opt/homebrew/Caskroom/flutter/3.10.2/flutter" -export "FLUTTER_APPLICATION_PATH=/Users/mikedoornenbal/Documents/iconica/flutter_community_chat/packages/flutter_chat_view" -export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=lib/main.dart" -export "FLUTTER_BUILD_DIR=build" -export "FLUTTER_BUILD_NAME=1.0.0" -export "FLUTTER_BUILD_NUMBER=1.0.0" -export "DART_OBFUSCATION=false" -export "TRACK_WIDGET_CREATION=true" -export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=.dart_tool/package_config.json" diff --git a/packages/flutter_chat_view/ios/Podfile b/packages/flutter_chat_view/ios/Podfile deleted file mode 100644 index ec43b51..0000000 --- a/packages/flutter_chat_view/ios/Podfile +++ /dev/null @@ -1,41 +0,0 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '11.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end -end diff --git a/packages/flutter_chat_view/ios/Runner/GeneratedPluginRegistrant.h b/packages/flutter_chat_view/ios/Runner/GeneratedPluginRegistrant.h deleted file mode 100644 index 7a89092..0000000 --- a/packages/flutter_chat_view/ios/Runner/GeneratedPluginRegistrant.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GeneratedPluginRegistrant_h -#define GeneratedPluginRegistrant_h - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface GeneratedPluginRegistrant : NSObject -+ (void)registerWithRegistry:(NSObject*)registry; -@end - -NS_ASSUME_NONNULL_END -#endif /* GeneratedPluginRegistrant_h */ diff --git a/packages/flutter_chat_view/ios/Runner/GeneratedPluginRegistrant.m b/packages/flutter_chat_view/ios/Runner/GeneratedPluginRegistrant.m deleted file mode 100644 index 76146f8..0000000 --- a/packages/flutter_chat_view/ios/Runner/GeneratedPluginRegistrant.m +++ /dev/null @@ -1,63 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#import "GeneratedPluginRegistrant.h" - -#if __has_include() -#import -#else -@import cloud_firestore; -#endif - -#if __has_include() -#import -#else -@import firebase_auth; -#endif - -#if __has_include() -#import -#else -@import firebase_core; -#endif - -#if __has_include() -#import -#else -@import firebase_storage; -#endif - -#if __has_include() -#import -#else -@import image_picker_ios; -#endif - -#if __has_include() -#import -#else -@import path_provider_foundation; -#endif - -#if __has_include() -#import -#else -@import sqflite; -#endif - -@implementation GeneratedPluginRegistrant - -+ (void)registerWithRegistry:(NSObject*)registry { - [FLTFirebaseFirestorePlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseFirestorePlugin"]]; - [FLTFirebaseAuthPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseAuthPlugin"]]; - [FLTFirebaseCorePlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseCorePlugin"]]; - [FLTFirebaseStoragePlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTFirebaseStoragePlugin"]]; - [FLTImagePickerPlugin registerWithRegistrar:[registry registrarForPlugin:@"FLTImagePickerPlugin"]]; - [PathProviderPlugin registerWithRegistrar:[registry registrarForPlugin:@"PathProviderPlugin"]]; - [SqflitePlugin registerWithRegistrar:[registry registrarForPlugin:@"SqflitePlugin"]]; -} - -@end diff --git a/packages/flutter_chat_view/lib/flutter_chat_view.dart b/packages/flutter_chat_view/lib/flutter_chat_view.dart index 063ac8b..962fc99 100644 --- a/packages/flutter_chat_view/lib/flutter_chat_view.dart +++ b/packages/flutter_chat_view/lib/flutter_chat_view.dart @@ -10,7 +10,6 @@ export 'src/components/chat_row.dart'; export 'src/config/chat_options.dart'; export 'src/config/chat_translations.dart'; export 'src/screens/chat_detail_screen.dart'; -export 'src/screens/chat_entry_widget.dart'; export 'src/screens/chat_profile_screen.dart'; export 'src/screens/chat_screen.dart'; export 'src/screens/new_chat_screen.dart'; diff --git a/packages/flutter_chat_view/pubspec.yaml b/packages/flutter_chat_view/pubspec.yaml index 68ac749..7f6b3ef 100644 --- a/packages/flutter_chat_view/pubspec.yaml +++ b/packages/flutter_chat_view/pubspec.yaml @@ -4,7 +4,7 @@ name: flutter_chat_view description: A standard flutter package. -version: 1.0.0 +version: 1.1.0 publish_to: none @@ -20,7 +20,7 @@ dependencies: git: url: https://github.com/Iconica-Development/flutter_chat path: packages/flutter_chat_interface - ref: 1.0.0 + ref: 1.1.0 cached_network_image: ^3.2.2 flutter_image_picker: git: