59 lines
2.6 KiB
Kotlin
59 lines
2.6 KiB
Kotlin
package org.thoughtcrime.securesms.conversation.settings
|
|
|
|
import android.os.Bundle
|
|
import android.view.View
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
import network.loki.messenger.databinding.ActivityConversationNotificationSettingsBinding
|
|
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
|
|
import org.thoughtcrime.securesms.conversation.v2.ConversationActivityV2
|
|
import org.thoughtcrime.securesms.database.RecipientDatabase
|
|
import org.thoughtcrime.securesms.database.ThreadDatabase
|
|
import javax.inject.Inject
|
|
|
|
@AndroidEntryPoint
|
|
class ConversationNotificationSettingsActivity: PassphraseRequiredActionBarActivity(), View.OnClickListener {
|
|
|
|
lateinit var binding: ActivityConversationNotificationSettingsBinding
|
|
@Inject lateinit var threadDb: ThreadDatabase
|
|
@Inject lateinit var recipientDb: RecipientDatabase
|
|
val recipient by lazy {
|
|
if (threadId == -1L) null
|
|
else threadDb.getRecipientForThreadId(threadId)
|
|
}
|
|
var threadId: Long = -1
|
|
|
|
override fun onClick(v: View?) {
|
|
val recipient = recipient ?: return
|
|
if (v === binding.notifyAll) {
|
|
// set notify type
|
|
recipientDb.setNotifyType(recipient, RecipientDatabase.NOTIFY_TYPE_ALL)
|
|
} else if (v === binding.notifyMentions) {
|
|
recipientDb.setNotifyType(recipient, RecipientDatabase.NOTIFY_TYPE_MENTIONS)
|
|
} else if (v === binding.notifyMute) {
|
|
recipientDb.setNotifyType(recipient, RecipientDatabase.NOTIFY_TYPE_NONE)
|
|
}
|
|
updateValues()
|
|
}
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) {
|
|
super.onCreate(savedInstanceState, ready)
|
|
binding = ActivityConversationNotificationSettingsBinding.inflate(layoutInflater)
|
|
setContentView(binding.root)
|
|
threadId = intent.getLongExtra(ConversationActivityV2.THREAD_ID, -1L)
|
|
if (threadId == -1L) finish()
|
|
updateValues()
|
|
with (binding) {
|
|
notifyAll.setOnClickListener(this@ConversationNotificationSettingsActivity)
|
|
notifyMentions.setOnClickListener(this@ConversationNotificationSettingsActivity)
|
|
notifyMute.setOnClickListener(this@ConversationNotificationSettingsActivity)
|
|
}
|
|
}
|
|
|
|
private fun updateValues() {
|
|
val notifyType = recipient?.notifyType ?: return
|
|
binding.notifyAllButton.isSelected = notifyType == RecipientDatabase.NOTIFY_TYPE_ALL
|
|
binding.notifyMentionsButton.isSelected = notifyType == RecipientDatabase.NOTIFY_TYPE_MENTIONS
|
|
binding.notifyMuteButton.isSelected = notifyType == RecipientDatabase.NOTIFY_TYPE_NONE
|
|
}
|
|
|
|
} |