feat: 메인 홈
- 오디션 리스트를 보여주지 않고 터치시 오디션 페이지로 이동하도록 수정
This commit is contained in:
		@@ -175,6 +175,7 @@
 | 
			
		||||
        <activity android:name=".audio_content.main.v2.series.completed.CompletedSeriesActivity" />
 | 
			
		||||
 | 
			
		||||
        <activity android:name=".search.SearchActivity" />
 | 
			
		||||
        <activity android:name=".audition.AuditionActivity" />
 | 
			
		||||
 | 
			
		||||
        <activity android:name=".mypage.alarm.AlarmListActivity" />
 | 
			
		||||
        <activity android:name=".mypage.alarm.AddAlarmActivity" />
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,18 @@
 | 
			
		||||
package kr.co.vividnext.sodalive.audition
 | 
			
		||||
 | 
			
		||||
import androidx.annotation.OptIn
 | 
			
		||||
import androidx.media3.common.util.UnstableApi
 | 
			
		||||
import kr.co.vividnext.sodalive.R
 | 
			
		||||
import kr.co.vividnext.sodalive.base.BaseActivity
 | 
			
		||||
import kr.co.vividnext.sodalive.databinding.ActivityAuditionBinding
 | 
			
		||||
 | 
			
		||||
@OptIn(UnstableApi::class)
 | 
			
		||||
class AuditionActivity : BaseActivity<ActivityAuditionBinding>(
 | 
			
		||||
    ActivityAuditionBinding::inflate
 | 
			
		||||
) {
 | 
			
		||||
    override fun setupView() {
 | 
			
		||||
        supportFragmentManager.beginTransaction()
 | 
			
		||||
            .replace(R.id.fl_container, AuditionFragment())
 | 
			
		||||
            .commit()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -6,7 +6,6 @@ import kr.co.vividnext.sodalive.audio_content.main.GetAudioContentBannerResponse
 | 
			
		||||
import kr.co.vividnext.sodalive.audio_content.main.GetAudioContentRankingItem
 | 
			
		||||
import kr.co.vividnext.sodalive.audio_content.main.v2.GetContentCurationResponse
 | 
			
		||||
import kr.co.vividnext.sodalive.audio_content.series.GetSeriesListResponse
 | 
			
		||||
import kr.co.vividnext.sodalive.audition.GetAuditionListItem
 | 
			
		||||
import kr.co.vividnext.sodalive.explorer.GetExplorerSectionCreatorResponse
 | 
			
		||||
import kr.co.vividnext.sodalive.live.GetRoomListResponse
 | 
			
		||||
import kr.co.vividnext.sodalive.settings.event.GetEventResponse
 | 
			
		||||
@@ -20,7 +19,6 @@ data class GetHomeResponse(
 | 
			
		||||
    @SerializedName("bannerList") val bannerList: List<GetAudioContentBannerResponse>,
 | 
			
		||||
    @SerializedName("eventBannerList") val eventBannerList: GetEventResponse,
 | 
			
		||||
    @SerializedName("originalAudioDramaList") val originalAudioDramaList: List<GetSeriesListResponse.SeriesListItem>,
 | 
			
		||||
    @SerializedName("auditionList") val auditionList: List<GetAuditionListItem>,
 | 
			
		||||
    @SerializedName("dayOfWeekSeriesList") val dayOfWeekSeriesList: List<GetSeriesListResponse.SeriesListItem>,
 | 
			
		||||
    @SerializedName("contentRanking") val contentRanking: List<GetAudioContentRankingItem>,
 | 
			
		||||
    @SerializedName("recommendChannelList") val recommendChannelList: List<RecommendChannelResponse>,
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ import kr.co.vividnext.sodalive.audio_content.main.banner.AudioContentMainBanner
 | 
			
		||||
import kr.co.vividnext.sodalive.audio_content.player.AudioContentPlayerService
 | 
			
		||||
import kr.co.vividnext.sodalive.audio_content.series.detail.SeriesDetailActivity
 | 
			
		||||
import kr.co.vividnext.sodalive.audio_content.upload.AudioContentUploadActivity
 | 
			
		||||
import kr.co.vividnext.sodalive.audition.detail.AuditionDetailActivity
 | 
			
		||||
import kr.co.vividnext.sodalive.audition.AuditionActivity
 | 
			
		||||
import kr.co.vividnext.sodalive.base.BaseFragment
 | 
			
		||||
import kr.co.vividnext.sodalive.common.Constants
 | 
			
		||||
import kr.co.vividnext.sodalive.common.LoadingDialog
 | 
			
		||||
@@ -54,7 +54,6 @@ import org.koin.android.ext.android.inject
 | 
			
		||||
import java.text.SimpleDateFormat
 | 
			
		||||
import java.util.Date
 | 
			
		||||
import java.util.Locale
 | 
			
		||||
import kotlin.math.roundToInt
 | 
			
		||||
 | 
			
		||||
@OptIn(UnstableApi::class)
 | 
			
		||||
class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::inflate) {
 | 
			
		||||
@@ -627,62 +626,23 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(FragmentHomeBinding::infl
 | 
			
		||||
 | 
			
		||||
    private fun setupAudition() {
 | 
			
		||||
        val layoutParams = binding
 | 
			
		||||
            .auditionSlider
 | 
			
		||||
            .ivAudition
 | 
			
		||||
            .layoutParams as LinearLayout.LayoutParams
 | 
			
		||||
 | 
			
		||||
        val pagerWidth = screenWidth.toDouble()
 | 
			
		||||
        val pagerHeight = (pagerWidth * 120 / 352).roundToInt()
 | 
			
		||||
        layoutParams.width = pagerWidth.roundToInt()
 | 
			
		||||
        layoutParams.height = pagerHeight
 | 
			
		||||
        val width = screenWidth
 | 
			
		||||
        val height = width * 198 / 352
 | 
			
		||||
        layoutParams.width = width
 | 
			
		||||
        layoutParams.height = height
 | 
			
		||||
 | 
			
		||||
        auditionAdapter = AuditionBannerAdapter(
 | 
			
		||||
            requireContext(),
 | 
			
		||||
            pagerWidth.roundToInt(),
 | 
			
		||||
            pagerHeight
 | 
			
		||||
        ) {
 | 
			
		||||
            if (SharedPreferenceManager.token.isNotBlank()) {
 | 
			
		||||
        binding.ivAudition.layoutParams = layoutParams
 | 
			
		||||
 | 
			
		||||
        binding.ivAudition.setOnClickListener {
 | 
			
		||||
            startActivity(
 | 
			
		||||
                    Intent(requireContext(), AuditionDetailActivity::class.java).apply {
 | 
			
		||||
                        putExtra(Constants.EXTRA_AUDITION_ID, it)
 | 
			
		||||
                    }
 | 
			
		||||
                Intent(
 | 
			
		||||
                    requireContext(),
 | 
			
		||||
                    AuditionActivity::class.java
 | 
			
		||||
                )
 | 
			
		||||
            } else {
 | 
			
		||||
                (requireActivity() as MainActivity).showLoginActivity()
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        binding
 | 
			
		||||
            .auditionSlider
 | 
			
		||||
            .layoutParams = layoutParams
 | 
			
		||||
 | 
			
		||||
        binding.auditionSlider.apply {
 | 
			
		||||
            adapter = auditionAdapter as BaseBannerAdapter<Any>
 | 
			
		||||
 | 
			
		||||
            setLifecycleRegistry(lifecycle)
 | 
			
		||||
            setScrollDuration(1000)
 | 
			
		||||
            setInterval(4 * 1000)
 | 
			
		||||
        }.create()
 | 
			
		||||
 | 
			
		||||
        binding
 | 
			
		||||
            .auditionSlider
 | 
			
		||||
            .setIndicatorView(binding.indicatorAudition)
 | 
			
		||||
            .setIndicatorStyle(IndicatorStyle.ROUND_RECT)
 | 
			
		||||
            .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH)
 | 
			
		||||
            .setIndicatorVisibility(View.GONE)
 | 
			
		||||
            .setIndicatorSliderColor(
 | 
			
		||||
                ContextCompat.getColor(requireContext(), R.color.color_909090),
 | 
			
		||||
                ContextCompat.getColor(requireContext(), R.color.color_3bb9f1)
 | 
			
		||||
            )
 | 
			
		||||
            .setIndicatorSliderWidth(10f.dpToPx().toInt(), 10f.dpToPx().toInt())
 | 
			
		||||
            .setIndicatorHeight(10f.dpToPx().toInt())
 | 
			
		||||
 | 
			
		||||
        viewModel.auditionListLiveData.observe(viewLifecycleOwner) {
 | 
			
		||||
            if (it.isNotEmpty()) {
 | 
			
		||||
                binding.llAudition.visibility = View.VISIBLE
 | 
			
		||||
                binding.auditionSlider.refreshData(it)
 | 
			
		||||
            } else {
 | 
			
		||||
                binding.llAudition.visibility = View.GONE
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -50,10 +50,6 @@ class HomeViewModel(private val repository: HomeRepository) : BaseViewModel() {
 | 
			
		||||
    val originalAudioDramaListLiveData: LiveData<List<GetSeriesListResponse.SeriesListItem>>
 | 
			
		||||
        get() = _originalAudioDramaListLiveData
 | 
			
		||||
 | 
			
		||||
    private var _auditionListLiveData = MutableLiveData<List<GetAuditionListItem>>()
 | 
			
		||||
    val auditionListLiveData: LiveData<List<GetAuditionListItem>>
 | 
			
		||||
        get() = _auditionListLiveData
 | 
			
		||||
 | 
			
		||||
    private var _dayOfWeekSeriesListLiveData =
 | 
			
		||||
        MutableLiveData<List<GetSeriesListResponse.SeriesListItem>>()
 | 
			
		||||
    val dayOfWeekSeriesListLiveData: LiveData<List<GetSeriesListResponse.SeriesListItem>>
 | 
			
		||||
@@ -97,7 +93,6 @@ class HomeViewModel(private val repository: HomeRepository) : BaseViewModel() {
 | 
			
		||||
                            _latestContentListLiveData.value = data.latestContentList
 | 
			
		||||
                            _eventBannerListLiveData.value = data.bannerList
 | 
			
		||||
                            _originalAudioDramaListLiveData.value = data.originalAudioDramaList
 | 
			
		||||
                            _auditionListLiveData.value = data.auditionList
 | 
			
		||||
                            _dayOfWeekSeriesListLiveData.value = data.dayOfWeekSeriesList
 | 
			
		||||
                            _contentRankingLiveData.value = data.contentRanking
 | 
			
		||||
                            _freeContentListLiveData.value = data.freeContentList
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,6 @@ import kr.co.vividnext.sodalive.base.BaseViewModel
 | 
			
		||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
 | 
			
		||||
import kr.co.vividnext.sodalive.explorer.profile.creator_community.CreatorCommunityRepository
 | 
			
		||||
import kr.co.vividnext.sodalive.explorer.profile.creator_community.GetCommunityPostListResponse
 | 
			
		||||
import kr.co.vividnext.sodalive.home.AudioContentMainItem
 | 
			
		||||
import kr.co.vividnext.sodalive.live.recommend.GetRecommendLiveResponse
 | 
			
		||||
import kr.co.vividnext.sodalive.live.recommend.LiveRecommendRepository
 | 
			
		||||
import kr.co.vividnext.sodalive.live.recommend_channel.GetRecommendChannelResponse
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/drawable-mdpi/img_banner_audition.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								app/src/main/res/drawable-mdpi/img_banner_audition.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 62 KiB  | 
							
								
								
									
										11
									
								
								app/src/main/res/layout/activity_audition.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								app/src/main/res/layout/activity_audition.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    android:layout_width="match_parent"
 | 
			
		||||
    android:layout_height="match_parent">
 | 
			
		||||
 | 
			
		||||
    <FrameLayout
 | 
			
		||||
        android:id="@+id/fl_container"
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="match_parent" />
 | 
			
		||||
 | 
			
		||||
</androidx.constraintlayout.widget.ConstraintLayout>
 | 
			
		||||
@@ -218,26 +218,14 @@
 | 
			
		||||
                    android:paddingHorizontal="24dp" />
 | 
			
		||||
            </LinearLayout>
 | 
			
		||||
 | 
			
		||||
            <LinearLayout
 | 
			
		||||
                android:id="@+id/ll_audition"
 | 
			
		||||
            <ImageView
 | 
			
		||||
                android:id="@+id/iv_audition"
 | 
			
		||||
                android:layout_width="match_parent"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                android:layout_marginBottom="48dp"
 | 
			
		||||
                android:orientation="vertical"
 | 
			
		||||
                android:visibility="gone">
 | 
			
		||||
 | 
			
		||||
                <com.zhpan.bannerview.BannerViewPager
 | 
			
		||||
                    android:id="@+id/audition_slider"
 | 
			
		||||
                    android:layout_width="match_parent"
 | 
			
		||||
                    android:layout_height="wrap_content" />
 | 
			
		||||
 | 
			
		||||
                <com.zhpan.indicator.IndicatorView
 | 
			
		||||
                    android:id="@+id/indicator_audition"
 | 
			
		||||
                    android:layout_width="match_parent"
 | 
			
		||||
                    android:layout_height="wrap_content"
 | 
			
		||||
                    android:layout_gravity="center"
 | 
			
		||||
                    android:layout_marginTop="28dp" />
 | 
			
		||||
            </LinearLayout>
 | 
			
		||||
                android:contentDescription="@null"
 | 
			
		||||
                android:scaleType="centerCrop"
 | 
			
		||||
                android:src="@drawable/img_banner_audition" />
 | 
			
		||||
 | 
			
		||||
            <LinearLayout
 | 
			
		||||
                android:id="@+id/ll_series_day_of_week"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user