Add proper strings for archive operations

This commit is contained in:
Ensar Sarajčić 2023-07-12 10:37:20 +02:00
parent 47861f605d
commit 7dbd6c5d9f
61 changed files with 693 additions and 70 deletions

View file

@ -3,6 +3,7 @@ package com.simplemobiletools.smsmessenger.activities
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Bundle
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.smsmessenger.R
@ -82,8 +83,10 @@ class ArchivedConversationsActivity : SimpleActivity() {
}
private fun removeAll() {
removeAllArchivedConversations {
loadArchivedConversations()
ConfirmationDialog(this, "", R.string.empty_archive_confirmation, R.string.yes, R.string.no) {
removeAllArchivedConversations {
loadArchivedConversations()
}
}
}
@ -125,7 +128,7 @@ class ArchivedConversationsActivity : SimpleActivity() {
private fun showOrHidePlaceholder(show: Boolean) {
conversations_fastscroller.beGoneIf(show)
no_conversations_placeholder.beVisibleIf(show)
no_conversations_placeholder.text = getString(R.string.no_conversations_found)
no_conversations_placeholder.text = getString(R.string.no_archived_conversations)
}
@SuppressLint("NotifyDataSetChanged")

View file

@ -19,7 +19,7 @@ import java.util.*
class SettingsActivity : SimpleActivity() {
private var blockedNumbersAtPause = -1
private var recycleBinConversations = 0
private var archiveConversations = 0
override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
@ -64,7 +64,7 @@ class SettingsActivity : SimpleActivity() {
settings_general_settings_label,
settings_outgoing_messages_label,
settings_notifications_label,
settings_recycle_bin_label,
settings_archive_label,
settings_security_label
).forEach {
it.setTextColor(getProperPrimaryColor())
@ -252,36 +252,36 @@ class SettingsActivity : SimpleActivity() {
private fun setupUseRecycleBin() {
updateRecycleBinButtons()
settings_use_recycle_bin.isChecked = config.useArchive
settings_use_recycle_bin_holder.setOnClickListener {
settings_use_recycle_bin.toggle()
config.useArchive = settings_use_recycle_bin.isChecked
settings_use_archive.isChecked = config.useArchive
settings_use_archive_holder.setOnClickListener {
settings_use_archive.toggle()
config.useArchive = settings_use_archive.isChecked
updateRecycleBinButtons()
}
}
private fun updateRecycleBinButtons() {
settings_empty_recycle_bin_holder.beVisibleIf(config.useArchive)
settings_empty_archive_holder.beVisibleIf(config.useArchive)
}
private fun setupEmptyRecycleBin() {
ensureBackgroundThread {
recycleBinConversations = conversationsDB.getArchivedCount()
archiveConversations = conversationsDB.getArchivedCount()
runOnUiThread {
settings_empty_recycle_bin_size.text =
resources.getQuantityString(R.plurals.delete_conversations, recycleBinConversations, recycleBinConversations)
settings_empty_archive_size.text =
resources.getQuantityString(R.plurals.delete_conversations, archiveConversations, archiveConversations)
}
}
settings_empty_recycle_bin_holder.setOnClickListener {
if (recycleBinConversations == 0) {
toast(R.string.recycle_bin_empty)
settings_empty_archive_holder.setOnClickListener {
if (archiveConversations == 0) {
toast(R.string.archive_is_empty)
} else {
ConfirmationDialog(this, "", R.string.empty_recycle_bin_confirmation, R.string.yes, R.string.no) {
ConfirmationDialog(this, "", R.string.empty_archive_confirmation, R.string.yes, R.string.no) {
removeAllArchivedConversations()
recycleBinConversations = 0
settings_empty_recycle_bin_size.text =
resources.getQuantityString(R.plurals.delete_conversations, recycleBinConversations, recycleBinConversations)
archiveConversations = 0
settings_empty_archive_size.text =
resources.getQuantityString(R.plurals.delete_conversations, archiveConversations, archiveConversations)
}
}
}

View file

@ -889,7 +889,12 @@ class ThreadActivity : SimpleActivity() {
}
private fun askConfirmDelete() {
DeleteConfirmationDialog(this, getString(R.string.delete_whole_conversation_confirmation), config.useArchive) { skipRecycleBin ->
val confirmationMessage = if (config.useArchive) {
R.string.archive_whole_conversation_confirmation
} else {
R.string.delete_whole_conversation_confirmation
}
DeleteConfirmationDialog(this, getString(confirmationMessage), config.useArchive) { skipRecycleBin ->
ensureBackgroundThread {
if (skipRecycleBin || config.useArchive.not()) {
deleteConversation(threadId)

View file

@ -38,7 +38,7 @@ class ArchivedConversationsAdapter(
val baseString = R.string.deletion_confirmation
val question = String.format(resources.getString(baseString), items)
DeleteConfirmationDialog(activity, question, showSkipRecycleBinOption = false) { _ ->
DeleteConfirmationDialog(activity, question, showSkipArchiveOption = false) { _ ->
ensureBackgroundThread {
deleteConversations()
}

View file

@ -118,7 +118,11 @@ class ConversationsAdapter(
val itemsCnt = selectedKeys.size
val items = resources.getQuantityString(R.plurals.delete_conversations, itemsCnt, itemsCnt)
val baseString = R.string.deletion_confirmation
val baseString = if (activity.config.useArchive) {
R.string.archive_confirmation
} else {
R.string.deletion_confirmation
}
val question = String.format(resources.getString(baseString), items)
DeleteConfirmationDialog(activity, question, activity.config.useArchive) { skipRecycleBin ->

View file

@ -7,12 +7,12 @@ import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.smsmessenger.R
import kotlinx.android.synthetic.main.dialog_delete_confirmation.view.delete_remember_title
import kotlinx.android.synthetic.main.dialog_delete_confirmation.view.skip_the_recycle_bin_checkbox
import kotlinx.android.synthetic.main.dialog_delete_confirmation.view.skip_the_archive_checkbox
class DeleteConfirmationDialog(
private val activity: Activity,
private val message: String,
private val showSkipRecycleBinOption: Boolean,
private val showSkipArchiveOption: Boolean,
private val callback: (skipRecycleBin: Boolean) -> Unit
) {
@ -21,7 +21,7 @@ class DeleteConfirmationDialog(
init {
view.delete_remember_title.text = message
view.skip_the_recycle_bin_checkbox.beGoneIf(!showSkipRecycleBinOption)
view.skip_the_archive_checkbox.beGoneIf(!showSkipArchiveOption)
activity.getAlertDialogBuilder()
.setPositiveButton(R.string.yes) { _, _ -> dialogConfirmed() }
.setNegativeButton(R.string.no, null)
@ -34,6 +34,6 @@ class DeleteConfirmationDialog(
private fun dialogConfirmed() {
dialog?.dismiss()
callback(view.skip_the_recycle_bin_checkbox.isChecked)
callback(view.skip_the_archive_checkbox.isChecked)
}
}

View file

@ -602,7 +602,7 @@ fun Context.removeAllArchivedConversations(callback: (() -> Unit)? = null) {
for (conversation in conversationsDB.getAllArchived()) {
deleteConversation(conversation.threadId)
}
toast(R.string.recycle_bin_emptied)
toast(R.string.archive_emptied_successfully)
callback?.invoke()
} catch (e: Exception) {
toast(R.string.unknown_error_occurred)

View file

@ -37,8 +37,8 @@ const val SCHEDULED_MESSAGE_ID = "scheduled_message_id"
const val SOFT_KEYBOARD_HEIGHT = "soft_keyboard_height"
const val IS_MMS = "is_mms"
const val MESSAGE_ID = "message_id"
const val USE_ARCHIVE = "use_recycle_bin"
const val LAST_ARCHIVE_CHECK = "last_bin_check"
const val USE_ARCHIVE = "use_archive"
const val LAST_ARCHIVE_CHECK = "last_archive_check"
private const val PATH = "com.simplemobiletools.smsmessenger.action."
const val MARK_AS_READ = PATH + "mark_as_read"