1.9.18 (still only beta channel)
- Android 8.1 supported – Google did introduce a big incompatibility problem that some “deprecated” flags did not work any more on Android 27 although the target version of the app was 26! Thus the alarm screen did not show on this Android version!!! The screen stayed off, and the sound was not played!
Unfortunately, I hope there are no negative effects by compiling with SDK version 27… Brace for the worst!
1.9.17d (only beta channel)
- workaround for the workaround of 1.9.17b (the f**ing problem of limiting services for background tasks in Oreo, and the inability to stop a foreground service without starting it first, otherwise the app is stopped by the system – see YACO)
1.9.17c (only beta channel)
- improved Hue detection (prohibit multiple “push link button” screens)
1.9.17b (only beta channel)
- added dock and power connect/disconnect supervision workaround for Oreo.
Google removes implicit broadcasts due to “optimization” (Broadcast Limitation) and forces workarounds that do not optimize at all…
1.9.17a (only beta channel)
- optimized re-starting Alarm activity when screen is not active
- Possibly due to the newest Android update, the alarm sometimes did not appear, or the sound did not start.
- Sometimes (reasons unknown, but fix is easy) a context was of a wrong type, causing a crash in getPackageName() (thank you, Alfredo)
- a crash occurred for background pictures with a scheme of “raw” [Samsung Tab Galaxy S3 LTE SM-T825] (thank you, Moritz)
- The detection of an “active” device was not correctly implemented yet, so the simulation could have started when the device was active at the time the sequence should have started
- If the alarm was cancelled during simulation, sometimes the backup alarm was not cancelled, popping up unexpectedly, as a surprise, at the alarm time. Possibly handy sometimes, but definitely not expected.
- Fixed a crash happening if the weather provider “forecast.io” did not offer all data (or maybe connection problems) (thank you, Joachim)
- If a calendar like a public holidays calendar was not writable, the matching calendar item’s notification persisted in the notification area. Now the “marker” that it has been processed is also stored in a database
- “b” version because I noticed I need a tri-state result in a struct, not a bool… (unknown, ignored, used). So the task just mentioned above did only work for 2 states of these.
- Improved the list of the calendars (now also local non-synced calendars are listed)
- Improved the check for calendar permissions
- A customer’s system needed 38 seconds to create the alarm screen, which seems to be caused by the device falling asleep a bit too fast – the only reason I can think of. Added a WakeLock, I hope that helps. Thanks for the Log, Michael!
- happened once here that an alarm was not executed as it was not seen as “active” internally, so I made the check more safe.
- on Android versions >= 24, it could happen that the alarm time was not sent to the correct receiver (it did here, but not on some customer’s places…). Thank you, Yvi, for helping me finding this bug! Very important fix!
- my app “YACO”‘s item display is suppressed during alarm screen.
- In Release version, the log file send did not work and crashed. Oops.
- Sending a log file was not possible in Oreo (“FileUriExposedException” was thrown, a toast telling you about it).
- Weather provider Forecast.IO: the time intervals of the forecast data points was not in hours, but in half-hour intervals.
- Typical OREO workaround: if a background task starts a foreground service, this service must start itself as foreground service, otherwise Oreo crashes the app (intentionally). But what to do if the service decides it does NOT need any action? The only way is to start the service, then stop it immediately!
Intention of Google: less work in the background
Reality: more work has to be done
- Phew… a new PC allows me to preview Oreo (AMD processors are not supported) and “Personal Sunrise” in it, and one customer with a Pixel2 helped me a lot for the first steps (thank you, Walter!)
- Now after half a year, Samsung finally released Oreo to my S8, and it was much easier and more reliable to fix problems (the emulator sucks).
- So: I hope I have all problems fixed, at least the ones I noticed. Please, if you find a problem, notify me!
- Fixed a crash that sometimes appeared when selecting a sound… (Thanks for the bug report, Madeleine, Alfredo and Ralf!). One strange fact is that the bug was introduced in 1.9.8h, but it was not reported until now, and then three users in 24 hours…
- The debug helper ACRA did crash 2 times in the last weeks, so I implemented a workaround
- When the Hue bridge’s connection was lost during a “Snooze” action, the alarm was aborted (thank you, Thomas!)
- fixed crash (null pointer) when Hue connection was resumed and there was no listener active (thanks, Tim!)
- one at least one device (I cannot reproduce it, might be Android version dependent) one crash occurred although the code was very defensive – catched.
- trying to parse a media URL format, adding a new file finder for sound and background files
- one at least one device (I cannot reproduce it, might be Android version dependent) the alarm screen has the ActionBar at the top (red bar with “Personal Sunrise” on top)
- alarm sounds from an internet stream was a bit “abruptly” started, now fades in
- improved Hue connection – I hope the ‘connection to Hue bridge lost’ is a matter of the past (except for problematic Wifi connections)
- improved start of the sequence – trying to reduce that the start is too bright. Android starts with the last known page, which can be undesired
- fixed a bug with evaluation of relative times in the calendar: commands like “@Sunrise:-2h30m” were not interpreted correctly
- Alarm screen: fixed wrong layout of weather forecast data on some systems
- fixed crash possibly (I cannot reproduce it) caused by invalid location data: crash when trying to show sunrise and sunset values in clock or on alarm screen – thank you, Richard, for the report
- default date for a new alarm is “today” if the time is between midnight and 3 o’clock – thanks to Juerd
- rewrite of the bedside clock (more items to display: weather, moon phase, …, and an optional separate color for bright environment) – thank you, Stefan
- FHEM did not work on some devices (especially on those without telephony), sorry – and thank you, Max, for the patience
1.9.5 (estimated release 8th of May)
- The time of a template can now be changed in hindsight. No date selection (yet?) though. Please tell me if you need it, no reason to do it if there’s no need! Thank you, Babette and David, for the request.
- Creating a timer in single-pane (smartphone/small devices) mode: when a time or date setting was changed and the activity is being closed without creation of a timer (or template), there’s a warning now with hint how it can be done. Thank you, Bill!
- helped one customer with problems of the alarm screen
- when creating a template, the days were not selectable any more. Thanks David.
- the hour animation in the clock was wrong for one second at every full hour. Thanks Sven.
- crash when OpenWeatherMap does not pass a temperature (WTF?)
- crash when an alarm was set using Google+’s voice interface (collateral damage of the new activities AppCompat model) – thank you, Florian
- supports Weather Forecast in Personal Sunrise itself (the plugin is still needed for the location, I will possibly add at least manual editing in PS if requested), also allows you to choose between two providers
- Support for Hue Scenes (can be started at the alarm time, or when the alarm finishes)
- Support for Hue Ambience Bulbs (modifies brightness and color temperature warm/cold white). Thank you, Matthias.
Unfortunately, as I expected, they start with a minimum brightness which does not qualify them next to the bed in direct sight.
So far, the light strip version 2 is the only one that really dims down…
- Support for Hue Dimmable Bulbs (bulbs with just dimmable brightness. Comment to minimum brightness applies too).
- Support for Hue On/Off Lamps/Switches
- A utility page to delete Hue scenes, lights or groups (missing from the Hue app)
- Configuration activity correctly saves and restores Hue states before/after configuration
- and limits changes done in the Hue configuration to only selected ones (no cries from the daughter any more “my light has gone out again!”)
- playlist support: optionally randomized list order. Thank you, Nicolás
- FHEM implemented in a plugin
- Use AppCompat activities now (internal: this allows me to use more sophisticated user interface features if I need them), also more material design
- more homogeneous interface of PS and its plugins
- Bug fix: finalization of the Hue system (after finishing the alarm, the Hue lights could be switched off or dimmed to the final brightness) did not reliably work
- Simplified Logging: only “detailed” was used anyway.
- Scanning a local m3u filelist that was stored using the “content” scheme did not work (thank you, Nicolás)
- Bug fix: setting alarm time to “relative to now”, afterwards creating an alarm template without setting it to one of the other time modes (fixed time / relative to sunrise) caused a crash. Thank you, Neil, for the report.
- Improvement at Dusk Simulation: a hint is shown if the device is charging, and the settings do not allow it to sleep while charging just in case the problem of 1.8.18 it still appears
- New settings modes: “Basic + Hue” and “Basic + FHEM” – if I announce Hue support, it should be visible (nearly) even without having to use “expert” mode. Same now with FHEM.
- Support of FHEM!
(FHEM = “Freundliche Hausautomation und Energie-Messung”)
Now you can use dimmer lamps not supported by Hue if they are controlled by an FHEM system. Also, you can define the simulation colors and post-actions like “switch on all lights”. Personal Sunrise passes 3 states (“init”, progress 0..100, “exit” or “cancelled”) to FHEM, which can be evaluated there. See https://android.chk.digital/de/personal-sunrise/features/fhem/
1.8.21 Cosmetic release
- The “Option to show a button on the alarms and templates in the respective lists” button is now a three-dot standard context menu button
- The first problem of 1.8.19 (“suppress screen when Hue is active”) had a very short time interval as fix, I hope for the best now. I can not reproduce the problem…
1.8.20 Multiple new options in “Dawn Simulation” > “More…”
- Optionally restrict the “snooze” action to the buttons at the left and right sides of the top of the alarm screen instead of the whole screen (again suggestion of Francesco)
- Optionally force only a single template being active: if a template is chosen, all others are deactivated automatically. This comes handy if you have blocks of different alarm times (for example working in shifts). Saves one touch action <grin>
- Option to show a button on the templates to create one singular alarm for that template. This comes handy when you want to set the alarm just for the next work day, and the times change from day to day. Thanks, Daniel.
- Option to show a button on the alarms and templates in the respective lists – this is for people not finding out that long-pressing an item pops up a small settings dialog for that item
- Hue, Android >= 6: when “suppress screen when Hue is active” was chosen, the device could fall asleep immediately after the Hue cycle, and thus the sound might have appeared at some undefined time afterwards (although I told Android I need an exact time, according to up-to-date Android version API usage!). Sigh. I can get in line with other Android Alarm Clock developers having the same problems…
- The clock dialog did change to digital if a customer tried swiping the time bubble in analog clock mode – swiping is now suppressed
- The Audio volume curve (increase/decrease) is now optionally logarithmic (Settings > General Settings > More). It’s a more natural loudness cycle.
- The alarm time can now be chosen with a sleep interval “in <n> hours”.
Special thanks to Francesco for these bugs/suggestions!
- If the dawn simulation was active, and the device was connected to the power, it did not fall asleep as expected and if it awoke in the night, the full dawn simulation started all over (with full illumination).
- If the device of the audio signal is a bluetooth device, the internal speaker is not forced any more.
- Duh. A so-called “optimization” of Google in Android M does not allow alarms to be adjacent by a few minutes (“To reduce abuse, there are restrictions on how frequently these alarms will go off for a particular application. Under normal system operation, it will not dispatch these alarms more than about every minute (at which point every such pending alarm is dispatched); when in low-power idle modes this duration may be significantly longer, such as 15 minutes.”), so the option to switch the screen off if Hue takes over the light (then the system is allowed to doze) may either not be effective, or you need to exclude the app from the optimization settings (manually, as Google removes any app requesting that permission in the manifest until a written permission is given by Google). Well done, Google.
I added a notification about that problem when that option is set. And the default is now to keep showing the screen.
- the “real” alarm event did not get delivered on an LG device (Android 6) until the user did wake up the device, thus I now try a different approach, which should help against the “doze” mode of Android M
- fixed minor, single-customer crashes/errors
- Hue: due to a rounding error, it could happen that the dusk simulation did not switch off the lights at the end
- Hue: the “action after alarm” did not work reliably
- As some customers has problems with the permission model of Android M, I forced the definitely needed rights to be queried at startup, and a nice settings page for the optional rights. Hopefully there are less problems for new customers now. The way of Android M to let the users give the permission when needed does not make sense for an Alarm Clock…
- (was never released)
- The Hue lights might show a “flash” when they were switched on, as they first resume with their “old” state before switch-off, then apply the intended brightness. This is fixed by creating a scene on the fly that manages switching on the lights
- Fixed a crash when the weather forecast was too slow
- Android 6: Log-File could cause a crash if the app does not have permission to access the SD Card
- A Customer asked for a way to switch off the Hue lights after the dawn simulation. Now any light can be set to: leave as-is, switch out or set at the final brightness (if cancelled)
- Computation of test alarm’s starting time improved (there were a few seconds tolerance that led to ‘cannot be set’ message)
- if the start brightness was set higher as or equal to 20%, the alarm screen stayed black
- The clock settings are now scrollable, good for small devices
- Computation of test alarm’s starting time improved
- if an update of the app was done from more than 2 years ago, it crashed due to a “database already exists” error
- still fighting with the new permission model: some devices responded with ENOENT instead of EACCESS if SD card access permission was not granted
- still fighting with the new permission model: the dusk simulation needs right for write access of system settings to fall asleep after the simulation
- added option for main screen layout flip: on large devices, the list of alarms and their creation pane are both shown, and now the order on the screen can be reverted
- still fighting with the rights of Android M and of Kitkat (selecting a sound from the wrong menu item possibly did not work)
- Now paints alarm background scaled isotropic (keeps x/y ratio)
- made it more clear how a new alarm can be created (the “button” was not designed ad standard button – now I use a floating action button)
- improved error handling for music stream (or music player) error
- improved error handling for denied permission to create a window overlay
- Hue could have caused a deadlock (“Application not responding” box). Not reproducable here, but I hope I fixed it…
- improved robustness of Hue manager against instable WiFi
- added KitKat’s Storage manager to load a background bitmap (saves space)
- improved the behaviour what happens when the picture to be displayed could not be found, and/or the sound not be played (no black screen, no unstoppable sound any more, I do hope)
- fixed Android M problem: crash when a music was selected from the SDCard and the app did not have the right to access it
- fixed Android M problem: crash when the “Overlay” permission was not granted and the alarm screen was shown
- improved other Android M permission issues with respect to Calendar access
- Hue: settings optionally depend on the WiFi SSID, so different settings for different WiFi networks are possible. Asked at first start, and can be set in the Settings also.
- Hue: support for user defined color curve
- Hue: the device’s screen can optionally stay switched off if Hue is working
- hope that it is fixed (I cannot reproduce it): if the lamps were switched off by a different app, they got bright a short moment at the start of the dawn simulation.
- fixed a problem with the Kindle mode and the brightness of the alarm screen
- fixed crash when the Hue “connecting” dialog was shown while the settings page was closed
- fixed crash when the settings of “Dusk Simulation” or “Alarm Extras” were opened in “basic options” mode.
- even if the device is closed (cover); plays sound and hue cycle (yes, here’s the advantage of the extra light system!)
- added WiFi access permission as Hue, Weather Forecast, and a Music Stream need a connection, or one of the WiFi options is set in the app’s settings
- put “test settings” items prominently at the top
- added “Reconnect Hue Bridge” to the settings if the IP address of the bridge changes (thanks, Telekom, for the buggy Speedport)
- Put the “Hue” items to their respectable places, in the settings of Dawn and Dusk simulation. That’s where you would look for them, I guess.
- Added the option to set the Hue color curves for both simulations
- added support for Philips Hue (allowing multiple lights, separately configurable) for both Dawn and Dusk simulation.
- added a flag to disable the “battery low” warning popup in Clock Mode
- allows different backgrounds in the dusk simulation (internal/external picture, and 2 new variants of red/orange)
- switched to Android 6 and its more detailed permission management
- switched off the “battery saver” hint at the start for Android >= 5 as ‘Personal Sunrise’ uses the new Alarm API. Caused by this, you will be asked to permit the app access to system resources when needed (i.e. using the calendar, and screen overlays).
- 1.8.0 (a): fixed crash when Hue was used on a small (5″) device
- 1.8.0 (b): the “Settings” became unreadable. Reorganized the items a bit, and improved clarity of the settings pages
- improved themes: more modern, colorful using material design (optional)
- Settings: added a way to enter the key(s) that the calendar items are scanned for for the vacation detection. Important for non-English (“vacation”) and non-German (“Urlaub”) users. This is non-trivial, so please read the corresponding manual item.
- Fixed huge memory loss on activity restart, easy to reproduce on orientation change of the device. BTW: normal memory footprint is 0 (when never started, or after being stopped from running tasks, waiting for alarm to be triggered) to less than 10 MB (when running in background/active)
- Version for Amazon Store
- If Calendar vacation items were changed, the changes were not detected and correctly shown in the dialog
- Same for multiple Calendar vacation items
- Calendar is now scanned 14 days in advance
- Free Version: Nag screen cannot be clicked away any more
- Standard version only: added intelligent vacation support
- re-placed the new icon (at a place where Android < 4.3 finds it)
- the new icon
- Standard version only: added support of multiple calendars
- Standard version only: Calendar entries can be used to suppress alarms in a time interval (by Calendar entries with “@Sunrise:-” in the cal-item description)
- Standard version only: Calendar entries can be used to add alarms (by Calendar entries with “@Sunrise: [params]” in the cal-item description)