Skip to content

Commit

Permalink
* updated dependencies
Browse files Browse the repository at this point in the history
* fix for switching dark theme
* send panic command as json when remote code active
* fix for showing proper bottom sheet when remote code and code to arm active
  • Loading branch information
thanksmister committed May 20, 2021
1 parent fb9d6f0 commit f7aca7b
Show file tree
Hide file tree
Showing 13 changed files with 55 additions and 44 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ apply plugin: 'com.google.firebase.crashlytics'

def versionMajor = 1
def versionMinor = 1
def versionPatch = 0
def versionBuild = 9 // bump for dog food builds, public betas, etc.
def versionPatch = 1
def versionBuild = 0 // bump for dog food builds, public betas, etc.

def ALARM_CODE() {
Properties properties = new Properties()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,9 @@ abstract class BaseActivity : DaggerAppCompatActivity() {
// When activity is recreated we can switch the day night mode
fun setDayNightMode(force: Boolean = false) {
val dayNightMode = configuration.dayNightMode
if (dayNightMode == Configuration.SUN_BELOW_HORIZON) {
if (dayNightMode == Configuration.DISPLAY_MODE_NIGHT) {
setDarkTheme(force)
} else if (dayNightMode == Configuration.SUN_ABOVE_HORIZON) {
} else if (dayNightMode == Configuration.DISPLAY_MODE_DAY) {
setLightTheme(force)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_CA
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_DASHBOARD
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_DISARM
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_NOTIFICATION
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_PANIC
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_SENSOR_FACE
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_SENSOR_MOTION
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_SENSOR_PREFIX
Expand Down Expand Up @@ -1066,7 +1065,11 @@ class AlarmPanelService : LifecycleService(), MQTTModule.MQTTListener {
publishAlarm(alarmMode, alarmCode)
} else if (BROADCAST_EVENT_PUBLISH_PANIC == intent.action) {
val mode = intent.getStringExtra(BROADCAST_EVENT_PUBLISH_PANIC).orEmpty()
publishAlarm(mode, 0)
var alarmCode = 0
if (mqttOptions.useRemoteCode) {
alarmCode = -1
}
publishAlarm(mode, alarmCode)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import android.content.SharedPreferences
import android.text.TextUtils
import com.thanksmister.iot.mqtt.alarmpanel.persistence.SensorDao
import com.thanksmister.iot.mqtt.alarmpanel.utils.DeviceUtils
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.COMMAND_ON
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.DEFAULT_COMMAND_TOPIC
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.DEFAULT_CONFIG_TOPIC
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.DEFAULT_PANEL_COMMAND_TOPIC
Expand All @@ -29,12 +28,7 @@ import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.DEFAULT_ST
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.DEFAULT_EVENT_TOPIC
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.PORT
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils.Companion.TOPIC_COMMAND
import io.reactivex.Flowable
import io.reactivex.Maybe
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
import java.util.*
import javax.inject.Inject
import kotlin.collections.ArrayList
Expand Down Expand Up @@ -214,10 +208,10 @@ constructor(private val sharedPreferences: SharedPreferences, private val senso
setOptionsUpdated(true)
}

var useRemoteDisarm: Boolean
get() = sharedPreferences.getBoolean(PREF_REMOTE_DISARM, false)
var useRemoteCode: Boolean
get() = sharedPreferences.getBoolean(PREF_REMOTE_CODE, false)
set(value) {
this.sharedPreferences.edit().putBoolean(PREF_REMOTE_DISARM, value).apply()
this.sharedPreferences.edit().putBoolean(PREF_REMOTE_CODE, value).apply()
setOptionsUpdated(true)
}

Expand Down Expand Up @@ -320,7 +314,7 @@ constructor(private val sharedPreferences: SharedPreferences, private val senso
const val PREF_BROKER = "pref_broker"
const val PREF_RETAIN = "pref_retain"
const val PREF_REMOTE_CONFIG = "pref_remote_config"
const val PREF_REMOTE_DISARM = "pref_remote_disarm"
const val PREF_REMOTE_CODE = "pref_remote_code"
const val PREF_MANUAL_CONFIG = "pref_manual_config"
const val MQTT_OPTIONS_UPDATED = "pref_mqtt_options_updated"
const val PREF_CONFIG_TOPIC = "pref_config_topic"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ package com.thanksmister.iot.mqtt.alarmpanel.network
import android.R.id.message
import android.content.Context
import com.thanksmister.iot.mqtt.alarmpanel.R
import com.thanksmister.iot.mqtt.alarmpanel.persistence.SensorDao
import com.thanksmister.iot.mqtt.alarmpanel.utils.MqttUtils
import com.thanksmister.iot.mqtt.alarmpanel.utils.StringUtils
import io.reactivex.android.schedulers.AndroidSchedulers
Expand Down Expand Up @@ -113,11 +112,13 @@ class MQTTService(private var context: Context,
mqttOptions?.let {
val mqttMessage = MqttMessage()
var payloadString = command
if(it.useRemoteDisarm && code != 0) {
if(it.useRemoteCode && code != 0) {
val payloadJson = JSONObject()
payloadJson.put(MqttUtils.COMMAND, command)
if (code > 0) {
payloadJson.put(MqttUtils.CODE, code.toString())
} else if (command == MqttUtils.COMMAND_PANIC && code < 0) {
payloadJson.put(MqttUtils.CODE, "")
}
payloadString = payloadJson.toString()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@ class MainActivity : BaseActivity(),
@Deprecated("Doesn't appear to be used")
private fun showDisarmCodeDialog(delay: Int?) {
var codeType = CodeTypes.DISARM
if (mqttOptions.useRemoteDisarm) {
if (mqttOptions.useRemoteCode) {
codeType = CodeTypes.DISARM_REMOTE
}
codeBottomSheet = CodeBottomSheetFragment.newInstance(configuration.alarmCode.toString(), delay, codeType,
Expand Down Expand Up @@ -534,10 +534,11 @@ class MainActivity : BaseActivity(),
*/
override fun showCodeDialog(type: CodeTypes, delay: Int?) {
var codeType = type
if (mqttOptions.useRemoteDisarm) {
val useRemoteCode = mqttOptions.useRemoteCode
if (useRemoteCode) {
if (type == CodeTypes.DISARM) {
codeType = CodeTypes.DISARM_REMOTE
} else if (type == CodeTypes.ARM) {
} else if (type == CodeTypes.ARM_HOME || type == CodeTypes.ARM_AWAY || type == CodeTypes.ARM_NIGHT || type == CodeTypes.ARM_BYPASS) {
codeType = CodeTypes.ARM_REMOTE
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import com.thanksmister.iot.mqtt.alarmpanel.network.MQTTOptions
import com.thanksmister.iot.mqtt.alarmpanel.persistence.Configuration
import com.thanksmister.iot.mqtt.alarmpanel.ui.activities.SettingsActivity
import dagger.android.support.AndroidSupportInjection
import java.util.*
import javax.inject.Inject

class AlarmSettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener {
Expand All @@ -40,8 +39,8 @@ class AlarmSettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSh
@Inject
lateinit var mqttOptions: MQTTOptions

private val remoteDisarmSwitchPreference: SwitchPreference by lazy {
findPreference(PREF_ALARM_REMOTE_DISARM) as SwitchPreference
private val remoteCodeSwitchPreference: SwitchPreference by lazy {
findPreference(PREF_ALARM_REMOTE_CODE) as SwitchPreference
}

private val awayModePreference: SwitchPreference by lazy {
Expand Down Expand Up @@ -148,7 +147,7 @@ class AlarmSettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSh
delayBypassPreference.text = mqttOptions.delayTimeBypass.toString()
delayBypassPreference.summary = getString(R.string.pref_bypass_delay_summary, mqttOptions.delayTimeBypass.toString())

remoteDisarmSwitchPreference.isChecked = mqttOptions.useRemoteDisarm
remoteCodeSwitchPreference.isChecked = mqttOptions.useRemoteCode
}

override fun onActivityCreated(savedInstanceState: Bundle?) {
Expand Down Expand Up @@ -204,10 +203,10 @@ class AlarmSettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSh
mqttOptions.delayTimeBypass = delayHomePreference.text.toIntOrNull()?:60
delayBypassPreference.summary = getString(R.string.pref_bypass_delay_summary, mqttOptions.delayTimeBypass.toString())
}
PREF_ALARM_REMOTE_DISARM -> {
val checked = remoteDisarmSwitchPreference.isChecked
PREF_ALARM_REMOTE_CODE -> {
val checked = remoteCodeSwitchPreference.isChecked
checked.let {
mqttOptions.useRemoteDisarm = checked
mqttOptions.useRemoteCode = checked
}
}
}
Expand All @@ -222,6 +221,6 @@ class AlarmSettingsFragment : PreferenceFragmentCompat(), SharedPreferences.OnSh
const val PREF_HOME_DELAY_TIME = "settings_pref_home_delay_time"
const val PREF_NIGHT_DELAY_TIME = "settings_pref_night_delay_time"
const val PREF_BYPASS_DELAY_TIME = "settings_pref_bypass_delay_time"
const val PREF_ALARM_REMOTE_DISARM = "settings_alarm_remote_disarm"
const val PREF_ALARM_REMOTE_CODE = "settings_alarm_remote_code"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,8 @@ import com.thanksmister.iot.mqtt.alarmpanel.persistence.Configuration
import com.thanksmister.iot.mqtt.alarmpanel.utils.DialogUtils
import com.thanksmister.iot.mqtt.alarmpanel.viewmodel.TriggeredViewModel
import kotlinx.android.synthetic.main.dialog_alarm_triggered_code.*
import kotlinx.android.synthetic.main.fragment_main.*
import kotlinx.android.synthetic.main.view_keypad.*
import kotlinx.android.synthetic.main.view_keypad.view.*
import timber.log.Timber
import javax.inject.Inject

class TriggeredFragment : BaseFragment() {
Expand Down Expand Up @@ -90,7 +88,7 @@ class TriggeredFragment : BaseFragment() {
super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProviders.of(this, viewModelFactory).get(TriggeredViewModel::class.java)
observeViewModel(viewModel)
val useRemoteDisarm = mqttOptions.useRemoteDisarm
val useRemoteDisarm = mqttOptions.useRemoteCode
val requireCodeForDisarming = mqttOptions.requireCodeForDisarming
if (useRemoteDisarm && requireCodeForDisarming) {
codeType = CodeTypes.DISARM_REMOTE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
android:ellipsize="end"
android:lines="1"
android:text="@string/button_send_alert"
android:textColor="@color/white_alpha"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/fragment_alert_bottom_sheet.xml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
android:ellipsize="end"
android:lines="1"
android:text="@string/button_send_alert"
android:textColor="@color/white_alpha"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
Expand Down
31 changes: 23 additions & 8 deletions app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,7 @@
<string name="preference_summary_password">Imposta la password del servizio (se necessario).</string>
<string name="preference_title_alarm">Allarme</string>
<string name="preference_summary_alarm">Impostazioni codice allarme</string>
<string name="preference_title_pending_time">Tempo In Attesa</string>
<string name="preference_summary_pending_time">Il tempo di attesa in secondi prima che l\'allarme venga inserito fuori casa od in casa). Attualmente %1$s secondi.</string>
<string name="preference_title_trigger_time">Tempo Di Attivazione</string>
<string name="preference_title_trigger_time">Tempo Di Attivazione</string>
<string name="preference_summary_trigger_time">Il tempo in secondi prima che scatti l\'allarme. Attualmente %1$s secondi.</string>

<string name="preference_title_weather_settings">Meteo</string>
Expand Down Expand Up @@ -244,8 +242,6 @@
<string name="text_update_available">È disponibile un nuovo aggiornamento, desideri installarlo ora?</string>
<string name="pref_home_pending_title">Tempo Di Attesa Armamento ad Home</string>
<string name="pref_home_pending_summary">Il tempo in secondi prima che l\'allarme venga impostato sulla modalità Home. Attualmente %1$s secondi.</string>
<string name="pref_delay_title">Tempo di Ritardo Disarmamento</string>
<string name="pref_delay_summary">Il tempo in secondi per visualizzare la finestra di disarmo prima che l\'allarme venga attivato, a meno che non venga sovrascritto dai tempi di ritardo per le modalità in casa o fuori casa. Attualmente %1$s secondi.</string>
<string name="pref_away_pending_title">Tempo di Attesa Attivazione Fuori Casa</string>
<string name="pref_away_pending_summary">Il tempo in secondi prima che l\'allarme venga impostato in modalità Fuori Casa. Attualmente %1$s secondi.</string>
<string name="pref_pending_times_description">Questi tempi dovrebbero corrispondere a quelli impostati nella tua piattaforma di automazione domestica. Se non si desidera utilizzare i tempi di ritardo, in attesa in modalità Casa, in attesa in modalità Fuori Casa, è sufficiente impostarli tutti in modo che corrispondano al tempo di attesa. Per Home Assistant, rivedere la documentazione del pannello di controllo dell\'allarme manuale MQTT su https://home-assistant.io/components/alarm_control_panel.manual_mqtt/.</string>
Expand Down Expand Up @@ -313,7 +309,6 @@
<string name="pref_sensor_list_summary">Di seguito è riportato un elenco di dati del sensore disponibili su questo dispositivo da pubblicare su MQTT.</string>
<string name="pref_qr_code_summary">Eseguirà la scansione dei codici QR utilizzando la fotocamera del dispositivo e pubblicherà il codice scansionato su MQTT.</string>
<string name="title_setting_mqtt_sensorfrequency">Frequenza di pubblicazione (in secondi)</string>
<string name="summary_setting_mqtt_basetopic">Identificatore per ricevere comandi per questo pannello. Ogni pannello dovrebbe avere un identificatore univoco.</string>
<string name="title_setting_mqtt_basetopic">Topic del Comando Di Allarme</string>
<string name="service_notification_message">Pannello Di Allarme In Esecuzione ...</string>
<string name="toast_camera_source_error">Impossibile avviare la sorgente della fotocamera, potresti provare di nuovo.</string>
Expand All @@ -334,7 +329,7 @@
<string name="pref_face_detection_title">Rilevamento Volto</string>
<string name="pref_motion_leniency_description">La tolleranza massima della differenza tra le immagini. Una tolleranza inferiore significa che il movimento è più sensibile (1 - 20).</string>
<string name="pref_motion_luma_description">Livello di luminosità minimo per rilevare il movimento. Non verrà rilevato alcun movimento se la luminosità scende al di sotto di questo valore (1 - 1000).</string>
<string name="pref_mjpeg_streaming_description">Usa la fotocamera del dispositivo come streaming MJPEG live. Connettiti allo stream utilizzando l\'indirizzo IP del dispositivo, la porta HTTP e l'EndPoint: http://192.168.1.1:2971/camera/stream</string>
<string name="pref_mjpeg_streaming_description">Usa la fotocamera del dispositivo come streaming MJPEG live. Connettiti allo stream utilizzando l\'indirizzo IP del dispositivo, la porta HTTP e l\'EndPoint: http://192.168.1.1:2971/camera/stream</string>
<string name="pref_mjpeg_streaming_title">Streaming MJPEG</string>
<string name="pref_mjpeg_streaming_summary">Usa la fotocamera del dispositivo come streaming MJPEG live.</string>
<string name="title_setting_camera_enabled">Fotocamera Abilitata</string>
Expand Down Expand Up @@ -433,7 +428,27 @@
<string name="pref_summary_send_code">Invia il codice al server per aggiornare lo stato dell\'allarme.</string>
<string name="text_alarm_entry">INGRESSO ALLARME</string>

<string-array name="inactivity_times">
<string name="pref_title_alarm_modes_sensors">Advanced Settings</string>
<string name="text_arm_night">NIGHT</string>
<string name="text_armed_custom_bypass">ARMED CUSTOM BYPASS</string>
<string name="text_arm_custom">CUSTOM</string>
<string name="text_arm_custom_bypass">BYPASS</string>
<string name="preference_title_event_topic">Alarm Event Topic</string>
<string name="pref_summary_sensor_active">When active, displays sensor state.</string>
<string name="pref_category_title_alarm_sensors">Alarm Sensors</string>
<string name="error_no_code">A code is required and was not provided.</string>
<string name="error_system_disabled">The system is disabled, check the server.</string>
<string name="error_command_not_allowed">Command not allowed, system arming.</string>
<string name="error_invalid_code">An invalid code has been entered, check the code and try again.</string>
<string name="error_unknown">An unknown error has occurred, please check the server.</string>
<string name="error_arm_failed">Unable to arm system, please check settings.</string>
<string name="snack_check_sensors">Please check sensors. One or more of your alarm sensors are active, the alarm cannot be set.</string>
<string name="pref_bypass_pending_title">Custom Bypass Pending Time</string>
<string name="pref_bypass_delay_title">Custom Bypass Delay Time</string>
<string name="pref_bypass_delay_summary">The time in seconds before the alarm state is set to custom bypass mode. Currently %1$s seconds.</string>
<string name="pref_bypass_pending_summary">The time in seconds to disarm the alarm before the alarm is triggered. Currently %1$s seconds.</string>

<string-array name="inactivity_times">
<item>15 secondi</item>
<item>30 secondi</item>
<item>1 minuto</item>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/xml/alarm_preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<PreferenceCategory android:title="Alarm Remote Code">

<SwitchPreference
android:key="settings_alarm_remote_disarm"
android:key="settings_alarm_remote_code"
android:icon="@drawable/ic_baseline_settings_remote"
android:summary="@string/pref_summary_send_code"
android:title="Remote Code" />
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ ext.deps = [:]
def versions = [:]
versions.lifecycle = "2.1.0"
versions.support = "28.0.0"
versions.kotlin = "1.2.20"
versions.kotlin = "1.4.32"
versions.navigation = "1.0.0"
versions.min_sdk = 19
versions.target_sdk = 30
Expand Down

0 comments on commit f7aca7b

Please sign in to comment.