Archiving messages currently acts like recycle bin in Simple Gallery, meaning that after 30 days, conversations will be deleted permanently. Any updates to the conversation (new messages) removes it from archive. This closes #177
102 lines
4.5 KiB
Kotlin
102 lines
4.5 KiB
Kotlin
package com.simplemobiletools.smsmessenger.helpers
|
|
|
|
import android.content.Context
|
|
import com.simplemobiletools.commons.helpers.BaseConfig
|
|
import com.simplemobiletools.smsmessenger.extensions.getDefaultKeyboardHeight
|
|
import com.simplemobiletools.smsmessenger.models.Conversation
|
|
|
|
class Config(context: Context) : BaseConfig(context) {
|
|
companion object {
|
|
fun newInstance(context: Context) = Config(context)
|
|
}
|
|
|
|
fun saveUseSIMIdAtNumber(number: String, SIMId: Int) {
|
|
prefs.edit().putInt(USE_SIM_ID_PREFIX + number, SIMId).apply()
|
|
}
|
|
|
|
fun getUseSIMIdAtNumber(number: String) = prefs.getInt(USE_SIM_ID_PREFIX + number, 0)
|
|
|
|
var showCharacterCounter: Boolean
|
|
get() = prefs.getBoolean(SHOW_CHARACTER_COUNTER, false)
|
|
set(showCharacterCounter) = prefs.edit().putBoolean(SHOW_CHARACTER_COUNTER, showCharacterCounter).apply()
|
|
|
|
var useSimpleCharacters: Boolean
|
|
get() = prefs.getBoolean(USE_SIMPLE_CHARACTERS, false)
|
|
set(useSimpleCharacters) = prefs.edit().putBoolean(USE_SIMPLE_CHARACTERS, useSimpleCharacters).apply()
|
|
|
|
var sendOnEnter: Boolean
|
|
get() = prefs.getBoolean(SEND_ON_ENTER, false)
|
|
set(sendOnEnter) = prefs.edit().putBoolean(SEND_ON_ENTER, sendOnEnter).apply()
|
|
|
|
var enableDeliveryReports: Boolean
|
|
get() = prefs.getBoolean(ENABLE_DELIVERY_REPORTS, false)
|
|
set(enableDeliveryReports) = prefs.edit().putBoolean(ENABLE_DELIVERY_REPORTS, enableDeliveryReports).apply()
|
|
|
|
var sendLongMessageMMS: Boolean
|
|
get() = prefs.getBoolean(SEND_LONG_MESSAGE_MMS, false)
|
|
set(sendLongMessageMMS) = prefs.edit().putBoolean(SEND_LONG_MESSAGE_MMS, sendLongMessageMMS).apply()
|
|
|
|
var sendGroupMessageMMS: Boolean
|
|
get() = prefs.getBoolean(SEND_GROUP_MESSAGE_MMS, false)
|
|
set(sendGroupMessageMMS) = prefs.edit().putBoolean(SEND_GROUP_MESSAGE_MMS, sendGroupMessageMMS).apply()
|
|
|
|
var lockScreenVisibilitySetting: Int
|
|
get() = prefs.getInt(LOCK_SCREEN_VISIBILITY, LOCK_SCREEN_SENDER_MESSAGE)
|
|
set(lockScreenVisibilitySetting) = prefs.edit().putInt(LOCK_SCREEN_VISIBILITY, lockScreenVisibilitySetting).apply()
|
|
|
|
var mmsFileSizeLimit: Long
|
|
get() = prefs.getLong(MMS_FILE_SIZE_LIMIT, FILE_SIZE_600_KB)
|
|
set(mmsFileSizeLimit) = prefs.edit().putLong(MMS_FILE_SIZE_LIMIT, mmsFileSizeLimit).apply()
|
|
|
|
var pinnedConversations: Set<String>
|
|
get() = prefs.getStringSet(PINNED_CONVERSATIONS, HashSet<String>())!!
|
|
set(pinnedConversations) = prefs.edit().putStringSet(PINNED_CONVERSATIONS, pinnedConversations).apply()
|
|
|
|
fun addPinnedConversationByThreadId(threadId: Long) {
|
|
pinnedConversations = pinnedConversations.plus(threadId.toString())
|
|
}
|
|
|
|
fun addPinnedConversations(conversations: List<Conversation>) {
|
|
pinnedConversations = pinnedConversations.plus(conversations.map { it.threadId.toString() })
|
|
}
|
|
|
|
fun removePinnedConversationByThreadId(threadId: Long) {
|
|
pinnedConversations = pinnedConversations.minus(threadId.toString())
|
|
}
|
|
|
|
fun removePinnedConversations(conversations: List<Conversation>) {
|
|
pinnedConversations = pinnedConversations.minus(conversations.map { it.threadId.toString() })
|
|
}
|
|
|
|
var exportSms: Boolean
|
|
get() = prefs.getBoolean(EXPORT_SMS, true)
|
|
set(exportSms) = prefs.edit().putBoolean(EXPORT_SMS, exportSms).apply()
|
|
|
|
var exportMms: Boolean
|
|
get() = prefs.getBoolean(EXPORT_MMS, true)
|
|
set(exportMms) = prefs.edit().putBoolean(EXPORT_MMS, exportMms).apply()
|
|
|
|
var importSms: Boolean
|
|
get() = prefs.getBoolean(IMPORT_SMS, true)
|
|
set(importSms) = prefs.edit().putBoolean(IMPORT_SMS, importSms).apply()
|
|
|
|
var importMms: Boolean
|
|
get() = prefs.getBoolean(IMPORT_MMS, true)
|
|
set(importMms) = prefs.edit().putBoolean(IMPORT_MMS, importMms).apply()
|
|
|
|
var wasDbCleared: Boolean
|
|
get() = prefs.getBoolean(WAS_DB_CLEARED, false)
|
|
set(wasDbCleared) = prefs.edit().putBoolean(WAS_DB_CLEARED, wasDbCleared).apply()
|
|
|
|
var keyboardHeight: Int
|
|
get() = prefs.getInt(SOFT_KEYBOARD_HEIGHT, context.getDefaultKeyboardHeight())
|
|
set(keyboardHeight) = prefs.edit().putInt(SOFT_KEYBOARD_HEIGHT, keyboardHeight).apply()
|
|
|
|
var useArchive: Boolean
|
|
get() = prefs.getBoolean(USE_ARCHIVE, true)
|
|
set(useArchive) = prefs.edit().putBoolean(USE_ARCHIVE, useArchive).apply()
|
|
|
|
var lastArchiveCheck: Long
|
|
get() = prefs.getLong(LAST_ARCHIVE_CHECK, 0L)
|
|
set(lastArchiveCheck) = prefs.edit().putLong(LAST_ARCHIVE_CHECK, lastArchiveCheck).apply()
|
|
}
|