Skip to content

Commit

Permalink
Merge pull request #289 from 100mslive/release0.7.2
Browse files Browse the repository at this point in the history
Release 0.7.2
  • Loading branch information
samarthjain10 committed Oct 29, 2021
2 parents ca11912 + 344038b commit 3cbd013
Show file tree
Hide file tree
Showing 22 changed files with 468 additions and 57 deletions.
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,6 @@ dependencies {
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // From node_modules
implementation 'com.github.100mslive:android-sdk:v2.1.5'
implementation 'com.github.100mslive:android-sdk:v2.1.6'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
}
10 changes: 10 additions & 0 deletions android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import live.hms.video.media.settings.HMSVideoTrackSettings
import live.hms.video.media.tracks.*
import live.hms.video.sdk.models.*
import live.hms.video.sdk.models.role.*
import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest

object HmsDecoder {

Expand Down Expand Up @@ -391,4 +392,13 @@ object HmsDecoder {

return roleChangeRequest
}

fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest): WritableMap {
val changeTrackStateRequest: WritableMap = Arguments.createMap()

changeTrackStateRequest.putMap("requestedBy", getHmsPeer(request.requestedBy))
changeTrackStateRequest.putString("trackType", request.track.type.name)

return changeTrackStateRequest
}
}
22 changes: 22 additions & 0 deletions android/src/main/java/com/reactnativehmssdk/HmsHelper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,28 @@ object HmsHelper {
return null
}

fun getRemoteAudioTrackFromTrackId(trackId: String?, remotePeers: Array<HMSRemotePeer>?): HMSRemoteAudioTrack? {
if (trackId != null && remotePeers != null) {
for (remotePeer in remotePeers) {
if (remotePeer.audioTrack?.trackId == trackId) {
return remotePeer.audioTrack as HMSRemoteAudioTrack
}
}
}
return null
}

fun getRemoteVideoTrackFromTrackId(trackId: String?, remotePeers: Array<HMSRemotePeer>?): HMSRemoteVideoTrack? {
if (trackId != null && remotePeers != null) {
for (remotePeer in remotePeers) {
if (remotePeer.videoTrack?.trackId == trackId) {
return remotePeer.videoTrack as HMSRemoteVideoTrack
}
}
}
return null
}

fun getTrackFromTrackId(trackId: String?, remotePeers: Array<HMSRemotePeer>?): HMSTrack? {
if (trackId != null && remotePeers != null) {
for (remotePeer in remotePeers) {
Expand Down
55 changes: 48 additions & 7 deletions android/src/main/java/com/reactnativehmssdk/HmsModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
}
private var hmsSDK: HMSSDK? = null
private var recentRoleChangeRequest: HMSRoleChangeRequest? = null
private var changeTrackStateRequest: HMSChangeTrackStateRequest? = null

override fun getName(): String {
return "HmsManager"
Expand Down Expand Up @@ -119,8 +120,10 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
hmsSDK?.join(
config,
object : HMSUpdateListener {
override fun onChangeTrackStateRequest(details: HMSChangeTrackStateRequest) {
// Not yet implemented
override fun onChangeTrackStateRequest(request: HMSChangeTrackStateRequest) {
val decodedChangeTrackStateRequest = HmsDecoder.getHmsChangeTrackStateRequest(request)
reactApplicationContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java).emit("ON_CHANGE_TRACK_STATE_REQUEST", decodedChangeTrackStateRequest)
changeTrackStateRequest = request
}

override fun onRemovedFromRoom(notification: HMSRemovedFromRoom) {
Expand Down Expand Up @@ -449,6 +452,48 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
}
}

@ReactMethod
fun isPlaybackAllowed(data: ReadableMap, callback: Promise?) {
val requiredKeys =
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("trackId", "String")))
if (requiredKeys) {
val trackId = data.getString("trackId")
val remotePeers = hmsSDK?.getRemotePeers()
val remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
if (remoteAudioTrack != null) {
val isPlaybackAllowed = remoteAudioTrack.isPlaybackAllowed
callback?.resolve(isPlaybackAllowed)
} else if (remoteVideoTrack != null) {
val isPlaybackAllowed = remoteVideoTrack.isPlaybackAllowed
callback?.resolve(isPlaybackAllowed)
} else {
callback?.reject("101", "NOT_FOUND")
}
}else {
callback?.reject("101", "TRACK_ID_NOT_FOUND")
}
}

@ReactMethod
fun setPlaybackAllowed(data: ReadableMap) {
val requiredKeys =
HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("trackId", "String"),Pair("playbackAllowed", "Boolean")))
if (requiredKeys) {
val trackId = data.getString("trackId")
val playbackAllowed = data.getBoolean("playbackAllowed")
val remotePeers = hmsSDK?.getRemotePeers()
val remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
if (remoteAudioTrack != null) {
remoteAudioTrack.isPlaybackAllowed = playbackAllowed
} else if (remoteVideoTrack != null) {
remoteVideoTrack.isPlaybackAllowed = playbackAllowed
}
}
}


@ReactMethod
fun removePeer(data: ReadableMap) {
val requiredKeys =
Expand Down Expand Up @@ -520,11 +565,7 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
val peerId = remotePeer?.peerID
val peer = HmsHelper.getRemotePeerFromPeerId(peerId, peers)
if (peerId != null) {
if (mute) {
peer?.audioTrack?.setVolume(0.0)
} else {
peer?.audioTrack?.setVolume(1.0)
}
peer?.audioTrack?.isPlaybackAllowed = !mute
}
}
val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
Expand Down
4 changes: 4 additions & 0 deletions documentation/release-notes/release-notes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ title: Release Notes
nav: 4.1
---

## 0.7.2 - 2021-10-28
- Added isPlaybackAllowed to remote audio & video tracks to mute/unmute remote tracks locally
- Added changeTrackState API to mute/unmute remote peers audio/video tracks for the entire room

## 0.7.1 - 2021-10-27
- Added mirror prop to HMSView to horizontally flip video tracks

Expand Down
4 changes: 2 additions & 2 deletions example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ android {
applicationId "live.hms.rn"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 12
versionName "1.0.12"
versionCode 13
versionName "1.0.13"
}
splits {
abi {
Expand Down
22 changes: 11 additions & 11 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ PODS:
- FirebaseCoreDiagnostics (~> 8.0)
- GoogleUtilities/Environment (~> 7.4)
- GoogleUtilities/Logger (~> 7.4)
- FirebaseCoreDiagnostics (8.8.0):
- GoogleDataTransport (~> 9.0)
- GoogleUtilities/Environment (~> 7.4)
- GoogleUtilities/Logger (~> 7.4)
- FirebaseCoreDiagnostics (8.9.0):
- GoogleDataTransport (~> 9.1)
- GoogleUtilities/Environment (~> 7.6)
- GoogleUtilities/Logger (~> 7.6)
- nanopb (~> 2.30908.0)
- FirebaseCrashlytics (8.8.0):
- FirebaseCore (~> 8.0)
Expand All @@ -54,10 +54,10 @@ PODS:
- GoogleUtilities/Environment (~> 7.4)
- nanopb (~> 2.30908.0)
- PromisesObjC (< 3.0, >= 1.2)
- FirebaseInstallations (8.8.0):
- FirebaseInstallations (8.9.0):
- FirebaseCore (~> 8.0)
- GoogleUtilities/Environment (~> 7.4)
- GoogleUtilities/UserDefaults (~> 7.4)
- GoogleUtilities/Environment (~> 7.6)
- GoogleUtilities/UserDefaults (~> 7.6)
- PromisesObjC (< 3.0, >= 1.2)
- Flipper (0.75.1):
- Flipper-Folly (~> 2.5)
Expand Down Expand Up @@ -357,7 +357,7 @@ PODS:
- React-jsi (= 0.64.1)
- React-perflogger (= 0.64.1)
- React-jsinspector (0.64.1)
- react-native-hms (0.7.0):
- react-native-hms (0.7.2):
- HMSSDK
- React-Core
- react-native-safe-area-context (3.3.2):
Expand Down Expand Up @@ -628,9 +628,9 @@ SPEC CHECKSUMS:
Firebase: 629510f1a9ddb235f3a7c5c8ceb23ba887f0f814
FirebaseAnalytics: 5506ea8b867d8423485a84b4cd612d279f7b0b8a
FirebaseCore: 98b29e3828f0a53651c363937a7f7d92a19f1ba2
FirebaseCoreDiagnostics: fe77f42da6329d6d83d21fd9d621a6b704413bfc
FirebaseCoreDiagnostics: 5daa63f1c1409d981a2d5007daa100b36eac6a34
FirebaseCrashlytics: 3660c045c8e45cc4276110562a0ef44cf43c8157
FirebaseInstallations: 2563cb18a723ef9c6ef18318a49519b75dce613c
FirebaseInstallations: caa7c8e0d3e2345b8829d2fa9ca1b4dfbf2fcc85
Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021
Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c
Expand Down Expand Up @@ -661,7 +661,7 @@ SPEC CHECKSUMS:
React-jsi: 5de8204706bd872b78ea646aee5d2561ca1214b6
React-jsiexecutor: 124e8f99992490d0d13e0649d950d3e1aae06fe9
React-jsinspector: 500a59626037be5b3b3d89c5151bc3baa9abf1a9
react-native-hms: f17bdaa2bd64745375e22b0e1d408f4e05cc13b9
react-native-hms: 616d1c87f90b4912c009f58ae21da20c2f801323
react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057
React-perflogger: aad6d4b4a267936b3667260d1f649b6f6069a675
React-RCTActionSheet: fc376be462c9c8d6ad82c0905442fd77f82a9d2a
Expand Down
8 changes: 4 additions & 4 deletions example/ios/RNHMSExample.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements;
CURRENT_PROJECT_VERSION = 22;
CURRENT_PROJECT_VERSION = 23;
DEVELOPMENT_TEAM = 5N85PP82A9;
ENABLE_BITCODE = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
Expand All @@ -542,7 +542,7 @@
"$(inherited)",
"$(SDKROOT)/usr/lib/swift",
);
MARKETING_VERSION = 1.12.0;
MARKETING_VERSION = 1.13.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
Expand All @@ -565,7 +565,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = RNHMSExample/RNHMSExample.entitlements;
CURRENT_PROJECT_VERSION = 22;
CURRENT_PROJECT_VERSION = 23;
DEVELOPMENT_TEAM = 5N85PP82A9;
ENABLE_BITCODE = YES;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
Expand All @@ -579,7 +579,7 @@
"$(inherited)",
"$(SDKROOT)/usr/lib/swift",
);
MARKETING_VERSION = 1.12.0;
MARKETING_VERSION = 1.13.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
Expand Down
Loading

0 comments on commit 3cbd013

Please sign in to comment.