Skip to content

Commit 6e94784

Browse files
Merge branch 'refs/heads/develop'
2 parents a812882 + 66bb95e commit 6e94784

File tree

12 files changed

+234
-25
lines changed

12 files changed

+234
-25
lines changed

buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ object Configuration {
66
const val minSdk = 24
77
const val majorVersion = 1
88
const val minorVersion = 0
9-
const val patchVersion = 18
9+
const val patchVersion = 19
1010
const val versionName = "$majorVersion.$minorVersion.$patchVersion"
11-
const val versionCode = 41
11+
const val versionCode = 42
1212
const val snapshotVersionName = "$majorVersion.$minorVersion.${patchVersion + 1}-SNAPSHOT"
1313
const val artifactGroup = "io.getstream"
14-
const val streamVideoCallGooglePlayVersion = "1.1.11"
14+
const val streamVideoCallGooglePlayVersion = "1.1.12"
1515
const val streamWebRtcVersionName = "1.2.1"
1616
}

demo-app/src/main/kotlin/io/getstream/video/android/ui/call/CallScreen.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ import io.getstream.video.android.compose.ui.components.call.renderer.LayoutType
9191
import io.getstream.video.android.compose.ui.components.call.renderer.ParticipantVideo
9292
import io.getstream.video.android.compose.ui.components.call.renderer.RegularVideoRendererStyle
9393
import io.getstream.video.android.compose.ui.components.call.renderer.copy
94+
import io.getstream.video.android.compose.ui.components.video.VideoScalingType
9495
import io.getstream.video.android.core.Call
9596
import io.getstream.video.android.core.RealtimeConnection
9697
import io.getstream.video.android.core.call.state.ChooseLayout
@@ -149,6 +150,7 @@ fun CallScreen(
149150
val scope = rememberCoroutineScope()
150151
val messageScope = rememberCoroutineScope()
151152
var showingLandscapeControls by remember { mutableStateOf(false) }
153+
var preferredScaleType by remember { mutableStateOf(VideoScalingType.SCALE_ASPECT_FILL) }
152154

153155
val connection by call.state.connection.collectAsStateWithLifecycle()
154156
val me by call.state.me.collectAsState()
@@ -320,6 +322,7 @@ fun CallScreen(
320322
call = call,
321323
participant = participant,
322324
style = style,
325+
scalingType = preferredScaleType,
323326
reactionContent = {
324327
CustomReactionContent(
325328
participant = participant,
@@ -501,6 +504,10 @@ fun CallScreen(
501504
onNoiseCancellation = {
502505
isNoiseCancellationEnabled = call.toggleAudioProcessing()
503506
},
507+
onSelectScaleType = {
508+
preferredScaleType = it
509+
isShowingSettingMenu = false
510+
},
504511
onShowCallStats = {
505512
isShowingStats = true
506513
isShowingSettingMenu = false

demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ private fun JoinCallForm(
461461
mutableStateOf(
462462
TextFieldValue(
463463
if (BuildConfig.FLAVOR == StreamFlavors.development) {
464-
"default:123lexgvg"
464+
"default:79cYh3J5JgGk"
465465
} else {
466466
""
467467
},

demo-app/src/main/kotlin/io/getstream/video/android/ui/menu/MenuDefinitions.kt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ import android.os.Build
2121
import androidx.compose.material.icons.Icons
2222
import androidx.compose.material.icons.automirrored.filled.MobileScreenShare
2323
import androidx.compose.material.icons.automirrored.filled.ReadMore
24+
import androidx.compose.material.icons.filled.AspectRatio
2425
import androidx.compose.material.icons.filled.Audiotrack
2526
import androidx.compose.material.icons.filled.AutoGraph
27+
import androidx.compose.material.icons.filled.Balance
2628
import androidx.compose.material.icons.filled.BluetoothAudio
29+
import androidx.compose.material.icons.filled.Crop
30+
import androidx.compose.material.icons.filled.CropFree
2731
import androidx.compose.material.icons.filled.Feedback
2832
import androidx.compose.material.icons.filled.Headphones
2933
import androidx.compose.material.icons.filled.HeadsetMic
@@ -37,6 +41,7 @@ import androidx.compose.material.icons.filled.SwitchLeft
3741
import androidx.compose.material.icons.filled.VideoFile
3842
import androidx.compose.material.icons.filled.VideoLibrary
3943
import androidx.compose.material.icons.filled.VideoSettings
44+
import io.getstream.video.android.compose.ui.components.video.VideoScalingType
4045
import io.getstream.video.android.core.audio.StreamAudioDevice
4146
import io.getstream.video.android.ui.menu.base.ActionMenuItem
4247
import io.getstream.video.android.ui.menu.base.DynamicSubMenuItem
@@ -64,6 +69,7 @@ fun defaultStreamMenu(
6469
onDeviceSelected: (StreamAudioDevice) -> Unit,
6570
onSfuRejoinClick: () -> Unit,
6671
onSfuFastReconnectClick: () -> Unit,
72+
onSelectScaleType: (VideoScalingType) -> Unit,
6773
availableDevices: List<StreamAudioDevice>,
6874
loadRecordings: suspend () -> List<MenuItem>,
6975
) = buildList<MenuItem> {
@@ -138,6 +144,7 @@ fun defaultStreamMenu(
138144
onSwitchSfuClick,
139145
onSfuRejoinClick,
140146
onSfuFastReconnectClick,
147+
onSelectScaleType,
141148
),
142149
),
143150
)
@@ -196,6 +203,24 @@ fun reconnectMenu(
196203
),
197204
)
198205

206+
fun scaleTypeMenu(onSelectScaleType: (VideoScalingType) -> Unit): List<MenuItem> = listOf(
207+
ActionMenuItem(
208+
title = "Scale FIT",
209+
icon = Icons.Default.CropFree,
210+
action = { onSelectScaleType(VideoScalingType.SCALE_ASPECT_FIT) },
211+
),
212+
ActionMenuItem(
213+
title = "Scale FILL",
214+
icon = Icons.Default.Crop,
215+
action = { onSelectScaleType(VideoScalingType.SCALE_ASPECT_FILL) },
216+
),
217+
ActionMenuItem(
218+
title = "Scale BALANCED",
219+
icon = Icons.Default.Balance,
220+
action = { onSelectScaleType(VideoScalingType.SCALE_ASPECT_BALANCED) },
221+
),
222+
)
223+
199224
/**
200225
* Optionally defines the debug sub-menu of the demo app.
201226
*/
@@ -208,6 +233,7 @@ fun debugSubmenu(
208233
onSwitchSfuClick: () -> Unit,
209234
onSfuRejoinClick: () -> Unit,
210235
onSfuFastReconnectClick: () -> Unit,
236+
onSelectScaleType: (VideoScalingType) -> Unit,
211237
) = listOf(
212238
SubMenuItem(
213239
title = "Available video codecs",
@@ -219,6 +245,13 @@ fun debugSubmenu(
219245
icon = Icons.Default.Audiotrack,
220246
action = onToggleAudioFilterClick,
221247
),
248+
SubMenuItem(
249+
title = "Scale type",
250+
icon = Icons.Default.AspectRatio,
251+
items = scaleTypeMenu(
252+
onSelectScaleType,
253+
),
254+
),
222255
SubMenuItem(
223256
title = "Reconnect V2",
224257
icon = Icons.Default.Replay,

demo-app/src/main/kotlin/io/getstream/video/android/ui/menu/SettingsMenu.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import com.google.accompanist.permissions.ExperimentalPermissionsApi
5050
import com.google.accompanist.permissions.PermissionStatus
5151
import com.google.accompanist.permissions.rememberPermissionState
5252
import io.getstream.video.android.compose.theme.VideoTheme
53+
import io.getstream.video.android.compose.ui.components.video.VideoScalingType
5354
import io.getstream.video.android.core.Call
5455
import io.getstream.video.android.core.call.audio.InputAudioFilter
5556
import io.getstream.video.android.core.mapper.ReactionMapper
@@ -75,6 +76,7 @@ internal fun SettingsMenu(
7576
onShowFeedback: () -> Unit,
7677
onNoiseCancellation: () -> Unit,
7778
onShowCallStats: () -> Unit,
79+
onSelectScaleType: (VideoScalingType) -> Unit,
7880
) {
7981
val context = LocalContext.current
8082
val scope = rememberCoroutineScope()
@@ -237,6 +239,7 @@ internal fun SettingsMenu(
237239
onSfuRejoinClick = onSfuRejoinClick,
238240
onSfuFastReconnectClick = onSfuFastReconnectClick,
239241
isScreenShareEnabled = isScreenSharing,
242+
onSelectScaleType = onSelectScaleType,
240243
loadRecordings = onLoadRecordings,
241244
),
242245
)
@@ -298,6 +301,7 @@ private fun SettingsMenuPreview() {
298301
availableDevices = emptyList(),
299302
onDeviceSelected = {},
300303
onShowFeedback = {},
304+
onSelectScaleType = {},
301305
onNoiseCancellation = {},
302306
loadRecordings = { emptyList() },
303307
),

demo-app/src/main/kotlin/io/getstream/video/android/ui/menu/base/DynamicMenu.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ private fun DynamicMenuPreview() {
225225
onDeviceSelected = {},
226226
onShowFeedback = {},
227227
onNoiseCancellation = {},
228+
onSelectScaleType = {},
228229
loadRecordings = { emptyList() },
229230
),
230231
)
@@ -252,6 +253,7 @@ private fun DynamicMenuDebugOptionPreview() {
252253
availableDevices = emptyList(),
253254
onDeviceSelected = {},
254255
onShowFeedback = {},
256+
onSelectScaleType = { },
255257
onNoiseCancellation = {},
256258
loadRecordings = { emptyList() },
257259
),
@@ -272,6 +274,7 @@ private fun DynamicMenuDebugPreview() {
272274
onRestartPublisherIceClick = { },
273275
onRestartSubscriberIceClick = { },
274276
onToggleAudioFilterClick = { },
277+
onSelectScaleType = { },
275278
onSwitchSfuClick = { },
276279
),
277280
)

0 commit comments

Comments
 (0)