From f8bfe36f4724899773b5bfac4a2662f033643120 Mon Sep 17 00:00:00 2001 From: mso7nueh Date: Thu, 27 Jun 2024 10:44:33 +0300 Subject: [PATCH] feat(chat): fix native analyze --- analysis_options.yaml | 3 +- ios/Runner/Info.plist | 5 ++ .../initialization_cubit.dart | 19 +++--- .../chat/presentation/pages/chat_screen.dart | 10 +++- lib/main.dart | 59 ++++++++++--------- pubspec.yaml | 1 + 6 files changed, 60 insertions(+), 37 deletions(-) diff --git a/analysis_options.yaml b/analysis_options.yaml index ee447165..31a0a37e 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -33,6 +33,7 @@ linter: # - newline-before-return # - no-boolean-literal-compare # - no-empty-block -# - prefer-trailing-comma # - prefer-conditional-expressions # - no-equal-then-else +rules: + - prefer-trailing-comma \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index fb188418..0d81ba44 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -52,5 +52,10 @@ UIApplicationSupportsIndirectInputEvents + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + diff --git a/lib/core/initialization_cubit/initialization_cubit.dart b/lib/core/initialization_cubit/initialization_cubit.dart index cd9828ea..57544ae5 100644 --- a/lib/core/initialization_cubit/initialization_cubit.dart +++ b/lib/core/initialization_cubit/initialization_cubit.dart @@ -5,8 +5,6 @@ import 'package:eatvio_app/features/chat/repositories/chat_repository.dart'; import 'package:pusher_client/pusher_client.dart'; class InitializationCubit extends Cubit { - late final webSocketChannel; - final ChatRepository chatRepository; InitializationCubit({required this.chatRepository}) : super(const InitializationState.loading()); @@ -29,20 +27,27 @@ class InitializationCubit extends Cubit { ), ); - PusherClient pusher = PusherClient( + PusherClient pusherClient = PusherClient( wsUrl.key, options, autoConnect: true, enableLogging: true, ); - await pusher.connect(); - - // Channel channel = pusher.subscribe('private-direct-chat.'); - // channel.registerListener(classId, method); + await pusherClient.connect(); emit(const InitializationState.success()); + + Channel channel = pusherClient.subscribe('private-direct-chat.' + '7909ea56-7822-4d5f-8892-134bc937127f'); + + channel.bind("pusher_internal:subscription_succeeded", (PusherEvent? event) { + channel.trigger("pusher_internal:subscription_succeeded", {}); + }); + + channel.registerListener('pusher:subscribe', (data) => print(data.toString())); + } catch (e) { + print(e); emit(InitializationState.error(errorMessage: e.toString())); } } diff --git a/lib/features/chat/presentation/pages/chat_screen.dart b/lib/features/chat/presentation/pages/chat_screen.dart index 4c4bcfe1..4f7867e2 100644 --- a/lib/features/chat/presentation/pages/chat_screen.dart +++ b/lib/features/chat/presentation/pages/chat_screen.dart @@ -1,3 +1,4 @@ +import 'package:eatvio_app/core/initialization_cubit/initialization_cubit.dart'; import 'package:eatvio_app/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart'; import 'package:eatvio_app/features/chat/presentation/bloc/chat_room_cubit/chat_room_state.dart'; import 'package:eatvio_app/features/chat/presentation/widgets/chat_bubble_widget.dart'; @@ -6,7 +7,7 @@ import 'package:flutter/cupertino.dart'; import 'package:eatvio_app/core/app_export.dart'; import 'package:flutter/material.dart'; -class ChatScreen extends StatelessWidget { +class ChatScreen extends StatefulWidget { final String chatId; const ChatScreen({ @@ -14,9 +15,14 @@ class ChatScreen extends StatelessWidget { super.key, }); + @override + State createState() => _ChatScreenState(); +} + +class _ChatScreenState extends State { Widget build(BuildContext context) { return BlocProvider( - create: (BuildContext context) => sl()..initChat(chatId), + create: (BuildContext context) => sl()..initChat(widget.chatId), child: BlocBuilder( builder: (context, state) { if (state is ChatRoomStateLoading) { diff --git a/lib/main.dart b/lib/main.dart index e1f081ee..29191300 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'package:eatvio_app/app_router.dart'; import 'package:eatvio_app/core/initialization_cubit/initialization_cubit.dart'; +import 'package:eatvio_app/core/initialization_cubit/initialization_state.dart'; import 'package:eatvio_app/features/chat/presentation/pages/chat_select_screen/bloc/chat_select_bloc.dart'; import 'package:eatvio_app/features/chat/presentation/pages/chat_select_screen/models/chat_select_model.dart'; import 'package:eatvio_app/locator_service.dart'; @@ -42,7 +43,7 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MultiBlocProvider( providers: [ - BlocProvider(create: (context) => sl()..runInitialization()), + BlocProvider(create: (context) => InitializationCubit(chatRepository: sl())..runInitialization()), BlocProvider(create: (context) => ThemeBloc(ThemeState(themeType: PrefUtils().getThemeData()))), BlocProvider(create: (context) => MyProfileBloc(MyProfileState(myProfileModelObj: MyProfileModel()))..add(MyProfileInitialEvent())), BlocProvider(create: (context) => FeedBloc(FeedState(myProfileModelObj: FeedModel()))..add(FeedInitialEvent())), @@ -51,33 +52,37 @@ class MyApp extends StatelessWidget { create: (context) => ChatSelectBloc(ChatSelectState(chatSelectModelObj: ChatSelectModel()))..add(ChatSelectInitialEvent()), ), ], - child: BlocBuilder( - builder: (context, state) { - return KeyboardDismisser( - gestures: [ - GestureType.onTap, - GestureType.onPanUpdateDownDirection, - ], - child: MaterialApp.router( - theme: theme, - title: 'Eatvio', - routerConfig: AppRouter.appRouter, - debugShowCheckedModeBanner: false, - localizationsDelegates: [ - AppLocalizationDelegate(), - GlobalMaterialLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - ], - supportedLocales: [ - Locale( - 'ru', - '', - ), - ], - ), - ); + child: BlocListener( + listener: (BuildContext context, InitializationState state) { }, + child: BlocBuilder( + builder: (context, state) { + return KeyboardDismisser( + gestures: [ + GestureType.onTap, + GestureType.onPanUpdateDownDirection, + ], + child: MaterialApp.router( + theme: theme, + title: 'Eatvio', + routerConfig: AppRouter.appRouter, + debugShowCheckedModeBanner: false, + localizationsDelegates: [ + AppLocalizationDelegate(), + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: [ + Locale( + 'ru', + '', + ), + ], + ), + ); + }, + ), ), ); } diff --git a/pubspec.yaml b/pubspec.yaml index a3986dba..353e7efd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,7 @@ name: eatvio_app description: A new Flutter project. version: 0.0.0+1 +publish_to: 'none' environment: sdk: ">=3.3.4 <4.0.0"