diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml index 541bca47f..7dbcedd51 100644 --- a/.trunk/trunk.yaml +++ b/.trunk/trunk.yaml @@ -1,19 +1,19 @@ version: 0.1 cli: - version: 1.16.2 + version: 1.17.1 plugins: sources: - id: trunk - ref: v1.2.5 + ref: v1.2.6 uri: https://github.com/trunk-io/plugins lint: enabled: - actionlint@1.6.26 - - checkov@2.5.7 - - osv-scanner@1.4.1 - - trivy@0.45.1 - - trufflehog@3.59.0 - - oxipng@8.0.0 + - checkov@3.0.13 + - osv-scanner@1.4.2 + - trivy@0.46.1 + - trufflehog@3.61.0 + - oxipng@9.0.0 - yamllint@1.32.0 - markdownlint@0.37.0 - prettier@3.0.3 @@ -22,7 +22,7 @@ lint: - shellcheck@0.9.0 - gitleaks@8.18.0 - svgo@3.0.2 - - ktlint@1.0.0 + - ktlint@1.0.1 runtimes: enabled: - python@3.10.8 diff --git a/packages/hms_room_kit/CHANGELOG.md b/packages/hms_room_kit/CHANGELOG.md index 80b91571f..60a73b128 100644 --- a/packages/hms_room_kit/CHANGELOG.md +++ b/packages/hms_room_kit/CHANGELOG.md @@ -5,6 +5,13 @@ | hms_room_kit | [![Pub Version](https://img.shields.io/pub/v/hms_room_kit)](https://pub.dev/packages/hms_room_kit) | | hmssdk_flutter | [![Pub Version](https://img.shields.io/pub/v/hmssdk_flutter)](https://pub.dev/packages/hmssdk_flutter) | +## 1.0.4 - 2023-11-03 + +### 🚀 Added + +- Added capabilities to show/hide controls onTap in conferencing UI +- Updated error message description for error toasts. + ## 1.0.3 - 2023-10-16 ### 🚀 Added diff --git a/packages/hms_room_kit/example/ios/Podfile.lock b/packages/hms_room_kit/example/ios/Podfile.lock index 5014e3d77..cca57bb49 100644 --- a/packages/hms_room_kit/example/ios/Podfile.lock +++ b/packages/hms_room_kit/example/ios/Podfile.lock @@ -9,7 +9,7 @@ PODS: - HMSSDK (1.1.0): - HMSAnalyticsSDK (= 0.0.2) - HMSWebRTC (= 1.0.5116) - - hmssdk_flutter (1.9.0): + - hmssdk_flutter (1.9.1): - Flutter - HMSBroadcastExtensionSDK (= 0.0.9) - HMSHLSPlayerSDK (= 0.0.2) @@ -71,11 +71,11 @@ SPEC CHECKSUMS: HMSBroadcastExtensionSDK: d80fe325f6c928bd8e5176290b5a4b7ae15d6fbb HMSHLSPlayerSDK: 6a54ad4d12f3dc2270d1ecd24019d71282a4f6a3 HMSSDK: 49e3ac665ceb8904d41787ddf99742e8d7d6529a - hmssdk_flutter: 414edcdff09f1587f53b04e9b93b39e6174a61cd + hmssdk_flutter: 6c69bfe89445350e9cd8d1c37a72808aedfbdf02 HMSWebRTC: ae54e9dd91b869051b283b43b14f57d43b7bf8e1 path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 - share_plus: 599aa54e4ea31d4b4c0e9c911bcc26c55e791028 + share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5 shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126 url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 diff --git a/packages/hms_room_kit/example/pubspec.lock b/packages/hms_room_kit/example/pubspec.lock index cd05b0146..9dec1da13 100644 --- a/packages/hms_room_kit/example/pubspec.lock +++ b/packages/hms_room_kit/example/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: archive - sha256: "1227dc3efc4ea571eebb2dfb814506ed2cfb1d4b1b89fb918abdddde617ead3c" + sha256: "7e0d52067d05f2e0324268097ba723b71cb41ac8a6a2b24d1edf9c536b987b03" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.4.6" args: dependency: transitive description: @@ -85,10 +85,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fd832b5384d0d6da4f6df60b854d33accaaeb63aa9e10e736a87381f08dee2cb + sha256: "445db18de832dba8d851e287aff8ccf169bed30d2e94243cb54c7d2f1ed2142c" url: "https://pub.dev" source: hosted - version: "0.3.3+5" + version: "0.3.3+6" crypto: dependency: transitive description: @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" flutter: dependency: "direct main" description: flutter @@ -222,14 +222,14 @@ packages: path: ".." relative: true source: path - version: "1.0.3" + version: "1.0.4" hmssdk_flutter: dependency: transitive description: path: "../../hmssdk_flutter" relative: true source: path - version: "1.9.0" + version: "1.9.1" http: dependency: transitive description: @@ -394,18 +394,18 @@ packages: dependency: transitive description: name: permission_handler - sha256: ad65ba9af42a3d067203641de3fd9f547ded1410bad3b84400c2b4899faede70 + sha256: "284a66179cabdf942f838543e10413246f06424d960c92ba95c84439154fcac8" url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "11.0.1" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: "740c9c9d3090a29cd2fd1f193bba457ac1d2cef1da0ef91f2630d3d9e3c01c15" + sha256: f9fddd3b46109bd69ff3f9efa5006d2d309b7aec0f3c1c5637a60a2d5659e76e url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "11.1.0" permission_handler_apple: dependency: transitive description: @@ -418,10 +418,10 @@ packages: dependency: transitive description: name: permission_handler_platform_interface - sha256: f2343e9fa9c22ae4fd92d4732755bfe452214e7189afcc097380950cf567b4b2 + sha256: "6760eb5ef34589224771010805bea6054ad28453906936f843a8cc4d3a55c4a4" url: "https://pub.dev" source: hosted - version: "3.11.5" + version: "3.12.0" permission_handler_windows: dependency: transitive description: @@ -442,10 +442,10 @@ packages: dependency: transitive description: name: platform - sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 + sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" plugin_platform_interface: dependency: transitive description: @@ -474,26 +474,26 @@ packages: dependency: transitive description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" shared_preferences: dependency: transitive description: name: shared_preferences - sha256: b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac + sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" shared_preferences_android: dependency: transitive description: @@ -514,10 +514,10 @@ packages: dependency: transitive description: name: shared_preferences_linux - sha256: c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: @@ -538,10 +538,10 @@ packages: dependency: transitive description: name: shared_preferences_windows - sha256: f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" sky_engine: dependency: transitive description: flutter @@ -555,6 +555,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" stack_trace: dependency: transitive description: @@ -679,34 +687,34 @@ packages: dependency: transitive description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + sha256: b715b8d3858b6fa9f68f87d20d98830283628014750c2b09b6f516c1da4af2a7 url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "4.1.0" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f" + sha256: b16dadf7eb610e20da044c141b4a0199a5e8082ca21daba68322756f953ce714 url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f" + sha256: a4b01403d5c613db115e30e71eca33f7e9e09f2d3c52c3fb84e16333ecddc539 url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e" + sha256: d26c0e2f237476426523eb25512e4c09fa27c6d33ed659a0e69d79e20b5dc47f url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_math: dependency: transitive description: @@ -735,10 +743,10 @@ packages: dependency: transitive description: name: win32 - sha256: c97defd418eef4ec88c0d1652cdce84b9f7b63dd7198e266d06ac1710d527067 + sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" url: "https://pub.dev" source: hosted - version: "5.0.8" + version: "5.0.9" xdg_directories: dependency: transitive description: diff --git a/packages/hms_room_kit/example/pubspec.yaml b/packages/hms_room_kit/example/pubspec.yaml index 598433295..8cdbc9c79 100644 --- a/packages/hms_room_kit/example/pubspec.yaml +++ b/packages/hms_room_kit/example/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.3 +version: 1.0.4 environment: sdk: ">=2.19.6 <3.0.0" diff --git a/packages/hms_room_kit/lib/src/common/utility_components.dart b/packages/hms_room_kit/lib/src/common/utility_components.dart index 9c2db079d..0c0ac98e3 100644 --- a/packages/hms_room_kit/lib/src/common/utility_components.dart +++ b/packages/hms_room_kit/lib/src/common/utility_components.dart @@ -1087,7 +1087,7 @@ class UtilityComponents { color: HMSThemeColors.backgroundDefault.withOpacity(0.5), child: HMSDisconnectedToast( errorDescription: - "CODE: ${exception.code?.errorCode}, ${exception.message}", + "CODE: ${exception.code?.errorCode}, ${exception.description}", onLeavePressed: onLeavePressed, )); } diff --git a/packages/hms_room_kit/lib/src/hls_viewer/hls_player_store.dart b/packages/hms_room_kit/lib/src/hls_viewer/hls_player_store.dart index 6023ee008..8651d49b7 100644 --- a/packages/hms_room_kit/lib/src/hls_viewer/hls_player_store.dart +++ b/packages/hms_room_kit/lib/src/hls_viewer/hls_player_store.dart @@ -29,7 +29,7 @@ class HLSPlayerStore extends ChangeNotifier { ///In other case we hide th buttons after 5 seconds void startTimerToHideButtons() { _isTimerActive = true; - Timer(const Duration(seconds: 3), () { + Timer(const Duration(seconds: 5), () { if (isStreamPlaying) { areStreamControlsVisible = false; notifyListeners(); diff --git a/packages/hms_room_kit/lib/src/hls_viewer/hls_viewer_bottom_navigation_bar.dart b/packages/hms_room_kit/lib/src/hls_viewer/hls_viewer_bottom_navigation_bar.dart index da98a8a7e..d48687772 100644 --- a/packages/hms_room_kit/lib/src/hls_viewer/hls_viewer_bottom_navigation_bar.dart +++ b/packages/hms_room_kit/lib/src/hls_viewer/hls_viewer_bottom_navigation_bar.dart @@ -58,197 +58,207 @@ class HLSViewerBottomNavigationBar extends StatelessWidget { selector: (_, hlsPlayerStore) => hlsPlayerStore.areStreamControlsVisible, builder: (_, areStreamControlsVisible, __) { - return areStreamControlsVisible - ? Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - ///Leave Button - HMSEmbeddedButton( - onTap: () async => { - await UtilityComponents.onBackPressed(context) - }, - offColor: HMSThemeColors.alertErrorDefault, - disabledBorderColor: - HMSThemeColors.alertErrorDefault, - isActive: false, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/exit_room.svg", - colorFilter: ColorFilter.mode( - HMSThemeColors.alertErrorBrighter, - BlendMode.srcIn), - semanticsLabel: "leave_room_button", + return AnimatedContainer( + duration: const Duration(milliseconds: 200), + height: areStreamControlsVisible ? 40 : 0, + child: areStreamControlsVisible + ? Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ///Leave Button + HMSEmbeddedButton( + onTap: () async => { + await UtilityComponents.onBackPressed(context) + }, + offColor: HMSThemeColors.alertErrorDefault, + disabledBorderColor: + HMSThemeColors.alertErrorDefault, + isActive: false, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/exit_room.svg", + colorFilter: ColorFilter.mode( + HMSThemeColors.alertErrorBrighter, + BlendMode.srcIn), + semanticsLabel: "leave_room_button", + ), ), ), - ), - const SizedBox( - width: 24, - ), - - ///Hand Raise Button - Selector( - selector: (_, meetingStore) => - meetingStore.isRaisedHand, - builder: (_, isRaisedHand, __) { - return HMSEmbeddedButton( - onTap: () => { - context - .read() - .toggleLocalPeerHandRaise(), - }, - enabledBorderColor: HMSThemeColors - .backgroundDim - .withAlpha(64), - onColor: HMSThemeColors.backgroundDim - .withAlpha(64), - isActive: !isRaisedHand, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/hand_outline.svg", - colorFilter: ColorFilter.mode( - HMSThemeColors - .onSurfaceHighEmphasis, - BlendMode.srcIn), - semanticsLabel: "hand_raise_button", - ), - ), - ); - }), - const SizedBox( - width: 24, - ), + const SizedBox( + width: 24, + ), - ///Chat Button - if (HMSRoomLayout.chatData != null) - Selector( - selector: (_, hlsPlayerStore) => - hlsPlayerStore.isChatOpened, - builder: (_, isChatOpened, __) { + ///Hand Raise Button + Selector( + selector: (_, meetingStore) => + meetingStore.isRaisedHand, + builder: (_, isRaisedHand, __) { return HMSEmbeddedButton( onTap: () => { - if (HMSRoomLayout.chatData?.isOverlay ?? - false) - { - context - .read() - .toggleIsChatOpened() - } - else - { - showModalBottomSheet( - isScrollControlled: true, - backgroundColor: - HMSThemeColors.surfaceDim, - shape: - const RoundedRectangleBorder( - borderRadius: BorderRadius.only( - topLeft: - Radius.circular(16), - topRight: - Radius.circular(16)), - ), - context: context, - builder: (ctx) => - ChangeNotifierProvider.value( - value: context - .read(), - child: HMSRoomLayout - .isParticipantsListEnabled - ? const ChatParticipantsTabBar( - tabIndex: 0, - ) - : const ChatOnlyBottomSheet()), - ) - } + context + .read() + .toggleLocalPeerHandRaise(), }, enabledBorderColor: HMSThemeColors .backgroundDim .withAlpha(64), onColor: HMSThemeColors.backgroundDim .withAlpha(64), - isActive: !isChatOpened, + isActive: !isRaisedHand, child: Padding( - padding: const EdgeInsets.all(8.0), - child: Selector( - selector: (_, meetingStore) => - meetingStore - .isNewMessageReceived, - builder: (_, isNewMessageReceived, - __) { - return isNewMessageReceived - ? Badge( - backgroundColor: - HMSThemeColors - .primaryDefault, - child: SvgPicture.asset( + padding: const EdgeInsets.all(8.0), + child: SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/hand_outline.svg", + colorFilter: ColorFilter.mode( + HMSThemeColors + .onSurfaceHighEmphasis, + BlendMode.srcIn), + semanticsLabel: "hand_raise_button", + ), + ), + ); + }), + const SizedBox( + width: 24, + ), + + ///Chat Button + if (HMSRoomLayout.chatData != null) + Selector( + selector: (_, hlsPlayerStore) => + hlsPlayerStore.isChatOpened, + builder: (_, isChatOpened, __) { + return HMSEmbeddedButton( + onTap: () => { + if (HMSRoomLayout + .chatData?.isOverlay ?? + false) + { + context + .read() + .toggleIsChatOpened() + } + else + { + showModalBottomSheet( + isScrollControlled: true, + backgroundColor: + HMSThemeColors.surfaceDim, + shape: + const RoundedRectangleBorder( + borderRadius: + BorderRadius.only( + topLeft: + Radius.circular( + 16), + topRight: + Radius.circular( + 16)), + ), + context: context, + builder: (ctx) => ChangeNotifierProvider + .value( + value: context.read< + MeetingStore>(), + child: HMSRoomLayout + .isParticipantsListEnabled + ? const ChatParticipantsTabBar( + tabIndex: 0, + ) + : const ChatOnlyBottomSheet()), + ) + } + }, + enabledBorderColor: HMSThemeColors + .backgroundDim + .withAlpha(64), + onColor: HMSThemeColors.backgroundDim + .withAlpha(64), + isActive: !isChatOpened, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Selector( + selector: (_, meetingStore) => + meetingStore + .isNewMessageReceived, + builder: (_, + isNewMessageReceived, __) { + return isNewMessageReceived + ? Badge( + backgroundColor: + HMSThemeColors + .primaryDefault, + child: + SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/message_badge_off.svg", + semanticsLabel: + "chat_button", + colorFilter: + ColorFilter.mode( + HMSThemeColors + .onSurfaceHighEmphasis, + BlendMode + .srcIn), + ), + ) + : SvgPicture.asset( "packages/hms_room_kit/lib/src/assets/icons/message_badge_off.svg", - semanticsLabel: - "chat_button", colorFilter: ColorFilter.mode( HMSThemeColors .onSurfaceHighEmphasis, BlendMode .srcIn), - ), - ) - : SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/message_badge_off.svg", - colorFilter: - ColorFilter.mode( - HMSThemeColors - .onSurfaceHighEmphasis, - BlendMode - .srcIn), - semanticsLabel: - "chat_button", - ); - })), - ); - }), + semanticsLabel: + "chat_button", + ); + })), + ); + }), - if (HMSRoomLayout.chatData != null) - const SizedBox( - width: 24, - ), + if (HMSRoomLayout.chatData != null) + const SizedBox( + width: 24, + ), - ///Menu Button - HMSEmbeddedButton( - onTap: () async => { - showModalBottomSheet( - isScrollControlled: true, - backgroundColor: HMSThemeColors.surfaceDim, - shape: const RoundedRectangleBorder( - borderRadius: BorderRadius.only( - topLeft: Radius.circular(16), - topRight: Radius.circular(16)), - ), - context: context, - builder: (ctx) => ChangeNotifierProvider.value( - value: context.read(), - child: const HLSMoreOptionsBottomSheet()), - ) - }, - enabledBorderColor: - HMSThemeColors.backgroundDim.withAlpha(64), - onColor: - HMSThemeColors.backgroundDim.withAlpha(64), - isActive: true, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/menu.svg", - colorFilter: ColorFilter.mode( - HMSThemeColors.onSurfaceHighEmphasis, - BlendMode.srcIn), - semanticsLabel: "more_button"), + ///Menu Button + HMSEmbeddedButton( + onTap: () async => { + showModalBottomSheet( + isScrollControlled: true, + backgroundColor: HMSThemeColors.surfaceDim, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(16), + topRight: Radius.circular(16)), + ), + context: context, + builder: (ctx) => ChangeNotifierProvider.value( + value: context.read(), + child: + const HLSMoreOptionsBottomSheet()), + ) + }, + enabledBorderColor: + HMSThemeColors.backgroundDim.withAlpha(64), + onColor: + HMSThemeColors.backgroundDim.withAlpha(64), + isActive: true, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/menu.svg", + colorFilter: ColorFilter.mode( + HMSThemeColors.onSurfaceHighEmphasis, + BlendMode.srcIn), + semanticsLabel: "more_button"), + ), ), - ), - ], - ) - : Container(); + ], + ) + : Container(), + ); }), ], ), diff --git a/packages/hms_room_kit/lib/src/hls_viewer/hls_viewer_page.dart b/packages/hms_room_kit/lib/src/hls_viewer/hls_viewer_page.dart index ae4f47773..c0e66023a 100644 --- a/packages/hms_room_kit/lib/src/hls_viewer/hls_viewer_page.dart +++ b/packages/hms_room_kit/lib/src/hls_viewer/hls_viewer_page.dart @@ -92,37 +92,25 @@ class _HLSViewerPageState extends State { builder: (_, hasHlsStarted, __) { _setStreamStatus(hasHlsStarted); return (hasHlsStarted) - ? Selector( - selector: (_, hlsPlayerStore) => - hlsPlayerStore - .areStreamControlsVisible, - builder: (_, - areStreamControlsVisible, - __) { - return SizedBox( - width: - MediaQuery.of(context) - .size - .width, - height: - MediaQuery.of(context) - .size - .height, - child: HLSPlayer( - key: Key(context - .read< - MeetingStore>() - .localPeer - ?.peerId ?? - "HLS_PLAYER"), - ratio: Utilities - .getHLSPlayerDefaultRatio( - MediaQuery.of( - context) - .size), - ), - ); - }) + ? SizedBox( + width: MediaQuery.of(context) + .size + .width, + height: MediaQuery.of(context) + .size + .height, + child: HLSPlayer( + key: Key(context + .read() + .localPeer + ?.peerId ?? + "HLS_PLAYER"), + ratio: Utilities + .getHLSPlayerDefaultRatio( + MediaQuery.of(context) + .size), + ), + ) : SizedBox( width: MediaQuery.of(context) .size @@ -146,9 +134,16 @@ class _HLSViewerPageState extends State { .areStreamControlsVisible, builder: (_, areStreamControlsVisible, __) { - return areStreamControlsVisible - ? const HLSViewerHeader() - : Container(); + return AnimatedContainer( + duration: const Duration( + milliseconds: 200), + height: areStreamControlsVisible + ? 100 + : 0, + child: areStreamControlsVisible + ? const HLSViewerHeader() + : Container(), + ); }), const HLSViewerBottomNavigationBar() ], diff --git a/packages/hms_room_kit/lib/src/meeting/meeting_bottom_navigation_bar.dart b/packages/hms_room_kit/lib/src/meeting/meeting_bottom_navigation_bar.dart index f3b8f4bf1..bd33747a2 100644 --- a/packages/hms_room_kit/lib/src/meeting/meeting_bottom_navigation_bar.dart +++ b/packages/hms_room_kit/lib/src/meeting/meeting_bottom_navigation_bar.dart @@ -5,6 +5,7 @@ import 'package:provider/provider.dart'; import 'package:tuple/tuple.dart'; ///Project imports +import 'package:hms_room_kit/src/meeting/meeting_navigation_visibility_controller.dart'; import 'package:hms_room_kit/src/hls_viewer/hls_chat_component.dart'; import 'package:hms_room_kit/src/layout_api/hms_room_layout.dart'; import 'package:hms_room_kit/src/widgets/bottom_sheets/chat_only_bottom_sheet.dart'; @@ -59,191 +60,235 @@ class _MeetingBottomNavigationBarState )) : const SizedBox(); }), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - ///Leave Button - HMSEmbeddedButton( - onTap: () async => - {await UtilityComponents.onBackPressed(context)}, - offColor: HMSThemeColors.alertErrorDefault, - disabledBorderColor: HMSThemeColors.alertErrorDefault, - isActive: false, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/exit_room.svg", - colorFilter: ColorFilter.mode( - HMSThemeColors.alertErrorBrighter, BlendMode.srcIn), - semanticsLabel: "leave_room_button", - ), - ), - ), + Selector( + selector: (_, meetingNavigationVisibilityController) => + meetingNavigationVisibilityController.showControls, + builder: (_, showControls, __) { + return AnimatedContainer( + duration: const Duration(milliseconds: 200), + margin: const EdgeInsets.only(top: 5, bottom: 8.0), + height: showControls ? 40 : 0, + child: showControls + ? Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + ///Leave Button + HMSEmbeddedButton( + onTap: () async => { + await UtilityComponents.onBackPressed(context) + }, + offColor: HMSThemeColors.alertErrorDefault, + disabledBorderColor: + HMSThemeColors.alertErrorDefault, + isActive: false, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/exit_room.svg", + colorFilter: ColorFilter.mode( + HMSThemeColors.alertErrorBrighter, + BlendMode.srcIn), + semanticsLabel: "leave_room_button", + ), + ), + ), - ///Microphone button - ///This button is only rendered if the local peer has the permission to - ///publish audio - if (Provider.of(context) - .localPeer - ?.role - .publishSettings - ?.allowed - .contains("audio") ?? - false) - Selector( - selector: (_, meetingStore) => meetingStore.isMicOn, - builder: (_, isMicOn, __) { - return HMSEmbeddedButton( - onTap: () => - {context.read().toggleMicMuteState()}, - onColor: HMSThemeColors.backgroundDim, - isActive: isMicOn, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SvgPicture.asset( - isMicOn - ? "packages/hms_room_kit/lib/src/assets/icons/mic_state_on.svg" - : "packages/hms_room_kit/lib/src/assets/icons/mic_state_off.svg", - colorFilter: ColorFilter.mode( - HMSThemeColors.onSurfaceHighEmphasis, - BlendMode.srcIn), - semanticsLabel: "audio_mute_button", - ), - ), - ); - }), + ///Microphone button + ///This button is only rendered if the local peer has the permission to + ///publish audio + if (Provider.of(context) + .localPeer + ?.role + .publishSettings + ?.allowed + .contains("audio") ?? + false) + Selector( + selector: (_, meetingStore) => + meetingStore.isMicOn, + builder: (_, isMicOn, __) { + return HMSEmbeddedButton( + onTap: () => { + context + .read() + .toggleMicMuteState() + }, + onColor: HMSThemeColors.backgroundDim, + isActive: isMicOn, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SvgPicture.asset( + isMicOn + ? "packages/hms_room_kit/lib/src/assets/icons/mic_state_on.svg" + : "packages/hms_room_kit/lib/src/assets/icons/mic_state_off.svg", + colorFilter: ColorFilter.mode( + HMSThemeColors + .onSurfaceHighEmphasis, + BlendMode.srcIn), + semanticsLabel: "audio_mute_button", + ), + ), + ); + }), - ///Camera button - ///This button is only rendered if the local peer has the permission to - ///publish video - if (Provider.of(context) - .localPeer - ?.role - .publishSettings - ?.allowed - .contains("video") ?? - false) - Selector>( - selector: (_, meetingStore) => Tuple2(meetingStore.isVideoOn, - meetingStore.meetingMode == MeetingMode.audio), - builder: (_, data, __) { - return HMSEmbeddedButton( - onTap: () => { - (data.item2) - ? null - : context - .read() - .toggleCameraMuteState(), - }, - onColor: HMSThemeColors.backgroundDim, - isActive: data.item1, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SvgPicture.asset( - data.item1 - ? "packages/hms_room_kit/lib/src/assets/icons/cam_state_on.svg" - : "packages/hms_room_kit/lib/src/assets/icons/cam_state_off.svg", - colorFilter: ColorFilter.mode( - HMSThemeColors.onSurfaceHighEmphasis, - BlendMode.srcIn), - semanticsLabel: "video_mute_button"), - ), - ); - }), + ///Camera button + ///This button is only rendered if the local peer has the permission to + ///publish video + if (Provider.of(context) + .localPeer + ?.role + .publishSettings + ?.allowed + .contains("video") ?? + false) + Selector>( + selector: (_, meetingStore) => Tuple2( + meetingStore.isVideoOn, + meetingStore.meetingMode == + MeetingMode.audio), + builder: (_, data, __) { + return HMSEmbeddedButton( + onTap: () => { + (data.item2) + ? null + : context + .read() + .toggleCameraMuteState(), + }, + onColor: HMSThemeColors.backgroundDim, + isActive: data.item1, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SvgPicture.asset( + data.item1 + ? "packages/hms_room_kit/lib/src/assets/icons/cam_state_on.svg" + : "packages/hms_room_kit/lib/src/assets/icons/cam_state_off.svg", + colorFilter: ColorFilter.mode( + HMSThemeColors + .onSurfaceHighEmphasis, + BlendMode.srcIn), + semanticsLabel: "video_mute_button"), + ), + ); + }), - ///Chat Button - if (HMSRoomLayout.chatData != null) - Selector( - selector: (_, meetingStore) => Tuple2( - meetingStore.isNewMessageReceived, - meetingStore.isOverlayChatOpened), - builder: (_, chatState, __) { - return HMSEmbeddedButton( - onTap: () => { - if (HMSRoomLayout.chatData?.isOverlay ?? false) - {context.read().toggleChatOverlay()} - else - { - context.read().getSessionMetadata( - SessionStoreKeyValues.getNameFromMethod( - SessionStoreKey.pinnedMessageSessionKey)), - context.read().setNewMessageFalse(), - showModalBottomSheet( - isScrollControlled: true, - backgroundColor: HMSThemeColors.surfaceDim, - shape: const RoundedRectangleBorder( - borderRadius: BorderRadius.only( - topLeft: Radius.circular(16), - topRight: Radius.circular(16)), - ), - context: context, - builder: (ctx) => ChangeNotifierProvider.value( - value: context.read(), - child: HMSRoomLayout.isParticipantsListEnabled - ? const ChatParticipantsTabBar( - tabIndex: 0, - ) - : const ChatOnlyBottomSheet()), - ) - } - }, - onColor: HMSThemeColors.backgroundDim, - isActive: !(chatState.item2 && - (HMSRoomLayout.chatData?.isOverlay ?? false)), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: chatState.item1 && !chatState.item2 - ? Badge( - backgroundColor: HMSThemeColors.primaryDefault, - child: SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/message_badge_off.svg", - semanticsLabel: "chat_button", + ///Chat Button + if (HMSRoomLayout.chatData != null) + Selector( + selector: (_, meetingStore) => Tuple2( + meetingStore.isNewMessageReceived, + meetingStore.isOverlayChatOpened), + builder: (_, chatState, __) { + return HMSEmbeddedButton( + onTap: () => { + if (HMSRoomLayout.chatData?.isOverlay ?? + false) + { + context + .read() + .toggleChatOverlay() + } + else + { + context + .read() + .getSessionMetadata( + SessionStoreKeyValues + .getNameFromMethod( + SessionStoreKey + .pinnedMessageSessionKey)), + context + .read() + .setNewMessageFalse(), + showModalBottomSheet( + isScrollControlled: true, + backgroundColor: + HMSThemeColors.surfaceDim, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(16), + topRight: + Radius.circular(16)), + ), + context: context, + builder: (ctx) => + ChangeNotifierProvider.value( + value: context + .read(), + child: HMSRoomLayout + .isParticipantsListEnabled + ? const ChatParticipantsTabBar( + tabIndex: 0, + ) + : const ChatOnlyBottomSheet()), + ) + } + }, + onColor: HMSThemeColors.backgroundDim, + isActive: !(chatState.item2 && + (HMSRoomLayout.chatData?.isOverlay ?? + false)), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: chatState.item1 && !chatState.item2 + ? Badge( + backgroundColor: + HMSThemeColors.primaryDefault, + child: SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/message_badge_off.svg", + semanticsLabel: "chat_button", + colorFilter: ColorFilter.mode( + HMSThemeColors + .onSurfaceHighEmphasis, + BlendMode.srcIn), + ), + ) + : SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/message_badge_off.svg", + colorFilter: ColorFilter.mode( + HMSThemeColors + .onSurfaceHighEmphasis, + BlendMode.srcIn), + semanticsLabel: "chat_button", + ), + ), + ); + }), + + ///Menu Button + HMSEmbeddedButton( + onTap: () async => { + showModalBottomSheet( + isScrollControlled: true, + backgroundColor: HMSThemeColors.surfaceDim, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(16), + topRight: Radius.circular(16)), + ), + context: context, + builder: (ctx) => ChangeNotifierProvider.value( + value: context.read(), + child: const AppUtilitiesBottomSheet()), + ) + }, + onColor: HMSThemeColors.backgroundDim, + isActive: true, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/menu.svg", colorFilter: ColorFilter.mode( HMSThemeColors.onSurfaceHighEmphasis, BlendMode.srcIn), - ), - ) - : SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/message_badge_off.svg", - colorFilter: ColorFilter.mode( - HMSThemeColors.onSurfaceHighEmphasis, - BlendMode.srcIn), - semanticsLabel: "chat_button", - ), - ), - ); - }), - - ///Menu Button - HMSEmbeddedButton( - onTap: () async => { - showModalBottomSheet( - isScrollControlled: true, - backgroundColor: HMSThemeColors.surfaceDim, - shape: const RoundedRectangleBorder( - borderRadius: BorderRadius.only( - topLeft: Radius.circular(16), - topRight: Radius.circular(16)), - ), - context: context, - builder: (ctx) => ChangeNotifierProvider.value( - value: context.read(), - child: const AppUtilitiesBottomSheet()), - ) - }, - onColor: HMSThemeColors.backgroundDim, - isActive: true, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/menu.svg", - colorFilter: ColorFilter.mode( - HMSThemeColors.onSurfaceHighEmphasis, BlendMode.srcIn), - semanticsLabel: "more_button"), - ), - ), - ], - ), + semanticsLabel: "more_button"), + ), + ), + ], + ) + : const SizedBox(), + ); + }), ], ); } diff --git a/packages/hms_room_kit/lib/src/meeting/meeting_header.dart b/packages/hms_room_kit/lib/src/meeting/meeting_header.dart index 57e994d19..704703cfe 100644 --- a/packages/hms_room_kit/lib/src/meeting/meeting_header.dart +++ b/packages/hms_room_kit/lib/src/meeting/meeting_header.dart @@ -4,6 +4,7 @@ import 'dart:io'; ///Package imports import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; +import 'package:hms_room_kit/src/meeting/meeting_navigation_visibility_controller.dart'; import 'package:hmssdk_flutter/hmssdk_flutter.dart'; import 'package:provider/provider.dart'; import 'package:tuple/tuple.dart'; @@ -28,227 +29,263 @@ class MeetingHeader extends StatefulWidget { class _MeetingHeaderState extends State { @override Widget build(BuildContext context) { - return Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - ///This renders the logo, live indicator, recording indicator, number of peers - Row( - children: [ - ///This renders the logo - ///If the logo is null, we render an empty SizedBox - ///If the logo is an svg, we render the svg - ///If the logo is an image, we render the image - HMSRoomLayout.roleLayoutData?.logo?.url == null - ? Container() - : HMSRoomLayout.roleLayoutData!.logo!.url!.contains("svg") - ? SvgPicture.network( - HMSRoomLayout.roleLayoutData!.logo!.url!, - height: 30, - width: 30, - ) - : Image.network( - HMSRoomLayout.roleLayoutData!.logo!.url!, - height: 30, - width: 30, - ), - const SizedBox( - width: 12, - ), + return Selector( + selector: (_, meetingNavigationVisibilityController) => + meetingNavigationVisibilityController.showControls, + builder: (_, showControls, __) { + return AnimatedContainer( + duration: const Duration(milliseconds: 200), + margin: + const EdgeInsets.only(left: 15, right: 15, top: 5, bottom: 5), + height: showControls ? 40 : 0, + child: showControls + ? Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + ///This renders the logo, live indicator, recording indicator, number of peers + Row( + children: [ + ///This renders the logo + ///If the logo is null, we render an empty SizedBox + ///If the logo is an svg, we render the svg + ///If the logo is an image, we render the image + HMSRoomLayout.roleLayoutData?.logo?.url == null + ? Container() + : HMSRoomLayout.roleLayoutData!.logo!.url! + .contains("svg") + ? SvgPicture.network( + HMSRoomLayout.roleLayoutData!.logo!.url!, + height: 30, + width: 30, + ) + : Image.network( + HMSRoomLayout.roleLayoutData!.logo!.url!, + height: 30, + width: 30, + ), + const SizedBox( + width: 12, + ), - ///This renders the live status - ///If the HLS streaming is started, we render the live indicator - ///else we render an empty Container - /// - ///For hls streaming status we use the streamingType map from the [MeetingStore] - /// - ///If recording initialising state is true we show the loader - Selector( - selector: (_, meetingStore) => - meetingStore.streamingType['hls'] ?? false, - builder: (_, isHLSStarted, __) { - return isHLSStarted - ? Container( - height: 24, - width: 43, - decoration: BoxDecoration( - color: HMSThemeColors.alertErrorDefault, - borderRadius: BorderRadius.circular(4)), - child: Center( - child: HMSTitleText( - text: "LIVE", - fontSize: 10, - lineHeight: 16, - letterSpacing: 1.5, - textColor: HMSThemeColors.alertErrorBrighter), + ///This renders the live status + ///If the HLS streaming is started, we render the live indicator + ///else we render an empty Container + /// + ///For hls streaming status we use the streamingType map from the [MeetingStore] + /// + ///If recording initialising state is true we show the loader + Selector( + selector: (_, meetingStore) => + meetingStore.streamingType['hls'] ?? false, + builder: (_, isHLSStarted, __) { + return isHLSStarted + ? Container( + height: 24, + width: 43, + decoration: BoxDecoration( + color: HMSThemeColors + .alertErrorDefault, + borderRadius: + BorderRadius.circular(4)), + child: Center( + child: HMSTitleText( + text: "LIVE", + fontSize: 10, + lineHeight: 16, + letterSpacing: 1.5, + textColor: HMSThemeColors + .alertErrorBrighter), + ), + ) + : Container(); + }), + const SizedBox( + width: 8, ), - ) - : Container(); - }), - const SizedBox( - width: 8, - ), - ///This renders the recording status - ///If the recording is started, we render the recording indicator - ///else we render an empty Container - /// - ///For recording status we use the recordingType map from the [MeetingStore] - Selector>( - selector: (_, meetingStore) => Tuple4( - meetingStore.recordingType["browser"] ?? false, - meetingStore.recordingType["server"] ?? false, - meetingStore.recordingType["hls"] ?? false, - meetingStore.isRecordingInInitialisingState), - builder: (_, data, __) { - return (data.item1 || data.item2 || data.item3) - ? SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/record.svg", - height: 24, - width: 24, - colorFilter: ColorFilter.mode( - HMSThemeColors.alertErrorDefault, - BlendMode.srcIn), - ) - : data.item4 - ? SizedBox( - height: 24, - width: 24, - child: CircularProgressIndicator( - strokeWidth: 2, - color: HMSThemeColors.onSurfaceHighEmphasis, - )) - : Container(); - }), - const SizedBox( - width: 8, - ), + ///This renders the recording status + ///If the recording is started, we render the recording indicator + ///else we render an empty Container + /// + ///For recording status we use the recordingType map from the [MeetingStore] + Selector>( + selector: (_, meetingStore) => Tuple4( + meetingStore.recordingType["browser"] ?? + false, + meetingStore.recordingType["server"] ?? false, + meetingStore.recordingType["hls"] ?? false, + meetingStore.isRecordingInInitialisingState), + builder: (_, data, __) { + return (data.item1 || data.item2 || data.item3) + ? SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/record.svg", + height: 24, + width: 24, + colorFilter: ColorFilter.mode( + HMSThemeColors.alertErrorDefault, + BlendMode.srcIn), + ) + : data.item4 + ? SizedBox( + height: 24, + width: 24, + child: CircularProgressIndicator( + strokeWidth: 2, + color: HMSThemeColors + .onSurfaceHighEmphasis, + )) + : Container(); + }), + const SizedBox( + width: 8, + ), - ///This renders the number of peers - ///If the HLS streaming is started, we render the number of peers - ///else we render an empty Container - Selector>( - selector: (_, meetingStore) => Tuple2( - meetingStore.streamingType['hls'] ?? false, - meetingStore.peersInRoom), - builder: (_, data, __) { - return data.item1 - ? Container( - width: 59, - height: 24, - constraints: - const BoxConstraints(minWidth: 59, maxWidth: 70), - decoration: BoxDecoration( - border: Border.all( - color: HMSThemeColors.borderBright, width: 1), - borderRadius: - const BorderRadius.all(Radius.circular(4)), - color: HMSThemeColors.backgroundDim - .withOpacity(0.64)), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/watching.svg", - width: 16, - height: 16, - colorFilter: ColorFilter.mode( - HMSThemeColors.onSurfaceHighEmphasis, - BlendMode.srcIn), - semanticsLabel: "fl_watching", - ), - const SizedBox( - width: 4, - ), - HMSTitleText( - text: Utilities.formatNumber(data.item2), - fontSize: 10, - lineHeight: 10, - letterSpacing: 1.5, - textColor: - HMSThemeColors.onSurfaceHighEmphasis) - ], - )) - : Container(); - }) - ], - ), - Row( - children: [ - ///This renders the switch camera button - ///If the role is allowed to publish video, we render the switch camera button - ///else we render an empty SizedBox - /// - ///If the video is on we disable the button - Selector?>>( - selector: (_, meetingStore) => Tuple2( - meetingStore.isVideoOn, - meetingStore.localPeer?.role.publishSettings?.allowed ?? - []), - builder: (_, data, __) { - return (data.item2?.contains("video") ?? false) - ? HMSEmbeddedButton( - onTap: () => { - if (data.item1) - {context.read().switchCamera()} - }, - isActive: true, - onColor: HMSThemeColors.backgroundDim, - child: SvgPicture.asset( - "packages/hms_room_kit/lib/src/assets/icons/camera.svg", - colorFilter: ColorFilter.mode( - data.item1 - ? HMSThemeColors.onSurfaceHighEmphasis - : HMSThemeColors.onSurfaceLowEmphasis, - BlendMode.srcIn), - fit: BoxFit.scaleDown, - semanticsLabel: "fl_switch_camera", + ///This renders the number of peers + ///If the HLS streaming is started, we render the number of peers + ///else we render an empty Container + Selector>( + selector: (_, meetingStore) => Tuple2( + meetingStore.streamingType['hls'] ?? false, + meetingStore.peersInRoom), + builder: (_, data, __) { + return data.item1 + ? Container( + width: 59, + height: 24, + constraints: const BoxConstraints( + minWidth: 59, maxWidth: 70), + decoration: BoxDecoration( + border: Border.all( + color: + HMSThemeColors.borderBright, + width: 1), + borderRadius: + const BorderRadius.all( + Radius.circular(4)), + color: HMSThemeColors.backgroundDim + .withOpacity(0.64)), + child: Row( + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/watching.svg", + width: 16, + height: 16, + colorFilter: ColorFilter.mode( + HMSThemeColors + .onSurfaceHighEmphasis, + BlendMode.srcIn), + semanticsLabel: "fl_watching", + ), + const SizedBox( + width: 4, + ), + HMSTitleText( + text: Utilities.formatNumber( + data.item2), + fontSize: 10, + lineHeight: 10, + letterSpacing: 1.5, + textColor: HMSThemeColors + .onSurfaceHighEmphasis) + ], + )) + : Container(); + }) + ], + ), + Row( + children: [ + ///This renders the switch camera button + ///If the role is allowed to publish video, we render the switch camera button + ///else we render an empty SizedBox + /// + ///If the video is on we disable the button + Selector?>>( + selector: (_, meetingStore) => Tuple2( + meetingStore.isVideoOn, + meetingStore.localPeer?.role.publishSettings + ?.allowed ?? + []), + builder: (_, data, __) { + return (data.item2?.contains("video") ?? false) + ? HMSEmbeddedButton( + onTap: () => { + if (data.item1) + { + context + .read() + .switchCamera() + } + }, + isActive: true, + onColor: HMSThemeColors.backgroundDim, + child: SvgPicture.asset( + "packages/hms_room_kit/lib/src/assets/icons/camera.svg", + colorFilter: ColorFilter.mode( + data.item1 + ? HMSThemeColors + .onSurfaceHighEmphasis + : HMSThemeColors + .onSurfaceLowEmphasis, + BlendMode.srcIn), + fit: BoxFit.scaleDown, + semanticsLabel: "fl_switch_camera", + ), + ) + : const SizedBox(); + }), + const SizedBox( + width: 16, ), - ) - : const SizedBox(); - }), - const SizedBox( - width: 16, - ), - ///This renders the audio device selection button - ///If the role is allowed to publish audio, we render the audio device selection button - ///else we render an empty SizedBox - Selector( - selector: (_, meetingStore) => - meetingStore.currentAudioDeviceMode, - builder: (_, audioDevice, __) { - return HMSEmbeddedButton( - onTap: () { - ///If the platform is iOS, we use the iOS UI to switch audio output - ///on Android we use the [AudioSettingsBottomSheet] to switch audio output - if (Platform.isIOS) { - context - .read() - .switchAudioOutputUsingiOSUI(); - } else { - showModalBottomSheet( - isScrollControlled: true, - backgroundColor: Colors.transparent, - context: context, - builder: (ctx) => ChangeNotifierProvider.value( - value: context.read(), - child: const AudioSettingsBottomSheet())); - } - }, - onColor: HMSThemeColors.backgroundDim, - isActive: true, - child: SvgPicture.asset( - 'packages/hms_room_kit/lib/src/assets/icons/${Utilities.getAudioDeviceIconName(audioDevice)}.svg', - colorFilter: ColorFilter.mode( - HMSThemeColors.onSurfaceHighEmphasis, - BlendMode.srcIn), - fit: BoxFit.scaleDown, - semanticsLabel: "settings_button", - )); - }), - ], - ) - ], - ); + ///This renders the audio device selection button + ///If the role is allowed to publish audio, we render the audio device selection button + ///else we render an empty SizedBox + Selector( + selector: (_, meetingStore) => + meetingStore.currentAudioDeviceMode, + builder: (_, audioDevice, __) { + return HMSEmbeddedButton( + onTap: () { + ///If the platform is iOS, we use the iOS UI to switch audio output + ///on Android we use the [AudioSettingsBottomSheet] to switch audio output + if (Platform.isIOS) { + context + .read() + .switchAudioOutputUsingiOSUI(); + } else { + showModalBottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + context: context, + builder: (ctx) => + ChangeNotifierProvider.value( + value: context + .read(), + child: + const AudioSettingsBottomSheet())); + } + }, + onColor: HMSThemeColors.backgroundDim, + isActive: true, + child: SvgPicture.asset( + 'packages/hms_room_kit/lib/src/assets/icons/${Utilities.getAudioDeviceIconName(audioDevice)}.svg', + colorFilter: ColorFilter.mode( + HMSThemeColors.onSurfaceHighEmphasis, + BlendMode.srcIn), + fit: BoxFit.scaleDown, + semanticsLabel: "settings_button", + )); + }), + ], + ) + ], + ) + : const SizedBox(), + ); + }); } } diff --git a/packages/hms_room_kit/lib/src/meeting/meeting_navigation_visibility_controller.dart b/packages/hms_room_kit/lib/src/meeting/meeting_navigation_visibility_controller.dart new file mode 100644 index 000000000..194744c18 --- /dev/null +++ b/packages/hms_room_kit/lib/src/meeting/meeting_navigation_visibility_controller.dart @@ -0,0 +1,10 @@ +import 'package:flutter/widgets.dart'; + +class MeetingNavigationVisibilityController extends ChangeNotifier { + bool showControls = true; + + void toggleControlsVisibility() { + showControls = !showControls; + notifyListeners(); + } +} 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 8ed2bbd2d..4cc16a5d4 100644 --- a/packages/hms_room_kit/lib/src/meeting/meeting_page.dart +++ b/packages/hms_room_kit/lib/src/meeting/meeting_page.dart @@ -10,9 +10,12 @@ import 'package:tuple/tuple.dart'; import 'package:hmssdk_flutter/hmssdk_flutter.dart'; ///Project imports -import 'package:hms_room_kit/src/common/utility_functions.dart'; -import 'package:hms_room_kit/src/layout_api/hms_theme_colors.dart'; -import 'package:hms_room_kit/src/widgets/common_widgets/hms_title_text.dart'; +import 'package:hms_room_kit/hms_room_kit.dart'; +import 'package:hms_room_kit/src/enums/meeting_mode.dart'; +import 'package:hms_room_kit/src/model/peer_track_node.dart'; +import 'package:hms_room_kit/src/widgets/meeting_modes/custom_one_to_one_grid.dart'; +import 'package:hms_room_kit/src/widgets/meeting_modes/one_to_one_mode.dart'; +import 'package:hms_room_kit/src/meeting/meeting_navigation_visibility_controller.dart'; import 'package:hms_room_kit/src/meeting/meeting_bottom_navigation_bar.dart'; import 'package:hms_room_kit/src/meeting/meeting_header.dart'; import 'package:hms_room_kit/src/widgets/toasts/hms_bring_on_stage_toast.dart'; @@ -21,17 +24,13 @@ import 'package:hms_room_kit/src/widgets/toasts/hms_role_change_decline_toast.da import 'package:hms_room_kit/src/widgets/toasts/hms_toast_model.dart'; import 'package:hms_room_kit/src/widgets/toasts/hms_toasts_type.dart'; import 'package:hms_room_kit/src/common/utility_components.dart'; -import 'package:hms_room_kit/src/enums/meeting_mode.dart'; -import 'package:hms_room_kit/src/model/peer_track_node.dart'; import 'package:hms_room_kit/src/widgets/app_dialogs/audio_device_change_dialog.dart'; -import 'package:hms_room_kit/src/widgets/meeting_modes/one_to_one_mode.dart'; import 'package:hms_room_kit/src/meeting/meeting_store.dart'; import 'package:hms_room_kit/src/meeting/pip_view.dart'; import 'package:hms_room_kit/src/preview_for_role/preview_for_role_bottom_sheet.dart'; import 'package:hms_room_kit/src/preview_for_role/preview_for_role_header.dart'; import 'package:hms_room_kit/src/widgets/common_widgets/hms_circular_avatar.dart'; import 'package:hms_room_kit/src/widgets/common_widgets/hms_left_room_screen.dart'; -import 'package:hms_room_kit/src/widgets/meeting_modes/custom_one_to_one_grid.dart'; import 'package:hms_room_kit/src/widgets/toasts/hms_recording_error_toast.dart'; ///[MeetingPage] is the main page of the meeting @@ -50,11 +49,14 @@ class MeetingPage extends StatefulWidget { } class _MeetingPageState extends State { + MeetingNavigationVisibilityController? _visibilityController; + @override void initState() { super.initState(); checkAudioState(); _enableForegroundService(); + _visibilityController = MeetingNavigationVisibilityController(); } void checkAudioState() async { @@ -258,58 +260,63 @@ class _MeetingPageState extends State { * - As the peer count increases the mode is switched back to active speaker view in case of default mode * - Remaining as the mode from bottom sheet is selected corresponding grid layout is rendered */ - child: (modeData.item1 == - MeetingMode - .activeSpeakerWithInset && - (context.read().localPeer?.audioTrack != - null || - context - .read< - MeetingStore>() - .localPeer - ?.videoTrack != - null)) - ? OneToOneMode( - bottomMargin: - 225, - peerTracks: - data - .item1, - screenShareCount: - data - .item4, - context: - context, - size: size) - : (modeData.item1 == - MeetingMode - .activeSpeakerWithoutInset) - ? const CustomOneToOneGrid( - isLocalInsetPresent: - false, - ) - : const CustomOneToOneGrid( - isLocalInsetPresent: - false, - )); + child: + GestureDetector( + onTap: () => + _visibilityController + ?.toggleControlsVisibility(), + child: (modeData + .item1 == + MeetingMode + .activeSpeakerWithInset && + (context.read().localPeer?.audioTrack != + null || + context.read().localPeer?.videoTrack != + null)) + ? OneToOneMode( + bottomMargin: + 225, + peerTracks: + data + .item1, + screenShareCount: + data + .item4, + context: + context, + size: size) + : const CustomOneToOneGrid( + isLocalInsetPresent: + false, + ), + )); }); }), - const Column( + Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Padding( - padding: EdgeInsets.only( - left: 15, - right: 15, - top: 5, - bottom: 2), - child: MeetingHeader()), + padding: + const EdgeInsets.only( + left: 15, + right: 15, + top: 5, + bottom: 2), + child: ChangeNotifierProvider.value( + value: + _visibilityController, + child: + const MeetingHeader())), Padding( - padding: EdgeInsets.only( - bottom: 8.0), - child: - MeetingBottomNavigationBar()) + padding: + const EdgeInsets.only( + bottom: 8.0), + child: ChangeNotifierProvider.value( + value: + _visibilityController, + child: + const MeetingBottomNavigationBar())), ], ), 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 64d0a8edd..9c5d3afeb 100644 --- a/packages/hms_room_kit/lib/src/preview/preview_page.dart +++ b/packages/hms_room_kit/lib/src/preview/preview_page.dart @@ -145,8 +145,7 @@ class _PreviewPageState extends State { meetingStore.removeListeners(), meetingStore.peerTracks.clear(), meetingStore.resetForegroundTaskAndOrientation(), - // meetingStore.clearPIPState(), - meetingStore.isRoomEnded = true, + // meetingStore.isRoomEnded = true, previewStore.isMeetingJoined = false, previewStore.hmsSDKInteractor.leave(), HMSThemeColors.resetLayoutColors(), diff --git a/packages/hms_room_kit/lib/src/screen_controller.dart b/packages/hms_room_kit/lib/src/screen_controller.dart index 74da385e9..a7ab8d809 100644 --- a/packages/hms_room_kit/lib/src/screen_controller.dart +++ b/packages/hms_room_kit/lib/src/screen_controller.dart @@ -97,9 +97,11 @@ class _ScreenControllerState extends State { /// - If successful we show the preview page void _initPreview() async { Constant.roomCode = widget.roomCode; - setState(() { - isLoading = true; - }); + if (mounted) { + setState(() { + isLoading = true; + }); + } _hmsSDKInteractor = HMSSDKInteractor( iOSScreenshareConfig: widget.options?.iOSScreenshareConfig, joinWithMutedAudio: AppDebugConfig.joinWithMutedAudio, diff --git a/packages/hms_room_kit/pubspec.lock b/packages/hms_room_kit/pubspec.lock index 550e656a5..eba1d8dde 100644 --- a/packages/hms_room_kit/pubspec.lock +++ b/packages/hms_room_kit/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: archive - sha256: "1227dc3efc4ea571eebb2dfb814506ed2cfb1d4b1b89fb918abdddde617ead3c" + sha256: "7e0d52067d05f2e0324268097ba723b71cb41ac8a6a2b24d1edf9c536b987b03" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.4.6" args: dependency: transitive description: @@ -85,10 +85,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fd832b5384d0d6da4f6df60b854d33accaaeb63aa9e10e736a87381f08dee2cb + sha256: "445db18de832dba8d851e287aff8ccf169bed30d2e94243cb54c7d2f1ed2142c" url: "https://pub.dev" source: hosted - version: "0.3.3+5" + version: "0.3.3+6" crypto: dependency: transitive description: @@ -141,10 +141,10 @@ packages: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" flutter: dependency: "direct main" description: flutter @@ -212,10 +212,10 @@ packages: dependency: "direct main" description: name: hmssdk_flutter - sha256: e8b12fbdde193bc0bfbf0ef40086840c0b8d056778f01c53f4efa15849f35e38 + sha256: "370556fc44ccb950508f9ec67a47285fd901fc2ecce7d0008f0a25e8bbd08389" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" http: dependency: transitive description: @@ -380,18 +380,18 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: ad65ba9af42a3d067203641de3fd9f547ded1410bad3b84400c2b4899faede70 + sha256: "284a66179cabdf942f838543e10413246f06424d960c92ba95c84439154fcac8" url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "11.0.1" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: "740c9c9d3090a29cd2fd1f193bba457ac1d2cef1da0ef91f2630d3d9e3c01c15" + sha256: f9fddd3b46109bd69ff3f9efa5006d2d309b7aec0f3c1c5637a60a2d5659e76e url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "11.1.0" permission_handler_apple: dependency: transitive description: @@ -404,10 +404,10 @@ packages: dependency: transitive description: name: permission_handler_platform_interface - sha256: f2343e9fa9c22ae4fd92d4732755bfe452214e7189afcc097380950cf567b4b2 + sha256: "6760eb5ef34589224771010805bea6054ad28453906936f843a8cc4d3a55c4a4" url: "https://pub.dev" source: hosted - version: "3.11.5" + version: "3.12.0" permission_handler_windows: dependency: transitive description: @@ -428,10 +428,10 @@ packages: dependency: transitive description: name: platform - sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 + sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" plugin_platform_interface: dependency: transitive description: @@ -460,26 +460,26 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac + sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" shared_preferences_android: dependency: transitive description: @@ -500,10 +500,10 @@ packages: dependency: transitive description: name: shared_preferences_linux - sha256: c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: @@ -524,10 +524,10 @@ packages: dependency: transitive description: name: shared_preferences_windows - sha256: f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" sky_engine: dependency: transitive description: flutter @@ -541,6 +541,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" stack_trace: dependency: transitive description: @@ -665,34 +673,34 @@ packages: dependency: transitive description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + sha256: b715b8d3858b6fa9f68f87d20d98830283628014750c2b09b6f516c1da4af2a7 url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "4.1.0" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f" + sha256: b16dadf7eb610e20da044c141b4a0199a5e8082ca21daba68322756f953ce714 url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f" + sha256: a4b01403d5c613db115e30e71eca33f7e9e09f2d3c52c3fb84e16333ecddc539 url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e" + sha256: d26c0e2f237476426523eb25512e4c09fa27c6d33ed659a0e69d79e20b5dc47f url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_math: dependency: transitive description: @@ -721,10 +729,10 @@ packages: dependency: transitive description: name: win32 - sha256: c97defd418eef4ec88c0d1652cdce84b9f7b63dd7198e266d06ac1710d527067 + sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" url: "https://pub.dev" source: hosted - version: "5.0.8" + version: "5.0.9" xdg_directories: dependency: transitive description: diff --git a/packages/hms_room_kit/pubspec.yaml b/packages/hms_room_kit/pubspec.yaml index 198e557e3..16a6d6d4a 100644 --- a/packages/hms_room_kit/pubspec.yaml +++ b/packages/hms_room_kit/pubspec.yaml @@ -1,6 +1,6 @@ name: hms_room_kit description: 100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps. -version: 1.0.3 +version: 1.0.4 homepage: https://www.100ms.live/ repository: https://github.com/100mslive/100ms-flutter issue_tracker: https://github.com/100mslive/100ms-flutter/issues @@ -14,7 +14,7 @@ dependencies: flutter: sdk: flutter - hmssdk_flutter: ^1.9.0 + hmssdk_flutter: ^1.9.1 intl: ^0.18.1 permission_handler: ^11.0.0 provider: ^6.0.5 diff --git a/packages/hmssdk_flutter/CHANGELOG.md b/packages/hmssdk_flutter/CHANGELOG.md index c22ac044e..54709c0cb 100644 --- a/packages/hmssdk_flutter/CHANGELOG.md +++ b/packages/hmssdk_flutter/CHANGELOG.md @@ -5,6 +5,16 @@ | hms_room_kit | [![Pub Version](https://img.shields.io/pub/v/hms_room_kit)](https://pub.dev/packages/hms_room_kit) | | hmssdk_flutter | [![Pub Version](https://img.shields.io/pub/v/hmssdk_flutter)](https://pub.dev/packages/hmssdk_flutter) | +## 1.9.1 - 2023-11-02 + +### Fixed + +- Fixed a bug where `peerLeft` was not getting fired even in case of a broadcaster. + +Updated to Android SDK 2.7.9 & iOS SDK 1.1.0 + +**Full Changelog**: [1.9.0...1.9.1](https://github.com/100mslive/100ms-flutter/compare/1.9.0...1.9.1) + ## 1.9.0 - 2023-10-16 ### Added diff --git a/packages/hmssdk_flutter/android/src/main/kotlin/live/hms/hmssdk_flutter/HMSRtmpStreamingState.kt b/packages/hmssdk_flutter/android/src/main/kotlin/live/hms/hmssdk_flutter/HMSRtmpStreamingState.kt index e901b30ad..aca5ed6d1 100644 --- a/packages/hmssdk_flutter/android/src/main/kotlin/live/hms/hmssdk_flutter/HMSRtmpStreamingState.kt +++ b/packages/hmssdk_flutter/android/src/main/kotlin/live/hms/hmssdk_flutter/HMSRtmpStreamingState.kt @@ -12,7 +12,9 @@ class HMSStreamingState { map["running"] = hmsRtmpStreamingState.running map["error"] = HMSExceptionExtension.toDictionary(hmsRtmpStreamingState.error) if (hmsRtmpStreamingState.running) { - map["started_at"] = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(hmsRtmpStreamingState.startedAt).toString() + hmsRtmpStreamingState.startedAt?.let { + map["started_at"] = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(hmsRtmpStreamingState.startedAt).toString() + } } return map } @@ -23,7 +25,9 @@ class HMSStreamingState { map["running"] = hmsServerRecordingState.running map["error"] = HMSExceptionExtension.toDictionary(hmsServerRecordingState.error) if (hmsServerRecordingState.running) { - map["started_at"] = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(hmsServerRecordingState.startedAt).toString() + hmsServerRecordingState.startedAt?.let { + map["started_at"] = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(hmsServerRecordingState.startedAt).toString() + } } return map } @@ -34,7 +38,9 @@ class HMSStreamingState { map["running"] = hmsBrowserRecordingState.running map["error"] = HMSExceptionExtension.toDictionary(hmsBrowserRecordingState.error) if (hmsBrowserRecordingState.running) { - map["started_at"] = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(hmsBrowserRecordingState.startedAt).toString() + hmsBrowserRecordingState.startedAt?.let { + map["started_at"] = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(hmsBrowserRecordingState.startedAt).toString() + } } map["initialising"] = hmsBrowserRecordingState.initialising return map @@ -57,7 +63,9 @@ class HMSStreamingState { if (hmsHlsRecordingState == null)return null map["running"] = hmsHlsRecordingState.running if (hmsHlsRecordingState.running == true) { - map["started_at"] = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(hmsHlsRecordingState.startedAt).toString() + hmsHlsRecordingState.startedAt?.let { + map["started_at"] = SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(hmsHlsRecordingState.startedAt).toString() + } } return map } diff --git a/packages/hmssdk_flutter/example/ExampleAppChangelog.txt b/packages/hmssdk_flutter/example/ExampleAppChangelog.txt index f3ac83c9c..9c8d39a7d 100644 --- a/packages/hmssdk_flutter/example/ExampleAppChangelog.txt +++ b/packages/hmssdk_flutter/example/ExampleAppChangelog.txt @@ -1,21 +1,18 @@ Board: https://100ms.atlassian.net/jira/software/projects/FLUT/boards/34/ -- Fixed userid bug in prebuilt -https://github.com/100mslive/100ms-flutter/pull/1601 +Disabled chat from the dashboard but can see chat cta and send message +- https://100ms.atlassian.net/browse/FLUT-97 -- Added first class api for hand raise and peer list updates -https://github.com/100mslive/100ms-flutter/pull/1600 +Disconnect error message in toast +- https://100ms.atlassian.net/browse/FLUT-136 -- Added peer list iterator changes for large rooms -https://github.com/100mslive/100ms-flutter/pull/1602 +The application is crashing while joining a room with server recording ON +- https://100ms.atlassian.net/browse/FLUT-138 -Bug fixes: - -- Fix for local tile inset when inset is disabled after role changed - -- VoS joined from flutter cannot be removed from stage +Unable to hide header and footer +- https://100ms.atlassian.net/browse/FLUT-44 Room Kit: 1.0.3 -Core SDK: 1.9.0 -Android SDK: 2.7.7 -iOS SDK: 1.1.0 \ No newline at end of file +Core SDK: 1.9.1 +Android SDK: 2.7.9 +iOS SDK: 1.1.0 diff --git a/packages/hmssdk_flutter/example/android/Gemfile b/packages/hmssdk_flutter/example/android/Gemfile index cdd3a6b34..bf7ea486e 100644 --- a/packages/hmssdk_flutter/example/android/Gemfile +++ b/packages/hmssdk_flutter/example/android/Gemfile @@ -2,5 +2,7 @@ source "https://rubygems.org" gem "fastlane" +gem "activesupport", "= 7.0.8" + plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') eval_gemfile(plugins_path) if File.exist?(plugins_path) diff --git a/packages/hmssdk_flutter/example/android/Gemfile.lock b/packages/hmssdk_flutter/example/android/Gemfile.lock index 9fd1cee63..670047e8b 100644 --- a/packages/hmssdk_flutter/example/android/Gemfile.lock +++ b/packages/hmssdk_flutter/example/android/Gemfile.lock @@ -3,21 +3,26 @@ GEM specs: CFPropertyList (3.0.6) rexml + activesupport (7.0.8) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.826.0) - aws-sdk-core (3.183.0) + aws-partitions (1.836.0) + aws-sdk-core (3.185.1) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.71.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-kms (1.72.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.135.0) + aws-sdk-s3 (1.136.0) aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) @@ -29,6 +34,7 @@ GEM colored2 (3.1.2) commander (4.6.0) highline (~> 2.0.0) + concurrent-ruby (1.2.2) declarative (0.0.20) digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) @@ -36,7 +42,7 @@ GEM unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.103.0) + excon (0.104.0) faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -106,10 +112,10 @@ GEM xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) - fastlane-plugin-firebase_app_distribution (0.7.3) + fastlane-plugin-firebase_app_distribution (0.7.4) google-apis-firebaseappdistribution_v1 (~> 0.3.0) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.49.0) + google-apis-androidpublisher_v3 (0.51.0) google-apis-core (>= 0.11.0, < 2.a) google-apis-core (0.11.1) addressable (~> 2.5, >= 2.5.1) @@ -152,11 +158,14 @@ GEM http-cookie (1.0.5) domain_name (~> 0.5) httpclient (2.8.3) + i18n (1.14.1) + concurrent-ruby (~> 1.0) jmespath (1.6.2) json (2.6.3) jwt (2.7.1) mini_magick (4.12.0) mini_mime (1.1.5) + minitest (5.20.0) multi_json (1.15.0) multipart-post (2.3.0) nanaimo (0.3.0) @@ -192,14 +201,16 @@ GEM tty-screen (0.8.1) tty-spinner (0.9.3) tty-cursor (~> 0.7) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) uber (0.1.0) unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (2.4.2) + unicode-display_width (2.5.0) webrick (1.8.1) word_wrap (1.0.0) - xcodeproj (1.22.0) + xcodeproj (1.23.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -212,12 +223,12 @@ GEM xcpretty (~> 0.2, >= 0.0.7) PLATFORMS - arm64-darwin-21 arm64-darwin-22 DEPENDENCIES + activesupport (= 7.0.8) fastlane fastlane-plugin-firebase_app_distribution BUNDLED WITH - 2.4.17 + 2.4.20 diff --git a/packages/hmssdk_flutter/example/android/app/build.gradle b/packages/hmssdk_flutter/example/android/app/build.gradle index 7e316683d..e2feec773 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 373 - versionName "1.5.73" + versionCode 383 + versionName "1.5.83" } signingConfigs { diff --git a/packages/hmssdk_flutter/example/ios/Gemfile b/packages/hmssdk_flutter/example/ios/Gemfile index cdd3a6b34..b288471e6 100644 --- a/packages/hmssdk_flutter/example/ios/Gemfile +++ b/packages/hmssdk_flutter/example/ios/Gemfile @@ -1,6 +1,7 @@ source "https://rubygems.org" gem "fastlane" +gem "activesupport", "= 7.0.8" plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') eval_gemfile(plugins_path) if File.exist?(plugins_path) diff --git a/packages/hmssdk_flutter/example/ios/Gemfile.lock b/packages/hmssdk_flutter/example/ios/Gemfile.lock index f0920bc04..c74fedc36 100644 --- a/packages/hmssdk_flutter/example/ios/Gemfile.lock +++ b/packages/hmssdk_flutter/example/ios/Gemfile.lock @@ -3,21 +3,26 @@ GEM specs: CFPropertyList (3.0.6) rexml + activesupport (7.0.8) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.826.0) - aws-sdk-core (3.183.0) + aws-partitions (1.836.0) + aws-sdk-core (3.185.1) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.71.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-kms (1.72.0) + aws-sdk-core (~> 3, >= 3.184.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.135.0) + aws-sdk-s3 (1.136.0) aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) @@ -29,6 +34,7 @@ GEM colored2 (3.1.2) commander (4.6.0) highline (~> 2.0.0) + concurrent-ruby (1.2.2) declarative (0.0.20) digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) @@ -36,7 +42,7 @@ GEM unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.103.0) + excon (0.104.0) faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -106,11 +112,11 @@ GEM xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) - fastlane-plugin-firebase_app_distribution (0.7.3) + fastlane-plugin-firebase_app_distribution (0.7.4) google-apis-firebaseappdistribution_v1 (~> 0.3.0) fastlane-plugin-versioning (0.5.2) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.49.0) + google-apis-androidpublisher_v3 (0.51.0) google-apis-core (>= 0.11.0, < 2.a) google-apis-core (0.11.1) addressable (~> 2.5, >= 2.5.1) @@ -153,11 +159,14 @@ GEM http-cookie (1.0.5) domain_name (~> 0.5) httpclient (2.8.3) + i18n (1.14.1) + concurrent-ruby (~> 1.0) jmespath (1.6.2) json (2.6.3) jwt (2.7.1) mini_magick (4.12.0) mini_mime (1.1.5) + minitest (5.20.0) multi_json (1.15.0) multipart-post (2.3.0) nanaimo (0.3.0) @@ -193,14 +202,16 @@ GEM tty-screen (0.8.1) tty-spinner (0.9.3) tty-cursor (~> 0.7) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) uber (0.1.0) unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (2.4.2) + unicode-display_width (2.5.0) webrick (1.8.1) word_wrap (1.0.0) - xcodeproj (1.22.0) + xcodeproj (1.23.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -213,14 +224,13 @@ GEM xcpretty (~> 0.2, >= 0.0.7) PLATFORMS - arm64-darwin-21 arm64-darwin-22 - x86_64-darwin-20 DEPENDENCIES + activesupport (= 7.0.8) fastlane fastlane-plugin-firebase_app_distribution fastlane-plugin-versioning BUNDLED WITH - 2.4.17 + 2.4.20 diff --git a/packages/hmssdk_flutter/example/ios/Podfile.lock b/packages/hmssdk_flutter/example/ios/Podfile.lock index 4f433afa8..04927d6a1 100644 --- a/packages/hmssdk_flutter/example/ios/Podfile.lock +++ b/packages/hmssdk_flutter/example/ios/Podfile.lock @@ -98,7 +98,7 @@ PODS: - HMSSDK (1.1.0): - HMSAnalyticsSDK (= 0.0.2) - HMSWebRTC (= 1.0.5116) - - hmssdk_flutter (1.9.0): + - hmssdk_flutter (1.9.1): - Flutter - HMSBroadcastExtensionSDK (= 0.0.9) - HMSHLSPlayerSDK (= 0.0.2) @@ -232,17 +232,17 @@ SPEC CHECKSUMS: HMSBroadcastExtensionSDK: d80fe325f6c928bd8e5176290b5a4b7ae15d6fbb HMSHLSPlayerSDK: 6a54ad4d12f3dc2270d1ecd24019d71282a4f6a3 HMSSDK: 49e3ac665ceb8904d41787ddf99742e8d7d6529a - hmssdk_flutter: 414edcdff09f1587f53b04e9b93b39e6174a61cd + hmssdk_flutter: 6c69bfe89445350e9cd8d1c37a72808aedfbdf02 HMSWebRTC: ae54e9dd91b869051b283b43b14f57d43b7bf8e1 MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 - package_info_plus: fd030dabf36271f146f1f3beacd48f564b0f17f7 + package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 PromisesSwift: 28dca69a9c40779916ac2d6985a0192a5cb4a265 qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e - share_plus: 599aa54e4ea31d4b4c0e9c911bcc26c55e791028 + share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5 shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126 uni_links: d97da20c7701486ba192624d99bffaaffcfc298a url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/100 1.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/100 1.png new file mode 100644 index 000000000..976327036 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/100 1.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png index 6bf58c37b..659a0dc3e 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/100.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png deleted file mode 100644 index 98abaa738..000000000 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/102.png and /dev/null differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024 1.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024 1.png new file mode 100644 index 000000000..d8d696fb9 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024 1.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png index f3bcc97f3..df281e975 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png index 033075f6d..3665c0818 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/120 1.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/120 1.png new file mode 100644 index 000000000..cd5cbaf60 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/120 1.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png index d3fa24e37..cd5cbaf60 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png index b72d63d25..0a469ae57 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/128.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png index f0140f3f9..8a5e86338 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/144.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png index 035f56329..aa619d81d 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/152.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png index 6ab0076b5..fac4b23df 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/16.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png index 17a3db087..a763886e7 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/167.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png index e105989d0..97d4ef786 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/172.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png index 629db2e7b..da9138ed7 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png index 4f5243844..739f9d76d 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/196.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png index 83dcabb66..bceb546dd 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/20.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png index 1b40d7f40..b3bfdea2d 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/216.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png index 977e807cb..7ca727960 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/256.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/29 1.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/29 1.png new file mode 100644 index 000000000..73818b12b Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/29 1.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png index 665355730..73818b12b 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png index 95e2dfa22..6a83894b1 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/32.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40 1.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40 1.png new file mode 100644 index 000000000..2827a9971 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40 1.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40 2.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40 2.png new file mode 100644 index 000000000..2827a9971 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40 2.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png index cbabeb8db..2827a9971 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png index 459bb2775..567cf264b 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/48.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png index 63ea02a57..f022b9dbd 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/50.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png index 6f1c3ed48..0e30ef788 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/512.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png index 6bf0dc714..db664ddc7 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/55.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png index 544eefbf7..202ffd31d 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58 1.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58 1.png new file mode 100644 index 000000000..7d9c24050 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58 1.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58 2.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58 2.png new file mode 100644 index 000000000..7d9c24050 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58 2.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png index daadeafe7..dd3ca9631 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png index 12aa2408d..a969240ed 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png index 7606d7c57..2a1d9d417 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/64.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png deleted file mode 100644 index d84ea7727..000000000 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/66.png and /dev/null differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png index 7fe82067f..879c34c38 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/72.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png index 1f622dc27..63c10d42c 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/76.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80 1.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80 1.png new file mode 100644 index 000000000..4874f6ed8 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80 1.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80 2.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80 2.png new file mode 100644 index 000000000..4874f6ed8 Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80 2.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png index 1e9070505..5d97d4346 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/87 1.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/87 1.png new file mode 100644 index 000000000..4517ee3db Binary files /dev/null and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/87 1.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png index 3ac56929b..713ce2d3e 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png index 1fac84fcf..1f2a5a1a9 100644 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png and b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/88.png differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png deleted file mode 100644 index 1c82da02e..000000000 Binary files a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/92.png and /dev/null differ diff --git a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index 57394b1f3..82d42305b 100644 --- a/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/packages/hmssdk_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,7 +1,7 @@ { "images": [ { - "filename": "40.png", + "filename": "40 2.png", "idiom": "iphone", "scale": "2x", "size": "20x20" @@ -13,31 +13,31 @@ "size": "20x20" }, { - "filename": "29.png", + "filename": "29 1.png", "idiom": "iphone", "scale": "1x", "size": "29x29" }, { - "filename": "58.png", + "filename": "58 2.png", "idiom": "iphone", "scale": "2x", "size": "29x29" }, { - "filename": "87.png", + "filename": "87 1.png", "idiom": "iphone", "scale": "3x", "size": "29x29" }, { - "filename": "80.png", + "filename": "80 2.png", "idiom": "iphone", "scale": "2x", "size": "40x40" }, { - "filename": "120.png", + "filename": "120 1.png", "idiom": "iphone", "scale": "3x", "size": "40x40" @@ -73,7 +73,7 @@ "size": "20x20" }, { - "filename": "40.png", + "filename": "40 1.png", "idiom": "ipad", "scale": "2x", "size": "20x20" @@ -85,7 +85,7 @@ "size": "29x29" }, { - "filename": "58.png", + "filename": "58 1.png", "idiom": "ipad", "scale": "2x", "size": "29x29" @@ -97,7 +97,7 @@ "size": "40x40" }, { - "filename": "80.png", + "filename": "80 1.png", "idiom": "ipad", "scale": "2x", "size": "40x40" @@ -109,7 +109,7 @@ "size": "50x50" }, { - "filename": "100.png", + "filename": "100 1.png", "idiom": "ipad", "scale": "2x", "size": "50x50" @@ -145,7 +145,7 @@ "size": "83.5x83.5" }, { - "filename": "1024.png", + "filename": "1024 1.png", "idiom": "ios-marketing", "scale": "1x", "size": "1024x1024" @@ -241,7 +241,6 @@ "size": "29x29" }, { - "filename": "66.png", "idiom": "watch", "role": "notificationCenter", "scale": "2x", @@ -265,7 +264,6 @@ "subtype": "40mm" }, { - "filename": "92.png", "idiom": "watch", "role": "appLauncher", "scale": "2x", @@ -281,7 +279,6 @@ "subtype": "44mm" }, { - "filename": "102.png", "idiom": "watch", "role": "appLauncher", "scale": "2x", diff --git a/packages/hmssdk_flutter/example/ios/Runner/Info.plist b/packages/hmssdk_flutter/example/ios/Runner/Info.plist index 208abe8c4..2f28b3b49 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.73 + 1.5.83 CFBundleSignature ???? CFBundleURLTypes @@ -48,7 +48,7 @@ CFBundleVersion - 373 + 383 ITSAppUsesNonExemptEncryption LSApplicationCategoryType diff --git a/packages/hmssdk_flutter/example/pubspec.lock b/packages/hmssdk_flutter/example/pubspec.lock index 3274e9089..98dd1f3d3 100644 --- a/packages/hmssdk_flutter/example/pubspec.lock +++ b/packages/hmssdk_flutter/example/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: archive - sha256: "1227dc3efc4ea571eebb2dfb814506ed2cfb1d4b1b89fb918abdddde617ead3c" + sha256: "7e0d52067d05f2e0324268097ba723b71cb41ac8a6a2b24d1edf9c536b987b03" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.4.6" args: dependency: transitive description: @@ -93,10 +93,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fd832b5384d0d6da4f6df60b854d33accaaeb63aa9e10e736a87381f08dee2cb + sha256: "445db18de832dba8d851e287aff8ccf169bed30d2e94243cb54c7d2f1ed2142c" url: "https://pub.dev" source: hosted - version: "0.3.3+5" + version: "0.3.3+6" crypto: dependency: transitive description: @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" firebase_core: dependency: "direct main" description: @@ -294,14 +294,14 @@ packages: path: "../../hms_room_kit" relative: true source: path - version: "1.0.3" + version: "1.0.4" hmssdk_flutter: dependency: transitive description: path: ".." relative: true source: path - version: "1.9.0" + version: "1.9.1" http: dependency: transitive description: @@ -394,10 +394,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "6ff267fcd9d48cb61c8df74a82680e8b82e940231bb5f68356672fde0397334a" + sha256: "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.2.0" package_info_plus_platform_interface: dependency: transitive description: @@ -474,18 +474,18 @@ packages: dependency: transitive description: name: permission_handler - sha256: ad65ba9af42a3d067203641de3fd9f547ded1410bad3b84400c2b4899faede70 + sha256: "284a66179cabdf942f838543e10413246f06424d960c92ba95c84439154fcac8" url: "https://pub.dev" source: hosted - version: "11.0.0" + version: "11.0.1" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: "740c9c9d3090a29cd2fd1f193bba457ac1d2cef1da0ef91f2630d3d9e3c01c15" + sha256: f9fddd3b46109bd69ff3f9efa5006d2d309b7aec0f3c1c5637a60a2d5659e76e url: "https://pub.dev" source: hosted - version: "11.0.2" + version: "11.1.0" permission_handler_apple: dependency: transitive description: @@ -498,10 +498,10 @@ packages: dependency: transitive description: name: permission_handler_platform_interface - sha256: f2343e9fa9c22ae4fd92d4732755bfe452214e7189afcc097380950cf567b4b2 + sha256: "6760eb5ef34589224771010805bea6054ad28453906936f843a8cc4d3a55c4a4" url: "https://pub.dev" source: hosted - version: "3.11.5" + version: "3.12.0" permission_handler_windows: dependency: transitive description: @@ -522,10 +522,10 @@ packages: dependency: transitive description: name: platform - sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 + sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" plugin_platform_interface: dependency: transitive description: @@ -562,26 +562,26 @@ packages: dependency: transitive description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" shared_preferences: dependency: transitive description: name: shared_preferences - sha256: b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac + sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" shared_preferences_android: dependency: transitive description: @@ -602,10 +602,10 @@ packages: dependency: transitive description: name: shared_preferences_linux - sha256: c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: @@ -626,10 +626,10 @@ packages: dependency: transitive description: name: shared_preferences_windows - sha256: f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" sky_engine: dependency: transitive description: flutter @@ -643,6 +643,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" stack_trace: dependency: transitive description: @@ -791,34 +799,34 @@ packages: dependency: transitive description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + sha256: b715b8d3858b6fa9f68f87d20d98830283628014750c2b09b6f516c1da4af2a7 url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "4.1.0" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f" + sha256: b16dadf7eb610e20da044c141b4a0199a5e8082ca21daba68322756f953ce714 url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f" + sha256: a4b01403d5c613db115e30e71eca33f7e9e09f2d3c52c3fb84e16333ecddc539 url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e" + sha256: d26c0e2f237476426523eb25512e4c09fa27c6d33ed659a0e69d79e20b5dc47f url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.9" vector_math: dependency: transitive description: @@ -847,10 +855,10 @@ packages: dependency: transitive description: name: win32 - sha256: c97defd418eef4ec88c0d1652cdce84b9f7b63dd7198e266d06ac1710d527067 + sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" url: "https://pub.dev" source: hosted - version: "5.0.8" + version: "5.0.9" xdg_directories: dependency: transitive description: diff --git a/packages/hmssdk_flutter/example/pubspec.yaml b/packages/hmssdk_flutter/example/pubspec.yaml index da0a18b7b..98ac3c653 100644 --- a/packages/hmssdk_flutter/example/pubspec.yaml +++ b/packages/hmssdk_flutter/example/pubspec.yaml @@ -4,7 +4,7 @@ description: Demonstrates how to use the hmssdk_flutter plugin. # The following line prevents the package from being accidentally published to # pub.dev using `pub publish`. This is preferred for private packages. publish_to: "none" # Remove this line if you wish to publish to pub.dev -version: 1.9.0 +version: 1.9.1 environment: sdk: ">=2.16.0 <4.0.0" diff --git a/packages/hmssdk_flutter/lib/assets/sdk-versions.json b/packages/hmssdk_flutter/lib/assets/sdk-versions.json index 1f2bd762e..38a7ecca1 100644 --- a/packages/hmssdk_flutter/lib/assets/sdk-versions.json +++ b/packages/hmssdk_flutter/lib/assets/sdk-versions.json @@ -1,7 +1,7 @@ { - "flutter": "1.9.0", + "flutter": "1.9.1", "ios": "1.1.0", "iOSBroadcastExtension": "0.0.9", "iOSHLSPlayerSDK": "0.0.2", - "android": "2.7.7" + "android": "2.7.9" } diff --git a/packages/hmssdk_flutter/lib/src/ui/meeting/hms_video_view.dart b/packages/hmssdk_flutter/lib/src/ui/meeting/hms_video_view.dart index db292f6dd..c2f544c73 100644 --- a/packages/hmssdk_flutter/lib/src/ui/meeting/hms_video_view.dart +++ b/packages/hmssdk_flutter/lib/src/ui/meeting/hms_video_view.dart @@ -3,6 +3,7 @@ import 'dart:io' show Platform; // Flutter imports: import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart' show StandardMessageCodec; // Project imports: @@ -126,6 +127,7 @@ class _PlatformView extends StatelessWidget { ///AndroidView for android it uses surfaceRenderer provided internally by webrtc. if (Platform.isAndroid) { return AndroidView( + hitTestBehavior: PlatformViewHitTestBehavior.transparent, viewType: 'HMSVideoView', onPlatformViewCreated: onPlatformViewCreated, creationParamsCodec: StandardMessageCodec(), @@ -141,6 +143,7 @@ class _PlatformView extends StatelessWidget { } else if (Platform.isIOS) { ///UIKitView for ios it uses VideoView provided by 100ms ios_sdk internally. return UiKitView( + hitTestBehavior: PlatformViewHitTestBehavior.transparent, viewType: 'HMSFlutterPlatformView', onPlatformViewCreated: onPlatformViewCreated, creationParamsCodec: StandardMessageCodec(), diff --git a/packages/hmssdk_flutter/pubspec.yaml b/packages/hmssdk_flutter/pubspec.yaml index f9515341f..68da5c1a4 100644 --- a/packages/hmssdk_flutter/pubspec.yaml +++ b/packages/hmssdk_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: hmssdk_flutter description: Add Real Time Audio & Video calls, Interactive Live Streaming & Recording, Chat, HLS, RTMP, PiP, CallKit, VoIP, Video conferencing, Stream Player & WebRTC-based communications API -version: 1.9.0 +version: 1.9.1 homepage: https://www.100ms.live/ repository: https://github.com/100mslive/100ms-flutter issue_tracker: https://github.com/100mslive/100ms-flutter/issues