It’s been a few days now since I bought a Galaxy S5301, and I’ve slowly started putting stuff where it belongs.
First off, my AutoVoice Continuous experiment revealed that while the service is stable, the microphone quality on the device means that it doesn’t work well from even a couple of meters away. That means that I can have the device next to my bed to be able to control it with voice at night, but I can’t exactly be in the kitchen and yell at it to start a timer. It’s still useful to have a hands free voice control system at night, so it’s not a total bust, but it’s also not Star Trek just yet.
The bigger project I’ve been working on for the S5301 is however an alarm system. I used to have a multi-device sequential alarm when I had an Android tablet, and wanted to get that working again. Basically the idea is to set one alarm on my main device, and then it sets multiple more alarms both on that device and the S5301, in sequence and automatically. I already have the system in place for doing that on my primary phone only, so I simply made an alternative version that also sends a command to the S5301 to set more alarms.
I did however want to fix some of the issues of the last alarm system. Specifically, I wanted to make it so that canceling the alarms when I wake up from the first one (which almost always happens) was easier. I have been experimenting with canceling alarms as detailed in this Tasker Think Tank thread, but still haven’t found a fully functional solution. The S5301 also doesn’t have Android 4.1.1+, so using touch emulation in Tasker doesn’t work.
The first thing I tried was to move to Gentle Alarm, a Tasker-enabled alarm clock app. I’ve tried it before, but didn’t like it, however its promises of Tasker support made me try it again. Unfortunately I ended up uninstalling it yet again, because I simply don’t think it’s a good app. It does everything rather backwards, like how it doesn’t work with AutoAlarm, claims that using Android’s own alarm clock notification isn’t stable, doesn’t re-enable saved alarms if given an external command to set an identical alarm, and so on. Bottom line, it partially fixed one problem and introduced half a dozen more, so I got rid of it.
What I eventually ended up doing is something of a workaround, but it works. I froze the stock alarm clock on the S5301, meaning that the only available alarm clock is the third party one I use, Alarm Clock Plus. As such, I can disable that one by freezing it, leaving no alarm clocks to go off on the device. If I then also delete the alarms from the database using a shell command, I can simply unfreeze it the next time I set the alarm, and it will only have those newly set alarms.
With all of that set up, here’s how it currently works:
My alarm button in my sidebar UI on my primary phone has a long press feature that starts the multi-device version of the “set alarm”-task. This asks me for a time in the format HH.MM. It then sets that alarm, another one five minutes after, and a final one ten minutes after the initial alarm. It also sends the time to the S5301, which sets an alarm ten and fifteen minutes after the original alarm. That task also unfreezes the alarm clock.
When the alarm rings, the notification it creates triggers a Tasker profile that turns on the light in the room. Assuming I wake up and dismiss the alarm, I will then unplug my primary phone from the charger, and that will deactivate Sleep Mode. Part of that deactivation is an AutoAlarm action, which checks for any alarms still active. If there are any, an AutoNotification will show up, warning me about that, and giving me a button to deactivate all alarms. Clicking that button will remove the notification and close the notification pull-down on my primary phone, delete all disabled alarms from the Alarm Clock Plus database, and open the app. Then I can manually disable the set alarms, which will be the only ones left in the list, and thus easy to spot. I don’t want to start freezing my clock apps on my primary phone, and since I only need to tap at most two buttons, it’s not exactly the biggest hassle in the world (and I could even do those taps with touch emulation since my primary phone runs 4.1.2, but I don’t see much point). Finally, a message is sent to the S5301, which will delete all alarms from the database, and freeze the alarm app. Then, when the time comes for Android to try to initiate the alarm (as per the issue described in the linked thread above), there won’t be any alarm app to start.
It sounds like a lot of hassle, but don’t confuse back end complexity with end user complexity. It all works, and on my end, I can set all alarms in 5 seconds, and disable them all just as quick.