From df20c5eb7b8ba85bec9a07abb483f3385551ea2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9C=A4=EC=88=98?= Date: Fri, 11 Oct 2024 14:51:17 +0900 Subject: [PATCH] Maker Faire Set up --- .../interactor/GeneratePhotoFrameUseCase.kt | 17 ++ .../domain/interactor/entity/FramePosition.kt | 13 ++ .../interactor/web/GetDownloadUrlUseCase.kt | 18 ++ .../interactor/web/SessionKeyUseCase.kt | 16 ++ .../output/SessionRepositoryInterface.kt | 6 + .../external/repository/SessionRepository.kt | 16 ++ .../repository/di/RepositoryModule.kt | 8 + .../together/presenter/frame/FourCutFrame.kt | 31 ++- .../presenter/frame/MakerFaireFrame.kt | 89 ++++---- .../together/presenter/screen/CameraScreen.kt | 1 + .../screen/GenerateTwoRowImageScreen.kt | 19 +- .../presenter/screen/SelectFrameScreen.kt | 12 +- .../together/presenter/screen/ShareScreen.kt | 190 +++++++++--------- .../presenter/viewmodel/CameraViewModel.kt | 11 +- .../GenerateSingleRowImageViewModel.kt | 11 +- .../presenter/viewmodel/ShareViewModel.kt | 67 ++++-- .../res/drawable/fourcut_frame_high_dark.png | Bin 22740 -> 0 bytes .../res/drawable/fourcut_frame_high_light.png | Bin 23241 -> 0 bytes .../drawable/fourcut_frame_medium_dark.png | Bin 22834 -> 28800 bytes .../drawable/fourcut_frame_medium_light.png | Bin 22995 -> 28779 bytes .../main/res/drawable/maker_faire_frame.png | Bin 32568 -> 37409 bytes .../java/com/foke/together/util/SoundUtil.kt | 17 ++ util/src/main/res/raw/capture_sound.mp3 | Bin 0 -> 22965 bytes 23 files changed, 380 insertions(+), 162 deletions(-) create mode 100644 domain/src/main/java/com/foke/together/domain/interactor/entity/FramePosition.kt create mode 100644 domain/src/main/java/com/foke/together/domain/interactor/web/GetDownloadUrlUseCase.kt create mode 100644 domain/src/main/java/com/foke/together/domain/interactor/web/SessionKeyUseCase.kt create mode 100644 domain/src/main/java/com/foke/together/domain/output/SessionRepositoryInterface.kt create mode 100644 external/src/main/java/com/foke/together/external/repository/SessionRepository.kt delete mode 100644 presenter/src/main/res/drawable/fourcut_frame_high_dark.png delete mode 100644 presenter/src/main/res/drawable/fourcut_frame_high_light.png create mode 100644 util/src/main/java/com/foke/together/util/SoundUtil.kt create mode 100644 util/src/main/res/raw/capture_sound.mp3 diff --git a/domain/src/main/java/com/foke/together/domain/interactor/GeneratePhotoFrameUseCase.kt b/domain/src/main/java/com/foke/together/domain/interactor/GeneratePhotoFrameUseCase.kt index a36f94d..93cec98 100644 --- a/domain/src/main/java/com/foke/together/domain/interactor/GeneratePhotoFrameUseCase.kt +++ b/domain/src/main/java/com/foke/together/domain/interactor/GeneratePhotoFrameUseCase.kt @@ -5,6 +5,7 @@ import android.graphics.Bitmap import android.net.Uri import com.foke.together.domain.interactor.entity.CutFrameType import com.foke.together.domain.output.ImageRepositoryInterface +import com.foke.together.util.AppPolicy import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.flow.Flow import javax.inject.Inject @@ -20,4 +21,20 @@ class GeneratePhotoFrameUseCase @Inject constructor( suspend fun clearCapturedImageList() = imageRepositoryInterface.clearCacheDir() suspend fun saveGraphicsLayerImage(image: Bitmap, fileName: String) = imageRepositoryInterface.cachingImage(image, fileName) suspend fun saveFinalImage(image: Bitmap, fileName: String) = imageRepositoryInterface.saveToStorage(image, fileName) + + fun getFinalSingleImageUri(): Uri { + var finalSingleImageUri: Uri = Uri.EMPTY + context.cacheDir.listFiles().forEach { + file -> if (file.name.contains("${AppPolicy.SINGLE_ROW_FINAL_IMAGE_NAME}")) { finalSingleImageUri = Uri.fromFile(file) } + } + return finalSingleImageUri + } + + fun getFinalTwoImageUri(): Uri { + var finalTwoImageUri: Uri = Uri.EMPTY + context.cacheDir.listFiles().forEach { + file -> if (file.name.contains("${AppPolicy.TWO_ROW_FINAL_IMAGE_NAME}")) { finalTwoImageUri = Uri.fromFile(file) } + } + return finalTwoImageUri + } } \ No newline at end of file diff --git a/domain/src/main/java/com/foke/together/domain/interactor/entity/FramePosition.kt b/domain/src/main/java/com/foke/together/domain/interactor/entity/FramePosition.kt new file mode 100644 index 0000000..d012d4e --- /dev/null +++ b/domain/src/main/java/com/foke/together/domain/interactor/entity/FramePosition.kt @@ -0,0 +1,13 @@ +package com.foke.together.domain.interactor.entity + +enum class FramePosition { + LEFT, + RIGHT; + fun findBy(ordinal: Int): FramePosition { + return when (ordinal) { + LEFT.ordinal -> LEFT + RIGHT.ordinal -> RIGHT + else -> throw IllegalArgumentException("Unknown value: $ordinal") + } + } +} \ No newline at end of file diff --git a/domain/src/main/java/com/foke/together/domain/interactor/web/GetDownloadUrlUseCase.kt b/domain/src/main/java/com/foke/together/domain/interactor/web/GetDownloadUrlUseCase.kt new file mode 100644 index 0000000..52d73a6 --- /dev/null +++ b/domain/src/main/java/com/foke/together/domain/interactor/web/GetDownloadUrlUseCase.kt @@ -0,0 +1,18 @@ +package com.foke.together.domain.interactor.web + +import com.foke.together.util.AppPolicy +import javax.inject.Inject + +// Download url +// https://4cuts.store/download/{user_name}/{key} +class GetDownloadUrlUseCase @Inject constructor( + private val getCurrentUserInformationUseCase: GetCurrentUserInformationUseCase +) { + suspend operator fun invoke(key: String): Result { + getCurrentUserInformationUseCase() + .onSuccess { + "${AppPolicy.WEB_SERVER_URL}download/${it.name}/$key" + } + return Result.failure(Exception("Unknown error")) + } +} \ No newline at end of file diff --git a/domain/src/main/java/com/foke/together/domain/interactor/web/SessionKeyUseCase.kt b/domain/src/main/java/com/foke/together/domain/interactor/web/SessionKeyUseCase.kt new file mode 100644 index 0000000..7683d1d --- /dev/null +++ b/domain/src/main/java/com/foke/together/domain/interactor/web/SessionKeyUseCase.kt @@ -0,0 +1,16 @@ +package com.foke.together.domain.interactor.web + +import com.foke.together.domain.output.SessionRepositoryInterface +import javax.inject.Inject + +class SessionKeyUseCase @Inject constructor( + private val sessionRepository: SessionRepositoryInterface +) { + suspend fun setSessionKey() { + sessionRepository.setSessionKey() + } + + fun getSessionKey(): String { + return sessionRepository.getSessionKey() + } +} \ No newline at end of file diff --git a/domain/src/main/java/com/foke/together/domain/output/SessionRepositoryInterface.kt b/domain/src/main/java/com/foke/together/domain/output/SessionRepositoryInterface.kt new file mode 100644 index 0000000..ce27d42 --- /dev/null +++ b/domain/src/main/java/com/foke/together/domain/output/SessionRepositoryInterface.kt @@ -0,0 +1,6 @@ +package com.foke.together.domain.output + +interface SessionRepositoryInterface { + suspend fun setSessionKey() + fun getSessionKey(): String +} \ No newline at end of file diff --git a/external/src/main/java/com/foke/together/external/repository/SessionRepository.kt b/external/src/main/java/com/foke/together/external/repository/SessionRepository.kt new file mode 100644 index 0000000..f6a6540 --- /dev/null +++ b/external/src/main/java/com/foke/together/external/repository/SessionRepository.kt @@ -0,0 +1,16 @@ +package com.foke.together.external.repository + +import com.foke.together.domain.output.SessionRepositoryInterface +import com.foke.together.util.TimeUtil +import javax.inject.Inject + +class SessionRepository @Inject constructor(): SessionRepositoryInterface { + private var sessionKey: String = "" + override suspend fun setSessionKey() { + sessionKey = TimeUtil.getCurrentTimeSec() + } + + override fun getSessionKey(): String { + return sessionKey + } +} \ No newline at end of file diff --git a/external/src/main/java/com/foke/together/external/repository/di/RepositoryModule.kt b/external/src/main/java/com/foke/together/external/repository/di/RepositoryModule.kt index 2d0e61b..c408c65 100644 --- a/external/src/main/java/com/foke/together/external/repository/di/RepositoryModule.kt +++ b/external/src/main/java/com/foke/together/external/repository/di/RepositoryModule.kt @@ -3,9 +3,11 @@ package com.foke.together.external.repository.di import com.foke.together.domain.output.ExternalCameraRepositoryInterface import com.foke.together.domain.output.ImageRepositoryInterface import com.foke.together.domain.output.QRCodeRepositoryInterface +import com.foke.together.domain.output.SessionRepositoryInterface import com.foke.together.external.repository.ExternalCameraRepository import com.foke.together.external.repository.ImageRepository import com.foke.together.external.repository.QRCodeRepository +import com.foke.together.external.repository.SessionRepository import dagger.Binds import dagger.Module import dagger.hilt.InstallIn @@ -32,4 +34,10 @@ abstract class RepositoryModule { abstract fun bindQRCodeRepository( qrCodeRepository: QRCodeRepository ): QRCodeRepositoryInterface + + @Singleton + @Binds + abstract fun bindSessionRepository( + sessionRepository: SessionRepository + ): SessionRepositoryInterface } \ No newline at end of file diff --git a/presenter/src/main/java/com/foke/together/presenter/frame/FourCutFrame.kt b/presenter/src/main/java/com/foke/together/presenter/frame/FourCutFrame.kt index 0f95372..4b468c7 100644 --- a/presenter/src/main/java/com/foke/together/presenter/frame/FourCutFrame.kt +++ b/presenter/src/main/java/com/foke/together/presenter/frame/FourCutFrame.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.rememberLazyListState @@ -26,6 +27,8 @@ import androidx.compose.ui.graphics.rememberGraphicsLayer import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -35,6 +38,7 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LifecycleEventEffect import coil.compose.AsyncImage import coil.request.ImageRequest +import com.foke.together.domain.interactor.entity.FramePosition import com.foke.together.presenter.R import com.foke.together.presenter.theme.FourCutTogetherTheme import com.foke.together.presenter.theme.highContrastDarkColorScheme @@ -48,13 +52,31 @@ import kotlinx.coroutines.launch fun FourCutFrame( // TODO: Need to refactoring. separate frame design with application theme designColorScheme: ColorScheme = mediumContrastLightColorScheme, - cameraImageUrlList : List? = null + cameraImageUrlList : List? = null, + position: FramePosition? = null ) { ConstraintLayout( modifier = Modifier .aspectRatio(ratio = 0.3333f) .background(color = designColorScheme.surface) .border(1.dp, designColorScheme.inverseSurface) + .padding( + start = position.let { + when(it){ + FramePosition.LEFT -> 20.dp + FramePosition.RIGHT -> 0.dp + null -> 10.dp + } + }, + end = position.let { + when(it){ + FramePosition.LEFT -> 0.dp + FramePosition.RIGHT -> 20.dp + null -> 10.dp + } + }, + top = 40.dp + ) ) { val (cameraColumn, decorateRow) = createRefs() LazyColumn( @@ -67,9 +89,8 @@ fun FourCutFrame( bottom.linkTo(decorateRow.top) start.linkTo(parent.start) end.linkTo(parent.end) - width = Dimension.fillToConstraints - height = Dimension.wrapContent } + .wrapContentSize() ) { items(AppPolicy.CAPTURE_COUNT){ //TODO: add camera image @@ -114,7 +135,9 @@ fun FourCutFrame( text = TimeUtil.getCurrentDisplayTime(), modifier = Modifier.weight(1f), color = designColorScheme.inverseSurface, - fontSize = 12.sp + fontSize = 15.sp, + textAlign = TextAlign.Center, + fontWeight = FontWeight.Bold ) } } diff --git a/presenter/src/main/java/com/foke/together/presenter/frame/MakerFaireFrame.kt b/presenter/src/main/java/com/foke/together/presenter/frame/MakerFaireFrame.kt index 5c01e4a..a3f41c7 100644 --- a/presenter/src/main/java/com/foke/together/presenter/frame/MakerFaireFrame.kt +++ b/presenter/src/main/java/com/foke/together/presenter/frame/MakerFaireFrame.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.padding @@ -15,6 +16,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.graphics.Color @@ -24,6 +26,8 @@ import androidx.compose.ui.graphics.layer.drawLayer import androidx.compose.ui.graphics.rememberGraphicsLayer import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -33,6 +37,7 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LifecycleEventEffect import coil.compose.AsyncImage import coil.request.ImageRequest +import com.foke.together.domain.interactor.entity.FramePosition import com.foke.together.presenter.R import com.foke.together.presenter.theme.FourCutTogetherTheme import com.foke.together.util.AppPolicy @@ -44,25 +49,40 @@ import kotlinx.coroutines.launch fun MakerFaireFrame( cameraImageUrlList : List? = null, backgroundColor : Color = Color(0xFFF5B934), - decorateImageUrl: String? = null + position: FramePosition? = null ) { ConstraintLayout( modifier = Modifier .aspectRatio(ratio = 0.3333f) .background(backgroundColor) .border(1.dp, Color.White) + .padding( + start = position.let { + when(it){ + FramePosition.LEFT -> 20.dp + FramePosition.RIGHT -> 0.dp + null -> 10.dp + } + }, + end = position.let { + when(it){ + FramePosition.LEFT -> 0.dp + FramePosition.RIGHT -> 20.dp + null -> 10.dp + } + }, + top = 40.dp + ) ) { - val (cameraColumn,decorateImage, curTime) = createRefs() - val logoImageGuideLineStart = createGuidelineFromStart(0.15f) - val logoImageGuideLineEnd = createGuidelineFromEnd(0.15f) + val (cameraColumn,decorateRow) = createRefs() LazyColumn( state = rememberLazyListState(), verticalArrangement = Arrangement.spacedBy(10.dp), - contentPadding = PaddingValues(horizontal = 10.dp, vertical = 10.dp), + contentPadding = PaddingValues(horizontal = 15.dp, vertical = 15.dp), modifier = Modifier .constrainAs(cameraColumn) { - top.linkTo(parent.top, margin = 15.dp) - bottom.linkTo(decorateImage.top) + top.linkTo(parent.top) + bottom.linkTo(decorateRow.top) start.linkTo(parent.start) end.linkTo(parent.end) } @@ -84,33 +104,34 @@ fun MakerFaireFrame( } } } - - Image( - painter = painterResource( - id = R.drawable.maker_faire_logo - ), - contentDescription = "for decorate", - modifier = Modifier.constrainAs(decorateImage){ - top.linkTo(cameraColumn.bottom) - bottom.linkTo(curTime.top) - start.linkTo(logoImageGuideLineStart) - end.linkTo(logoImageGuideLineEnd) - width = Dimension.fillToConstraints - height = Dimension.wrapContent - } - ) - - Text( - text = TimeUtil.getCurrentDisplayTime(), - modifier = Modifier.constrainAs(curTime){ - top.linkTo(decorateImage.bottom) - bottom.linkTo(parent.bottom, margin = 15.dp) - start.linkTo(parent.start) - end.linkTo(parent.end) - }, - color = Color.White, - fontSize = 12.sp - ) + Column( + modifier = Modifier + .constrainAs(decorateRow){ + top.linkTo(cameraColumn.bottom) + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + width = Dimension.fillToConstraints + }, + horizontalAlignment = Alignment.CenterHorizontally + ) { + Image( + painter = painterResource( + id = R.drawable.maker_faire_logo + ), + contentDescription = "for decorate", + modifier = Modifier.weight(1f) + ) + Text( + modifier = Modifier.weight(1f), + text = TimeUtil.getCurrentDisplayTime(), + color = Color.White, + fontSize = 15.sp, + textAlign = TextAlign.Center, + fontWeight = FontWeight.Bold + ) + } } } diff --git a/presenter/src/main/java/com/foke/together/presenter/screen/CameraScreen.kt b/presenter/src/main/java/com/foke/together/presenter/screen/CameraScreen.kt index 8afa406..9abcd4c 100644 --- a/presenter/src/main/java/com/foke/together/presenter/screen/CameraScreen.kt +++ b/presenter/src/main/java/com/foke/together/presenter/screen/CameraScreen.kt @@ -61,6 +61,7 @@ fun CameraScreen( end.linkTo(parent.end, margin = 24.dp) bottom.linkTo(title.top) width = Dimension.fillToConstraints + height = Dimension.wrapContent }, ) Text( diff --git a/presenter/src/main/java/com/foke/together/presenter/screen/GenerateTwoRowImageScreen.kt b/presenter/src/main/java/com/foke/together/presenter/screen/GenerateTwoRowImageScreen.kt index 53098ba..6c6b48e 100644 --- a/presenter/src/main/java/com/foke/together/presenter/screen/GenerateTwoRowImageScreen.kt +++ b/presenter/src/main/java/com/foke/together/presenter/screen/GenerateTwoRowImageScreen.kt @@ -20,6 +20,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LifecycleEventEffect import com.foke.together.domain.interactor.entity.CutFrameType +import com.foke.together.domain.interactor.entity.FramePosition import com.foke.together.presenter.frame.FourCutFrame import com.foke.together.presenter.frame.MakerFaireFrame import com.foke.together.presenter.theme.FourCutTogetherTheme @@ -70,11 +71,13 @@ fun GenerateTwoRowImageScreen( ) { GetFrame( cutFrameType = viewModel.cutFrameType.ordinal, - imageUri = viewModel.imageUri + imageUri = viewModel.imageUri, + position = FramePosition.LEFT ) GetFrame( cutFrameType = viewModel.cutFrameType.ordinal, - imageUri = viewModel.imageUri + imageUri = viewModel.imageUri, + position = FramePosition.RIGHT ) } } @@ -92,21 +95,25 @@ fun GenerateTwoRowImageScreen( @Composable fun GetFrame( cutFrameType : Int, - imageUri: List + imageUri: List, + position: FramePosition? = null ): Unit{ when(cutFrameType) { CutFrameType.MAKER_FAIRE.ordinal -> MakerFaireFrame( - cameraImageUrlList = imageUri + cameraImageUrlList = imageUri, + position = position ) CutFrameType.FOURCUT_LIGHT.ordinal -> FourCutFrame( designColorScheme = mediumContrastLightColorScheme, - cameraImageUrlList = imageUri + cameraImageUrlList = imageUri, + position = position ) CutFrameType.FOURCUT_DARK.ordinal -> FourCutFrame( designColorScheme = mediumContrastLightColorScheme, - cameraImageUrlList = imageUri + cameraImageUrlList = imageUri, + position = position ) else -> TODO() } diff --git a/presenter/src/main/java/com/foke/together/presenter/screen/SelectFrameScreen.kt b/presenter/src/main/java/com/foke/together/presenter/screen/SelectFrameScreen.kt index ba1c934..5403b2f 100644 --- a/presenter/src/main/java/com/foke/together/presenter/screen/SelectFrameScreen.kt +++ b/presenter/src/main/java/com/foke/together/presenter/screen/SelectFrameScreen.kt @@ -39,7 +39,9 @@ fun SelectFrameScreen( viewModel: SelectFrameViewModel = hiltViewModel() ) { FourCutTogetherTheme { - val pagerState = rememberPagerState { + val pagerState = rememberPagerState( + initialPage = CutFrameType.MAKER_FAIRE.ordinal + ) { CutFrameType.entries.size // 총 페이지 수 설정 } ConstraintLayout( @@ -102,15 +104,17 @@ fun SelectFrameScreen( ) ) { page -> when(page){ + CutFrameType.MAKER_FAIRE.ordinal -> Image(painter = painterResource(id = R.drawable.maker_faire_frame), contentDescription = "maker_faire_frame") CutFrameType.FOURCUT_LIGHT.ordinal -> Image(painter = painterResource(id = R.drawable.fourcut_frame_medium_light), contentDescription = "fourcut_frame_medium_light") CutFrameType.FOURCUT_DARK.ordinal -> Image(painter = painterResource(id = R.drawable.fourcut_frame_medium_dark), contentDescription = "fourcut_frame_medium_dark") - CutFrameType.MAKER_FAIRE.ordinal -> Image(painter = painterResource(id = R.drawable.maker_faire_frame), contentDescription = "maker_faire_frame") } - viewModel.setCutFrameType(page) } IconButton( - onClick = { navigateToMethod() }, + onClick = { + viewModel.setCutFrameType(pagerState.currentPage) + navigateToMethod() + }, modifier = Modifier.constrainAs(frameSelectButton) { top.linkTo(pager.bottom) start.linkTo(startGuideLine) diff --git a/presenter/src/main/java/com/foke/together/presenter/screen/ShareScreen.kt b/presenter/src/main/java/com/foke/together/presenter/screen/ShareScreen.kt index fb72eb0..10bf65b 100644 --- a/presenter/src/main/java/com/foke/together/presenter/screen/ShareScreen.kt +++ b/presenter/src/main/java/com/foke/together/presenter/screen/ShareScreen.kt @@ -1,6 +1,11 @@ package com.foke.together.presenter.screen +import android.graphics.Bitmap +import android.graphics.BitmapFactory import android.net.Uri +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.size @@ -10,8 +15,14 @@ import androidx.compose.material.icons.filled.Download import androidx.compose.material.icons.filled.Home import androidx.compose.material.icons.filled.Print import androidx.compose.material.icons.filled.Share -import androidx.compose.material3.* +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface import androidx.compose.runtime.Composable +import androidx.compose.runtime.State +import androidx.compose.runtime.collectAsState +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Preview @@ -29,6 +40,7 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LifecycleEventEffect import coil.compose.AsyncImage import coil.request.ImageRequest +import com.foke.together.presenter.R import com.foke.together.presenter.viewmodel.ShareViewModel import com.foke.together.util.ImageFileUtil @@ -37,131 +49,121 @@ fun ShareScreen( popBackStack: () -> Unit, viewModel: ShareViewModel = hiltViewModel() ) { - val finalSingleImageUri = viewModel.getFinalSingleImageUri() val context = LocalContext.current + val qrCodeBitmap: State = viewModel.qrCodeBitmap.collectAsState(initial = Bitmap.createBitmap( + 1,1,Bitmap.Config.ARGB_8888) ) ConstraintLayout( modifier = Modifier.fillMaxSize() ) { - val (finalPic, printButton, shareButton, downloadButton, homeButton ) = createRefs() + val (finalPic, buttonColumn, printButton, shareButton, downloadButton, homeButton ) = createRefs() val frameType = 0 val topGuideLine = createGuidelineFromTop(0.1f) val bottomGuideLine = createGuidelineFromBottom(0.1f) - val startGuideLine = createGuidelineFromStart(0.2f) - val endGuideLine = createGuidelineFromEnd(0.2f) - val frameBarrier = createEndBarrier(finalPic) - createVerticalChain( - homeButton, printButton, shareButton, downloadButton, - chainStyle = ChainStyle.Spread - ) + val startGuideLine = createGuidelineFromStart(0.1f) + val endGuideLine = createGuidelineFromEnd(0.1f) // TODO: need check to change single ImageView AsyncImage( model = ImageRequest.Builder(context) - .data(finalSingleImageUri) + .data(viewModel.singleImageUri) .build(), contentDescription = "", modifier = Modifier .constrainAs(finalPic) { top.linkTo(topGuideLine) bottom.linkTo(bottomGuideLine) - start.linkTo(parent.start, margin = 30.dp) + start.linkTo(startGuideLine) + end.linkTo(buttonColumn.start) width = Dimension.wrapContent height = Dimension.fillToConstraints } .aspectRatio(0.3333f) ) - IconButton( - onClick = { popBackStack() }, - modifier = Modifier.constrainAs(homeButton) { + Column( + modifier = Modifier.constrainAs(buttonColumn){ top.linkTo(topGuideLine) - end.linkTo(parent.end, margin = 30.dp) - bottom.linkTo(printButton.top) - height = Dimension.wrapContent - width = Dimension.wrapContent + bottom.linkTo(bottomGuideLine) + start.linkTo(finalPic.end) + end.linkTo(endGuideLine) + width = Dimension.fillToConstraints + height = Dimension.fillToConstraints }, + horizontalAlignment = Alignment.CenterHorizontally ) { - Icon( - modifier = Modifier.size(120.dp), - imageVector = Icons.Filled.Home, - contentDescription = "Home", - tint = MaterialTheme.colorScheme.primary - ) - } - IconButton( - onClick = { - val finalTwoRowImageUri = viewModel.getFinalTwoImageUri() - ImageFileUtil.printFromUri(context,finalTwoRowImageUri) - }, - modifier = Modifier.constrainAs(printButton) { - top.linkTo(homeButton.bottom) - end.linkTo(parent.end, margin = 30.dp) - bottom.linkTo(shareButton.top) - height = Dimension.wrapContent - width = Dimension.wrapContent - }, - ) { - Icon( - modifier = Modifier.size(120.dp), - imageVector = Icons.Filled.Print, - contentDescription = "Print", - tint = MaterialTheme.colorScheme.primary - ) - } + IconButton( + onClick = { popBackStack() }, + modifier = Modifier.weight(1f) + ) { + Icon( + modifier = Modifier.fillMaxSize(), + imageVector = Icons.Filled.Home, + contentDescription = "Home", + tint = MaterialTheme.colorScheme.primary + ) + } - IconButton( - onClick = { - val finalFile = finalSingleImageUri.toFile() - val contentUri = FileProvider.getUriForFile( - context, - "com.foke.together.fileprovider", - finalFile + IconButton( + onClick = { + ImageFileUtil.printFromUri(context,viewModel.twoImageUri) + }, + modifier = Modifier.weight(1f) + ) { + Icon( + modifier = Modifier.fillMaxSize(), + imageVector = Icons.Filled.Print, + contentDescription = "Print", + tint = MaterialTheme.colorScheme.primary ) - ImageFileUtil.shareUri(context, contentUri) - }, - modifier = Modifier.constrainAs(shareButton) { - top.linkTo(printButton.bottom) - end.linkTo(parent.end, margin = 30.dp) - bottom.linkTo(downloadButton.top) - height = Dimension.wrapContent - width = Dimension.wrapContent - }, - ) { - Icon( - modifier = Modifier.size(120.dp), - imageVector = Icons.Filled.Share, - contentDescription = "Share", - tint = MaterialTheme.colorScheme.primary - ) - } + } - IconButton( - onClick = { viewModel.downloadImage() }, - modifier = Modifier.constrainAs(downloadButton) { - top.linkTo(shareButton.bottom) - end.linkTo(parent.end, margin = 30.dp) - bottom.linkTo(parent.bottom) - height = Dimension.wrapContent - width = Dimension.wrapContent - }, - ) { - Icon( - modifier = Modifier.size(120.dp), - imageVector = Icons.Filled.Download, - contentDescription = "Download", - tint = MaterialTheme.colorScheme.primary - ) + IconButton( + onClick = { + val contentUri = FileProvider.getUriForFile( + context, + "com.foke.together.fileprovider", + viewModel.singleImageUri.toFile() + ) + ImageFileUtil.shareUri(context, contentUri) + }, + modifier = Modifier.weight(1f) + ) { + Icon( + modifier = Modifier.fillMaxSize(), + imageVector = Icons.Filled.Share, + contentDescription = "Share", + tint = MaterialTheme.colorScheme.primary + ) + } + + Box( + modifier = Modifier.weight(1f) + ){ + AsyncImage( + model = ImageRequest.Builder(context) + .data(qrCodeBitmap.value) + .build(), + contentDescription = "qr code", + modifier = Modifier.fillMaxSize() + ) + } + +// IconButton( +// onClick = { +// viewModel.downloadImage() +// }, +// modifier = Modifier.weight(1f) +// ) { +// Icon( +// modifier = Modifier.fillMaxSize(), +// imageVector = Icons.Filled.Download, +// contentDescription = "Download", +// tint = MaterialTheme.colorScheme.primary +// ) +// } } } - // TODO: Lifecycle 맞춰서 로딩하기 -// LifecycleEventEffect(Lifecycle.Event.ON_CREATE) { -// context.filesDir.listFiles().forEach { -// file -> if (file.name.contains("final_single_row.jpg")) { -// finalSingleImageUri = Uri.fromFile(file) -// } -// } -// } } @Preview(showBackground = true) diff --git a/presenter/src/main/java/com/foke/together/presenter/viewmodel/CameraViewModel.kt b/presenter/src/main/java/com/foke/together/presenter/viewmodel/CameraViewModel.kt index 57f72c2..898c2c4 100644 --- a/presenter/src/main/java/com/foke/together/presenter/viewmodel/CameraViewModel.kt +++ b/presenter/src/main/java/com/foke/together/presenter/viewmodel/CameraViewModel.kt @@ -1,5 +1,6 @@ package com.foke.together.presenter.viewmodel +import android.content.Context import android.os.CountDownTimer import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableFloatStateOf @@ -11,20 +12,25 @@ import androidx.lifecycle.viewModelScope import com.foke.together.domain.interactor.CaptureWithExternalCameraUseCase import com.foke.together.domain.interactor.GeneratePhotoFrameUseCase import com.foke.together.domain.interactor.GetExternalCameraPreviewUrlUseCase +import com.foke.together.domain.interactor.web.SessionKeyUseCase import com.foke.together.util.AppPolicy import com.foke.together.util.AppPolicy.CAPTURE_INTERVAL import com.foke.together.util.AppPolicy.COUNTDOWN_INTERVAL +import com.foke.together.util.SoundUtil import com.foke.together.util.TimeUtil import dagger.hilt.android.lifecycle.HiltViewModel +import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.delay import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel class CameraViewModel @Inject constructor( + @ApplicationContext private val context: Context, getExternalCameraPreviewUrlUseCase: GetExternalCameraPreviewUrlUseCase, // private val captureWithExternalCameraUseCase: CaptureWithExternalCameraUseCase, - private val generatePhotoFrameUseCase: GeneratePhotoFrameUseCase + private val generatePhotoFrameUseCase: GeneratePhotoFrameUseCase, + private val sessionKeyUseCase: SessionKeyUseCase ): ViewModel() { val externalCameraIP = getExternalCameraPreviewUrlUseCase() @@ -48,6 +54,7 @@ class CameraViewModel @Inject constructor( } override fun onFinish() { viewModelScope.launch { + SoundUtil.getCameraSound(context = context ) val bitmap = graphicsLayer.toImageBitmap().asAndroidBitmap() generatePhotoFrameUseCase.saveGraphicsLayerImage(bitmap, "${AppPolicy.CAPTURED_FOUR_CUT_IMAGE_NAME}_${_captureCount.value}") _progressState.floatValue = 1f @@ -55,9 +62,9 @@ class CameraViewModel @Inject constructor( _captureCount.intValue += 1 mTimerState = false } else { + sessionKeyUseCase.setSessionKey() stopCaptureTimer() _captureCount.intValue = 1 - delay(CAPTURE_INTERVAL) nextNavigate() } } diff --git a/presenter/src/main/java/com/foke/together/presenter/viewmodel/GenerateSingleRowImageViewModel.kt b/presenter/src/main/java/com/foke/together/presenter/viewmodel/GenerateSingleRowImageViewModel.kt index 682c72a..19a3e4a 100644 --- a/presenter/src/main/java/com/foke/together/presenter/viewmodel/GenerateSingleRowImageViewModel.kt +++ b/presenter/src/main/java/com/foke/together/presenter/viewmodel/GenerateSingleRowImageViewModel.kt @@ -3,9 +3,13 @@ package com.foke.together.presenter.viewmodel import android.content.Context import androidx.compose.ui.graphics.asAndroidBitmap import androidx.compose.ui.graphics.layer.GraphicsLayer +import androidx.core.net.toFile import androidx.lifecycle.ViewModel import com.foke.together.domain.interactor.GeneratePhotoFrameUseCase +import com.foke.together.domain.interactor.GetQRCodeUseCase import com.foke.together.domain.interactor.entity.CutFrameType +import com.foke.together.domain.interactor.web.SessionKeyUseCase +import com.foke.together.domain.interactor.web.UploadFileUseCase import com.foke.together.util.AppLog import com.foke.together.util.AppPolicy import dagger.hilt.android.lifecycle.HiltViewModel @@ -15,7 +19,10 @@ import javax.inject.Inject @HiltViewModel class GenerateSingleRowImageViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val generatePhotoFrameUseCase: GeneratePhotoFrameUseCase + private val generatePhotoFrameUseCase: GeneratePhotoFrameUseCase, + private val uploadFileUseCase: UploadFileUseCase, + private val sessionKeyUseCase: SessionKeyUseCase, + private val getQRCodeUseCase: GetQRCodeUseCase ): ViewModel() { val cutFrameType: CutFrameType = generatePhotoFrameUseCase.getCutFrameType() val imageUri = generatePhotoFrameUseCase.getCapturedImageListUri() @@ -23,6 +30,8 @@ class GenerateSingleRowImageViewModel @Inject constructor( suspend fun generateImage(graphicsLayer: GraphicsLayer) { val bitmap = graphicsLayer.toImageBitmap().asAndroidBitmap() val finalCachedImageUri = generatePhotoFrameUseCase.saveGraphicsLayerImage(bitmap, AppPolicy.SINGLE_ROW_FINAL_IMAGE_NAME) + val result = uploadFileUseCase(sessionKeyUseCase.getSessionKey(), finalCachedImageUri.toFile()) AppLog.d("GenerateImageViewModel", "generateTwoRowImage" ,"twoRow: $finalCachedImageUri") + AppLog.d("GenerateImageViewModel", "UploadFile" ,"result: $result") } } \ No newline at end of file diff --git a/presenter/src/main/java/com/foke/together/presenter/viewmodel/ShareViewModel.kt b/presenter/src/main/java/com/foke/together/presenter/viewmodel/ShareViewModel.kt index 979f1e9..e3ee0c8 100644 --- a/presenter/src/main/java/com/foke/together/presenter/viewmodel/ShareViewModel.kt +++ b/presenter/src/main/java/com/foke/together/presenter/viewmodel/ShareViewModel.kt @@ -1,40 +1,45 @@ package com.foke.together.presenter.viewmodel import android.content.Context +import android.graphics.Bitmap import android.net.Uri +import androidx.core.content.FileProvider +import androidx.core.net.toFile import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.foke.together.domain.interactor.GeneratePhotoFrameUseCase +import com.foke.together.domain.interactor.GetQRCodeUseCase +import com.foke.together.domain.interactor.web.GetDownloadUrlUseCase +import com.foke.together.domain.interactor.web.SessionKeyUseCase import com.foke.together.util.AppPolicy import com.foke.together.util.ImageFileUtil import dagger.hilt.android.lifecycle.HiltViewModel +import dagger.hilt.android.qualifiers.ActivityContext import dagger.hilt.android.qualifiers.ApplicationContext +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.flow import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel class ShareViewModel @Inject constructor( - @ApplicationContext private val context: Context + @ApplicationContext private val context: Context, + private val getQRCodeUseCase: GetQRCodeUseCase, + private val getDownloadUrlUseCase: GetDownloadUrlUseCase, + private val sessionKeyUseCase: SessionKeyUseCase, + private val generatePhotoFrameUseCase: GeneratePhotoFrameUseCase ): ViewModel() { - - fun getFinalSingleImageUri(): Uri { - var finalSingleImageUri: Uri = Uri.EMPTY - context.cacheDir.listFiles().forEach { - file -> if (file.name.contains("${AppPolicy.SINGLE_ROW_FINAL_IMAGE_NAME}")) { finalSingleImageUri = Uri.fromFile(file) } - } - return finalSingleImageUri + val qrCodeBitmap: Flow = flow{ + val qrCodeBitmap = generateQRcode() + emit(qrCodeBitmap) } - fun getFinalTwoImageUri(): Uri { - var finalTwoImageUri: Uri = Uri.EMPTY - context.cacheDir.listFiles().forEach { - file -> if (file.name.contains("${AppPolicy.TWO_ROW_FINAL_IMAGE_NAME}")) { finalTwoImageUri = Uri.fromFile(file) } - } - return finalTwoImageUri - } + val singleImageUri: Uri = generatePhotoFrameUseCase.getFinalSingleImageUri() + + val twoImageUri: Uri = generatePhotoFrameUseCase.getFinalTwoImageUri() fun downloadImage() { - val imageUri = getFinalSingleImageUri() - val imageBitmap = ImageFileUtil.getBitmapFromUri(context, imageUri) + val imageBitmap = ImageFileUtil.getBitmapFromUri(context, singleImageUri) viewModelScope.launch { ImageFileUtil.saveBitmapToStorage( context, @@ -43,4 +48,32 @@ class ShareViewModel @Inject constructor( ) } } + + suspend fun generateQRcode(): Bitmap { + val sessionKey = sessionKeyUseCase.getSessionKey() + val downloadUrl:String = getDownloadUrlUseCase(sessionKey).toString() + if(downloadUrl.contains("Failure")){ + return Bitmap.createBitmap( + 1,1,Bitmap.Config.ARGB_8888) + } + return getQRCodeUseCase(sessionKey, downloadUrl) + // return a empty bitmap if the qr code generation fails + .getOrElse( + return Bitmap.createBitmap( + 1,1,Bitmap.Config.ARGB_8888) + ) + } + + fun shareImage() { + val contentUri = FileProvider.getUriForFile( + context, + "com.foke.together.fileprovider", + singleImageUri.toFile() + ) + ImageFileUtil.shareUri(context, contentUri) + } + + fun printImage(activityContext: Context) { + ImageFileUtil.printFromUri(activityContext,twoImageUri) + } } \ No newline at end of file diff --git a/presenter/src/main/res/drawable/fourcut_frame_high_dark.png b/presenter/src/main/res/drawable/fourcut_frame_high_dark.png deleted file mode 100644 index 4c1524d14adaea1760b78dcab086ed20481191c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22740 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 diff --git a/presenter/src/main/res/drawable/fourcut_frame_high_light.png b/presenter/src/main/res/drawable/fourcut_frame_high_light.png deleted file mode 100644 index d38a616239caa6808ae10034bc2d62ffe8ca2db9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23241 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 z 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 QE94hr3#0O%?)>&Y0MKQ8QUCw| diff --git a/presenter/src/main/res/drawable/fourcut_frame_medium_light.png b/presenter/src/main/res/drawable/fourcut_frame_medium_light.png index b66ca5a9f4258f164c5a55dee28eabf1db4f56d1..1b6217bcc16133cbc116ebf5ae623d9854b83cfd 100644 GIT binary patch literal 28779 zcmeHwXIPV2w{`?276ct%MMQ{Ylo1O$h;(Adf}o>{Zg z(@qY{m#$k10)dtvKX&*R5J*D|0xcd}tOfk#)lJ4e5a{a9#}6Mk7wt7c-B`Be=ISG7 zMpoTfR#JHS)AKIKf~1v)Z>@aZ_~X9U#w)tF-hchF;za&+jp>hOo+++YnqNhxrJow6 zUMfC7@N)iY5a@0HgHcTo=<^ITUey}K1%a+VQyGY13ej{soS*>$?MY761LnVavk?rs zerTaR2(*3^Zvlw4B3>5+y0aJw0$CnrX@VLzYCu3Bot5fG@6JCuzXSiLb^s%ut>bzT zlp_Wp&_Sc+qP_@tVk3k>s7D%Ufv(?nXts-@du--`ftdKbnYT#!BM>363-OIuAYS$- zH|mL>0NXLPQmldb0SFK~4H(NA2$$y$tYz}!K=23`Bjcei>K*PfEL^i-XFAt3aTQf7OHkPM!T`C|W6*;X@W1D44fKU8gL(V4le1y%lk;!^qan1S@g-Sw9!*`gUyg)nB9|K7?0A7H(mm zxpDoHiizLvbn4>pTNN{X6biONq8KKaAd$)&LJFtkWFZ8zV-nMUYe}n8R3Z)WQB229 zUNb&N)m(c{1G3n()ivn1Q@5OR5TQP;3RO<`5f&^gptmCEM!c$yX|92}8p%UE<)W05 z@P6qGJ6AB`JQkJet)h(Xa zM)DvTV>)Ovo(;1}#kBj{M6R3Fo#^Yynp6p%IF+m~KMT)6pOAKy8FYHfL=hF4a4=-; z8o)02X${QhNFMmImg>^xsqRo36&bQsAQJWtCOKp4Snnz>%Vw`R;0=+NE-XfFur(8( zPxv{3fM3Z{g)`nAPn4~UA)3PKqx;}DCRm!y2U(i^GnMXtB&5xUu16+d>Y_+m{sRRh(zeYw=c36{e+%&$j9GBNLvNp-t;c zRx(u`(WGR^S6GaZL;3eHs;6HSc$GH9)b*#(s4A4L%3eVAFs=|}57VU|8BNKS2^ii7 zJ<0^lC9j%1CKs=oVe}vQ1nUAJ2l@^F%56<48(nE8n63`$);W z^`LW$!o@`Vv~jHpAeaGhAOVW=AWt!qzT^w}05S>{Uh+8P|^s zeY>%t|9wD8t7`4V=uh^cxV!G~?--wC&ofMyH|PB~NH_&m#e?>U!Zt&XV}vT^k~ zf3I#j8nxM9uwL~j_3gxr4tfu-z+Vdrn;C6?u&bnqM!G}FNSh__#tFzP$rChMRx!K* zV-w>zeor%(u=OuXueEPZeu1$atv}J1*xEX3>i<46;$nWajW|RDbKjSTqgQN0U17-E zYA3V8+S}S-_GO-AyG%Uo@>9%spP;j?geXWmIqbarQ<97uWgxV*^J2?pG=1C3w$vf3C6tf-D z$|y0=FrIMi&+bVe{Mw!>yoVqa7xg$P!(KOpXh1P7EXbOyvoRNK zBoE4_qUFa3Io3CCfVN zZKjT;G2`H7Up?SlwDeU4j+d73>RA&kjBLkNAe?bUJtQ3b?eEb#ZfH#b{N%1e+mdW~ z?asKd-~XP=-I}jzK&F2HM@|M$jf|`yyMB~NX1WV7c>go8qJZ*D2rqbf&2;SGapQvY z?eJ615c`W(vmLcPO=OJWS0Gsc>FU{iefgpwYPdXqlgg>L;Xqrt5L!1SZ5!;3VP@43 zEewi-dYZtuZviN6BO}>R+^U(6NVS7W!ginbPUlpwOmsN0QT~lazeVRoe1x&w!xBpcB=upfVr$eA3i~x~_Ea z&qqRmj;6}9+_&HX75=iw=R3TcCbtdI$E(TD(v=k}Ulw26m(G`}Iu^6!#g$;%P4?Z; zD4xKgxvIp<2skXv0DsufbCX#+coneJw6?6ezzCn6a~{7x+6wQUP^8DO42cz( zYFbU{R_JfH>OD8bin8AI1VAR$15Vm`szLjOcr5M>Vm3R-B-x<7Vzq@Uwd^k(?>&mF z)atp?-W`OE;1mHj%*2wJkC4z%Pxub+Me6r&M)DjCI@D=r36ORy^no`^ z1SGctb6l;Nie%27ZG{ARZ7HCq?M`e37A`_)sX9=y4ESC5ZuPpEeN6dqhbsM<>aar*7*GF?O2;r}Rj@!h5f z+0i?&V=3uP;Aco6Nps)L7-TRV&1xeTw0%ZF<7S3c%c!<`KbR;n6F+3Y4y8w#}{ zj#8BX&U6h7sD99wsNR@SZM4yr41X3R_LbZ>kf4vep0ot8X#JRX`j|GVS`BgG(=Cas z!UWWvMEGEcC&E^0m!RTJ(b)!Ry8z;oT6#466H7DPiKQt#&4?!jn3WJ2P&NOg_0q+po%TxW_lRNktgy zn*DQcp0Dv`MtZ~wg!*h#C;Pm8)oRA*YgwJci5A9bLAmc#6SbV}oW#5+8?i4hzJCia z@-wtxXUb0xc6CPZ%3&9wl6bflv(Y4$UxRonP40G6KrJZ- zg5Tm)W)A5BD(-Jj-uWd03~d9(xTl4#)0fM$7iK3ZhfH_0ryULP{EmI6m&N>;Yu@$; zClXA+nu&YZg{~G*=;vBrn}U*yJ?onTJcHgRZFcA++i1(9h#A?t+@XK_YvAQrLx=Di zM3(7=@~sWtzJ73%q=x>M5paM<_qs<>JWT9lL<)f2-3VuR4uRh~jGdNtpWLNhoinz2cQJD4(LcdW zJ&Xgpd)*#I<;m3gusC*m^=2iHAQCYJc~Gq7)#qU)gL_t+i2-JrrM#@PN-?KNs<)(> z69V2w6t8qPvVEq!e84XV4J4v~!L!ci|BBx)2LaHBy2Xb0G>ql{s)eD?hOh;C7cT&2 z$!}j0A;V!PlE16yGnqM3za`{iMtGX7ya}aTZVkc5)2gH(B&3Age4whvD z_>JMS;)Rez3vh8z)sxn{{4A6@H|e1&?enwO55!FPRp?Ij&H-xR@0o`3YNDk%3ZUO3 zKmECZu9V(3plp`Cw(0n`GB^CdDW&!SPVJ;EkUV{|Cq8pwC#r+#?ll-2iNSU9+lJWX z^6#|Z^fCZqbzl2;H<3wh2-n!rPZSeQ6=E1A%4<%12KU^K5l1qzqgo97755Q-bP(&7 z;PcCn&{ATbE`V^+NmBSiB3 zwvl#xV)}j0vhKSRRDoyB6R@6&Mol)Cl;sNWM$xAnO4bKh-Q>p#fS`1~i{Ny6IH#Yf zf!U~{Nin(Trmnwd{@R48R8vDE=o^BS4L0{}gd&o0b)aG-Vj9ZeNm~pOsTjC1lnXKS z%*fgGaP-Pw^N#s~0rEGzOwa3!{Bb@q6Z$f}VSIF(SR~IMF4fG19Sqw6m<8RG+~zp6 zyyY;8_t1>8`c~oS!#8uux&NkrCx?K+!XGe~Pad8#ohcx=YS&P>J-n zyRIP&N9;Ijl>i-JZ@xn@#lcb;wu+~1*S4NiZvQZGzOZv@G^cnyA!V+LdcNi&Sk;ve zlt=GTHjytd@S-&6ep+l%=y1>wByKPqf&UuHWg+d)) z5t;kUy8}HjJN`P;mmD3mP+#6*TOSu?*6Bx&4U+bopUi}qD1kD&Q#O*N1OwIFQ9(kB zd*mT&_+)RmfLa_N`#m9LrsZ#_jpV^Xe)Hv>oV8V5>@ACOb|;|X+$DcfNAh;1 z*^4g;_7N8RnYNUusw#f)5}NVXMvmazo+w9zW?uV5DKr*Tb%k9Sz+p6`APkcaWHvz- z8t;O2%+7?01YojdVVP0m^B=_fcMhFNUF}i*Vl|L_9jy2vLaYFMR%EZbIDE0ydxamb zz#V_ZudX|;2m)SN90d)2N zOH*@at8dWFcN^MN#Z^ktvfZl}+VB3n(Ebc^R=#YzN}=JnC|*~)V*RP&jf)cg1RU%q z_2(0;RUbwHT+#%}cg<6*RkwicJ-rxt>G=}mAG?9rTME3hH{SUlz@Z-ivU~hi-o1C) z-`@qs27E{h;J8{DjmAsO#Es8ah#U7K43U4R!}i;&HsZs;wyph#24tG;4&<=EqsFoj?s6|0C7%zFEo9>YY+@1-m@Y{#yTLt6We6z%C2al0_s zs$Y)`6JXb0Z2;_<{i;N8Jljmsku3uqz;h@&wnHiowHMlPW~FMz;q! zewjT4raX?DIzC$LnMrC03K2xU_lKG?-tJLX@`6(5^_IUm)eNT!>4j*UT?p4=r_4z1 zYuh^=0LxN!C}c-b4Kjs*?hH+-GDjO1lev%UxFz*D+5Voomwr9rXD<_-L!2RYacF?Vo$XZfbGW@Eh4zk&K}huj6tk1W){zUUA*<2+ zZmeaoKGmC!zSi-9ozx1!%}tM?7FQ=pV@0xAZ-L%k=G97j0@gDMH9RvhR25-&{lHd0 zCi04#m`*vpQzDilI_;dHo^IZMP(zrh3|e$TM{L$(b#X(rl^hn70_-5&-WrY`w%?)- zj&NDDCV^}wZly<`^(lVEBOM(xy;xVmm!s>2y=^F)j#{I}4Xecaqj7dqH&6VQ@=eLB z^UHZvwC7BW?HEwcx+IGzK=~Aeki! z1Y?f*@dS55^h!KEV$f8RVUT9ExLP4mxgEaxd5wDLwCU{{cJ0>QtzMVRs-?FH^)ee^GI6(Cp{HpBxU z2SnPs#dZl$oP&)RmD9vc$tD{GppT#D2zCJFlKRtUZH96@nHBXWfl1bvd-Yr!x+*;b zuH&j@Vb8bdLq3K;hT6Rn*zxQ|czt=~R_g@jcAAcnqv{PSt4**&B5UEq04ypcLQRr@ zTWtLiYs4i9Ow!>fo^HMPV6RM$2p}VtOR6ppjZ$e&N(E3kQ5>wJ6YV>q&8{{#>$*}^ zN;s~huXaFnvFdb`?SR?Z zIzZW|2jq6IUvD3jRvbr8DnRTL__;$;K^<`R%R2tRa-gcPS%?XHj)N2f=4S& zfYwq4i`HHN%0HZ*nYbDk;nFnO;%t)SWwd&bJ?IP=>?Pz*6cSlW_V zAlG`GNfU+hVs4`Y?O<~u1h@tSh;=naTBKfdi9uG^<}^V*b6C(f2#4Bhf@UK8QA6o; z%h)iDgvMWOzAY5_nZC3wh*VZgBL%S2e2cH>fhs2 zs`G*@LIOz>YPLYEk*Sf1Z`<-1*7_tBcTBArTaohqb^k;_22dc3eLFoMAjxnS zzNI6Dx-+2XkZ#_|DSVye@=*OD%)3(-d60{!Q__JW4>CsOBkY0~P&O;Er-L69{q9sd zg^G&XPR@M~q+Q23XkdQSRt|yDK48LDGx2C&gsT)_O)%y4pypPR*Ei`_jktMGD0?WW z6@G#d+xCjMT`%GXQTjiF8-wg_vPgh=mS=mxz$)|Q+#GWoqFbejT^SrUEcR9_8LQ@8 zlHfWQxWg7b_$l$K&H|F1spmB&ip_4mW72A*`*(11S;>G3@F%{3t=DaOQcWI(O=hIv zzMSc{$wCYX_US3^0|P+b5F&6hp$8w256$EMI`_1ed5geP|ZCsiT8tcb1Mu4HogX_%@F6u@_2IMO} z5)h)Jv(+42y#^pylHp)XJr(Fu$hUS;2cJG`GHu7u#Q<^WykQ=d=TQ}EDB7~SwfV0t zHudGT2GM7avatIK!m=K>=_u=sCRt!WLmPBbbuN~|c6p?(f!Ev6XUB5cKnH8|QMOqyACnq5B_rn3roC@|*Po8E zpFUhGV;5wM)<$p{Bh@`q=&7FYA(82M>e!aQ?8#oF1OO50Wyoc9hkt9YbONm`i`Jm9 zMsAFOhHIjF!H*$=1Gt>hM`B!jMpCq4`SG>_6Z zn{qe#$qe`wF9Cn3akb5iw2gZaYy-{7Sg}fX((IUE-thYhke(eUJ?usRldXK&|3NWhU=*wg5 zdYd56_2mhP(P$~}_i%2KU#By!VOPVo-j6ARk(*R_0Y{9tDsXO#Ci|`N`c17?3IV1c zz+FbBb%5WgnHzm-Vbu6T8XTT9G2|^mX%P|(V+K_8@OWl9 znLLSIlYWDW>m*n(q94v``EdYfR%Q?#at` zzf?Oc?vIieH3_PTABo>+;!;D-dKbSS%R6I>I)=!gp~7_va%H!9 zYyQ?j&9|EY((_2|-e@qu={n4#cz%%(G2HT+yFj+ox1`=2NJQ{qOYa`^*d=vSm*Tq1 zs}I?{M_+{k3dc=qHuz-a)!dI9{Pc?_6c1;s%F9Ouvna$!zFPD2#627X1U5)SU4km? ztLZUyf2ATYYqZA+t(gKfeRN3mti>Q1xhRL~os?#X-0%b7Y8JiPXq_@!9YK}8S!T7B zttytpW*_n+o`hHIjMV*h+uC3^zs2x za-!RO=mH)ynk3x6xk3xt{JwP(e7|7wr*98Cbngi9y3J>( z3l@tWeph4(nian{Xh|}^#K$XAZ9uWEMzh@D)RnB0zU^6jhZ!gd+ zsrSJnhwqTB>uOG7RR_a>LdKl%(uB}qC2WHol!gd$?1*21CQS&@;-&;=fxU3mNkF?M zuyjTnCfNgILA}D~%Or=M7nIajT6yt--cMqTO~{A)BTixHi9xW=3vc+_Jt*&wKI&$I zzF_vLhs!=y=V$5qqh^5axgEH|5o6V!OO7Ii6lT~6C8ov_;^$R~2z$9K%_KSdgye@z zNkl^ohpKK-u(Rr>0=-;SY3<5rBPP6li9c$+TFn8S9b!E&%?I@4le%0+wh^N|?i0=S zV1)`Oj5!Z|O@K!1=nwgU4*2e)yB;iE5wEV?>#*q8lAZ)xIGRtiARy}i2D%SQe(U2? zJAjv&%+>dx>;GNfk%=A20Ye=9u!P+xRe|aWUOa;nJO89a*a|@upL*o%dQ*)8{U&WK4bNC!txCi zHBgQ{j#06l6-`CuB*$tT%(Vs%HH@9U72bM#CSW)_>YTFptU|0fmH*LJ^ccNf^CdK1 z*Rgg+L{GzuD{+c`RZWEe29;iponRN31XYyFJ~#PJC_mUR&bV>?;r1iX_WCJ%0=SQw zQ_NdBIf%9GOU!)FB|T9L++1ZMn!Ljd>HUHvLU|p@kqTSsv@Fx{NzBw1g{9VRTR>`h zwZ^N=vY~$`{MCDR8;pb@%D34U`m)G8V=^w%BC5lq+uxX5KWaEltvnHn((!hS;&M$m z$zy)v5c=#D>!^++M8c1bRKZv)7yh$wpwDAwaBbt&AHYItQ^QcmmRL`Yr&krm)6 z@Q*?Ew==~@hf4>iAxuT6wY>8|in+&(bbU)0OETJ7V6T$2^=^(eL_3>nAU~dWO_W$W z55))vMcs*BIdRbB1wci6{E>sUQeF%%zIkFc3ZjaZ4&O7*f8s|Bw3+2MV3p23^xTvI zo8&M#%MW^r;ztf8g%Q}3a9p2pJAz&uG%H)*QpS3>%p}OD*tI{3<{6Zcdo-`Rr0Z~w z0}g{()s>9kw(bEP1*EoLL%K3RnJ^_3csvEE$g5ZuBOvz012`5Vie!lu|Cu0?i*q{w`?yWn2; zS$I_OQ`=DG$cR*`%r}bBP#VT8f{cE4vTw1#D<<3Ai(^-#8+1N| zae(&PwZD7a^BC=In6H+q^Oq~SO987nOqfM1YD!_P)wnobH#}tOh9qVG$DF=t$6@^D zu&)&iXx&&@yNQT+G&4>`)y2bVm>qa25$)DWehiK7v3|^d0#lUX`qTVa z1W7h`FBBv_+-~LEA{d+D;tU$>MQB6KOF*N!Hnnx@8rZcXM*^bu(V|s~l$Rew?W#18<-vZJHL8B1WH}Z+purr^UJ-HQC)+AEf$D{Ns*+6r35N@?fQ_Pb6Wj_ z97pCxFM_m!)&kn;wo=v~%eJ3+5)#9|*M<_=#k~k4OnefMiu*+VW@O7;{{4WruPKPN#EJ6J^F|oq`CqlR z$ZJtX31XQ6E|iS2m0r`n^mZ}wInD(KvlyQl6o5@mrsX2TWmRnopvC$t<4kA++<0r4 zPVp48tcIWGK(JJbUFm+O-{EMZd;AFmr|`I`!H#5aQ1cO%CaOGw_JnN*kzd;4%TVTs zUJ#vay=qi<4=jCuFQ>VKuPxCdC}&*l>|sBb%`7YXZi`UHIrp#2(Tgb>ScO$MZn;uc z+TyOYWksFUom|hb;gpotQC0B_`ui?O6sHdV>uZQQ9iw9^c^A%Q(^dn{36q`;3xBO1 z-MtB>^-9iCfp*wb7Zt^;Ktow7dh{QDdvlQ7>Sas1%vcoHehMiilhq0+I{>^V(fNn5H9Z zTDfwuLrU~VbnFDqfnI4uG?UG`7-5GwpQ{-n|Ge$=hoZMVSF#UPsbkliA*;q@<`c85 zUQ=aBYbB!cH94+UM@_>Go}ZP-I4=LX(p8d#7sbra)&m|)6`BUW8 zJ!=y-)`M0pyK!sDq9uzeUH(Y)|8>R2__hWYgWFdjenZ zoKeHU2g^R`Pi1G@M17StI8UF8^CiiDCi+>Fn+Zsa4{PH{OoD7cW?XlnFcVeoE6Ir--nqsG9M;zpKN z+~ADKh5P(2Dpn`^&{ex(Yfx-u1q+#h~(BMo=FP~nWiUlx_So=w{w2V zTw{JHW~3geU067xjG`+f0@Eqn?1h^fHNrp1EM9E%#riz7yWRz8wN3SLv%#xPK5V8{ zox<0I<+&49ZYjzf-RWf={l?wnDdu`e$xc{O2-@*=z$3HZb4=cLxWX!C{7bLd#Bkbu z{+i5@jKr}xLr!9ZYTw{L4ZSPCqJNI@Z%;KjcYk!2useqPPC_bCgqK@mrXAb8jgG{) z;1^zz_>uT|J!!g-66!x>Qx_csS>EI~D^c&bvlx|ArWe=eOkT1ygRaM)Vg;EU%5InW;USZtLBBB8jxo+tV-^=sLeM2!}Lc=LE(&NR!$hH z)Nkyyv)Ir^=@Q|1#{Ns!MYRoYu}A2HU(3m8sQ1KzqBZflpF$=q(W9TzsXqmtr8Z!u zbH~@8@+N;iLVH;Lj>~CJEA+na21&`tCr3Dz-<7%UXr2i9d)9=zgOz@jx`ys?;khx$ zGmL0K+oR1-G70q8Ng;v_zR&XD;uH(wQ_NB?jAIPGp{Aq|-@S+US;Q^zdDal{eHZdv z@LS^~<6R$HVMu!ktMkK0KNzZJwkS%nGz2kevJL)Z8!n?hLWUdn%lxL!oPpm70JWb||60Ir css*k=>z;M1& literal 22995 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 diff --git a/presenter/src/main/res/drawable/maker_faire_frame.png b/presenter/src/main/res/drawable/maker_faire_frame.png index b0f555c0189d038a5575726dd1de3c6b058005c0..6256e4d74408aef09a6df0be8f5f895a21355397 100644 GIT binary patch literal 37409 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 literal 32568 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 diff --git a/util/src/main/java/com/foke/together/util/SoundUtil.kt b/util/src/main/java/com/foke/together/util/SoundUtil.kt new file mode 100644 index 0000000..886aef7 --- /dev/null +++ b/util/src/main/java/com/foke/together/util/SoundUtil.kt @@ -0,0 +1,17 @@ +package com.foke.together.util + +import android.content.Context +import android.media.SoundPool + +object SoundUtil { + private val soundPool = SoundPool.Builder().build() + private var cameraSoundId = 0 + private val onLoadCompleteListener = SoundPool.OnLoadCompleteListener { soundPool, sampleId, status -> + soundPool.play(cameraSoundId, 1.0f, 1.0f, 0, 0, 1.0f) + } + + fun getCameraSound(context: Context) { + cameraSoundId = soundPool.load(context,R.raw.capture_sound, 1) + soundPool.setOnLoadCompleteListener(onLoadCompleteListener) + } +} \ No newline at end of file diff --git a/util/src/main/res/raw/capture_sound.mp3 b/util/src/main/res/raw/capture_sound.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..cf79b872f64b70f6091b852046b57d4d961be0e1 GIT binary patch literal 22965 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 P{~wS`_}}=S^aB3}@vssa literal 0 HcmV?d00001