fix: clear messages dialog
This commit is contained in:
parent
26211403b9
commit
8250603cfc
|
@ -1,53 +0,0 @@
|
|||
package org.thoughtcrime.securesms.conversation.settings
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.view.isVisible
|
||||
import network.loki.messenger.databinding.DialogClearAllMessagesBinding
|
||||
import org.thoughtcrime.securesms.conversation.v2.utilities.BaseDialog
|
||||
|
||||
class ClearAllMessagesDialog(private val isUserAdmin: Boolean, private val callback: (Option) -> Unit): BaseDialog(), View.OnClickListener {
|
||||
|
||||
enum class Option {
|
||||
FOR_ME,
|
||||
FOR_EVERYONE
|
||||
}
|
||||
|
||||
private lateinit var binding: DialogClearAllMessagesBinding
|
||||
|
||||
override fun setContentView(builder: AlertDialog.Builder) {
|
||||
super.setContentView(builder)
|
||||
binding = DialogClearAllMessagesBinding.inflate(LayoutInflater.from(requireContext()))
|
||||
with (binding) {
|
||||
forEveryone.isVisible = isUserAdmin
|
||||
forEveryone.setOnClickListener(this@ClearAllMessagesDialog)
|
||||
forMe.isVisible = isUserAdmin
|
||||
forMe.setOnClickListener(this@ClearAllMessagesDialog)
|
||||
close.isVisible = isUserAdmin
|
||||
close.setOnClickListener(this@ClearAllMessagesDialog)
|
||||
|
||||
cancel.isVisible = !isUserAdmin
|
||||
cancel.setOnClickListener(this@ClearAllMessagesDialog)
|
||||
clear.isVisible = !isUserAdmin
|
||||
clear.setOnClickListener(this@ClearAllMessagesDialog)
|
||||
}
|
||||
builder.setView(binding.root)
|
||||
}
|
||||
|
||||
override fun onClick(v: View) {
|
||||
when {
|
||||
v === binding.cancel ||
|
||||
v === binding.close -> dismiss()
|
||||
v === binding.forMe ||
|
||||
v === binding.clear -> {
|
||||
callback(Option.FOR_ME)
|
||||
dismiss()
|
||||
}
|
||||
v === binding.forEveryone -> {
|
||||
callback(Option.FOR_EVERYONE)
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,12 +11,12 @@ import network.loki.messenger.databinding.ActivityConversationSettingsBinding
|
|||
import org.session.libsignal.utilities.Log
|
||||
import org.thoughtcrime.securesms.MediaOverviewActivity
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
|
||||
import org.thoughtcrime.securesms.conversation.settings.ClearAllMessagesDialog.Option
|
||||
import org.thoughtcrime.securesms.conversation.v2.ConversationActivityV2
|
||||
import org.thoughtcrime.securesms.database.LokiThreadDatabase
|
||||
import org.thoughtcrime.securesms.database.ThreadDatabase
|
||||
import org.thoughtcrime.securesms.groups.EditClosedGroupActivity
|
||||
import org.thoughtcrime.securesms.mms.GlideApp
|
||||
import org.thoughtcrime.securesms.showSessionDialog
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
|
@ -150,9 +150,17 @@ class ConversationSettingsActivity: PassphraseRequiredActionBarActivity(), View.
|
|||
}
|
||||
v === binding.back -> onBackPressed()
|
||||
v === binding.clearMessages -> {
|
||||
ClearAllMessagesDialog(viewModel.isUserGroupAdmin()) { option ->
|
||||
viewModel.clearMessages(option == Option.FOR_EVERYONE)
|
||||
}.show(supportFragmentManager, "Clear messages dialog")
|
||||
|
||||
showSessionDialog {
|
||||
title(R.string.dialog_clear_all_messages_title)
|
||||
text(R.string.dialog_clear_all_messages_message)
|
||||
destructiveButton(
|
||||
R.string.dialog_clear_all_messages_clear,
|
||||
R.string.dialog_clear_all_messages_clear) {
|
||||
viewModel.clearMessages(false)
|
||||
}
|
||||
cancelButton()
|
||||
}
|
||||
}
|
||||
v === binding.editGroup -> {
|
||||
val recipient = viewModel.recipient ?: return
|
||||
|
|
Loading…
Reference in New Issue