Skip to content

Commit

Permalink
Merged develop
Browse files Browse the repository at this point in the history
  • Loading branch information
Decoder07 committed Feb 2, 2024
2 parents e5ca16d + fe4b704 commit 548ceb5
Show file tree
Hide file tree
Showing 23 changed files with 157 additions and 77 deletions.
22 changes: 20 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
[![100ms-svg](https://user-images.githubusercontent.com/93931528/205858417-8c0a0d1b-2d46-4710-9316-7418092fd3d6.svg)](https://100ms.live/)

[![Pub Version](https://img.shields.io/pub/v/hmssdk_flutter)](https://pub.dev/packages/hmssdk_flutter)
[![Build](https://github.com/100mslive/100ms-flutter/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/100mslive/100ms-flutter/actions/workflows/build.yml)
[![License](https://img.shields.io/github/license/100mslive/100ms-flutter)](https://www.100ms.live/)
Expand All @@ -12,6 +10,10 @@

# 100ms Flutter SDK 🎉

<p align="center" width="100%">
<img width="600" height="500" alt="Prebuilt - Edtech" src="https://github.com/100mslive/100ms-flutter/assets/93931528/de8008f7-1fa7-4329-84b4-ce6fedc0833f">
</p>

Integrate Real Time Audio and Video conferencing, Interactive Live Streaming, and Chat in your apps with 100ms Flutter SDK.

With support for HLS and RTMP Live Streaming and Recording, Picture-in-Picture (PiP), CallKit, VoIP, one-to-one Video Call Modes, Audio Rooms, Video Player and much more, add immersive real-time communications to your apps.
Expand Down Expand Up @@ -79,6 +81,22 @@ The default [Example app](https://github.com/100mslive/100ms-flutter/tree/main/p
9. [Live Stream with HLS](https://github.com/100mslive/100ms-flutter/tree/main/sample%20apps/flutter-hls-quickstart)
10. [Full featured App](https://github.com/100mslive/100ms-flutter/tree/main/packages/hmssdk_flutter/example)

<table>
<tr>
<td><img src="https://github.com/100mslive/100ms-flutter/assets/93931528/02f7181e-ef73-48fc-b8cd-ed977b3bc28c"></td>
<td><img src="https://github.com/100mslive/100ms-flutter/assets/93931528/7875bc6d-597c-4213-98f4-7333a660e689"></td>
<td><img src="https://github.com/100mslive/100ms-flutter/assets/93931528/cf10216a-93cb-41c9-b0fd-15b2d05611a0"></td>
</tr>
<tr>
<td><img src="https://github.com/100mslive/100ms-flutter/assets/93931528/e4ba9546-56b6-42ee-bea1-c7733053b2b6"></td>
<td><img src="https://github.com/100mslive/100ms-flutter/assets/93931528/8a0a5a8c-024f-4128-b607-c3ee5957bb17"></td>
<td><img src="https://github.com/100mslive/100ms-flutter/assets/93931528/f292bf26-3061-4c9c-925a-981e7dd6c86b"></td>
</tr>
</table>

<!-- | ![Prebuilt iOS - 3](https://github.com/100mslive/100ms-flutter/assets/93931528/f292bf26-3061-4c9c-925a-981e7dd6c86b) | ![3](https://github.com/100mslive/100ms-flutter/assets/93931528/7875bc6d-597c-4213-98f4-7333a660e689) |
|![Prebuilt Flutter - 1](https://github.com/100mslive/100ms-flutter/assets/93931528/cf10216a-93cb-41c9-b0fd-15b2d05611a0) | ![4](https://github.com/100mslive/100ms-flutter/assets/93931528/43263ecf-57e8-4b8d-9bdc-68a72b4ce7fa) | -->

## ☝️ Minimum Configuration

- Support for Flutter 3.3.0 or above
Expand Down
9 changes: 9 additions & 0 deletions packages/hms_room_kit/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@
| 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.11 - 2024-02-01

| Package | Version |
| -------------- | ------------------------------------------------------------------------------------------------------ |
| hms_room_kit | 1.0.11 |
| hmssdk_flutter | 1.9.8 |

Updated `hmssdk_flutter` package version to 1.9.8

## 1.0.10 - 2024-01-18

| Package | Version |
Expand Down
11 changes: 6 additions & 5 deletions packages/hms_room_kit/example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -222,14 +222,15 @@ packages:
path: ".."
relative: true
source: path
version: "1.0.9"
version: "1.0.11"
hmssdk_flutter:
dependency: transitive
description:
path: "../../hmssdk_flutter"
relative: true
source: path
version: "1.9.6"
name: hmssdk_flutter
sha256: ff1697824b42d31cb093fd4319c8fa3ba6872b7877707630062ed3cd9cf40813
url: "https://pub.dev"
source: hosted
version: "1.9.8"
http:
dependency: transitive
description:
Expand Down
2 changes: 1 addition & 1 deletion packages/hms_room_kit/example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.9
version: 1.0.11

environment:
sdk: ">=2.19.6 <3.0.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ class _HLSMoreOptionsBottomSheetBottomSheetState
MoreOptionItem(
onTap: () async {
Navigator.pop(context);
var meetingStore = context.read<MeetingStore>();
showModalBottomSheet(
isScrollControlled: true,
backgroundColor: HMSThemeColors.surfaceDim,
Expand All @@ -84,7 +85,7 @@ class _HLSMoreOptionsBottomSheetBottomSheetState
),
context: context,
builder: (ctx) => ChangeNotifierProvider.value(
value: context.read<MeetingStore>(),
value: meetingStore,
child: (HMSRoomLayout.chatData == null ||
(HMSRoomLayout.chatData?.isOverlay ??
true))
Expand Down
9 changes: 5 additions & 4 deletions packages/hms_room_kit/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,11 @@ packages:
hmssdk_flutter:
dependency: "direct main"
description:
path: "../hmssdk_flutter"
relative: true
source: path
version: "1.9.6"
name: hmssdk_flutter
sha256: ff1697824b42d31cb093fd4319c8fa3ba6872b7877707630062ed3cd9cf40813
url: "https://pub.dev"
source: hosted
version: "1.9.8"
http:
dependency: transitive
description:
Expand Down
5 changes: 2 additions & 3 deletions packages/hms_room_kit/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -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.9
version: 1.0.11
homepage: https://www.100ms.live/
repository: https://github.com/100mslive/100ms-flutter
issue_tracker: https://github.com/100mslive/100ms-flutter/issues
Expand All @@ -14,8 +14,7 @@ dependencies:
flutter:
sdk: flutter

hmssdk_flutter:
path: ../hmssdk_flutter
hmssdk_flutter: 1.9.8
intl: ^0.18.0
permission_handler: ^11.0.0
provider: ^6.0.5
Expand Down
15 changes: 15 additions & 0 deletions packages/hmssdk_flutter/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,21 @@
| 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.8 - 2024-02-01

| Package | Version |
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| hms_room_kit | 1.0.11 |
| hmssdk_flutter | 1.9.8 |

### 🛠️ Changed

- Fixed broadcast receiver issues on android 14 devices

Learn more about this issue [here](https://developer.android.com/about/versions/14/behavior-changes-14#runtime-receivers-exported)

**Full Changelog**: [1.9.7...1.9.8](https://github.com/100mslive/100ms-flutter/compare/1.9.7...1.9.8)

# 1.9.7 - 2024-01-18

| Package | Version |
Expand Down
2 changes: 1 addition & 1 deletion packages/hmssdk_flutter/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
compileSdkVersion 31
compileSdkVersion 34

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package live.hms.hmssdk_flutter
import android.app.Activity
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Context.*
import android.content.Intent
import android.content.IntentFilter
import android.media.projection.MediaProjectionManager
Expand Down Expand Up @@ -1576,7 +1577,11 @@ class HmssdkFlutterPlugin :

private fun startScreenShare(result: Result) {
androidScreenshareResult = result
activity.applicationContext?.registerReceiver(activityBroadcastReceiver, IntentFilter("ACTIVITY_RECEIVER"))
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
activity.applicationContext?.registerReceiver(activityBroadcastReceiver, IntentFilter("ACTIVITY_RECEIVER"), RECEIVER_EXPORTED)
}else {
activity.applicationContext?.registerReceiver(activityBroadcastReceiver, IntentFilter("ACTIVITY_RECEIVER"))
}
val mediaProjectionManager: MediaProjectionManager =
activity.getSystemService(
Context.MEDIA_PROJECTION_SERVICE,
Expand Down Expand Up @@ -1641,7 +1646,11 @@ class HmssdkFlutterPlugin :
) {
androidAudioShareResult = result
mode = call.argument<String>("audio_mixing_mode")
activity.applicationContext?.registerReceiver(activityBroadcastReceiver, IntentFilter("ACTIVITY_RECEIVER"))
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
activity.applicationContext?.registerReceiver(activityBroadcastReceiver, IntentFilter("ACTIVITY_RECEIVER"), RECEIVER_EXPORTED)
}else {
activity.applicationContext?.registerReceiver(activityBroadcastReceiver, IntentFilter("ACTIVITY_RECEIVER"),)
}
val mediaProjectionManager: MediaProjectionManager? =
activity.getSystemService(
Context.MEDIA_PROJECTION_SERVICE,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@ package live.hms.hmssdk_flutter.views

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Context.RECEIVER_NOT_EXPORTED
import android.content.Intent
import android.content.IntentFilter
import android.os.Build
import android.util.Log
import android.view.LayoutInflater
import android.widget.FrameLayout
Expand Down Expand Up @@ -116,7 +118,11 @@ class HMSHLSPlayer(
* onRoomUpdate or onJoin
*/
player.play(streamUrl)
context.registerReceiver(broadcastReceiver, IntentFilter(HLS_PLAYER_INTENT))
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
context.registerReceiver(broadcastReceiver, IntentFilter(HLS_PLAYER_INTENT), RECEIVER_NOT_EXPORTED)
}else {
context.registerReceiver(broadcastReceiver, IntentFilter(HLS_PLAYER_INTENT))
}

/**
* Here we add the event listener to listen to the events
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ package live.hms.hmssdk_flutter.views

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Context.RECEIVER_EXPORTED
import android.content.Context.RECEIVER_NOT_EXPORTED
import android.content.Intent
import android.content.IntentFilter
import android.graphics.Bitmap
import android.os.Build
import android.util.Base64
import android.util.Log
import android.view.LayoutInflater
Expand Down Expand Up @@ -106,7 +109,11 @@ class HMSVideoView(
if (hmsVideoView != null) {
// delay addTrack
hmsVideoView?.addTrack(track)
context.registerReceiver(broadcastReceiver, IntentFilter(track.trackId))
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
context.registerReceiver(broadcastReceiver, IntentFilter(track.trackId), RECEIVER_NOT_EXPORTED)
}else {
context.registerReceiver(broadcastReceiver, IntentFilter(track.trackId))
}
} else {
Log.e("HMSVideoView Error", "onAttachedToWindow error hmsVideoView is null")
}
Expand Down
2 changes: 1 addition & 1 deletion packages/hmssdk_flutter/example/android/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ GEM
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.884.0)
aws-partitions (1.885.0)
aws-sdk-core (3.191.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
Expand Down
11 changes: 6 additions & 5 deletions packages/hmssdk_flutter/example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 33

compileSdkVersion 34
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
Expand All @@ -31,9 +30,9 @@ android {
defaultConfig {
applicationId "live.hms.flutter"
minSdkVersion 21
targetSdkVersion 33
versionCode 432
versionName "1.5.132"
targetSdkVersion 34
versionCode 430
versionName "1.5.130"
}

signingConfigs {
Expand All @@ -42,6 +41,8 @@ android {
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
enableV1Signing false
enableV2Signing true
}
}
buildTypes {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,33 @@
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

<!--Required for android 14 and above -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />

<!-- This is required if the application uses foreground service for android 14 and above-->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />


<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />

<application
android:label="100ms Video Calling Streaming"
android:icon="@mipmap/ic_launcher"
android:usesCleartextTraffic="false"
android:hardwareAccelerated="true"
android:requestLegacyExternalStorage="true">
android:allowBackup="false"
android:hasFragileUserData="false">
<activity
android:name=".MainActivity"
android:launchMode="singleTask"
Expand All @@ -36,6 +46,7 @@
android:windowSoftInputMode="adjustResize"
android:exported="true"
android:supportsPictureInPicture="true"
android:taskAffinity=""
>
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
Expand Down Expand Up @@ -64,7 +75,8 @@
</activity>
<service android:name="com.pravera.flutter_foreground_task.service.ForegroundService"
android:foregroundServiceType="camera|microphone"
android:stopWithTask="true" />
android:stopWithTask="true"
exported="false" />

<!--Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
Expand Down
2 changes: 1 addition & 1 deletion packages/hmssdk_flutter/example/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ buildscript {
}

dependencies {
classpath 'com.android.tools.build:gradle:7.2.2'
classpath 'com.android.tools.build:gradle:7.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.8'
classpath 'com.google.gms:google-services:4.3.15'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit 548ceb5

Please sign in to comment.