5239f09fa7309686c66d1fc70c6eacf7bdab0ab8 |
|
16-Feb-2016 |
Justin Klaassen <justinklaassen@google.com> |
Refactoring SharedPreferences to common location. - DO NOT MERGE Bug: 25860525 Change-Id: I20a012be5aadcd743a03481a72fea7f3d4750fdd (cherry picked from commit 942b3a3956221969c77f9abc447444505eea6929)
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|
b76aa50f9e13e71e81b9d02cc3ebebaa73188d3e |
|
14-Jan-2016 |
James Lemieux <jplemieux@google.com> |
Fix alarm not firing in memory-pressure situations Bug: 25846551 The original form of the code that fires an alarm is: AlarmManager -> BroadcastReceiver -> Service. The new form of the code that fires an alarm is: AlarmManager -> Service. Evidence exists that the system lowmemorykiller may elect to kill the clock app after BroadcastReceiver.onReceive(...) completes but before Service.onStartCommand(...) begins. When this occurs, the results are disastrous as the clock fails to fire at the appropriate time. To remove this possibility, all alarm state changes are delivered to the Service. The methods that manipulate database state within BroadcastReceiver have been made public and static and are called directly from the Service to perform the same work as before. If the alarm state transition is to the FIRING state, the AlarmService also performs the work of posting the firing notification in the foreground. All of this occurs during the handling of a single Intent on the same thread within the service which should no longer provide lowmemorykiller with any opportunities to prevent the firing of an alarm by killing the clock app. Change-Id: I3629a5b725a758f680f41611939a5bbeec23238a
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|
0dd0cac610cd59762c8b604da6c437b18a29246b |
|
09-Jan-2016 |
James Lemieux <jplemieux@google.com> |
Promote TimerService to the foreground while expired timers exist Bug: 26471891 This makes the clock app unlikely to be killed in memory pressure situations while expired timers are ringing. Change-Id: I89f141a835e3de67a58671d6c5b381de52be5c18
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|
437da3b08ce9ce1b32f4e544816cb3431ceb8d4e |
|
13-Nov-2015 |
James Lemieux <jplemieux@google.com> |
Simplify HandleDeskClockApiCalls, TimerService and StopwatchService HandleDeskClockApiCalls used to pass through all timer and stopwatch mutations to the corresponding Service to complete. This complicated the logging of the corresponding event unnecessarily. After this change: - StopwatchService is only invoked from stopwatch notifications and may now assume the event label - TimerService is only invoked from timer notifications and AlarmManager and may now assume the event label - HandleDeskClockApiCalls.EXTRA_FROM_NOTIFICATION has been replaced with HandleDeskClockApiCalls.EXTRA_EVENT_LABEL which explicitly identifies the label of the event Change-Id: Ic9796c43e826f82138ee431d3abb02524c0146ba
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|
6d603b7c62bb38d763a681a8bf20fadb1442e833 |
|
07-Nov-2015 |
James Lemieux <jplemieux@google.com> |
Refactor Timers to use new unified DataModel Bug: 24816218 Bug: 25494722 This refactoring introduces a Timer domain object. Instances of these domain objects are fetched via a DataModel class that is the single point of reference for all timer data. This allows the data to be shared across the entire application. In particular, the timer notifications, TimerFragment and ExpiredTimersActivity all draw upon the same model to determine what the state of the timers are. IMPORTANT: The public intent com.android.deskclock.action.STOP_TIMER has been renamed to com.android.deskclock.action.PAUSE_TIMER to be more accurate. Change-Id: Ib904e80a25c6de1861de2b395bec27db16ff0e66
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|
f8faca1961278db2797d122351885ce6e32e4f3d |
|
01-Sep-2015 |
James Lemieux <jplemieux@google.com> |
Simplify code that adds None as a valid timer ringtone - None option is added to picker by default, remove code that manually added it - Replace NO_RINGTONE_URI constant in TimerRingtonePreference with test method: DataModel.isSilentTimerRingtoneUri(uri) Bug: 23499698 Change-Id: Id45a24bee607edd8295c2a31785e55d67b44e8b0
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|
32efff252246b90ae870600a7b8db3a62c1ebdc8 |
|
26-Aug-2015 |
Annie Chin <afchin@google.com> |
Allow "Silent" to be set as a Timer ringtone. Bug: 23499698 Add "None" option to Timer ringtone selection. Summary will show up as "Silent." This is consistent with Alarm ringtone selection. Change-Id: I4dc87f3258a3223a2bcddcf29076944cd9637df4
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|
bd9eae10b13e015d1997d06f13e9abe06a7f306b |
|
21-Aug-2015 |
James Lemieux <jplemieux@google.com> |
Present Clock's timer beep as the default ringtone A "settings" package was introduced as a byproduct of this CL. When choosing the preferred ringtone for timers, the default selection should play timer_expired.ogg which ships with the application. This is the only sound played on all prior version of the application. Known Issue: the dialog will label the default as "Default alarm sound". This will be fixed in a later CL. Change-Id: I4e9c6663c597038ec273b699cdda3a036b376350
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|
856483e7e18d5f042a338f7b3d472e28a386c4ad |
|
18-Aug-2015 |
James Lemieux <jplemieux@google.com> |
remove requests for READ_EXTERNAL_STORAGE permission Very late in the M release, a change was made to no longer require the READ_EXTERNAL_STORAGE permission to view the titles of external ring tones. Consequently, we no longer have a reason to acquire this permission in the application. As well, the storage of the ringtone to play for expired timers has been moved from Utils into the DataModel. Bug: 22919062 Change-Id: I9209cd3e6efaee1063c1c04bca15b0ea61ffc4d8
/packages/apps/DeskClock/src/com/android/deskclock/data/TimerModel.java
|