mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-24 03:42:15 +00:00
Update: Abstract FullscreenBottomSheetDialogFragment from RepositorySheet
This commit is contained in:
parent
80773bfce4
commit
8c2f5011ef
@ -0,0 +1,35 @@
|
|||||||
|
package com.looker.droidify.ui.fragments
|
||||||
|
|
||||||
|
import android.app.Dialog
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.View
|
||||||
|
import android.view.WindowManager
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||||
|
|
||||||
|
abstract class FullscreenBottomSheetDialogFragment() : BottomSheetDialogFragment() {
|
||||||
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
|
val sheet = super.onCreateDialog(savedInstanceState) as BottomSheetDialog
|
||||||
|
sheet.setOnShowListener {
|
||||||
|
val parentLayout =
|
||||||
|
sheet.findViewById<View>(com.google.android.material.R.id.design_bottom_sheet)
|
||||||
|
parentLayout?.let { view ->
|
||||||
|
val behaviour = BottomSheetBehavior.from(view)
|
||||||
|
val layoutParams = view.layoutParams
|
||||||
|
layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT
|
||||||
|
view.layoutParams = layoutParams
|
||||||
|
behaviour.state = BottomSheetBehavior.STATE_EXPANDED
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sheet
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
setupLayout()
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract fun setupLayout()
|
||||||
|
protected abstract fun updateSheet()
|
||||||
|
}
|
@ -1,6 +1,5 @@
|
|||||||
package com.looker.droidify.ui.fragments
|
package com.looker.droidify.ui.fragments
|
||||||
|
|
||||||
import android.app.Dialog
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.SpannableStringBuilder
|
import android.text.SpannableStringBuilder
|
||||||
import android.text.format.DateUtils
|
import android.text.format.DateUtils
|
||||||
@ -9,11 +8,7 @@ import android.text.style.TypefaceSpan
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.WindowManager
|
|
||||||
import androidx.fragment.app.viewModels
|
import androidx.fragment.app.viewModels
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
|
||||||
import com.looker.droidify.EXTRA_REPOSITORY_ID
|
import com.looker.droidify.EXTRA_REPOSITORY_ID
|
||||||
import com.looker.droidify.R
|
import com.looker.droidify.R
|
||||||
import com.looker.droidify.databinding.SheetRepositoryBinding
|
import com.looker.droidify.databinding.SheetRepositoryBinding
|
||||||
@ -28,7 +23,7 @@ import kotlinx.coroutines.GlobalScope
|
|||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class RepositorySheetX() : BottomSheetDialogFragment() {
|
class RepositorySheetX() : FullscreenBottomSheetDialogFragment() {
|
||||||
private lateinit var binding: SheetRepositoryBinding
|
private lateinit var binding: SheetRepositoryBinding
|
||||||
val viewModel: RepositoryViewModelX by viewModels {
|
val viewModel: RepositoryViewModelX by viewModels {
|
||||||
RepositoryViewModelX.Factory((requireActivity() as PrefsActivityX).db, repositoryId)
|
RepositoryViewModelX.Factory((requireActivity() as PrefsActivityX).db, repositoryId)
|
||||||
@ -45,23 +40,6 @@ class RepositorySheetX() : BottomSheetDialogFragment() {
|
|||||||
|
|
||||||
private val syncConnection = Connection(SyncService::class.java)
|
private val syncConnection = Connection(SyncService::class.java)
|
||||||
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
||||||
val sheet = super.onCreateDialog(savedInstanceState)
|
|
||||||
sheet.setOnShowListener {
|
|
||||||
val bsd = it as BottomSheetDialog
|
|
||||||
val parentLayout =
|
|
||||||
bsd.findViewById<View>(com.google.android.material.R.id.design_bottom_sheet)
|
|
||||||
parentLayout?.let { view ->
|
|
||||||
val behaviour = BottomSheetBehavior.from(view)
|
|
||||||
val layoutParams = view.layoutParams
|
|
||||||
layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT
|
|
||||||
view.layoutParams = layoutParams
|
|
||||||
behaviour.state = BottomSheetBehavior.STATE_EXPANDED
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return sheet
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
container: ViewGroup?,
|
||||||
@ -72,9 +50,8 @@ class RepositorySheetX() : BottomSheetDialogFragment() {
|
|||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun setupLayout() {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
viewModel.repo.observe(viewLifecycleOwner) { updateSheet() }
|
||||||
viewModel.repo.observe(viewLifecycleOwner) { updateRepositoryView() }
|
|
||||||
binding.delete.setOnClickListener {
|
binding.delete.setOnClickListener {
|
||||||
MessageDialog(MessageDialog.Message.DeleteRepositoryConfirm).show(
|
MessageDialog(MessageDialog.Message.DeleteRepositoryConfirm).show(
|
||||||
childFragmentManager
|
childFragmentManager
|
||||||
@ -87,7 +64,7 @@ class RepositorySheetX() : BottomSheetDialogFragment() {
|
|||||||
syncConnection.unbind(requireContext())
|
syncConnection.unbind(requireContext())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateRepositoryView() {
|
override fun updateSheet() {
|
||||||
val repository = viewModel.repo.value?.trueData
|
val repository = viewModel.repo.value?.trueData
|
||||||
|
|
||||||
if (repository == null) {
|
if (repository == null) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user