fix: clear messages dialog

This commit is contained in:
0x330a 2023-08-24 14:34:22 +10:00
parent 26211403b9
commit 8250603cfc
No known key found for this signature in database
GPG Key ID: 267811D6E6A2698C
2 changed files with 12 additions and 57 deletions

View File

@ -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()
}
}
}
}

View File

@ -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