From 96a2d9594ecf2ede6f0df1dbf892f114d2953fb9 Mon Sep 17 00:00:00 2001 From: romanofranz Date: Tue, 27 Feb 2024 16:53:34 +0100 Subject: [PATCH 1/3] Rotate icons in the viewfinder on device rotation, without recreating the viewfinder --- .../samples/socialite/ui/camera/Camera.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt b/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt index 27790032..5b2a5baf 100644 --- a/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt +++ b/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt @@ -55,6 +55,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.unit.dp @@ -204,17 +205,19 @@ fun Camera( Column( modifier = Modifier .fillMaxHeight() - .weight(1f), + .weight(1f) + , verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ) { Row( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier.fillMaxWidth().height(100.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center, ) { CameraControls( captureMode, + rotation, { setCaptureMode(CaptureMode.PHOTO) }, { setCaptureMode(CaptureMode.VIDEO_READY) }, ) @@ -276,12 +279,13 @@ fun Camera( .fillMaxWidth() .padding(0.dp, 5.dp, 0.dp, 5.dp) .background(Color.Black) - .height(50.dp), + .height(100.dp), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center, ) { CameraControls( captureMode, + rotation, { setCaptureMode(CaptureMode.PHOTO) }, { setCaptureMode(CaptureMode.VIDEO_READY) }, ) @@ -316,21 +320,21 @@ fun Camera( } @Composable -fun CameraControls(captureMode: CaptureMode, onPhotoButtonClick: () -> Unit, onVideoButtonClick: () -> Unit) { +fun CameraControls(captureMode: CaptureMode, rotation: Int, onPhotoButtonClick: () -> Unit, onVideoButtonClick: () -> Unit) { val activeButtonColor = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.primary) val inactiveButtonColor = ButtonDefaults.buttonColors(containerColor = Color.LightGray) if (captureMode != CaptureMode.VIDEO_RECORDING) { Button( - modifier = Modifier.padding(5.dp), + modifier = Modifier.padding(5.dp).graphicsLayer(rotationZ = rotation.toFloat()*90), onClick = onPhotoButtonClick, colors = if (captureMode == CaptureMode.PHOTO) activeButtonColor else inactiveButtonColor, ) { Text("Photo") } Button( - modifier = Modifier.padding(5.dp), + modifier = Modifier.padding(5.dp).graphicsLayer(rotationZ = rotation.toFloat()*90), onClick = onVideoButtonClick, colors = if (captureMode != CaptureMode.PHOTO) activeButtonColor else inactiveButtonColor, ) { From b98dace56eb30e6c9bb4f240b2c7daac418fe050 Mon Sep 17 00:00:00 2001 From: Francesco Romano Date: Tue, 27 Feb 2024 16:59:11 +0100 Subject: [PATCH 2/3] Update Camera.kt --- .../com/google/android/samples/socialite/ui/camera/Camera.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt b/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt index 5b2a5baf..b86419ed 100644 --- a/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt +++ b/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt @@ -205,8 +205,7 @@ fun Camera( Column( modifier = Modifier .fillMaxHeight() - .weight(1f) - , + .weight(1f), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ) { From b4463bc4edce245108dfa3899336cd51e191bef0 Mon Sep 17 00:00:00 2001 From: Francesco Romano Date: Tue, 27 Feb 2024 17:20:49 +0100 Subject: [PATCH 3/3] Update Camera.kt --- .../com/google/android/samples/socialite/ui/camera/Camera.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt b/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt index b86419ed..07e27e96 100644 --- a/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt +++ b/app/src/main/java/com/google/android/samples/socialite/ui/camera/Camera.kt @@ -326,14 +326,14 @@ fun CameraControls(captureMode: CaptureMode, rotation: Int, onPhotoButtonClick: ButtonDefaults.buttonColors(containerColor = Color.LightGray) if (captureMode != CaptureMode.VIDEO_RECORDING) { Button( - modifier = Modifier.padding(5.dp).graphicsLayer(rotationZ = rotation.toFloat()*90), + modifier = Modifier.padding(5.dp).graphicsLayer(rotationZ = rotation.toFloat() * 90), onClick = onPhotoButtonClick, colors = if (captureMode == CaptureMode.PHOTO) activeButtonColor else inactiveButtonColor, ) { Text("Photo") } Button( - modifier = Modifier.padding(5.dp).graphicsLayer(rotationZ = rotation.toFloat()*90), + modifier = Modifier.padding(5.dp).graphicsLayer(rotationZ = rotation.toFloat() * 90), onClick = onVideoButtonClick, colors = if (captureMode != CaptureMode.PHOTO) activeButtonColor else inactiveButtonColor, ) {