From 8b995afb11372f886dc18f1a2d1011ba34f260ad Mon Sep 17 00:00:00 2001
From: Choi SeongHoon <108349655+SeongHoonC@users.noreply.github.com>
Date: Sat, 18 May 2024 19:53:11 +0900
Subject: [PATCH] =?UTF-8?q?[AN/USER]=20=EB=94=94=EC=9E=90=EC=9D=B8=20?=
=?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=84=A0=ED=83=9D=20=EC=97=85?=
=?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EB=A3=B0=20=EC=B6=94=EA=B0=80=20?=
=?UTF-8?q?(#955)=20(#977)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* feat: 상세 배경 dimmed 60 으로 올린다
* feat: 소셜 미디어 아이콘을 앱의 res 로 변경한다
* feat: add school image & background image
* feat: 상세 페에지 이름 길이 두 줄 대응
* feat(FestivalList): 텍스트 높이를 고정한다
* fix: 최근 검색어 전체 삭제 컬러 수정
* feat: RecyclerView 애니메이션 제거
* feat: Default user profile 변경
* feat: dim 60% 로 변경
* feat: 축제 상세 공연 목록을 4 줄 GridLayoutManager 로 변경한다.
* feat: 축제 공연 테두리 굵기를 0.2 로 줄인다
* feat: 아티스트에 둥근 테두리 추가
* feat: 아직 라인업이 공개되지 않았어요 메세지 추가
* feat: 바텀 네비게이션 전환 애니메이션 삭제
* feat: 선택 업데이트 요청 버전만 선택 업데이트 창을 띄운다
* style: ktlint check
* refactor: naming convention
* chore: Update App version to 2.0.4(13)
---
android/festago/app/build.gradle.kts | 4 +-
.../data/dto/school/SocialMediaResponse.kt | 18 ++-
.../dto/schooldetail/SchoolInfoResponse.kt | 2 +-
.../data/repository/FakeArtistRepository.kt | 5 +-
.../festago/data/repository/FakeFestivals.kt | 5 +-
.../festago/data/repository/FakeSchool.kt | 5 +-
.../domain/model/social/SocialMedia.kt | 2 +-
.../domain/model/social/SocialMediaType.kt | 9 ++
.../ui/artistdetail/ArtistDetailFragment.kt | 13 ++-
.../ArtistDetailFestivalViewHolder.kt | 1 +
.../festivaldetail/FestivalDetailFragment.kt | 15 ++-
.../adapter/stage/StageViewHolder.kt | 1 +
.../adapater/FestivalBookmarkViewHolder.kt | 1 +
.../FestivalListFestivalViewHolder.kt | 1 +
.../SchoolDetailFestivalViewHolder.kt | 1 +
.../ui/schooldetail/SchoolDetailFragment.kt | 16 ++-
.../presentation/ui/search/SearchFragment.kt | 1 +
.../FestivalSearchViewHolder.kt | 1 +
.../presentation/ui/splash/SplashActivity.kt | 20 +++-
.../res/animator/nav_default_enter_anim.xml | 4 +
.../res/animator/nav_default_exit_anim.xml | 4 +
.../animator/nav_default_pop_enter_anim.xml | 4 +
.../animator/nav_default_pop_exit_anim.xml | 4 +
.../main/res/drawable/bg_artist_stroke.xml | 7 ++
.../drawable/bg_festival_list_festival.xml | 11 +-
.../src/main/res/drawable/ic_facebook.xml | 16 +++
.../src/main/res/drawable/ic_instagram.xml | 104 ++++++++++++++++++
...efault.xml => ic_user_profile_default.xml} | 2 +-
.../src/main/res/drawable/ic_x.xml | 9 ++
.../src/main/res/drawable/ic_youtube.xml | 14 +++
.../main/res/drawable/img_default_school.png | Bin 0 -> 7446 bytes
.../res/drawable/img_school_background.png | Bin 0 -> 317881 bytes
.../res/layout/fragment_artist_detail.xml | 11 +-
.../res/layout/fragment_festival_detail.xml | 2 +-
.../src/main/res/layout/fragment_my_page.xml | 9 +-
.../res/layout/fragment_school_detail.xml | 16 +--
.../src/main/res/layout/fragment_search.xml | 1 +
.../main/res/layout/item_artist_bookmark.xml | 9 +-
.../res/layout/item_artist_detail_artist.xml | 7 +-
.../layout/item_artist_detail_festival.xml | 15 +++
.../res/layout/item_festival_bookmark.xml | 15 +++
.../layout/item_festival_bookmark_artist.xml | 5 +
.../res/layout/item_festival_detail_stage.xml | 6 +-
.../item_festival_detail_stage_artist.xml | 7 +-
.../res/layout/item_festival_list_artist.xml | 5 +
.../layout/item_festival_list_festival.xml | 15 +++
.../res/layout/item_festival_list_popular.xml | 13 ++-
.../src/main/res/layout/item_media.xml | 8 --
.../res/layout/item_school_detail_artist.xml | 5 +
.../layout/item_school_detail_festival.xml | 14 +++
.../main/res/layout/item_search_festival.xml | 14 +++
.../layout/item_search_festival_artist.xml | 5 +
.../src/main/res/values/strings.xml | 3 +
53 files changed, 420 insertions(+), 65 deletions(-)
create mode 100644 android/festago/domain/src/main/java/com/festago/festago/domain/model/social/SocialMediaType.kt
create mode 100644 android/festago/presentation/src/main/res/animator/nav_default_enter_anim.xml
create mode 100644 android/festago/presentation/src/main/res/animator/nav_default_exit_anim.xml
create mode 100644 android/festago/presentation/src/main/res/animator/nav_default_pop_enter_anim.xml
create mode 100644 android/festago/presentation/src/main/res/animator/nav_default_pop_exit_anim.xml
create mode 100644 android/festago/presentation/src/main/res/drawable/bg_artist_stroke.xml
create mode 100644 android/festago/presentation/src/main/res/drawable/ic_facebook.xml
create mode 100644 android/festago/presentation/src/main/res/drawable/ic_instagram.xml
rename android/festago/presentation/src/main/res/drawable/{ic_profile_default.xml => ic_user_profile_default.xml} (66%)
create mode 100644 android/festago/presentation/src/main/res/drawable/ic_x.xml
create mode 100644 android/festago/presentation/src/main/res/drawable/ic_youtube.xml
create mode 100644 android/festago/presentation/src/main/res/drawable/img_default_school.png
create mode 100644 android/festago/presentation/src/main/res/drawable/img_school_background.png
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 0000000000000000000000000000000000000000..d06870463ce8eb32d16898212ef9e8f8a51a40e3
GIT binary patch
literal 7446
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
yd!2bZp^2(NoN&Ma2W`|eqmgFh
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⋘yRp74muFW1W7r%PLx83+
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