Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#199][#221] 그룹상세 이미지뷰어 연결 #222

Merged
merged 6 commits into from
Aug 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions presentation/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@
android:name="com.mashup.gabbangzip.sharedalbum.presentation.ui.main.MainActivity"
android:exported="true" />

<activity
android:name=".ui.main.groupdetail.HistoryDetailActivity"
android:exported="false" />

<activity
android:name=".ui.invitation.InvitationCodeActivity"
android:exported="false"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.mashup.gabbangzip.sharedalbum.presentation.theme

import android.app.Activity
import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme
Expand All @@ -9,11 +8,7 @@ import androidx.compose.material3.dynamicDarkColorScheme
import androidx.compose.material3.dynamicLightColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.core.view.WindowCompat

private val DarkColorScheme =
darkColorScheme(
Expand Down Expand Up @@ -48,14 +43,6 @@ fun SharedAlbumTheme(
darkTheme -> DarkColorScheme
else -> LightColorScheme
}
val view = LocalView.current
if (!view.isInEditMode) {
SideEffect {
val window = (view.context as Activity).window
window.statusBarColor = Gray0.toArgb()
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = true
}
}
MaterialTheme(
colorScheme = colorScheme,
typography = MaterialTheme.typography,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ package com.mashup.gabbangzip.sharedalbum.presentation.ui.eventcreation

import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxSize
Expand All @@ -16,7 +19,6 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.core.view.WindowCompat
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.compose.rememberNavController
import com.mashup.gabbangzip.sharedalbum.presentation.R
Expand All @@ -38,7 +40,12 @@ class EventCreationActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
enableEdgeToEdge(
SystemBarStyle.light(
Color.TRANSPARENT,
Color.TRANSPARENT,
),
)
photoPicker = PicPhotoPicker.create(
activity = this@EventCreationActivity,
max = PICTURES_MAX_COUNT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ package com.mashup.gabbangzip.sharedalbum.presentation.ui.groupcreation

import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.fillMaxSize
Expand All @@ -17,7 +20,6 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.core.content.ContextCompat
import androidx.core.view.WindowCompat
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.compose.rememberNavController
import com.mashup.gabbangzip.sharedalbum.presentation.R
Expand All @@ -40,7 +42,12 @@ class GroupCreationActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows(window, false)
enableEdgeToEdge(
SystemBarStyle.light(
Color.TRANSPARENT,
Color.TRANSPARENT,
),
)
photoPicker = PicPhotoPicker.create(this@GroupCreationActivity) {
viewModel.updateThumbnail(it)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ package com.mashup.gabbangzip.sharedalbum.presentation.ui.invitation

import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
Expand All @@ -29,6 +32,12 @@ class InvitationCodeActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge(
SystemBarStyle.light(
Color.TRANSPARENT,
Color.TRANSPARENT,
),
)
setContent {
val state by viewModel.uiState.collectAsStateWithLifecycle()
val snackbarHostState = remember { SnackbarHostState() }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@ package com.mashup.gabbangzip.sharedalbum.presentation.ui.login

import android.app.Activity
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
Expand All @@ -30,6 +33,12 @@ class LoginActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge(
SystemBarStyle.light(
Color.TRANSPARENT,
Color.TRANSPARENT,
),
)
setContent {
val state by viewModel.uiState.collectAsStateWithLifecycle()
val snackbarHostState = remember { SnackbarHostState() }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@ package com.mashup.gabbangzip.sharedalbum.presentation.ui.main

import android.app.Activity
import android.content.Intent
import android.graphics.Color.TRANSPARENT
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHostState
Expand Down Expand Up @@ -41,6 +45,12 @@ class MainActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge(
SystemBarStyle.light(
TRANSPARENT,
TRANSPARENT,
),
)
viewModel.registerFcmToken()
initPhotoPicker()

Expand All @@ -52,7 +62,9 @@ class MainActivity : ComponentActivity() {
SharedAlbumTheme {
ObserveEvent(snackbarHostState)
Scaffold(
modifier = Modifier.fillMaxSize(),
modifier = Modifier
.fillMaxSize()
.navigationBarsPadding(),
snackbarHost = { PicSnackbarHost(state = snackbarHostState) },
) { innerPadding ->
MainNavHost(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail

import android.graphics.Bitmap
import android.util.Log
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
Expand Down Expand Up @@ -43,7 +44,7 @@ fun GroupDetailScreen(
onClickVoteButton: (eventId: Long) -> Unit,
onClickShareButton: (Bitmap) -> Unit,
onClickEventMake: () -> Unit,
onClickHistoryItem: (HistoryItem) -> Unit,
onClickHistoryItem: (HistoryDetailState) -> Unit,
onErrorEvent: () -> Unit,
viewModel: GroupDetailViewModel = hiltViewModel(),
) {
Expand Down Expand Up @@ -94,7 +95,18 @@ fun GroupDetailScreen(
},
onClickEventMake = onClickEventMake,
onClickShareButton = onClickShareButton,
onClickHistoryItem = onClickHistoryItem,
onClickHistoryItem = { history ->
state.groupInfo?.run {
Log.d("TAG", "GroupDetailScreen: 히스토리")
onClickHistoryItem(
HistoryDetailState(
groupName = name,
keyword = keyword.name,
history = history,
),
)
}
},
)
}

Expand Down
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: 이거 디테일에서만 사용되는데 액티비티로 뺀 이유가 있을까?? 컴포저블로 하는건 별로일까..? 뭔가 뒤로가기도 있어서 컴포저블로 하는게 더 자연스러웠던거 같아서..! 스테이터스 바 땜에 그런건감..?

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail

import android.content.Context
import android.content.Intent
import android.graphics.Color.TRANSPARENT
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import com.mashup.gabbangzip.sharedalbum.presentation.theme.SharedAlbumTheme
import com.mashup.gabbangzip.sharedalbum.presentation.ui.model.GroupKeyword

class HistoryDetailActivity : ComponentActivity() {
private val state by lazy { intent.getSerializableExtra(KEY_HISTORY) as HistoryDetailState? }

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge(
statusBarStyle = SystemBarStyle.dark(
TRANSPARENT,
),
)
setContent {
SharedAlbumTheme {
state?.let { state ->
HistoryDetailScreen(
groupName = state.groupName,
keyword = GroupKeyword.getKeyword(state.keyword),
item = state.history,
onClickBackButton = { finish() },
)
}
}
}
}

companion object {
private const val KEY_HISTORY = "history"

fun openActivity(context: Context, state: HistoryDetailState) {
context.startActivity(
Intent(context, HistoryDetailActivity::class.java).apply {
putExtra(KEY_HISTORY, state)
},
)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail

import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail.model.HistoryItem
import java.io.Serializable

data class HistoryDetailState(
val groupName: String,
val keyword: String,
val history: HistoryItem,
) : Serializable
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@ import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.grouphome.model.Ca
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.grouphome.model.toUiModel
import com.mashup.gabbangzip.sharedalbum.presentation.utils.ImmutableList
import com.mashup.gabbangzip.sharedalbum.presentation.utils.LocalDateUtil
import java.io.Serializable

data class HistoryItem(
val id: Long = 0,
val title: String,
val date: String,
val images: ImmutableList<CardBackImage> = ImmutableList(emptyList()),
)
) : Serializable

fun HistoryDomainModel.toUiModel(): HistoryItem {
return HistoryItem(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail.GroupDetailScreen
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail.model.HistoryItem
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail.HistoryDetailState
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.navigation.MainRoute
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.navigation.MainRoute.GroupDetailRoute.KEY_GROUP_ID

Expand All @@ -23,7 +23,7 @@ fun NavGraphBuilder.groupDetailNavGraph(
onClickVoteButton: (eventId: Long) -> Unit,
onClickEventMake: (Long) -> Unit,
onClickShareButton: (Bitmap) -> Unit,
onClickHistoryItem: (HistoryItem) -> Unit,
onClickHistoryItem: (HistoryDetailState) -> Unit,
onErrorEvent: () -> Unit,
) {
composable(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ fun GroupHomeScreen(
.align(Alignment.TopCenter),
) {
PicTopBar(
modifier = Modifier.padding(top = 56.dp),
rightIcon = PicTopBarIcon.USER,
rightIconClicked = onClickMyPage,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ package com.mashup.gabbangzip.sharedalbum.presentation.ui.main.grouphome.model

import com.mashup.gabbangzip.sharedalbum.domain.model.group.CardBackImageDomainModel
import com.mashup.gabbangzip.sharedalbum.presentation.ui.model.PicPhotoFrame
import java.io.Serializable

data class CardBackImage(
val frameType: PicPhotoFrame,
val imageUrl: String,
)
) : Serializable

fun CardBackImageDomainModel.toUiModel(): CardBackImage {
return CardBackImage(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import com.mashup.gabbangzip.sharedalbum.presentation.ui.common.model.PicSnackba
import com.mashup.gabbangzip.sharedalbum.presentation.ui.eventcreation.EventCreationActivity
import com.mashup.gabbangzip.sharedalbum.presentation.ui.groupcreation.GroupCreationActivity
import com.mashup.gabbangzip.sharedalbum.presentation.ui.invitation.InvitationCodeActivity
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail.HistoryDetailActivity
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail.navigation.groupDetailNavGraph
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.groupdetail.navigation.navigateGroupDetail
import com.mashup.gabbangzip.sharedalbum.presentation.ui.main.grouphome.navigation.groupHomeNavGraph
Expand Down Expand Up @@ -62,7 +63,9 @@ fun MainNavHost(
onClickVoteButton = { eventId -> VoteActivity.openActivity(context, eventId) },
onClickEventMake = { id -> EventCreationActivity.openActivity(context, id) },
onClickShareButton = onClickShareButton,
onClickHistoryItem = { /* TODO */ },
onClickHistoryItem = {
HistoryDetailActivity.openActivity(context, it)
},
onErrorEvent = onErrorEvent,
)
groupMemberNavGraph(
Expand Down
Loading
Loading