diff --git a/android/festago/app/build.gradle.kts b/android/festago/app/build.gradle.kts
index cce1cf482..b2d2820e7 100644
--- a/android/festago/app/build.gradle.kts
+++ b/android/festago/app/build.gradle.kts
@@ -16,8 +16,8 @@ android {
applicationId = "com.festago.festago"
minSdk = 28
targetSdk = 34
- versionCode = 12
- versionName = "2.0.3"
+ versionCode = 13
+ versionName = "2.0.4"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/android/festago/data/src/main/java/com/festago/festago/data/dto/school/SocialMediaResponse.kt b/android/festago/data/src/main/java/com/festago/festago/data/dto/school/SocialMediaResponse.kt
index 412704746..1fb0650fb 100644
--- a/android/festago/data/src/main/java/com/festago/festago/data/dto/school/SocialMediaResponse.kt
+++ b/android/festago/data/src/main/java/com/festago/festago/data/dto/school/SocialMediaResponse.kt
@@ -1,6 +1,7 @@
package com.festago.festago.data.dto.school
import com.festago.festago.domain.model.social.SocialMedia
+import com.festago.festago.domain.model.social.SocialMediaType
import kotlinx.serialization.Serializable
@Serializable
@@ -10,10 +11,15 @@ data class SocialMediaResponse(
val logoUrl: String,
val url: String,
) {
- fun toDomain(): SocialMedia = SocialMedia(
- type = type,
- name = name,
- logoUrl = logoUrl,
- url = url,
- )
+ fun toDomain(): SocialMedia {
+ val type = when (this.type) {
+ "FACEBOOK" -> SocialMediaType.FACEBOOK
+ "INSTAGRAM" -> SocialMediaType.INSTAGRAM
+ "YOUTUBE" -> SocialMediaType.YOUTUBE
+ "X" -> SocialMediaType.X
+ else -> SocialMediaType.NONE
+ }
+
+ return SocialMedia(type = type, name = name, logoUrl = logoUrl, url = url)
+ }
}
diff --git a/android/festago/data/src/main/java/com/festago/festago/data/dto/schooldetail/SchoolInfoResponse.kt b/android/festago/data/src/main/java/com/festago/festago/data/dto/schooldetail/SchoolInfoResponse.kt
index cdc7d51a0..1f0d061be 100644
--- a/android/festago/data/src/main/java/com/festago/festago/data/dto/schooldetail/SchoolInfoResponse.kt
+++ b/android/festago/data/src/main/java/com/festago/festago/data/dto/schooldetail/SchoolInfoResponse.kt
@@ -17,6 +17,6 @@ data class SchoolInfoResponse(
schoolName = name ?: "",
logoUrl = logoUrl ?: "",
backgroundUrl = backgroundImageUrl ?: "",
- socialMedia = socialMedias.map { it.toDomain() },
+ socialMedia = socialMedias.map { it.toDomain() }
)
}
diff --git a/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeArtistRepository.kt b/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeArtistRepository.kt
index 15dbc1f39..e704cb514 100644
--- a/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeArtistRepository.kt
+++ b/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeArtistRepository.kt
@@ -6,6 +6,7 @@ import com.festago.festago.domain.model.festival.Festival
import com.festago.festago.domain.model.festival.FestivalsPage
import com.festago.festago.domain.model.school.School
import com.festago.festago.domain.model.social.SocialMedia
+import com.festago.festago.domain.model.social.SocialMediaType
import com.festago.festago.domain.repository.ArtistRepository
import java.time.LocalDate
import javax.inject.Inject
@@ -22,13 +23,13 @@ class FakeArtistRepository @Inject constructor() : ArtistRepository {
"https://static.wikia.nocookie.net/witchers/images/d/d9/New_Jeans_Cover.png/revision/latest?cb=20220801091438",
listOf(
SocialMedia(
- "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Instagram_icon.png/1200px-Instagram_icon.png?20200512141346",
+ SocialMediaType.INSTAGRAM,
"공식 인스타그램",
"https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/264px-Instagram_logo_2016.svg.png",
"https://www.instagram.com/newjeans_official/",
),
SocialMedia(
- "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/X_logo_2023.svg/600px-X_logo_2023.svg.png?20230819000805",
+ SocialMediaType.INSTAGRAM,
"공식 엑스",
"https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/X_logo_2023.svg/531px-X_logo_2023.svg.png",
"https://twitter.com/NewJeans_ADOR",
diff --git a/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeFestivals.kt b/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeFestivals.kt
index 73c537172..02d73c3a3 100644
--- a/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeFestivals.kt
+++ b/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeFestivals.kt
@@ -5,6 +5,7 @@ import com.festago.festago.domain.model.festival.Festival
import com.festago.festago.domain.model.festival.FestivalDetail
import com.festago.festago.domain.model.school.School
import com.festago.festago.domain.model.social.SocialMedia
+import com.festago.festago.domain.model.social.SocialMediaType
import com.festago.festago.domain.model.stage.Stage
import java.time.LocalDate
import java.time.LocalDateTime
@@ -20,13 +21,13 @@ object FakeFestivals {
school = School(id = 2L, name = "부경대학교", imageUrl = ""),
socialMedias = listOf(
SocialMedia(
- type = "INSTAGRAM",
+ type = SocialMediaType.INSTAGRAM,
name = "총학생회 인스타그램",
logoUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/2048px-Instagram_logo_2016.svg.png",
url = "https://www.instagram.com/25th_solution/",
),
SocialMedia(
- type = "FACEBOOK",
+ type = SocialMediaType.FACEBOOK,
name = "총학생회 페이스북",
logoUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/Facebook_f_logo_%282019%29.svg/1200px-Facebook_f_logo_%282019%29.svg.png",
url = "https://www.facebook.com/23rdemotion/",
diff --git a/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeSchool.kt b/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeSchool.kt
index cfa9f1ea8..f26d51ad3 100644
--- a/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeSchool.kt
+++ b/android/festago/data/src/main/java/com/festago/festago/data/repository/FakeSchool.kt
@@ -2,6 +2,7 @@ package com.festago.festago.data.repository
import com.festago.festago.domain.model.school.SchoolInfo
import com.festago.festago.domain.model.social.SocialMedia
+import com.festago.festago.domain.model.social.SocialMediaType
object FakeSchool {
val googleSchool = SchoolInfo(
@@ -11,13 +12,13 @@ object FakeSchool {
backgroundUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2f/Google_2015_logo.svg/1200px-Google_2015_logo.svg.png",
socialMedia = listOf(
SocialMedia(
- type = "INSTAGRAM",
+ type = SocialMediaType.INSTAGRAM,
name = "구글대학교 인스타",
logoUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Instagram_logo_2016.svg/2048px-Instagram_logo_2016.svg.png",
url = "https://www.instagram.com/",
),
SocialMedia(
- type = "INSTAGRAM",
+ type = SocialMediaType.INSTAGRAM,
name = "구글대학교 X",
logoUrl = "https://about.x.com/content/dam/about-twitter/x/brand-toolkit/logo-black.png.twimg.1920.png",
url = "https://twitter.com/?lang=en",
diff --git a/android/festago/domain/src/main/java/com/festago/festago/domain/model/social/SocialMedia.kt b/android/festago/domain/src/main/java/com/festago/festago/domain/model/social/SocialMedia.kt
index 64a1c76af..22e9cbed0 100644
--- a/android/festago/domain/src/main/java/com/festago/festago/domain/model/social/SocialMedia.kt
+++ b/android/festago/domain/src/main/java/com/festago/festago/domain/model/social/SocialMedia.kt
@@ -1,7 +1,7 @@
package com.festago.festago.domain.model.social
data class SocialMedia(
- val type: String,
+ val type: SocialMediaType,
val name: String,
val logoUrl: String,
val url: String
diff --git a/android/festago/domain/src/main/java/com/festago/festago/domain/model/social/SocialMediaType.kt b/android/festago/domain/src/main/java/com/festago/festago/domain/model/social/SocialMediaType.kt
new file mode 100644
index 000000000..ace6732b4
--- /dev/null
+++ b/android/festago/domain/src/main/java/com/festago/festago/domain/model/social/SocialMediaType.kt
@@ -0,0 +1,9 @@
+package com.festago.festago.domain.model.social
+
+enum class SocialMediaType {
+ FACEBOOK,
+ INSTAGRAM,
+ YOUTUBE,
+ X,
+ NONE,
+}
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/artistdetail/ArtistDetailFragment.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/artistdetail/ArtistDetailFragment.kt
index e68ce9103..ee3af37b7 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/artistdetail/ArtistDetailFragment.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/artistdetail/ArtistDetailFragment.kt
@@ -11,6 +11,7 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
+import com.festago.festago.domain.model.social.SocialMediaType
import com.festago.festago.presentation.R
import com.festago.festago.presentation.databinding.FragmentArtistDetailBinding
import com.festago.festago.presentation.databinding.ItemMediaBinding
@@ -107,13 +108,23 @@ class ArtistDetailFragment : Fragment() {
uiState.artist.artistMedia.map { media ->
with(ItemMediaBinding.inflate(layoutInflater, binding.llcArtistMedia, false)) {
- imageUrl = media.logoUrl
+ findMediaRes(media.type)
ivImage.setOnClickListener { startBrowser(media.url) }
binding.llcArtistMedia.addView(ivImage)
}
}
}
+ private fun findMediaRes(type: SocialMediaType): Int {
+ return when (type) {
+ SocialMediaType.YOUTUBE -> R.drawable.ic_youtube
+ SocialMediaType.INSTAGRAM -> R.drawable.ic_instagram
+ SocialMediaType.X -> R.drawable.ic_x
+ SocialMediaType.FACEBOOK -> R.drawable.ic_facebook
+ SocialMediaType.NONE -> R.drawable.bg_festago_default
+ }
+ }
+
private fun handleError(uiState: ArtistDetailUiState.Error) {
binding.refreshListener = { uiState.refresh(args.artist.id) }
}
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/artistdetail/adapter/festival/ArtistDetailFestivalViewHolder.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/artistdetail/adapter/festival/ArtistDetailFestivalViewHolder.kt
index 87391ae03..7a0713565 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/artistdetail/adapter/festival/ArtistDetailFestivalViewHolder.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/artistdetail/adapter/festival/ArtistDetailFestivalViewHolder.kt
@@ -23,6 +23,7 @@ class ArtistDetailFestivalViewHolder(
init {
binding.rvFestivalArtists.adapter = artistAdapter
binding.rvFestivalArtists.addItemDecoration(ArtistItemDecoration())
+ binding.rvFestivalArtists.itemAnimator = null
}
fun bind(item: FestivalItemUiState) {
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/festivaldetail/FestivalDetailFragment.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/festivaldetail/FestivalDetailFragment.kt
index 4c921856b..9e9e34af9 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/festivaldetail/FestivalDetailFragment.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/festivaldetail/FestivalDetailFragment.kt
@@ -14,6 +14,8 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
+import com.festago.festago.domain.model.social.SocialMedia
+import com.festago.festago.domain.model.social.SocialMediaType
import com.festago.festago.presentation.R
import com.festago.festago.presentation.databinding.FragmentFestivalDetailBinding
import com.festago.festago.presentation.databinding.ItemMediaBinding
@@ -110,13 +112,24 @@ class FestivalDetailFragment : Fragment() {
binding.llcFestivalSocialMedia.removeAllViews()
uiState.festival.socialMedias.forEach { media ->
with(ItemMediaBinding.inflate(layoutInflater, binding.llcFestivalSocialMedia, false)) {
- imageUrl = media.logoUrl
+ ivImage.setImageResource(findMediaRes(media))
ivImage.setOnClickListener { startBrowser(media.url) }
binding.llcFestivalSocialMedia.addView(ivImage)
}
}
}
+ private fun findMediaRes(media: SocialMedia): Int {
+ val res = when (media.type) {
+ SocialMediaType.INSTAGRAM -> R.drawable.ic_instagram
+ SocialMediaType.FACEBOOK -> R.drawable.ic_facebook
+ SocialMediaType.YOUTUBE -> R.drawable.ic_youtube
+ SocialMediaType.X -> R.drawable.ic_x
+ else -> R.drawable.bg_festago_default
+ }
+ return res
+ }
+
private fun handleError(uiState: FestivalDetailUiState.Error) {
binding.refreshListener = { uiState.refresh(args.festival.id) }
}
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/festivaldetail/adapter/stage/StageViewHolder.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/festivaldetail/adapter/stage/StageViewHolder.kt
index f64b5a254..c24844964 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/festivaldetail/adapter/stage/StageViewHolder.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/festivaldetail/adapter/stage/StageViewHolder.kt
@@ -15,6 +15,7 @@ class StageViewHolder(
init {
binding.rvStageArtists.adapter = artistAdapter
+ binding.rvStageArtists.itemAnimator = null
}
fun bind(item: StageItemUiState) {
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/home/bookmarklist/festivalbookmark/adapater/FestivalBookmarkViewHolder.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/home/bookmarklist/festivalbookmark/adapater/FestivalBookmarkViewHolder.kt
index 1aa38440d..718c2e7a9 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/home/bookmarklist/festivalbookmark/adapater/FestivalBookmarkViewHolder.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/home/bookmarklist/festivalbookmark/adapater/FestivalBookmarkViewHolder.kt
@@ -24,6 +24,7 @@ class FestivalBookmarkViewHolder(
init {
binding.rvFestivalArtists.adapter = artistAdapter
binding.rvFestivalArtists.addItemDecoration(ArtistItemDecoration())
+ binding.rvFestivalArtists.itemAnimator = null
}
fun bind(item: FestivalBookmarkItemUiState) {
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/home/festivallist/festival/FestivalListFestivalViewHolder.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/home/festivallist/festival/FestivalListFestivalViewHolder.kt
index 551acee41..5620b4db4 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/home/festivallist/festival/FestivalListFestivalViewHolder.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/home/festivallist/festival/FestivalListFestivalViewHolder.kt
@@ -26,6 +26,7 @@ class FestivalListFestivalViewHolder(
init {
binding.rvFestivalArtists.adapter = artistAdapter
binding.rvFestivalArtists.addItemDecoration(ArtistItemDecoration())
+ binding.rvFestivalArtists.itemAnimator = null
}
fun bind(item: FestivalItemUiState) {
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/schooldetail/SchoolDetailFestivalViewHolder.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/schooldetail/SchoolDetailFestivalViewHolder.kt
index 17b7ad7a4..66fb4407d 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/schooldetail/SchoolDetailFestivalViewHolder.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/schooldetail/SchoolDetailFestivalViewHolder.kt
@@ -22,6 +22,7 @@ class SchoolDetailFestivalViewHolder(
init {
binding.rvFestivalArtists.adapter = artistAdapter
binding.rvFestivalArtists.addItemDecoration(ArtistItemDecoration())
+ binding.rvFestivalArtists.itemAnimator = null
}
fun bind(item: FestivalItemUiState) {
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/schooldetail/SchoolDetailFragment.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/schooldetail/SchoolDetailFragment.kt
index e67a22875..530e5d158 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/schooldetail/SchoolDetailFragment.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/schooldetail/SchoolDetailFragment.kt
@@ -11,6 +11,8 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
+import com.festago.festago.domain.model.social.SocialMedia
+import com.festago.festago.domain.model.social.SocialMediaType
import com.festago.festago.presentation.R
import com.festago.festago.presentation.databinding.FragmentSchoolDetailBinding
import com.festago.festago.presentation.databinding.ItemMediaBinding
@@ -107,13 +109,25 @@ class SchoolDetailFragment : Fragment() {
uiState.schoolInfo.socialMedia.forEach { media ->
with(ItemMediaBinding.inflate(layoutInflater, binding.llcSchoolSocialMedia, false)) {
- imageUrl = media.logoUrl
+ if (media.type == SocialMediaType.NONE) return@with
+ ivImage.setImageResource(findMediaRes(media))
ivImage.setOnClickListener { startBrowser(media.url) }
binding.llcSchoolSocialMedia.addView(ivImage)
}
}
}
+ private fun findMediaRes(media: SocialMedia): Int {
+ val res = when (media.type) {
+ SocialMediaType.INSTAGRAM -> R.drawable.ic_instagram
+ SocialMediaType.FACEBOOK -> R.drawable.ic_facebook
+ SocialMediaType.YOUTUBE -> R.drawable.ic_youtube
+ SocialMediaType.X -> R.drawable.ic_x
+ else -> R.drawable.bg_festago_default
+ }
+ return res
+ }
+
private fun handleError(uiState: SchoolDetailUiState.Error) {
binding.refreshListener = { uiState.refresh(args.school.id) }
}
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/search/SearchFragment.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/search/SearchFragment.kt
index c0aff61d8..21807d625 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/search/SearchFragment.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/search/SearchFragment.kt
@@ -119,6 +119,7 @@ class SearchFragment : Fragment() {
private fun initRecyclerView() {
recentSearchAdapter = RecentSearchAdapter()
binding.rvRecentSearch.adapter = recentSearchAdapter
+ binding.rvRecentSearch.itemAnimator = null
}
private fun initBack() {
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/search/festivalsearch/FestivalSearchViewHolder.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/search/festivalsearch/FestivalSearchViewHolder.kt
index 8e7091063..92cd60565 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/search/festivalsearch/FestivalSearchViewHolder.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/search/festivalsearch/FestivalSearchViewHolder.kt
@@ -24,6 +24,7 @@ class FestivalSearchViewHolder(
init {
binding.rvFestivalArtists.adapter = artistAdapter
binding.rvFestivalArtists.addItemDecoration(ArtistItemDecoration())
+ binding.rvFestivalArtists.itemAnimator = null
}
fun bind(item: FestivalSearchItemUiState) {
diff --git a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/splash/SplashActivity.kt b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/splash/SplashActivity.kt
index 732692ddf..1f3da7b10 100644
--- a/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/splash/SplashActivity.kt
+++ b/android/festago/presentation/src/main/java/com/festago/festago/presentation/ui/splash/SplashActivity.kt
@@ -97,14 +97,27 @@ class SplashActivity : ComponentActivity() {
}
private fun requestUpdate(latestVersion: Long) {
- val isForceUpdateVersion = firebaseRemoteConfig.getBoolean(KEY_FORCE_UPDATE_REQUIRED)
val latestVersionDescription =
firebaseRemoteConfig.getString(KEY_LATEST_VERSION_DESCRIPTION)
+
+ if (checkForceUpdate(latestVersionDescription)) return
+ checkOptionalUpdate(latestVersion, latestVersionDescription)
+ }
+
+ private fun checkForceUpdate(latestVersionDescription: String): Boolean {
+ val isForceUpdateVersion = firebaseRemoteConfig.getBoolean(KEY_FORCE_UPDATE_REQUIRED)
if (isForceUpdateVersion) {
requestForceUpdate(message = latestVersionDescription)
- return
+ return true
+ }
+ return false
+ }
+
+ private fun checkOptionalUpdate(latestVersion: Long, latestVersionDescription: String) {
+ val isOptionalUpdateVersion = firebaseRemoteConfig.getBoolean(KEY_OPTIONAL_UPDATE_REQUIRED)
+ if (isOptionalUpdateVersion) {
+ requestOptionalUpdate(latestVersion = latestVersion, message = latestVersionDescription)
}
- requestOptionalUpdate(latestVersion = latestVersion, message = latestVersionDescription)
}
private fun requestForceUpdate(message: String) {
@@ -188,6 +201,7 @@ class SplashActivity : ComponentActivity() {
private const val DEBUG_REMOTE_CONFIG_FETCH_INTERVAL = 0L
private const val RELEASE_REMOTE_CONFIG_FETCH_INTERVAL = 3600L
private const val KEY_FORCE_UPDATE_REQUIRED = "FORCE_UPDATE_REQUIRED"
+ private const val KEY_OPTIONAL_UPDATE_REQUIRED = "OPTIONAL_UPDATE_REQUIRED"
private const val KEY_LATEST_VERSION = "LATEST_VERSION"
private const val KEY_LATEST_VERSION_DESCRIPTION = "LATEST_VERSION_DESCRIPTION"
}
diff --git a/android/festago/presentation/src/main/res/animator/nav_default_enter_anim.xml b/android/festago/presentation/src/main/res/animator/nav_default_enter_anim.xml
new file mode 100644
index 000000000..7846f52e8
--- /dev/null
+++ b/android/festago/presentation/src/main/res/animator/nav_default_enter_anim.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/animator/nav_default_exit_anim.xml b/android/festago/presentation/src/main/res/animator/nav_default_exit_anim.xml
new file mode 100644
index 000000000..7846f52e8
--- /dev/null
+++ b/android/festago/presentation/src/main/res/animator/nav_default_exit_anim.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/animator/nav_default_pop_enter_anim.xml b/android/festago/presentation/src/main/res/animator/nav_default_pop_enter_anim.xml
new file mode 100644
index 000000000..7846f52e8
--- /dev/null
+++ b/android/festago/presentation/src/main/res/animator/nav_default_pop_enter_anim.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/animator/nav_default_pop_exit_anim.xml b/android/festago/presentation/src/main/res/animator/nav_default_pop_exit_anim.xml
new file mode 100644
index 000000000..7846f52e8
--- /dev/null
+++ b/android/festago/presentation/src/main/res/animator/nav_default_pop_exit_anim.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/drawable/bg_artist_stroke.xml b/android/festago/presentation/src/main/res/drawable/bg_artist_stroke.xml
new file mode 100644
index 000000000..2daa4ea8d
--- /dev/null
+++ b/android/festago/presentation/src/main/res/drawable/bg_artist_stroke.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/drawable/bg_festival_list_festival.xml b/android/festago/presentation/src/main/res/drawable/bg_festival_list_festival.xml
index fc05ec76c..90c660f54 100644
--- a/android/festago/presentation/src/main/res/drawable/bg_festival_list_festival.xml
+++ b/android/festago/presentation/src/main/res/drawable/bg_festival_list_festival.xml
@@ -1,8 +1,7 @@
-
+
-
-
\ No newline at end of file
+ android:width="0.2dp"
+ android:color="@color/background_gray_03" />
+
+
diff --git a/android/festago/presentation/src/main/res/drawable/ic_facebook.xml b/android/festago/presentation/src/main/res/drawable/ic_facebook.xml
new file mode 100644
index 000000000..5a8f232ef
--- /dev/null
+++ b/android/festago/presentation/src/main/res/drawable/ic_facebook.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/drawable/ic_instagram.xml b/android/festago/presentation/src/main/res/drawable/ic_instagram.xml
new file mode 100644
index 000000000..d7948a451
--- /dev/null
+++ b/android/festago/presentation/src/main/res/drawable/ic_instagram.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/drawable/ic_profile_default.xml b/android/festago/presentation/src/main/res/drawable/ic_user_profile_default.xml
similarity index 66%
rename from android/festago/presentation/src/main/res/drawable/ic_profile_default.xml
rename to android/festago/presentation/src/main/res/drawable/ic_user_profile_default.xml
index 154bcee73..3e746a890 100644
--- a/android/festago/presentation/src/main/res/drawable/ic_profile_default.xml
+++ b/android/festago/presentation/src/main/res/drawable/ic_user_profile_default.xml
@@ -7,7 +7,7 @@
android:pathData="M30,30m-30,0a30,30 0,1 1,60 0a30,30 0,1 1,-60 0"
android:fillColor="#D1D1D1"/>
+
+
diff --git a/android/festago/presentation/src/main/res/drawable/ic_youtube.xml b/android/festago/presentation/src/main/res/drawable/ic_youtube.xml
new file mode 100644
index 000000000..2c302527b
--- /dev/null
+++ b/android/festago/presentation/src/main/res/drawable/ic_youtube.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/drawable/img_default_school.png b/android/festago/presentation/src/main/res/drawable/img_default_school.png
new file mode 100644
index 000000000..d06870463
Binary files /dev/null and b/android/festago/presentation/src/main/res/drawable/img_default_school.png differ
diff --git a/android/festago/presentation/src/main/res/drawable/img_school_background.png b/android/festago/presentation/src/main/res/drawable/img_school_background.png
new file mode 100644
index 000000000..b49156baf
Binary files /dev/null and b/android/festago/presentation/src/main/res/drawable/img_school_background.png differ
diff --git a/android/festago/presentation/src/main/res/layout/fragment_artist_detail.xml b/android/festago/presentation/src/main/res/layout/fragment_artist_detail.xml
index 278d4d381..d41eead06 100644
--- a/android/festago/presentation/src/main/res/layout/fragment_artist_detail.xml
+++ b/android/festago/presentation/src/main/res/layout/fragment_artist_detail.xml
@@ -46,7 +46,7 @@
android:id="@+id/tvFestivalDDayEnd"
android:layout_width="0dp"
android:layout_height="0dp"
- android:background="#40000000"
+ android:background="#99000000"
app:layout_constraintBottom_toBottomOf="@+id/ivBackgroundImage"
app:layout_constraintEnd_toEndOf="@id/ivBackgroundImage"
app:layout_constraintStart_toStartOf="@id/ivBackgroundImage"
@@ -109,13 +109,16 @@
+ app:layout_constraintTop_toBottomOf="@id/ivBackgroundImage"
+ tools:text="뉴진스 뉴진스 뉴진스 뉴진스 뉴진스 뉴진스 뉴진스" />
+ app:layout_constraintTop_toBottomOf="@id/tvMyPageAppbar">
+ android:src="@drawable/ic_user_profile_default" />
-
+ app:layout_constraintTop_toBottomOf="@id/tvMyPageAppbar"
+ android:visibility="gone">
+ android:src="@drawable/img_school_background"
+ app:layout_constraintTop_toTopOf="parent" />
+ android:src="@drawable/img_default_school" />
+ tools:text="성균관대학교 인문사회과학캠퍼스" />
+
+
+
+ tools:src="@null" />
+
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/layout/item_festival_bookmark.xml b/android/festago/presentation/src/main/res/layout/item_festival_bookmark.xml
index febbbad69..4c9ac6541 100644
--- a/android/festago/presentation/src/main/res/layout/item_festival_bookmark.xml
+++ b/android/festago/presentation/src/main/res/layout/item_festival_bookmark.xml
@@ -103,5 +103,20 @@
app:layout_constraintStart_toStartOf="@id/tvFestivalSchedule"
app:layout_constraintTop_toBottomOf="@id/tvFestivalSchedule"
tools:listitem="@layout/item_festival_list_artist" />
+
+
+
diff --git a/android/festago/presentation/src/main/res/layout/item_festival_bookmark_artist.xml b/android/festago/presentation/src/main/res/layout/item_festival_bookmark_artist.xml
index 6df95cc3b..a4219675d 100644
--- a/android/festago/presentation/src/main/res/layout/item_festival_bookmark_artist.xml
+++ b/android/festago/presentation/src/main/res/layout/item_festival_bookmark_artist.xml
@@ -36,6 +36,11 @@
android:contentDescription="@string/festival_list_iv_image"
android:scaleType="centerCrop"
tools:src="@color/background_gray_03" />
+
+
diff --git a/android/festago/presentation/src/main/res/layout/item_festival_detail_stage_artist.xml b/android/festago/presentation/src/main/res/layout/item_festival_detail_stage_artist.xml
index 0f7efb403..27adc88db 100644
--- a/android/festago/presentation/src/main/res/layout/item_festival_detail_stage_artist.xml
+++ b/android/festago/presentation/src/main/res/layout/item_festival_detail_stage_artist.xml
@@ -11,7 +11,7 @@
+
+
+
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/layout/item_festival_list_popular.xml b/android/festago/presentation/src/main/res/layout/item_festival_list_popular.xml
index 62e14a4a8..b113e25ad 100644
--- a/android/festago/presentation/src/main/res/layout/item_festival_list_popular.xml
+++ b/android/festago/presentation/src/main/res/layout/item_festival_list_popular.xml
@@ -14,7 +14,8 @@
+ android:layout_height="wrap_content"
+ tools:background="@color/contents_gray_06">
+ tools:text="연세대 아카라카 연세대 아카라카 연세대 아카라카 (2024)" />
-
-
-
-
-
+
+
+
+
diff --git a/android/festago/presentation/src/main/res/layout/item_search_festival.xml b/android/festago/presentation/src/main/res/layout/item_search_festival.xml
index 09c3cf4cd..bfe525bc6 100644
--- a/android/festago/presentation/src/main/res/layout/item_search_festival.xml
+++ b/android/festago/presentation/src/main/res/layout/item_search_festival.xml
@@ -104,5 +104,19 @@
app:layout_constraintTop_toBottomOf="@id/tvFestivalSchedule"
tools:listitem="@layout/item_festival_list_artist" />
+
+
diff --git a/android/festago/presentation/src/main/res/layout/item_search_festival_artist.xml b/android/festago/presentation/src/main/res/layout/item_search_festival_artist.xml
index a11d97d89..ed9ceb641 100644
--- a/android/festago/presentation/src/main/res/layout/item_search_festival_artist.xml
+++ b/android/festago/presentation/src/main/res/layout/item_search_festival_artist.xml
@@ -37,6 +37,11 @@
android:scaleType="centerCrop"
tools:src="@drawable/ic_launcher_background" />
+
+
정말 탈퇴 하시겠습니까? 다시 되돌릴 수 없습니다.
버전 : %s
+
+ 아직 라인업이\n공개되지 않았어요
+