From 5cc22b0dde2e524ca952273cdceb146ffa8c54ca Mon Sep 17 00:00:00 2001 From: ChuYong Date: Sat, 11 May 2024 23:43:38 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EB=B0=B0=EB=84=88=20=EC=8A=A4=EC=BC=88=EB=A0=88=ED=86=A4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/view/main/calendar/MainCalendarPage.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/calendar/MainCalendarPage.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/calendar/MainCalendarPage.kt index 5c0aacd..080f058 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/calendar/MainCalendarPage.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/calendar/MainCalendarPage.kt @@ -1,6 +1,7 @@ package com.no5ing.bbibbi.presentation.feature.view.main.calendar import androidx.compose.foundation.Image +import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -15,6 +16,7 @@ import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -182,6 +184,14 @@ fun MainCalendarPage( } } + } else { + Box( + modifier = Modifier + .padding(horizontal = 20.dp) + .fillMaxWidth() + .background(MaterialTheme.bbibbiScheme.backgroundSecondary, RoundedCornerShape(24.dp)) + .aspectRatio(335.0f/220) + ) } Spacer(modifier = Modifier.height(24.dp)) StaticCalendar( From ea3c74197aa27900d05221e77e2e0fe434f2a5b4 Mon Sep 17 00:00:00 2001 From: ChuYong Date: Thu, 30 May 2024 12:36:43 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=B4=AC=EC=98=81=20=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20=EB=B0=8F=20=EC=97=85=EB=A1=9C=EB=93=9C=EC=8B=9C?= =?UTF-8?q?=EA=B0=84=20=EB=8B=A8=EC=B6=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UploadMissionCamera.kt | 2 +- .../com/no5ing/bbibbi/util/KotlinExtension.kt | 73 +------------------ 2 files changed, 2 insertions(+), 73 deletions(-) diff --git a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionCamera.kt b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionCamera.kt index 1812071..bbeeca8 100644 --- a/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionCamera.kt +++ b/app/src/main/java/com/no5ing/bbibbi/presentation/feature/view/main/mission_upload_camera/UploadMissionCamera.kt @@ -74,7 +74,7 @@ fun UploadMissionCamera( val coroutineScope = rememberCoroutineScope() val torchState = remember { mutableStateOf(false) } val isPermissionGranted = remember { mutableStateOf(false) } - val cameraDirection = remember { mutableStateOf(CameraSelector.DEFAULT_FRONT_CAMERA) } + val cameraDirection = remember { mutableStateOf(CameraSelector.DEFAULT_BACK_CAMERA) } val cameraState = remember { mutableStateOf(null) } val captureState = remember { mutableStateOf(ImageCapture.Builder().build()) } var isCapturing by remember { mutableStateOf(false) } diff --git a/app/src/main/java/com/no5ing/bbibbi/util/KotlinExtension.kt b/app/src/main/java/com/no5ing/bbibbi/util/KotlinExtension.kt index 1892fdd..3f489bc 100644 --- a/app/src/main/java/com/no5ing/bbibbi/util/KotlinExtension.kt +++ b/app/src/main/java/com/no5ing/bbibbi/util/KotlinExtension.kt @@ -93,43 +93,6 @@ suspend fun Context.getCameraProvider(): ProcessCameraProvider = } } -suspend fun ImageCapture.takePhoto(context: Context): Uri? = - suspendCoroutine { continuation -> - val name = "${System.currentTimeMillis()}.jpg" - val contentValues = ContentValues().apply { - put(MediaStore.MediaColumns.DISPLAY_NAME, name) - put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg") - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) { - put(MediaStore.Images.Media.RELATIVE_PATH, "Pictures/BBiBBi-Image") - } - } - - val outputOptions = ImageCapture.OutputFileOptions - .Builder( - context.contentResolver, - MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues - ) - .build() - - this.takePicture( - outputOptions, - ContextCompat.getMainExecutor(context), - object : ImageCapture.OnImageSavedCallback { - override fun onError(e: ImageCaptureException) { - Timber.e("[CameraView] photo capture failed", e) - continuation.resume(null) - } - - override fun onImageSaved( - output: ImageCapture.OutputFileResults - ) { - Timber.d("onImageSaved: ${output.savedUri}") - continuation.resume(output.savedUri) - } - } - ) - } - suspend fun ImageCapture.takePhotoWithImage(context: Context, requiredFlip: Boolean): Uri? = suspendCoroutine { continuation -> this.takePicture( @@ -149,7 +112,7 @@ suspend fun ImageCapture.takePhotoWithImage(context: Context, requiredFlip: Bool else image.toBitmap() .rotateWithCropCenterRecycle(image.imageInfo.rotationDegrees).flip() - bitmap.compress(Bitmap.CompressFormat.PNG, 100, faos) + bitmap.compress(Bitmap.CompressFormat.JPEG, 80, faos) faos.close() continuation.resume(Uri.fromFile(context.getFileStreamPath(fileName))) } @@ -174,26 +137,6 @@ suspend fun ImageCapture.takePhotoTemporary(context: Context): ImageProxy? = ) } -fun ImageProxy.toRequestBody( - contentType: MediaType? = null, - offset: Int = 0, -): RequestBody { - val baos = ByteArrayOutputStream() - val actualBitmap = toBitmap().rotateWithCropCenter(imageInfo.rotationDegrees) - actualBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos) - return object : RequestBody() { - override fun contentType() = contentType - - override fun contentLength() = baos.size().toLong() - - override fun writeTo(sink: BufferedSink) { - baos.use { - sink.write(it.toByteArray(), offset, it.size()) - } - } - } -} - fun Bitmap.rotateWithCropCenter(degrees: Int): Bitmap { val matrix = Matrix().apply { postRotate(degrees.toFloat()) } val newBitMap = if (width >= height) { @@ -255,12 +198,6 @@ fun Modifier.customDialogModifier(pos: CustomDialogPosition) = layout { measurab } } -@Composable -fun getDialogWindow(): Window? = (LocalView.current.parent as? DialogWindowProvider)?.window - -@Composable -fun getActivityWindow(): Window? = LocalView.current.context.getActivityWindow() - private tailrec fun Context.getActivityWindow(): Window? = when (this) { is Activity -> window @@ -282,14 +219,6 @@ fun getScreenSize(): Pair { } } -fun Context.findAndroidActivity(): Activity? { - var context = this - while (context is ContextWrapper) { - if (context is Activity) return context - context = context.baseContext - } - return null -} fun getLinkIdFromUrl(url: String): String { return url.split("/").last()