diff --git a/src/main/kotlin/com/looker/droidify/screen/MessageDialog.kt b/src/main/kotlin/com/looker/droidify/screen/MessageDialog.kt index 933f1e05..d91d7954 100644 --- a/src/main/kotlin/com/looker/droidify/screen/MessageDialog.kt +++ b/src/main/kotlin/com/looker/droidify/screen/MessageDialog.kt @@ -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 -> { diff --git a/src/main/kotlin/com/looker/droidify/ui/fragments/RepositorySheetX.kt b/src/main/kotlin/com/looker/droidify/ui/fragments/RepositorySheetX.kt index e768934f..05d55900 100644 --- a/src/main/kotlin/com/looker/droidify/ui/fragments/RepositorySheetX.kt +++ b/src/main/kotlin/com/looker/droidify/ui/fragments/RepositorySheetX.kt @@ -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() + } + } }