Add option to send on enter pressed

This commit is contained in:
elena 2022-11-02 23:59:35 +00:00
parent 44a6cfb8d4
commit 407538e497
50 changed files with 112 additions and 16 deletions

View file

@ -38,6 +38,7 @@ class SettingsActivity : SimpleActivity() {
setupFontSize()
setupShowCharacterCounter()
setupUseSimpleCharacters()
setupSendOnEnter()
setupEnableDeliveryReports()
setupSendLongMessageAsMMS()
setupGroupMessageAsMMS()
@ -174,6 +175,14 @@ class SettingsActivity : SimpleActivity() {
}
}
private fun setupSendOnEnter() {
settings_send_on_enter.isChecked = config.sendOnEnter
settings_send_on_enter_holder.setOnClickListener {
settings_send_on_enter.toggle()
config.sendOnEnter = settings_send_on_enter.isChecked
}
}
private fun setupEnableDeliveryReports() {
settings_enable_delivery_reports.isChecked = config.enableDeliveryReports
settings_enable_delivery_reports_holder.setOnClickListener {

View file

@ -25,6 +25,7 @@ import android.text.format.DateUtils.FORMAT_SHOW_DATE
import android.text.format.DateUtils.FORMAT_SHOW_TIME
import android.util.TypedValue
import android.view.Gravity
import android.view.KeyEvent
import android.view.View
import android.view.WindowManager
import android.view.inputmethod.EditorInfo
@ -454,6 +455,26 @@ class ThreadActivity : SimpleActivity() {
val messageLength = SmsMessage.calculateLength(messageString, false)
thread_character_counter.text = "${messageLength[2]}/${messageLength[0]}"
}
if (config.sendOnEnter) {
thread_type_message.inputType = EditorInfo.TYPE_TEXT_FLAG_CAP_SENTENCES
thread_type_message.imeOptions = EditorInfo.IME_ACTION_SEND
thread_type_message.setOnEditorActionListener { _, action, _ ->
if (action == EditorInfo.IME_ACTION_SEND) {
dispatchKeyEvent(KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER))
return@setOnEditorActionListener true
}
false
}
thread_type_message.setOnKeyListener { _, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_ENTER && event.action == KeyEvent.ACTION_UP) {
sendMessage()
return@setOnKeyListener true
}
false
}
}
confirm_manage_contacts.setOnClickListener {
hideKeyboard()

View file

@ -23,6 +23,10 @@ class Config(context: Context) : BaseConfig(context) {
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()

View file

@ -14,6 +14,7 @@ const val USE_SIM_ID_PREFIX = "use_sim_id_"
const val NOTIFICATION_CHANNEL = "simple_sms_messenger"
const val SHOW_CHARACTER_COUNTER = "show_character_counter"
const val USE_SIMPLE_CHARACTERS = "use_simple_characters"
const val SEND_ON_ENTER = "send_on_enter"
const val LOCK_SCREEN_VISIBILITY = "lock_screen_visibility"
const val ENABLE_DELIVERY_REPORTS = "enable_delivery_reports"
const val SEND_LONG_MESSAGE_MMS = "send_long_message_mms"