Update: Delete repository button (wired)

This commit is contained in:
machiav3lli 2022-01-26 01:44:58 +01:00
parent 55184a7829
commit 6ed4a2eb6f
2 changed files with 23 additions and 2 deletions

View File

@ -11,6 +11,7 @@ import androidx.fragment.app.FragmentManager
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.looker.droidify.R
import com.looker.droidify.entity.Release
import com.looker.droidify.ui.fragments.RepositorySheetX
import com.looker.droidify.utility.KParcelable
import com.looker.droidify.utility.PackageItemResolver
import com.looker.droidify.utility.extension.android.Android
@ -145,7 +146,7 @@ class MessageDialog() : DialogFragment() {
is Message.DeleteRepositoryConfirm -> {
dialog.setTitle(R.string.confirmation)
dialog.setMessage(R.string.delete_repository_DESC)
dialog.setPositiveButton(R.string.delete) { _, _ -> (parentFragment as RepositoryFragment).onDeleteConfirm() }
dialog.setPositiveButton(R.string.delete) { _, _ -> (parentFragment as RepositorySheetX).onDeleteConfirm() }
dialog.setNegativeButton(R.string.cancel, null)
}
is Message.CantEditSyncing -> {

View File

@ -15,11 +15,15 @@ import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.looker.droidify.R
import com.looker.droidify.databinding.SheetRepositoryBinding
import com.looker.droidify.screen.MessageDialog
import com.looker.droidify.service.Connection
import com.looker.droidify.service.SyncService
import com.looker.droidify.ui.activities.PrefsActivityX
import com.looker.droidify.ui.viewmodels.RepositoryViewModelX
import com.looker.droidify.utility.extension.resources.getColorFromAttr
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import java.util.*
class RepositorySheetX() : BottomSheetDialogFragment() {
@ -56,10 +60,19 @@ class RepositorySheetX() : BottomSheetDialogFragment() {
): View {
binding = SheetRepositoryBinding.inflate(layoutInflater)
syncConnection.bind(requireContext())
viewModel.repo.observe(viewLifecycleOwner) { updateRepositoryView() }
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel.repo.observe(viewLifecycleOwner) { updateRepositoryView() }
binding.delete.setOnClickListener {
MessageDialog(MessageDialog.Message.DeleteRepositoryConfirm).show(
childFragmentManager
)
}
}
override fun onDestroyView() {
super.onDestroyView()
syncConnection.unbind(requireContext())
@ -132,4 +145,11 @@ class RepositorySheetX() : BottomSheetDialogFragment() {
}
}
}
internal fun onDeleteConfirm() {
GlobalScope.launch(Dispatchers.IO) {
if (syncConnection.binder?.deleteRepository(repositoryId) == true)
dismissAllowingStateLoss()
}
}
}