mirror of
https://github.com/atsunatsu/Look4Sat.git
synced 2026-10-04 03:37:21 +00:00
Added custom recycler divider, further changes to ViewHolders
This commit is contained in:
1 parent
1c6d22ccf9
commit
69b3e4f70b
14 files changed
+98
-89
No files matched your search
@@ -4,11 +4,9 @@ import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.rtbishop.look4sat.R
|
||||
import com.rtbishop.look4sat.SharedViewModel
|
||||
@@ -16,6 +14,7 @@ import com.rtbishop.look4sat.data.SatEntry
|
||||
import com.rtbishop.look4sat.data.TleSource
|
||||
import com.rtbishop.look4sat.databinding.FragmentEntriesBinding
|
||||
import com.rtbishop.look4sat.ui.adapters.EntriesAdapter
|
||||
import com.rtbishop.look4sat.utility.RecyclerDivider
|
||||
import com.rtbishop.look4sat.utility.Utilities.snack
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@@ -23,9 +22,9 @@ import dagger.hilt.android.AndroidEntryPoint
|
||||
class EntriesFragment : Fragment(R.layout.fragment_entries) {
|
||||
|
||||
private lateinit var binding: FragmentEntriesBinding
|
||||
private lateinit var entriesAdapter: EntriesAdapter
|
||||
private val viewModel: SharedViewModel by activityViewModels()
|
||||
private val pickFileReqCode = 100
|
||||
private val entriesAdapter = EntriesAdapter()
|
||||
private var tleSources = listOf<TleSource>()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
@@ -36,17 +35,13 @@ class EntriesFragment : Fragment(R.layout.fragment_entries) {
|
||||
}
|
||||
|
||||
private fun setupComponents() {
|
||||
entriesAdapter = EntriesAdapter()
|
||||
binding.apply {
|
||||
entriesRecycler.apply {
|
||||
val linearLayoutMgr = LinearLayoutManager(requireContext())
|
||||
val divider = DividerItemDecoration(requireContext(), linearLayoutMgr.orientation)
|
||||
val drawable = ResourcesCompat
|
||||
.getDrawable(resources, R.drawable.rec_entries_divider, requireActivity().theme)
|
||||
drawable?.let { divider.setDrawable(it) }
|
||||
layoutManager = linearLayoutMgr
|
||||
adapter = entriesAdapter
|
||||
addItemDecoration(divider)
|
||||
setHasFixedSize(true)
|
||||
adapter = entriesAdapter
|
||||
layoutManager = LinearLayoutManager(requireContext())
|
||||
addItemDecoration(RecyclerDivider(R.drawable.rec_divider_light))
|
||||
}
|
||||
importWeb.setOnClickListener { showImportFromWebDialog() }
|
||||
importFile.setOnClickListener { showImportFromFileDialog() }
|
||||
|
||||
@@ -22,10 +22,8 @@ package com.rtbishop.look4sat.ui.fragments
|
||||
import android.animation.ObjectAnimator
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator
|
||||
import com.rtbishop.look4sat.R
|
||||
@@ -35,6 +33,7 @@ import com.rtbishop.look4sat.data.SatPass
|
||||
import com.rtbishop.look4sat.databinding.FragmentPassesBinding
|
||||
import com.rtbishop.look4sat.ui.adapters.PassesAdapter
|
||||
import com.rtbishop.look4sat.utility.PrefsManager
|
||||
import com.rtbishop.look4sat.utility.RecyclerDivider
|
||||
import com.rtbishop.look4sat.utility.Utilities
|
||||
import com.rtbishop.look4sat.utility.Utilities.getRotationAnimator
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
@@ -78,17 +77,12 @@ class PassesFragment : Fragment(R.layout.fragment_passes) {
|
||||
passesAdapter = PassesAdapter(requireContext(), prefsManager.shouldUseUTC())
|
||||
binding.apply {
|
||||
passesRecycler.apply {
|
||||
val linearLayoutMgr = LinearLayoutManager(requireContext())
|
||||
val divider = DividerItemDecoration(requireContext(), linearLayoutMgr.orientation)
|
||||
val drawable = ResourcesCompat
|
||||
.getDrawable(resources, R.drawable.rec_passes_divider, requireActivity().theme)
|
||||
drawable?.let { divider.setDrawable(it) }
|
||||
layoutManager = linearLayoutMgr
|
||||
setHasFixedSize(true)
|
||||
adapter = passesAdapter
|
||||
isVerticalScrollBarEnabled = false
|
||||
layoutManager = LinearLayoutManager(context)
|
||||
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
|
||||
addItemDecoration(divider)
|
||||
setHasFixedSize(true)
|
||||
addItemDecoration(RecyclerDivider(R.drawable.rec_divider_dark))
|
||||
}
|
||||
animator = passesFab.getRotationAnimator()
|
||||
passesFab.setOnClickListener {
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.rtbishop.look4sat.utility
|
||||
|
||||
import android.graphics.Canvas
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
||||
class RecyclerDivider(private val resId: Int) : RecyclerView.ItemDecoration() {
|
||||
|
||||
override fun onDrawOver(c: Canvas, parent: RecyclerView) {
|
||||
val divider = ContextCompat.getDrawable(parent.context, resId)!!
|
||||
val left = parent.paddingLeft
|
||||
val right = parent.width - parent.paddingRight
|
||||
parent.adapter?.itemCount?.let { childCount ->
|
||||
for (i in 0 until childCount) {
|
||||
if (i == (childCount - 1)) continue
|
||||
parent.getChildAt(i)?.let {
|
||||
val params = it.layoutParams as RecyclerView.LayoutParams
|
||||
val top = it.bottom + params.bottomMargin
|
||||
val bottom = top + divider.intrinsicHeight
|
||||
divider.setBounds(left, top, right, bottom)
|
||||
divider.draw(c)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user