diff --git a/packages/stream_chat_v1/lib/app.dart b/packages/stream_chat_v1/lib/app.dart new file mode 100644 index 0000000..c1a6f40 --- /dev/null +++ b/packages/stream_chat_v1/lib/app.dart @@ -0,0 +1,182 @@ +import 'dart:async'; + +import 'package:example/pages/choose_user_page.dart'; +import 'package:example/pages/home_page.dart'; +import 'package:example/utils/localizations.dart'; +import 'package:example/pages/splash_screen.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:stream_chat_flutter/stream_chat_flutter.dart'; +import 'package:stream_chat_localizations/stream_chat_localizations.dart'; +import 'package:stream_chat_persistence/stream_chat_persistence.dart'; +import 'package:streaming_shared_preferences/streaming_shared_preferences.dart'; + +import 'routes/app_routes.dart'; +import 'routes/routes.dart'; + +final chatPersistentClient = StreamChatPersistenceClient( + logLevel: Level.SEVERE, + connectionMode: ConnectionMode.regular, +); + +void sampleAppLogHandler(LogRecord record) async { + if (kDebugMode) StreamChatClient.defaultLogHandler(record); + + // report errors to setnry.io + if (record.error != null || record.stackTrace != null) { + await Sentry.captureException( + record.error, + stackTrace: record.stackTrace, + ); + } +} + +StreamChatClient buildStreamChatClient( + String apiKey, { + Level logLevel = Level.INFO, +}) { + return StreamChatClient( + apiKey, + logLevel: logLevel, + logHandlerFunction: sampleAppLogHandler, + )..chatPersistenceClient = chatPersistentClient; +} + +class MyApp extends StatefulWidget { + @override + _MyAppState createState() => _MyAppState(); +} + +class _MyAppState extends State + with SplashScreenStateMixin, TickerProviderStateMixin { + InitData? _initData; + + Future _initConnection() async { + String? apiKey, userId, token; + + if (!kIsWeb) { + final secureStorage = FlutterSecureStorage(); + apiKey = await secureStorage.read(key: kStreamApiKey); + userId = await secureStorage.read(key: kStreamUserId); + token = await secureStorage.read(key: kStreamToken); + } + + final client = buildStreamChatClient(apiKey ?? kStreamApiKey); + + if (userId != null && token != null) { + await client.connectUser( + User(id: userId), + token, + ); + } + + final prefs = await StreamingSharedPreferences.instance; + + return InitData(client, prefs); + } + + @override + void initState() { + final timeOfStartMs = DateTime.now().millisecondsSinceEpoch; + + _initConnection().then( + (initData) { + setState(() { + _initData = initData; + }); + + final now = DateTime.now().millisecondsSinceEpoch; + + if (now - timeOfStartMs > 1500) { + SchedulerBinding.instance.addPostFrameCallback((timeStamp) { + forwardAnimations(); + }); + } else { + Future.delayed(Duration(milliseconds: 1500)).then((value) { + forwardAnimations(); + }); + } + }, + ); + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Stack( + alignment: Alignment.center, + children: [ + if (_initData != null) + PreferenceBuilder( + preference: _initData!.preferences.getInt( + 'theme', + defaultValue: 0, + ), + builder: (context, snapshot) => MaterialApp( + theme: ThemeData.light(), + darkTheme: ThemeData.dark(), + themeMode: { + -1: ThemeMode.dark, + 0: ThemeMode.system, + 1: ThemeMode.light, + }[snapshot], + supportedLocales: const [ + Locale('en'), + Locale('it'), + ], + localizationsDelegates: const [ + AppLocalizationsDelegate(), + GlobalStreamChatLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ], + builder: (context, child) => StreamChatConfiguration( + data: StreamChatConfigurationData(), + child: StreamChatTheme( + data: StreamChatThemeData( + brightness: Theme.of(context).brightness, + ), + child: child!, + ), + ), + onGenerateRoute: AppRoutes.generateRoute, + onGenerateInitialRoutes: (initialRouteName) { + if (initialRouteName == Routes.HOME) { + return [ + AppRoutes.generateRoute( + RouteSettings( + name: Routes.HOME, + arguments: HomePageArgs(_initData!.client), + ), + )! + ]; + } + return [ + AppRoutes.generateRoute( + RouteSettings( + name: Routes.CHOOSE_USER, + ), + )! + ]; + }, + initialRoute: _initData!.client.state.currentUser == null + ? Routes.CHOOSE_USER + : Routes.HOME, + ), + ), + if (!animationCompleted) buildAnimation(), + ], + ); + } +} + +class InitData { + final StreamChatClient client; + final StreamingSharedPreferences preferences; + + InitData(this.client, this.preferences); +} diff --git a/packages/stream_chat_v1/lib/main.dart b/packages/stream_chat_v1/lib/main.dart index a2f5b4c..d60b848 100644 --- a/packages/stream_chat_v1/lib/main.dart +++ b/packages/stream_chat_v1/lib/main.dart @@ -1,54 +1,13 @@ import 'dart:async'; -import 'package:example/choose_user_page.dart'; -import 'package:example/home_page.dart'; -import 'package:example/localizations.dart'; -import 'package:example/splash_screen.dart'; +import 'package:example/utils/app_config.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/scheduler.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; -import 'package:stream_chat_flutter/stream_chat_flutter.dart'; -import 'package:stream_chat_localizations/stream_chat_localizations.dart'; -import 'package:stream_chat_persistence/stream_chat_persistence.dart'; -import 'package:streaming_shared_preferences/streaming_shared_preferences.dart'; -import 'routes/app_routes.dart'; -import 'routes/routes.dart'; - -final chatPersistentClient = StreamChatPersistenceClient( - logLevel: Level.SEVERE, - connectionMode: ConnectionMode.regular, -); - -void sampleAppLogHandler(LogRecord record) async { - if (kDebugMode) StreamChatClient.defaultLogHandler(record); - - // report errors to sentry - if (record.error != null || record.stackTrace != null) { - await Sentry.captureException( - record.error, - stackTrace: record.stackTrace, - ); - } -} - -StreamChatClient buildStreamChatClient( - String apiKey, { - Level logLevel = Level.INFO, -}) { - return StreamChatClient( - apiKey, - logLevel: logLevel, - logHandlerFunction: sampleAppLogHandler, - )..chatPersistenceClient = chatPersistentClient; -} +import 'package:example/app.dart'; void main() async { - const sentryDsn = - 'https://6381ef88de4140db8f5e25ab37e0f08c@o1213503.ingest.sentry.io/6352870'; - /// Captures errors reported by the Flutter framework. FlutterError.onError = (FlutterErrorDetails details) { if (kDebugMode) { @@ -82,139 +41,3 @@ void main() async { _reportError, ); } - -class MyApp extends StatefulWidget { - @override - _MyAppState createState() => _MyAppState(); -} - -class _MyAppState extends State - with SplashScreenStateMixin, TickerProviderStateMixin { - InitData? _initData; - - Future _initConnection() async { - String? apiKey, userId, token; - - if (!kIsWeb) { - final secureStorage = FlutterSecureStorage(); - apiKey = await secureStorage.read(key: kStreamApiKey); - userId = await secureStorage.read(key: kStreamUserId); - token = await secureStorage.read(key: kStreamToken); - } - - final client = buildStreamChatClient(apiKey ?? kStreamApiKey); - - if (userId != null && token != null) { - await client.connectUser( - User(id: userId), - token, - ); - } - - final prefs = await StreamingSharedPreferences.instance; - - return InitData(client, prefs); - } - - @override - void initState() { - final timeOfStartMs = DateTime.now().millisecondsSinceEpoch; - - _initConnection().then( - (initData) { - setState(() { - _initData = initData; - }); - - final now = DateTime.now().millisecondsSinceEpoch; - - if (now - timeOfStartMs > 1500) { - SchedulerBinding.instance.addPostFrameCallback((timeStamp) { - forwardAnimations(); - }); - } else { - Future.delayed(Duration(milliseconds: 1500)).then((value) { - forwardAnimations(); - }); - } - }, - ); - - super.initState(); - } - - @override - Widget build(BuildContext context) { - return Stack( - alignment: Alignment.center, - children: [ - if (_initData != null) - PreferenceBuilder( - preference: _initData!.preferences.getInt( - 'theme', - defaultValue: 0, - ), - builder: (context, snapshot) => MaterialApp( - theme: ThemeData.light(), - darkTheme: ThemeData.dark(), - themeMode: { - -1: ThemeMode.dark, - 0: ThemeMode.system, - 1: ThemeMode.light, - }[snapshot], - supportedLocales: const [ - Locale('en'), - Locale('it'), - ], - localizationsDelegates: const [ - AppLocalizationsDelegate(), - GlobalStreamChatLocalizations.delegate, - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - ], - builder: (context, child) => StreamChatConfiguration( - data: StreamChatConfigurationData(), - child: StreamChatTheme( - data: StreamChatThemeData( - brightness: Theme.of(context).brightness, - ), - child: child!, - ), - ), - onGenerateRoute: AppRoutes.generateRoute, - onGenerateInitialRoutes: (initialRouteName) { - if (initialRouteName == Routes.HOME) { - return [ - AppRoutes.generateRoute( - RouteSettings( - name: Routes.HOME, - arguments: HomePageArgs(_initData!.client), - ), - )! - ]; - } - return [ - AppRoutes.generateRoute( - RouteSettings( - name: Routes.CHOOSE_USER, - ), - )! - ]; - }, - initialRoute: _initData!.client.state.currentUser == null - ? Routes.CHOOSE_USER - : Routes.HOME, - ), - ), - if (!animationCompleted) buildAnimation(), - ], - ); - } -} - -class InitData { - final StreamChatClient client; - final StreamingSharedPreferences preferences; - - InitData(this.client, this.preferences); -} diff --git a/packages/stream_chat_v1/lib/advanced_options_page.dart b/packages/stream_chat_v1/lib/pages/advanced_options_page.dart similarity index 98% rename from packages/stream_chat_v1/lib/advanced_options_page.dart rename to packages/stream_chat_v1/lib/pages/advanced_options_page.dart index f442453..566e54a 100644 --- a/packages/stream_chat_v1/lib/advanced_options_page.dart +++ b/packages/stream_chat_v1/lib/pages/advanced_options_page.dart @@ -1,13 +1,13 @@ -import 'package:example/home_page.dart'; -import 'package:example/localizations.dart'; +import 'package:example/app.dart'; +import 'package:example/pages/home_page.dart'; +import 'package:example/utils/localizations.dart'; import 'package:example/routes/routes.dart'; -import 'package:example/stream_version.dart'; +import 'package:example/widgets/stream_version.dart'; import 'package:flutter/material.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'choose_user_page.dart'; -import 'main.dart'; class AdvancedOptionsPage extends StatefulWidget { @override diff --git a/packages/stream_chat_v1/lib/channel_file_display_screen.dart b/packages/stream_chat_v1/lib/pages/channel_file_display_screen.dart similarity index 98% rename from packages/stream_chat_v1/lib/channel_file_display_screen.dart rename to packages/stream_chat_v1/lib/pages/channel_file_display_screen.dart index e7be692..e08d636 100644 --- a/packages/stream_chat_v1/lib/channel_file_display_screen.dart +++ b/packages/stream_chat_v1/lib/pages/channel_file_display_screen.dart @@ -1,4 +1,4 @@ -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'package:video_player/video_player.dart'; diff --git a/packages/stream_chat_v1/lib/channel_list_page.dart b/packages/stream_chat_v1/lib/pages/channel_list_page.dart similarity index 98% rename from packages/stream_chat_v1/lib/channel_list_page.dart rename to packages/stream_chat_v1/lib/pages/channel_list_page.dart index 6a9438f..128f2c7 100644 --- a/packages/stream_chat_v1/lib/channel_list_page.dart +++ b/packages/stream_chat_v1/lib/pages/channel_list_page.dart @@ -1,8 +1,8 @@ import 'dart:async'; -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:example/routes/routes.dart'; -import 'package:example/user_mentions_page.dart'; +import 'package:example/pages/user_mentions_page.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_app_badger/flutter_app_badger.dart'; @@ -10,7 +10,7 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'package:streaming_shared_preferences/streaming_shared_preferences.dart'; -import 'channel_list.dart'; +import 'package:example/widgets/channel_list.dart'; class ChannelListPage extends StatefulWidget { const ChannelListPage({ diff --git a/packages/stream_chat_v1/lib/channel_media_display_screen.dart b/packages/stream_chat_v1/lib/pages/channel_media_display_screen.dart similarity index 99% rename from packages/stream_chat_v1/lib/channel_media_display_screen.dart rename to packages/stream_chat_v1/lib/pages/channel_media_display_screen.dart index d3789ed..efc6423 100644 --- a/packages/stream_chat_v1/lib/channel_media_display_screen.dart +++ b/packages/stream_chat_v1/lib/pages/channel_media_display_screen.dart @@ -1,4 +1,4 @@ -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:example/routes/routes.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; diff --git a/packages/stream_chat_v1/lib/channel_page.dart b/packages/stream_chat_v1/lib/pages/channel_page.dart similarity index 99% rename from packages/stream_chat_v1/lib/channel_page.dart rename to packages/stream_chat_v1/lib/pages/channel_page.dart index 9a4b057..f6e7af5 100644 --- a/packages/stream_chat_v1/lib/channel_page.dart +++ b/packages/stream_chat_v1/lib/pages/channel_page.dart @@ -1,6 +1,6 @@ import 'package:collection/collection.dart'; import 'package:example/routes/routes.dart'; -import 'package:example/thread_page.dart'; +import 'package:example/pages/thread_page.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; diff --git a/packages/stream_chat_v1/lib/chat_info_screen.dart b/packages/stream_chat_v1/lib/pages/chat_info_screen.dart similarity index 98% rename from packages/stream_chat_v1/lib/chat_info_screen.dart rename to packages/stream_chat_v1/lib/pages/chat_info_screen.dart index 90c2f07..f484e9e 100644 --- a/packages/stream_chat_v1/lib/chat_info_screen.dart +++ b/packages/stream_chat_v1/lib/pages/chat_info_screen.dart @@ -1,11 +1,10 @@ -import 'package:example/localizations.dart'; +import 'package:example/pages/channel_file_display_screen.dart'; +import 'package:example/utils/localizations.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; - -import 'channel_file_display_screen.dart'; -import 'channel_media_display_screen.dart'; -import 'pinned_messages_screen.dart'; +import 'package:example/pages/channel_media_display_screen.dart'; +import 'package:example/pages/pinned_messages_screen.dart'; /// Detail screen for a 1:1 chat correspondence class ChatInfoScreen extends StatefulWidget { diff --git a/packages/stream_chat_v1/lib/choose_user_page.dart b/packages/stream_chat_v1/lib/pages/choose_user_page.dart similarity index 96% rename from packages/stream_chat_v1/lib/choose_user_page.dart rename to packages/stream_chat_v1/lib/pages/choose_user_page.dart index 611804c..8aabf80 100644 --- a/packages/stream_chat_v1/lib/choose_user_page.dart +++ b/packages/stream_chat_v1/lib/pages/choose_user_page.dart @@ -1,15 +1,15 @@ -import 'package:example/app_config.dart'; -import 'package:example/home_page.dart'; -import 'package:example/localizations.dart'; -import 'package:example/stream_version.dart'; +import 'package:example/app.dart'; +import 'package:example/utils/app_config.dart'; +import 'package:example/pages/home_page.dart'; +import 'package:example/utils/localizations.dart'; +import 'package:example/widgets/stream_version.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; -import 'main.dart'; -import 'routes/routes.dart'; +import '../routes/routes.dart'; const kStreamApiKey = 'STREAM_API_KEY'; const kStreamUserId = 'STREAM_USER_ID'; diff --git a/packages/stream_chat_v1/lib/group_chat_details_screen.dart b/packages/stream_chat_v1/lib/pages/group_chat_details_screen.dart similarity index 99% rename from packages/stream_chat_v1/lib/group_chat_details_screen.dart rename to packages/stream_chat_v1/lib/pages/group_chat_details_screen.dart index 6859f2b..5215f3d 100644 --- a/packages/stream_chat_v1/lib/group_chat_details_screen.dart +++ b/packages/stream_chat_v1/lib/pages/group_chat_details_screen.dart @@ -1,9 +1,9 @@ -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'channel_page.dart'; -import 'routes/routes.dart'; +import '../routes/routes.dart'; class GroupChatDetailsScreen extends StatefulWidget { final List? selectedUsers; diff --git a/packages/stream_chat_v1/lib/group_info_screen.dart b/packages/stream_chat_v1/lib/pages/group_info_screen.dart similarity index 99% rename from packages/stream_chat_v1/lib/group_info_screen.dart rename to packages/stream_chat_v1/lib/pages/group_info_screen.dart index d283569..dba8963 100644 --- a/packages/stream_chat_v1/lib/group_info_screen.dart +++ b/packages/stream_chat_v1/lib/pages/group_info_screen.dart @@ -1,12 +1,12 @@ import 'dart:async'; import 'package:collection/collection.dart' show IterableExtension; -import 'package:example/localizations.dart'; +import 'package:example/pages/channel_file_display_screen.dart'; +import 'package:example/utils/localizations.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; -import 'channel_file_display_screen.dart'; import 'channel_media_display_screen.dart'; import 'channel_page.dart'; import 'chat_info_screen.dart'; diff --git a/packages/stream_chat_v1/lib/home_page.dart b/packages/stream_chat_v1/lib/pages/home_page.dart similarity index 96% rename from packages/stream_chat_v1/lib/home_page.dart rename to packages/stream_chat_v1/lib/pages/home_page.dart index e37b862..48eae88 100644 --- a/packages/stream_chat_v1/lib/home_page.dart +++ b/packages/stream_chat_v1/lib/pages/home_page.dart @@ -1,7 +1,7 @@ import 'dart:async'; -import 'package:example/channel_page.dart'; -import 'package:example/notifications_service.dart'; +import 'package:example/pages/channel_page.dart'; +import 'package:example/utils/notifications_service.dart'; import 'package:example/routes/app_routes.dart'; import 'package:example/routes/routes.dart'; import 'package:flutter/material.dart'; diff --git a/packages/stream_chat_v1/lib/new_chat_screen.dart b/packages/stream_chat_v1/lib/pages/new_chat_screen.dart similarity index 99% rename from packages/stream_chat_v1/lib/new_chat_screen.dart rename to packages/stream_chat_v1/lib/pages/new_chat_screen.dart index f0ce098..57ebd02 100644 --- a/packages/stream_chat_v1/lib/new_chat_screen.dart +++ b/packages/stream_chat_v1/lib/pages/new_chat_screen.dart @@ -1,12 +1,12 @@ import 'dart:async'; -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'channel_page.dart'; -import 'chips_input_text_field.dart'; -import 'routes/routes.dart'; +import '../widgets/chips_input_text_field.dart'; +import '../routes/routes.dart'; class NewChatScreen extends StatefulWidget { @override diff --git a/packages/stream_chat_v1/lib/new_group_chat_screen.dart b/packages/stream_chat_v1/lib/pages/new_group_chat_screen.dart similarity index 98% rename from packages/stream_chat_v1/lib/new_group_chat_screen.dart rename to packages/stream_chat_v1/lib/pages/new_group_chat_screen.dart index ff0c175..9948448 100644 --- a/packages/stream_chat_v1/lib/new_group_chat_screen.dart +++ b/packages/stream_chat_v1/lib/pages/new_group_chat_screen.dart @@ -1,11 +1,11 @@ import 'dart:async'; -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; -import 'routes/routes.dart'; -import 'search_text_field.dart'; +import '../routes/routes.dart'; +import '../widgets/search_text_field.dart'; class NewGroupChatScreen extends StatefulWidget { @override @@ -251,7 +251,6 @@ class _NewGroupChatScreenState extends State { onPanDown: (_) => FocusScope.of(context).unfocus(), child: StreamUserListView( controller: userListController, - // groupAlphabetically: _isSearchActive ? false : true, itemBuilder: (context, items, index, defaultWidget) { return defaultWidget.copyWith( selected: _selectedUsers.contains(items[index]), diff --git a/packages/stream_chat_v1/lib/pinned_messages_screen.dart b/packages/stream_chat_v1/lib/pages/pinned_messages_screen.dart similarity index 98% rename from packages/stream_chat_v1/lib/pinned_messages_screen.dart rename to packages/stream_chat_v1/lib/pages/pinned_messages_screen.dart index 7ab6d98..bdf359a 100644 --- a/packages/stream_chat_v1/lib/pinned_messages_screen.dart +++ b/packages/stream_chat_v1/lib/pages/pinned_messages_screen.dart @@ -1,4 +1,4 @@ -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:example/routes/routes.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; diff --git a/packages/stream_chat_v1/lib/splash_screen.dart b/packages/stream_chat_v1/lib/pages/splash_screen.dart similarity index 100% rename from packages/stream_chat_v1/lib/splash_screen.dart rename to packages/stream_chat_v1/lib/pages/splash_screen.dart diff --git a/packages/stream_chat_v1/lib/thread_page.dart b/packages/stream_chat_v1/lib/pages/thread_page.dart similarity index 100% rename from packages/stream_chat_v1/lib/thread_page.dart rename to packages/stream_chat_v1/lib/pages/thread_page.dart diff --git a/packages/stream_chat_v1/lib/user_mentions_page.dart b/packages/stream_chat_v1/lib/pages/user_mentions_page.dart similarity index 98% rename from packages/stream_chat_v1/lib/user_mentions_page.dart rename to packages/stream_chat_v1/lib/pages/user_mentions_page.dart index 3dcbab6..8b8bfa4 100644 --- a/packages/stream_chat_v1/lib/user_mentions_page.dart +++ b/packages/stream_chat_v1/lib/pages/user_mentions_page.dart @@ -1,4 +1,4 @@ -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:example/routes/routes.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; diff --git a/packages/stream_chat_v1/lib/routes/app_routes.dart b/packages/stream_chat_v1/lib/routes/app_routes.dart index 4f913b4..cea1ebe 100644 --- a/packages/stream_chat_v1/lib/routes/app_routes.dart +++ b/packages/stream_chat_v1/lib/routes/app_routes.dart @@ -1,19 +1,19 @@ import 'package:collection/collection.dart'; -import 'package:example/channel_list_page.dart'; +import 'package:example/pages/channel_list_page.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; -import '../advanced_options_page.dart'; -import '../channel_page.dart'; -import '../chat_info_screen.dart'; -import '../choose_user_page.dart'; -import '../group_chat_details_screen.dart'; -import '../group_info_screen.dart'; -import '../home_page.dart'; -import '../main.dart'; -import '../new_chat_screen.dart'; -import '../new_group_chat_screen.dart'; -import '../thread_page.dart'; +import '../app.dart'; +import '../pages/advanced_options_page.dart'; +import '../pages/channel_page.dart'; +import '../pages/chat_info_screen.dart'; +import '../pages/choose_user_page.dart'; +import '../pages/group_chat_details_screen.dart'; +import '../pages/group_info_screen.dart'; +import '../pages/home_page.dart'; +import '../pages/new_chat_screen.dart'; +import '../pages/new_group_chat_screen.dart'; +import '../pages/thread_page.dart'; import 'routes.dart'; class AppRoutes { diff --git a/packages/stream_chat_v1/lib/routes/routes.dart b/packages/stream_chat_v1/lib/routes/routes.dart index 239bd28..8ba2893 100644 --- a/packages/stream_chat_v1/lib/routes/routes.dart +++ b/packages/stream_chat_v1/lib/routes/routes.dart @@ -1,5 +1,5 @@ -/// Define all the route names here -class Routes { +/// Application routes +abstract class Routes { static const String APP = '/app'; static const String HOME = '/home'; static const String CHOOSE_USER = '/choose_user'; diff --git a/packages/stream_chat_v1/lib/app_config.dart b/packages/stream_chat_v1/lib/utils/app_config.dart similarity index 96% rename from packages/stream_chat_v1/lib/app_config.dart rename to packages/stream_chat_v1/lib/utils/app_config.dart index c5fbe67..c977134 100644 --- a/packages/stream_chat_v1/lib/app_config.dart +++ b/packages/stream_chat_v1/lib/utils/app_config.dart @@ -1,5 +1,8 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; +const sentryDsn = + 'https://6381ef88de4140db8f5e25ab37e0f08c@o1213503.ingest.sentry.io/6352870'; + const kDefaultStreamApiKey = 'kv7mcsxr24p8'; final defaultUsers = { diff --git a/packages/stream_chat_v1/lib/localizations.dart b/packages/stream_chat_v1/lib/utils/localizations.dart similarity index 100% rename from packages/stream_chat_v1/lib/localizations.dart rename to packages/stream_chat_v1/lib/utils/localizations.dart diff --git a/packages/stream_chat_v1/lib/notifications_service.dart b/packages/stream_chat_v1/lib/utils/notifications_service.dart similarity index 95% rename from packages/stream_chat_v1/lib/notifications_service.dart rename to packages/stream_chat_v1/lib/utils/notifications_service.dart index 7e32197..b6cafb1 100644 --- a/packages/stream_chat_v1/lib/notifications_service.dart +++ b/packages/stream_chat_v1/lib/utils/notifications_service.dart @@ -1,5 +1,5 @@ -import 'package:example/channel_page.dart'; -import 'package:example/localizations.dart'; +import 'package:example/pages/channel_page.dart'; +import 'package:example/utils/localizations.dart'; import 'package:example/routes/routes.dart'; import 'package:flutter/material.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart' diff --git a/packages/stream_chat_v1/lib/channel_list.dart b/packages/stream_chat_v1/lib/widgets/channel_list.dart similarity index 98% rename from packages/stream_chat_v1/lib/channel_list.dart rename to packages/stream_chat_v1/lib/widgets/channel_list.dart index 39a6c0a..f72ca39 100644 --- a/packages/stream_chat_v1/lib/channel_list.dart +++ b/packages/stream_chat_v1/lib/widgets/channel_list.dart @@ -1,16 +1,16 @@ import 'dart:async'; -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:example/routes/routes.dart'; -import 'package:example/search_text_field.dart'; +import 'package:example/widgets/search_text_field.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; -import 'channel_page.dart'; -import 'chat_info_screen.dart'; -import 'group_info_screen.dart'; +import '../pages/channel_page.dart'; +import '../pages/chat_info_screen.dart'; +import '../pages/group_info_screen.dart'; class ChannelList extends StatefulWidget { @override diff --git a/packages/stream_chat_v1/lib/chips_input_text_field.dart b/packages/stream_chat_v1/lib/widgets/chips_input_text_field.dart similarity index 99% rename from packages/stream_chat_v1/lib/chips_input_text_field.dart rename to packages/stream_chat_v1/lib/widgets/chips_input_text_field.dart index 73149c4..ed1f78c 100644 --- a/packages/stream_chat_v1/lib/chips_input_text_field.dart +++ b/packages/stream_chat_v1/lib/widgets/chips_input_text_field.dart @@ -1,4 +1,4 @@ -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; diff --git a/packages/stream_chat_v1/lib/search_text_field.dart b/packages/stream_chat_v1/lib/widgets/search_text_field.dart similarity index 100% rename from packages/stream_chat_v1/lib/search_text_field.dart rename to packages/stream_chat_v1/lib/widgets/search_text_field.dart diff --git a/packages/stream_chat_v1/lib/stream_version.dart b/packages/stream_chat_v1/lib/widgets/stream_version.dart similarity index 95% rename from packages/stream_chat_v1/lib/stream_version.dart rename to packages/stream_chat_v1/lib/widgets/stream_version.dart index 47d4651..2151470 100644 --- a/packages/stream_chat_v1/lib/stream_version.dart +++ b/packages/stream_chat_v1/lib/widgets/stream_version.dart @@ -1,4 +1,4 @@ -import 'package:example/localizations.dart'; +import 'package:example/utils/localizations.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:yaml/yaml.dart';