diff --git a/app/build.gradle b/app/build.gradle index 2147883..d0c8fc0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ apply plugin: 'com.google.firebase.crashlytics' def versionMajor = 1 def versionMinor = 1 def versionPatch = 1 -def versionBuild = 3 // bump for dog food builds, public betas, etc. +def versionBuild = 4 // bump for dog food builds, public betas, etc. def ALARM_CODE() { Properties properties = new Properties() diff --git a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/network/AlarmPanelService.kt b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/network/AlarmPanelService.kt index 73acb3c..ff001e2 100644 --- a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/network/AlarmPanelService.kt +++ b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/network/AlarmPanelService.kt @@ -1033,6 +1033,13 @@ class AlarmPanelService : LifecycleService(), MQTTModule.MQTTListener { bm.sendBroadcast(intent) } + private fun broadcastAlarmCommand(command: String) { + val intent = Intent(BROADCAST_ALARM_COMMAND) + intent.putExtra(EXTRA_ALARM_COMMAND, command) + val bm = LocalBroadcastManager.getInstance(applicationContext) + bm.sendBroadcast(intent) + } + private fun sendTriggerEvent(delay: Int) { val intent = Intent(BROADCAST_TRIGGER_EVENT) intent.putExtra(EXTRA_DELAY_TIME, delay) @@ -1080,6 +1087,9 @@ class AlarmPanelService : LifecycleService(), MQTTModule.MQTTListener { var alarmCode = intent.getStringExtra(BROADCAST_EVENT_ALARM_CODE).orEmpty().toIntOrNull() if (alarmCode == null) alarmCode = 0 publishAlarm(alarmMode, alarmCode) + if(mqttOptions.useRemoteCode.not()) { + broadcastAlarmCommand(alarmMode) + } } else if (BROADCAST_EVENT_PUBLISH_PANIC == intent.action) { val mode = intent.getStringExtra(BROADCAST_EVENT_PUBLISH_PANIC).orEmpty() var alarmCode = 0 @@ -1264,6 +1274,7 @@ class AlarmPanelService : LifecycleService(), MQTTModule.MQTTListener { const val BROADCAST_SERVICE_STARTED = "BROADCAST_SERVICE_STARTED" const val BROADCAST_DASHBOARD = "BROADCAST_ACTION_LOAD_URL" const val EXTRA_DELAY_TIME = "EXTRA_DELAY_TIME" + const val EXTRA_ALARM_COMMAND = "EXTRA_ALARM_COMMAND" const val EXTRA_STATE = "EXTRA_STATE" } } \ No newline at end of file diff --git a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/network/MQTTOptions.kt b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/network/MQTTOptions.kt index 874f77a..df6b56f 100644 --- a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/network/MQTTOptions.kt +++ b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/network/MQTTOptions.kt @@ -327,39 +327,19 @@ constructor(private val sharedPreferences: SharedPreferences, private val senso private const val PREF_ARMING_AWAY_TIME = "pref_arming_away_time" private const val PREF_ARMING_NIGHT_TIME = "pref_arming_night_time" - private const val PREF_ONE_SENSOR_ACTIVE = "pref_sensor_active_one" - private const val PREF_ONE_SENSOR_NAME = "pref_sensor_name_one" - private const val PREF_ONE_SENSOR_TOPIC = "pref_sensor_topic_one" - private const val PREF_ONE_SENSOR_STATE = "pref_sensor_state_one" - - private const val PREF_TWO_SENSOR_ACTIVE = "pref_sensor_active_two" - private const val PREF_TWO_SENSOR_NAME = "pref_sensor_name_two" - private const val PREF_TWO_SENSOR_TOPIC = "pref_sensor_topic_two" - private const val PREF_TWO_SENSOR_STATE = "pref_sensor_state_two" - - private const val PREF_THREE_SENSOR_ACTIVE = "pref_sensor_active_three" - private const val PREF_THREE_SENSOR_NAME = "pref_sensor_name_three" - private const val PREF_THREE_SENSOR_TOPIC = "pref_sensor_topic_three" - private const val PREF_THREE_SENSOR_STATE = "pref_sensor_state_three" - - private const val PREF_FOUR_SENSOR_ACTIVE = "pref_sensor_active_four" - private const val PREF_FOUR_SENSOR_NAME = "pref_sensor_name_four" - private const val PREF_FOUR_SENSOR_TOPIC = "pref_sensor_topic_four" - private const val PREF_FOUR_SENSOR_STATE = "pref_sensor_state_four" - - private const val PREF_MODE_HOME = "pref_mode_homer" - private const val PREF_MODE_AWAY = "pref_mode_away" - private const val PREF_MODE_NIGHT = "pref_mode_night" - private const val PREF_MODE_CUSTOM_BYPASS = "pref_mode_custom_bypass" - - private const val PREF_AWAY_PENDING_TIME = "pref_away_pending_time" - private const val PREF_HOME_PENDING_TIME = "pref_home_pending_time" - private const val PREF_NIGHT_PENDING_TIME = "pref_night_pending_time" - private const val PREF_BYPASS_PENDING_TIME = "pref_bypass_pending_time" - private const val PREF_AWAY_DELAY_TIME = "pref_away_delay_time" - private const val PREF_HOME_DELAY_TIME = "pref_home_delay_time" - private const val PREF_NIGHT_DELAY_TIME = "pref_night_delay_time" - private const val PREF_BYPASS_DELAY_TIME = "pref_bypass_delay_time" + private const val PREF_MODE_HOME = "pref_alarm_mode_homer" + private const val PREF_MODE_AWAY = "pref_alarm_mode_away" + private const val PREF_MODE_NIGHT = "pref_alarm_mode_night" + private const val PREF_MODE_CUSTOM_BYPASS = "pref_alarm_mode_custom_bypass" + + private const val PREF_AWAY_PENDING_TIME = "pref_alarm_away_pending_time" + private const val PREF_HOME_PENDING_TIME = "pref_alarm_home_pending_time" + private const val PREF_NIGHT_PENDING_TIME = "pref_alarm_night_pending_time" + private const val PREF_BYPASS_PENDING_TIME = "pref_alarm_bypass_pending_time" + private const val PREF_AWAY_DELAY_TIME = "pref_alarm_away_delay_time" + private const val PREF_HOME_DELAY_TIME = "pref_alarm_home_delay_time" + private const val PREF_NIGHT_DELAY_TIME = "pref_alarm_night_delay_time" + private const val PREF_BYPASS_DELAY_TIME = "pref_alarm_bypass_delay_time" } var pendingTimeAway: Int diff --git a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/activities/MainActivity.kt b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/activities/MainActivity.kt index c655fcd..68c5dad 100644 --- a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/activities/MainActivity.kt @@ -265,7 +265,6 @@ class MainActivity : BaseActivity(), .subscribe({ state -> val payload = state.payload val delay = state.delay - val alarmMode = configuration.alarmMode awakenDeviceForAction() resetInactivityTimer() this@MainActivity.runOnUiThread { @@ -280,7 +279,7 @@ class MainActivity : BaseActivity(), MqttUtils.STATE_ARMED_NIGHT, MqttUtils.STATE_ARMED_AWAY, MqttUtils.STATE_ARMED_HOME -> { - // na-da + dismissBottomSheets() } MqttUtils.STATE_TRIGGERED -> { awakenDeviceForAction() // 3 hours @@ -499,7 +498,6 @@ class MainActivity : BaseActivity(), startActivity(intent) } - private fun getPendingTime(state: String, delay: Int?): Int { delay?.let { return it diff --git a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/ControlsFragment.kt b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/ControlsFragment.kt index 35f8a26..488b596 100644 --- a/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/ControlsFragment.kt +++ b/app/src/main/java/com/thanksmister/iot/mqtt/alarmpanel/ui/fragments/ControlsFragment.kt @@ -92,7 +92,6 @@ class ControlsFragment : BaseFragment() { private var listener: OnControlsFragmentListener? = null private var filter = IntentFilter(AlarmPanelService.BROADCAST_ALARM_COMMAND) - private var delayTimerHandler: Handler? = null private var mediaPlayer: MediaPlayer? = null private var alarmListener: AlarmDelayView.ViewListener? = null private var pendingSoundFlag = false @@ -100,30 +99,6 @@ class ControlsFragment : BaseFragment() { private var countDownTimer: CountDownTimer? = null private var sensorActiveMap: HashMap = HashMap() - @Deprecated("We don't need this any longer") - private val delayTimerRunnable = object : Runnable { - override fun run() { - delayTimerHandler?.removeCallbacks(this) - when (configuration.alarmMode) { - STATE_ARMED_HOME -> { - setArmedAwayView(configuration.alarmMode) - } - STATE_ARMED_AWAY -> { - setArmedAwayView(configuration.alarmMode) - } - STATE_ARMED_NIGHT -> { - setArmedAwayView(configuration.alarmMode) - } - STATE_ARMED_CUSTOM_BYPASS -> { - setArmedCustomBypass(configuration.alarmMode) - } - STATE_DISARMED -> { - setDisarmedView(configuration.alarmMode) - } - } - } - } - interface OnControlsFragmentListener { fun publishArmedHome(code: String) fun publishArmedAway(code: String) @@ -181,7 +156,6 @@ class ControlsFragment : BaseFragment() { override fun onStop() { super.onStop() LocalBroadcastManager.getInstance(requireActivity()).unregisterReceiver(alarmBroadcastReceiver) - delayTimerHandler?.removeCallbacks(delayTimerRunnable) } override fun onAttach(context: Context) { @@ -207,9 +181,9 @@ class ControlsFragment : BaseFragment() { private val alarmBroadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if (AlarmPanelService.BROADCAST_ALARM_COMMAND == intent.action) { - val alarmMode = intent.getStringExtra(AlarmPanelService.BROADCAST_ALARM_COMMAND).orEmpty() + val alarmMode = intent.getStringExtra(AlarmPanelService.EXTRA_ALARM_COMMAND).orEmpty() if (alarmMode == COMMAND_DISARM) { - setDisarmingMode(alarmMode) + //setDisarmingMode(alarmMode) } else if (alarmMode == COMMAND_ARM_AWAY || alarmMode == COMMAND_ARM_HOME || alarmMode == COMMAND_ARM_NIGHT ||