feat(original): 오리지널 탭에 Yandex 배너 헤더를 추가한다
This commit is contained in:
@@ -11,6 +11,8 @@ import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.gson.Gson
|
||||
import androidx.recyclerview.widget.ConcatAdapter
|
||||
import kr.co.vividnext.sodalive.BuildConfig
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||
import kr.co.vividnext.sodalive.base.SodaDialog
|
||||
@@ -18,6 +20,7 @@ import kr.co.vividnext.sodalive.chat.original.detail.OriginalWorkDetailActivity
|
||||
import kr.co.vividnext.sodalive.common.GridSpacingItemDecoration
|
||||
import kr.co.vividnext.sodalive.common.LoadingDialog
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
import kr.co.vividnext.sodalive.common.YandexInlineBannerHeaderAdapter
|
||||
import kr.co.vividnext.sodalive.databinding.FragmentOriginalTabBinding
|
||||
import kr.co.vividnext.sodalive.extensions.dpToPx
|
||||
import kr.co.vividnext.sodalive.main.MainActivity
|
||||
@@ -36,6 +39,7 @@ class OriginalTabFragment :
|
||||
private val myPageViewModel: MyPageViewModel by inject()
|
||||
|
||||
private lateinit var adapter: OriginalWorkListAdapter
|
||||
private lateinit var bannerAdapter: YandexInlineBannerHeaderAdapter
|
||||
|
||||
private lateinit var loadingDialog: LoadingDialog
|
||||
|
||||
@@ -49,9 +53,19 @@ class OriginalTabFragment :
|
||||
viewModel.loadMore()
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
bannerAdapter.destroy()
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
private fun setupRecycler() {
|
||||
val spanCount = 3
|
||||
val spacingPx = 16f.dpToPx().toInt()
|
||||
val headerCount = 1
|
||||
bannerAdapter = YandexInlineBannerHeaderAdapter(
|
||||
adUnitId = BuildConfig.YANDEX_INLINE_BANNER_ORIGINAL_TAB_AD_UNIT_ID,
|
||||
screenWidth = screenWidth
|
||||
)
|
||||
adapter = OriginalWorkListAdapter { id ->
|
||||
ensureLoginAndAuth {
|
||||
startActivity(
|
||||
@@ -64,12 +78,20 @@ class OriginalTabFragment :
|
||||
)
|
||||
}
|
||||
}
|
||||
binding.rvOriginal.layoutManager = GridLayoutManager(requireContext(), spanCount)
|
||||
binding.rvOriginal.setPadding(0, 0, 0, 8f.dpToPx().toInt())
|
||||
binding.rvOriginal.layoutManager = GridLayoutManager(requireContext(), spanCount).apply {
|
||||
spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
||||
override fun getSpanSize(position: Int): Int {
|
||||
return if (position < headerCount) spanCount else 1
|
||||
}
|
||||
}
|
||||
}
|
||||
binding.rvOriginal.addItemDecoration(
|
||||
GridSpacingItemDecoration(
|
||||
spanCount,
|
||||
spacingPx,
|
||||
true
|
||||
true,
|
||||
headerCount
|
||||
)
|
||||
)
|
||||
binding.rvOriginal.addOnScrollListener(object : RecyclerView.OnScrollListener() {
|
||||
@@ -83,7 +105,7 @@ class OriginalTabFragment :
|
||||
}
|
||||
}
|
||||
})
|
||||
binding.rvOriginal.adapter = adapter
|
||||
binding.rvOriginal.adapter = ConcatAdapter(bannerAdapter, adapter)
|
||||
}
|
||||
|
||||
private fun bind() {
|
||||
|
||||
@@ -9,10 +9,11 @@
|
||||
android:id="@+id/rv_original"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:clipToPadding="false"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:listitem="@layout/item_original_work" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
Reference in New Issue
Block a user