From 502d03679a106d2459603e17d5da7fc40c0a4b9b Mon Sep 17 00:00:00 2001 From: Pushpam <93931528+Decoder07@users.noreply.github.com> Date: Thu, 7 Dec 2023 12:54:06 +0530 Subject: [PATCH] FLUT-121: Texture View implementation (#1654) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fetching Android SDK from local .m2 * updated implementation * Added texture view implementation * Added dispose texture view method * Fixed errors * Updated pubspec * Added texture view in sample app * Updated implementation * Updated cache extent and add track logic * Added pooling for prebuilt * released sample app version 1.5.78 (378) πŸ€ * Added active speaker * Updated widget tree in screenshare layout * Added event channels in texture-view * Updated android sdk branch * Updated versions * Updated changelog * Updated fastlane * released sample app version 1.5.91 (391) πŸ€ * Fixed resolution issue * Updated gemfile * released sample app version 1.5.92 (392) πŸ€ * Updated texture view implementation * Fixed screenshare bugs * released sample app version 1.5.93 (393) πŸ€ * released sample app version 1.5.93 (393) πŸ€ * FLUT-167: Fixed preview stretching bug (#1645) * Fixed colored line issue in grid (#1646) * released sample app version 1.5.95 (395) πŸ€ * Fixed iOS streal url fix (#1647) * released sample app version 1.5.96 (396) πŸ€ * πŸ€– Automated Format and Fix * Updated android sdk version to 2.8.2 * πŸ€– Automated Format and Fix * released sample app version 1.5.97 (397) πŸ€ * πŸ€– Automated Format and Fix * Fixed iOS crash with texture view (#1649) * released sample app version 1.5.98 (398) πŸ€ * πŸ€– Automated Format and Fix * πŸ€– Automated Format and Fix * Fixed activeSpeaker layout while screenshare (#1650) * Added feature to disable name edit on preview (#1651) * Fixed empty message on role change decline (#1652) * Updated changelog * Updated android sdk branch to dev-v2 * Updated android sdk version * Fixed sizing issues * released sample app version 1.5.100 (400) πŸ€ * Removed logs * Corrected comments * removed unused code * πŸ€– Automated Format and Fix * Fixed build.gradle --------- Co-authored-by: Yogesh Singh Co-authored-by: ygit Co-authored-by: Decoder07 --- packages/hms_room_kit/example/pubspec.lock | 24 +- .../lib/src/common/utility_functions.dart | 25 +- .../lib/src/meeting/meeting_page.dart | 4 +- .../lib/src/meeting/meeting_store.dart | 19 +- .../lib/src/preview/preview_page.dart | 3 + .../lib/src/screen_controller.dart | 2 +- .../src/widgets/common_widgets/peer_tile.dart | 6 - .../meeting_modes/custom_grid_view.dart | 313 ------------------ .../meeting_modes/custom_one_to_one_grid.dart | 4 +- .../meeting_modes/one_to_one_mode.dart | 7 +- .../toasts/hms_bring_on_stage_toast.dart | 2 +- packages/hms_room_kit/pubspec.lock | 24 +- packages/hms_room_kit/pubspec.yaml | 1 - packages/hmssdk_flutter/android/build.gradle | 2 - .../hmssdk_flutter/views/HMSTextureView.kt | 1 - .../example/ExampleAppChangelog.txt | 18 +- .../example/android/app/build.gradle | 4 +- .../example/ios/Runner/Info.plist | 4 +- packages/hmssdk_flutter/example/pubspec.lock | 26 +- .../lib/assets/sdk-versions.json | 2 +- .../lib/src/ui/meeting/hms_texture_view.dart | 2 +- 21 files changed, 86 insertions(+), 407 deletions(-) delete mode 100644 packages/hms_room_kit/lib/src/widgets/meeting_modes/custom_grid_view.dart diff --git a/packages/hms_room_kit/example/pubspec.lock b/packages/hms_room_kit/example/pubspec.lock index 039975216..0d22984b5 100644 --- a/packages/hms_room_kit/example/pubspec.lock +++ b/packages/hms_room_kit/example/pubspec.lock @@ -41,14 +41,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" - bot_toast: - dependency: transitive - description: - name: bot_toast - sha256: "6b93030a99a98335b8827ecd83021e92e885ffc61d261d3825ffdecdd17f3bdf" - url: "https://pub.dev" - source: hosted - version: "4.1.3" characters: dependency: transitive description: @@ -85,10 +77,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e + sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5" url: "https://pub.dev" source: hosted - version: "0.3.3+8" + version: "0.3.3+7" crypto: dependency: transitive description: @@ -234,10 +226,10 @@ packages: dependency: transitive description: name: http - sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139 + sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.0" http_parser: dependency: transitive description: @@ -434,10 +426,10 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "5.4.0" platform: dependency: transitive description: @@ -759,10 +751,10 @@ packages: dependency: transitive description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.3.0" sdks: dart: ">=3.1.0 <4.0.0" flutter: ">=3.13.0" diff --git a/packages/hms_room_kit/lib/src/common/utility_functions.dart b/packages/hms_room_kit/lib/src/common/utility_functions.dart index 0981692f0..6049c2b87 100644 --- a/packages/hms_room_kit/lib/src/common/utility_functions.dart +++ b/packages/hms_room_kit/lib/src/common/utility_functions.dart @@ -1,13 +1,12 @@ -//Package imports +///Dart imports import 'dart:io'; import 'dart:math' as math; -import 'package:bot_toast/bot_toast.dart'; +///Package imports import 'package:flutter/material.dart'; import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:hms_room_kit/hms_room_kit.dart'; import 'package:hmssdk_flutter/hmssdk_flutter.dart'; -import 'package:hms_room_kit/src/common/animated_text.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -266,16 +265,16 @@ class Utilities { static void showTimedMetadata(String message, {int time = 1, Alignment align = const Alignment(0, 0.8)}) { - BotToast.showText( - align: align, - wrapToastAnimation: (controller, cancelFunc, widget) => - AnimatedTextWidget( - text: message, duration: Duration(seconds: time)), - onlyOne: false, - textStyle: HMSTextStyle.setTextStyle(fontSize: 14), - text: message, - contentColor: Colors.black87, - duration: Duration(seconds: time)); + // BotToast.showText( + // align: align, + // wrapToastAnimation: (controller, cancelFunc, widget) => + // AnimatedTextWidget( + // text: message, duration: Duration(seconds: time)), + // onlyOne: false, + // textStyle: HMSTextStyle.setTextStyle(fontSize: 14), + // text: message, + // contentColor: Colors.black87, + // duration: Duration(seconds: time)); } static Future getStringData({required String key}) async { diff --git a/packages/hms_room_kit/lib/src/meeting/meeting_page.dart b/packages/hms_room_kit/lib/src/meeting/meeting_page.dart index 5bbc81f4d..e4d869fa2 100644 --- a/packages/hms_room_kit/lib/src/meeting/meeting_page.dart +++ b/packages/hms_room_kit/lib/src/meeting/meeting_page.dart @@ -292,9 +292,11 @@ class _MeetingPageState extends State { context: context, size: size) - : const CustomOneToOneGrid( + : CustomOneToOneGrid( isLocalInsetPresent: false, + peerTracks: + data.item1, ), )); }); diff --git a/packages/hms_room_kit/lib/src/meeting/meeting_store.dart b/packages/hms_room_kit/lib/src/meeting/meeting_store.dart index e6b7a1467..0c5e6509c 100644 --- a/packages/hms_room_kit/lib/src/meeting/meeting_store.dart +++ b/packages/hms_room_kit/lib/src/meeting/meeting_store.dart @@ -1051,10 +1051,21 @@ class MeetingStore extends ChangeNotifier @override void onUpdateSpeakers({required List updateSpeakers}) { //To handle the active speaker mode scenario + + ///This is to handle whether to bring the user to first index + ///In case of normal layout if the user is on the first page i.e + ///index < 6 we don't move the peer to first page. Similarly, if + ///screenshare is on and index < 2 we don't update the position + ///of the peer + int peersInActiveSpeakerLayout = 6; + if (screenShareCount > 0) { + peersInActiveSpeakerLayout = 2; + } + if ((currentPage == 0) && (meetingMode == MeetingMode.activeSpeakerWithInset || meetingMode == MeetingMode.activeSpeakerWithoutInset) && - peerTracks.length > 6) { + peerTracks.length > peersInActiveSpeakerLayout) { /* Here we iterate through the updateSpeakers list * and do the following: * Find the index of the peer @@ -1064,7 +1075,7 @@ class MeetingStore extends ChangeNotifier for (var speaker in updateSpeakers) { int index = peerTracks.indexWhere((previousSpeaker) => previousSpeaker.uid == "${speaker.peer.peerId}mainVideo"); - if (index > 5) { + if (index > (peersInActiveSpeakerLayout - 1)) { PeerTrackNode activeSpeaker = peerTracks[index]; peerTracks.removeAt(index); peerTracks.insert(screenShareCount, activeSpeaker); @@ -1344,7 +1355,9 @@ class MeetingStore extends ChangeNotifier } void addMessage(HMSMessage message) { - messages.add(message); + if (message.type == "chat") { + messages.add(message); + } } void updatePeerAt(HMSPeer peer) { diff --git a/packages/hms_room_kit/lib/src/preview/preview_page.dart b/packages/hms_room_kit/lib/src/preview/preview_page.dart index ceee4d80c..3215c8e03 100644 --- a/packages/hms_room_kit/lib/src/preview/preview_page.dart +++ b/packages/hms_room_kit/lib/src/preview/preview_page.dart @@ -322,6 +322,9 @@ class _PreviewPageState extends State { height: 48, width: width * 0.50, child: TextField( + enabled: widget.name + .trim() + .isEmpty, cursorColor: HMSThemeColors .onSurfaceHighEmphasis, diff --git a/packages/hms_room_kit/lib/src/screen_controller.dart b/packages/hms_room_kit/lib/src/screen_controller.dart index a7ab8d809..9b0090649 100644 --- a/packages/hms_room_kit/lib/src/screen_controller.dart +++ b/packages/hms_room_kit/lib/src/screen_controller.dart @@ -158,7 +158,7 @@ class _ScreenControllerState extends State { value: _previewStore, child: PreviewPage( roomCode: Constant.roomCode, - name: widget.options?.userName ?? "", + name: widget.options?.userName?.trim() ?? "", options: widget.options, )) : PreviewPermissions( diff --git a/packages/hms_room_kit/lib/src/widgets/common_widgets/peer_tile.dart b/packages/hms_room_kit/lib/src/widgets/common_widgets/peer_tile.dart index e00d3e25e..f131045ac 100644 --- a/packages/hms_room_kit/lib/src/widgets/common_widgets/peer_tile.dart +++ b/packages/hms_room_kit/lib/src/widgets/common_widgets/peer_tile.dart @@ -64,12 +64,6 @@ class _PeerTileState extends State { if (mounted) { Provider.of(context, listen: false) .setOffScreenStatus(true); - if (context.read().track != null) { - // log("HMSVideoViewController remove video track ${context.read().peer.name}"); - - ///Avoiding remove track - // widget.videoViewController?.removeTrack(); - } } }, onFocusGained: () { diff --git a/packages/hms_room_kit/lib/src/widgets/meeting_modes/custom_grid_view.dart b/packages/hms_room_kit/lib/src/widgets/meeting_modes/custom_grid_view.dart deleted file mode 100644 index 186c11295..000000000 --- a/packages/hms_room_kit/lib/src/widgets/meeting_modes/custom_grid_view.dart +++ /dev/null @@ -1,313 +0,0 @@ -///Package imports -import 'package:dots_indicator/dots_indicator.dart'; -import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; -import 'package:tuple/tuple.dart'; - -///Project imports -import 'package:hms_room_kit/hms_room_kit.dart'; -import 'package:hms_room_kit/src/meeting/meeting_store.dart'; -import 'package:hms_room_kit/src/model/peer_track_node.dart'; -import 'package:hms_room_kit/src/widgets/common_widgets/peer_tile.dart'; - -///This widget renders the grid view of the meeting screen without inset tile -///The grid view is rendered based on the number of peers in the meeting -///The grid view is rendered using the [PageView] widget -class CustomGridView extends StatefulWidget { - const CustomGridView({super.key}); - - @override - State createState() => _CustomGridViewState(); -} - -class _CustomGridViewState extends State { - PageController controller = PageController(); - int tileNumber = 0; - - @override - Widget build(BuildContext context) { - ///The grid view is rendered using the [PageView] widget - ///The number of pages in the [PageView] is equal to [numberOfPeers/6 + (if number of peers is not divisible by 6 then we add 1 else we add 0)] - return Selector, int, int>>( - selector: (_, meetingStore) => Tuple3(meetingStore.peerTracks, - meetingStore.peerTracks.length, meetingStore.currentPage), - builder: (_, data, __) { - int pageCount = (data.item2 ~/ 6) + (data.item2 % 6 == 0 ? 0 : 1); - return Column( - children: [ - Expanded( - child: PageView.builder( - physics: const PageScrollPhysics(), - scrollDirection: Axis.horizontal, - controller: controller, - allowImplicitScrolling: true, - itemCount: pageCount, - onPageChanged: (newPage) { - context.read().setCurrentPage(newPage); - }, - itemBuilder: (context, index) => - _generateGrid(data.item2, index, data.item1)), - ), - - ///This renders the dots at the bottom of the grid view - ///This is only rendered if the number of pages is greater than 1 - ///The number of dots is equal to [numberOfPeers/6 + (if number of peers is not divisible by 6 then we add 1 else we add 0)] - ///The active dot is the current page - ///The inactive dots are the pages other than the current page - if (pageCount > 1) - Padding( - padding: const EdgeInsets.only(top: 8.0), - child: DotsIndicator( - dotsCount: - (data.item2 ~/ 6) + (data.item2 % 6 == 0 ? 0 : 1), - position: data.item3, - decorator: DotsDecorator( - activeColor: HMSThemeColors.onSurfaceHighEmphasis, - color: HMSThemeColors.onSurfaceLowEmphasis), - ), - ) - ], - ); - }); - } - - ///This function generates the grid view based on the number of peers in the meeting - Widget _generateGrid( - int numberOfTiles, int index, List peerTrackNode) { - int tileToBeRendered = 0; - - ///Here we check how many tiles we need to render - ///So if still there are 6 or more tiles to be rendered then we render 6 tiles - ///else we render the remaining tiles - /// - ///This is done to decide which layout we need to render - if ((6 * (index + 1) > numberOfTiles)) { - tileToBeRendered = numberOfTiles - 6 * (index); - } else { - tileToBeRendered = 6; - } - - ///This contains the starting index of tile to be rendered - tileNumber = 6 * index; - - ///Here we render the tile layout based on how many tiles we need to render - ///If we need to render 1 tile then we render the [ListenablePeerWidget] - ///If we need to render 2 tiles then we render the [TwoTileLayout] - ///If we need to render 3 tiles then we render the [ThreeTileLayout] - ///If we need to render 4 tiles then we render the [FourTileLayout] - ///If we need to render 5 tiles then we render the [FiveTileLayout] - ///If we need to render 6 tiles then we render the [SixTileLayout] - if (tileToBeRendered == 6) { - return sixTileLayout(peerTrackNode); - } - switch (tileToBeRendered % 6) { - case 1: - return singleTileLayout(peerTrackNode); - - case 2: - return twoTileLayout(peerTrackNode); - - case 3: - return threeTileLayout(peerTrackNode); - - case 4: - return fourTileLayout(peerTrackNode); - - case 5: - return fiveTileLayout(peerTrackNode); - } - return sixTileLayout(peerTrackNode); - } - - Widget sixTileLayout(List peerTracks) { - return Column( - children: [ - Expanded( - child: Row(children: [ - Expanded( - child: Container(child: peerWidget(tileNumber, peerTracks)), - ), - const SizedBox( - width: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 1, peerTracks)), - ) - ]), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: Row(children: [ - Expanded( - child: Container(child: peerWidget(tileNumber + 2, peerTracks)), - ), - const SizedBox( - width: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 3, peerTracks)), - ) - ]), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: Row(children: [ - Expanded( - child: Container(child: peerWidget(tileNumber + 4, peerTracks)), - ), - const SizedBox( - width: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 5, peerTracks)), - ) - ]), - ), - ], - ); - } - - Widget fiveTileLayout(List peerTracks) { - return Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Row(children: [ - Expanded( - child: Container(child: peerWidget(tileNumber, peerTracks)), - ), - const SizedBox( - width: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 1, peerTracks)), - ), - ]), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: Row(children: [ - Expanded( - child: Container(child: peerWidget(tileNumber + 2, peerTracks)), - ), - const SizedBox( - width: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 3, peerTracks)), - ), - ]), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: Padding( - padding: EdgeInsets.symmetric( - horizontal: MediaQuery.of(context).size.width / 4), - child: Container( - child: peerWidget(tileNumber + 4, peerTracks), - ), - ), - ), - ], - ); - } - - Widget fourTileLayout(List peerTracks) { - return Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Row(children: [ - Expanded( - child: Container(child: peerWidget(tileNumber, peerTracks)), - ), - const SizedBox( - width: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 1, peerTracks)), - ), - ]), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: Row(children: [ - Expanded( - child: Container(child: peerWidget(tileNumber + 2, peerTracks)), - ), - const SizedBox( - width: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 3, peerTracks)), - ), - ]), - ), - ], - ); - } - - Widget threeTileLayout(List peerTracks) { - return Column( - children: [ - Expanded( - child: Container(child: peerWidget(tileNumber, peerTracks)), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 1, peerTracks)), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 2, peerTracks)), - ), - ], - ); - } - - Widget twoTileLayout(List peerTracks) { - return SizedBox( - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Expanded( - child: Container(child: peerWidget(tileNumber, peerTracks)), - ), - const SizedBox( - height: 8, - ), - Expanded( - child: Container(child: peerWidget(tileNumber + 1, peerTracks)), - ), - ], - ), - ); - } - - Widget singleTileLayout(List peerTracks) { - return Container(child: peerWidget(tileNumber, peerTracks)); - } - - Widget peerWidget(int index, List peerTracks) { - return ChangeNotifierProvider.value( - key: ValueKey("${peerTracks[index].uid}video_view"), - value: peerTracks[index], - child: PeerTile( - key: ValueKey("${peerTracks[index].uid}audio_view"), - )); - } -} diff --git a/packages/hms_room_kit/lib/src/widgets/meeting_modes/custom_one_to_one_grid.dart b/packages/hms_room_kit/lib/src/widgets/meeting_modes/custom_one_to_one_grid.dart index db5064ed4..99dac3e54 100644 --- a/packages/hms_room_kit/lib/src/widgets/meeting_modes/custom_one_to_one_grid.dart +++ b/packages/hms_room_kit/lib/src/widgets/meeting_modes/custom_one_to_one_grid.dart @@ -18,7 +18,9 @@ import 'package:hms_room_kit/src/widgets/grid_layouts/screen_share_grid_layout.d ///[isLocalInsetPresent] is used to check if the local inset tile is present or not class CustomOneToOneGrid extends StatefulWidget { final bool isLocalInsetPresent; - const CustomOneToOneGrid({super.key, this.isLocalInsetPresent = true}); + final List? peerTracks; + const CustomOneToOneGrid( + {super.key, this.isLocalInsetPresent = true, this.peerTracks}); @override State createState() => _CustomOneToOneGridState(); diff --git a/packages/hms_room_kit/lib/src/widgets/meeting_modes/one_to_one_mode.dart b/packages/hms_room_kit/lib/src/widgets/meeting_modes/one_to_one_mode.dart index df926fd70..0c3f8b289 100644 --- a/packages/hms_room_kit/lib/src/widgets/meeting_modes/one_to_one_mode.dart +++ b/packages/hms_room_kit/lib/src/widgets/meeting_modes/one_to_one_mode.dart @@ -82,8 +82,9 @@ class _OneToOneModeState extends State { /// ///This is the case when the local peer is null or it doesn't have audio or videotrack (oneToOnePeer == null) - ? const CustomOneToOneGrid( + ? CustomOneToOneGrid( isLocalInsetPresent: false, + peerTracks: widget.peerTracks, ) ///This handles the case where local peer is the only peer in the room with audio or video track @@ -97,7 +98,9 @@ class _OneToOneModeState extends State { ///i.e. this handles the normal flow : Stack( children: [ - const CustomOneToOneGrid(), + CustomOneToOneGrid( + peerTracks: widget.peerTracks, + ), DraggableWidget( dragAnimationScale: 1, topMargin: 10, diff --git a/packages/hms_room_kit/lib/src/widgets/toasts/hms_bring_on_stage_toast.dart b/packages/hms_room_kit/lib/src/widgets/toasts/hms_bring_on_stage_toast.dart index 0b77cb457..55d54e0b1 100644 --- a/packages/hms_room_kit/lib/src/widgets/toasts/hms_bring_on_stage_toast.dart +++ b/packages/hms_room_kit/lib/src/widgets/toasts/hms_bring_on_stage_toast.dart @@ -83,7 +83,7 @@ class HMSBringOnStageToast extends StatelessWidget { } }, height: 36, - width: 135, + width: 128, buttonColor: HMSThemeColors.secondaryDefault, textColor: HMSThemeColors.onSecondaryHighEmphasis, ), diff --git a/packages/hms_room_kit/pubspec.lock b/packages/hms_room_kit/pubspec.lock index c897422fb..6487a9a7c 100644 --- a/packages/hms_room_kit/pubspec.lock +++ b/packages/hms_room_kit/pubspec.lock @@ -41,14 +41,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" - bot_toast: - dependency: "direct main" - description: - name: bot_toast - sha256: "6b93030a99a98335b8827ecd83021e92e885ffc61d261d3825ffdecdd17f3bdf" - url: "https://pub.dev" - source: hosted - version: "4.1.3" characters: dependency: transitive description: @@ -85,10 +77,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e + sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5" url: "https://pub.dev" source: hosted - version: "0.3.3+8" + version: "0.3.3+7" crypto: dependency: transitive description: @@ -219,10 +211,10 @@ packages: dependency: transitive description: name: http - sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139 + sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.0" http_parser: dependency: transitive description: @@ -419,10 +411,10 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "5.4.0" platform: dependency: transitive description: @@ -744,10 +736,10 @@ packages: dependency: transitive description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.3.0" sdks: dart: ">=3.1.0 <4.0.0" flutter: ">=3.13.0" diff --git a/packages/hms_room_kit/pubspec.yaml b/packages/hms_room_kit/pubspec.yaml index 63141d884..62f4bb34f 100644 --- a/packages/hms_room_kit/pubspec.yaml +++ b/packages/hms_room_kit/pubspec.yaml @@ -20,7 +20,6 @@ dependencies: permission_handler: ^11.0.0 provider: ^6.0.5 google_fonts: ^6.1.0 - bot_toast: ^4.0.4 draggable_widget: ^2.0.0 badges: ^3.1.1 shared_preferences: ^2.2.0 diff --git a/packages/hmssdk_flutter/android/build.gradle b/packages/hmssdk_flutter/android/build.gradle index 019e12a8a..2ac0b37ec 100644 --- a/packages/hmssdk_flutter/android/build.gradle +++ b/packages/hmssdk_flutter/android/build.gradle @@ -10,7 +10,6 @@ buildscript { repositories { google() mavenCentral() - maven { url 'https://jitpack.io' } } dependencies { @@ -21,7 +20,6 @@ buildscript { rootProject.allprojects { repositories { -// mavenlocal() google() mavenCentral() maven { url 'https://jitpack.io' } diff --git a/packages/hmssdk_flutter/android/src/main/kotlin/live/hms/hmssdk_flutter/views/HMSTextureView.kt b/packages/hmssdk_flutter/android/src/main/kotlin/live/hms/hmssdk_flutter/views/HMSTextureView.kt index 9d70dc219..82186a16e 100644 --- a/packages/hmssdk_flutter/android/src/main/kotlin/live/hms/hmssdk_flutter/views/HMSTextureView.kt +++ b/packages/hmssdk_flutter/android/src/main/kotlin/live/hms/hmssdk_flutter/views/HMSTextureView.kt @@ -29,7 +29,6 @@ class HMSTextureView( private val videoViewStateChangeListener = object : VideoViewStateChangeListener{ override fun onResolutionChange(newWidth: kotlin.Int, newHeight: kotlin.Int) { - Log.i("Vkohli", "onResolutionChange -> newWidth:$newWidth, newHeight-> $newHeight") val args = HashMap() args["event_name"] = "on_resolution_changed" val data = HashMap() diff --git a/packages/hmssdk_flutter/example/ExampleAppChangelog.txt b/packages/hmssdk_flutter/example/ExampleAppChangelog.txt index 603563cbb..6292c0c06 100644 --- a/packages/hmssdk_flutter/example/ExampleAppChangelog.txt +++ b/packages/hmssdk_flutter/example/ExampleAppChangelog.txt @@ -3,15 +3,19 @@ Board: https://100ms.atlassian.net/jira/software/projects/FLUT/boards/34/ - Added TextureView in place of SurfaceView for better performance https://100ms.atlassian.net/browse/FLUT-121 -- Video on preview is stretched. -https://100ms.atlassian.net/browse/FLUT-167 +- Disable editing username in preview screen if username is passed to prebuilt in options config +https://100ms.atlassian.net/browse/FLUT-158 -- when swiping page, there’s tile colored line between tiles. -https://100ms.atlassian.net/browse/FLUT-166 +- Getting 3 blank messages for flutter on stage user if declined 3 invite before +https://100ms.atlassian.net/browse/FLUT-172 -RC build +- Active Speaker should come within first 2 tiles when doing Screenshare +https://100ms.atlassian.net/browse/FLUT-161 + +- Flutter iOS VNRT to stage, app crash. +https://100ms.atlassian.net/browse/FLUT-173 Room Kit: 1.0.7 Core SDK: 1.9.4 -Android SDK: 2.8.2 -iOS SDK: 1.3.0 +Android SDK: 2.8.3 +iOS SDK: 1.3.1 diff --git a/packages/hmssdk_flutter/example/android/app/build.gradle b/packages/hmssdk_flutter/example/android/app/build.gradle index 91546b5d0..65bf96f55 100644 --- a/packages/hmssdk_flutter/example/android/app/build.gradle +++ b/packages/hmssdk_flutter/example/android/app/build.gradle @@ -32,8 +32,8 @@ android { applicationId "live.hms.flutter" minSdkVersion 21 targetSdkVersion 33 - versionCode 398 - versionName "1.5.98" + versionCode 400 + versionName "1.5.100" } signingConfigs { diff --git a/packages/hmssdk_flutter/example/ios/Runner/Info.plist b/packages/hmssdk_flutter/example/ios/Runner/Info.plist index ded573211..1a590b7d7 100644 --- a/packages/hmssdk_flutter/example/ios/Runner/Info.plist +++ b/packages/hmssdk_flutter/example/ios/Runner/Info.plist @@ -21,7 +21,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.5.98 + 1.5.100 CFBundleSignature ???? CFBundleURLTypes @@ -48,7 +48,7 @@ CFBundleVersion - 398 + 400 ITSAppUsesNonExemptEncryption LSApplicationCategoryType diff --git a/packages/hmssdk_flutter/example/pubspec.lock b/packages/hmssdk_flutter/example/pubspec.lock index f81a063e2..cff025339 100644 --- a/packages/hmssdk_flutter/example/pubspec.lock +++ b/packages/hmssdk_flutter/example/pubspec.lock @@ -49,14 +49,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" - bot_toast: - dependency: transitive - description: - name: bot_toast - sha256: "6b93030a99a98335b8827ecd83021e92e885ffc61d261d3825ffdecdd17f3bdf" - url: "https://pub.dev" - source: hosted - version: "4.1.3" characters: dependency: transitive description: @@ -93,10 +85,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e + sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5" url: "https://pub.dev" source: hosted - version: "0.3.3+8" + version: "0.3.3+7" crypto: dependency: transitive description: @@ -306,10 +298,10 @@ packages: dependency: transitive description: name: http - sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139 + sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.0" http_parser: dependency: transitive description: @@ -514,10 +506,10 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "5.4.0" platform: dependency: transitive description: @@ -871,10 +863,10 @@ packages: dependency: transitive description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "6.3.0" sdks: - dart: ">=3.2.0 <4.0.0" + dart: ">=3.2.0-194.0.dev <4.0.0" flutter: ">=3.13.0" diff --git a/packages/hmssdk_flutter/lib/assets/sdk-versions.json b/packages/hmssdk_flutter/lib/assets/sdk-versions.json index 444bb2d86..56b239ded 100644 --- a/packages/hmssdk_flutter/lib/assets/sdk-versions.json +++ b/packages/hmssdk_flutter/lib/assets/sdk-versions.json @@ -3,5 +3,5 @@ "ios": "1.3.1", "iOSBroadcastExtension": "0.0.9", "iOSHLSPlayerSDK": "0.0.2", - "android": "2.8.2" + "android": "2.8.3" } diff --git a/packages/hmssdk_flutter/lib/src/ui/meeting/hms_texture_view.dart b/packages/hmssdk_flutter/lib/src/ui/meeting/hms_texture_view.dart index 26145fae5..35e188382 100644 --- a/packages/hmssdk_flutter/lib/src/ui/meeting/hms_texture_view.dart +++ b/packages/hmssdk_flutter/lib/src/ui/meeting/hms_texture_view.dart @@ -33,7 +33,7 @@ import 'package:hmssdk_flutter/hmssdk_flutter.dart'; /// **key** - [key] property can be used to forcefully rebuild the video widget by setting a unique key everytime. /// Similarly to avoid rebuilding the key should be kept the same for particular HMSVideoView. /// -/// **addTrackByDefault** - To call addTrack by default as HMSVideoView is attached to the tree. Default value is [true] +/// **addTrackByDefault** - To call addTrack by default as HMSTextureView is attached to the tree. Default value is [true] /// /// **controller** - To control the video view, this is useful for custom usecases when you wish to control the addTrack and removeTrack /// track functionalities on your own.