1. 20 Jan, 2016 1 commit
  2. 19 Jan, 2016 1 commit
    • James Lemieux's avatar
      Handle deleted timers gracefully · 41ad8d99
      James Lemieux authored
      Bug: 26591272
      
      Prior to dazzle, timers could inhabit a state of "DELETED" (value = 5).
      In dazzle and beyond there is no reason to preserve such a state, but
      it is possible for timers to exist in SharedPreferences in such a state,
      so it must be handled gracefully.
      
      Change-Id: I1754ef898dfff84c0a3e807c4bd0dd1473f87aad
      41ad8d99
  3. 14 Jan, 2016 1 commit
    • James Lemieux's avatar
      Fix alarm not firing in memory-pressure situations · b76aa50f
      James Lemieux authored
      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
      b76aa50f
  4. 12 Jan, 2016 1 commit
  5. 18 Dec, 2015 1 commit
  6. 15 Dec, 2015 2 commits
  7. 14 Dec, 2015 1 commit
  8. 10 Dec, 2015 1 commit
  9. 09 Dec, 2015 2 commits
    • James Lemieux's avatar
      Attempt to avoid early death of AlarmService · cc5cc176
      James Lemieux authored
      Bug: 26058053
      
      Evidence shows that AlarmService is being destroyed a couple 100
      milliseconds after starting. This can be catastrophic as it typically
      means that the ringtone playback is ended before it even sounds.
      
      This CL balances the binding/unbinding calls in AlarmActivity to
      AlarmService to encourage the UI to stay in the foreground and
      keep the service alive and the ringtone playing.
      
      This CL also removes unnecessary cancel()ations of notifications.
      
      Change-Id: I59b35dc8404dbd1f8d74285aa34a7cd81ec5545b
      cc5cc176
    • Geoff Mendal's avatar
      Import translations. DO NOT MERGE · 7415573b
      Geoff Mendal authored
      Change-Id: I99b0010be7f1b3fd8bae24147e80acbdd5f0c71f
      Auto-generated-cl: translation import
      7415573b
  10. 08 Dec, 2015 1 commit
    • James Lemieux's avatar
      Pausing an expired timer should reset it · 06a5775d
      James Lemieux authored
      Bug: 22371346
      
      This is a use case that can only occur via system intents and not
      via the user interface. Since the utility of pausing and/or resuming
      an expired timer is dubious at best, the effect is now changed to
      reset the expired timer.
      
      Change-Id: I28c7500d1393dcfade1303b31de750c525dd0df3
      06a5775d
  11. 07 Dec, 2015 1 commit
  12. 02 Dec, 2015 1 commit
    • James Lemieux's avatar
      Fix alarm query · 0b3f6a4e
      James Lemieux authored
      Bug: 25895834
      
      ag/811037 left a bug in place that this change addresses.
      
      Specifically, if a one-time alarm is missed, an entry is left in
      the alarm_instances table with a state of MISSED. The query's
      join clause would not return a row for the alarm in this case.
      
      A subselect is now used to return the alarm_instances row with
      the smallest state value. This means:
      
       - SILENT instances are preferred over MISSED instances
       (the only case where 2 instances exist for the same alarm).
       - MISSED instances are returned if they are the only instance for
       an alarm (the above case)
      
      Change-Id: I31de6d8b2d2bf7719f6b027a2401b1da1a09f247
      0b3f6a4e
  13. 01 Dec, 2015 4 commits
  14. 30 Nov, 2015 1 commit
  15. 26 Nov, 2015 1 commit
  16. 25 Nov, 2015 5 commits
  17. 24 Nov, 2015 2 commits
  18. 23 Nov, 2015 4 commits
  19. 21 Nov, 2015 1 commit
    • James Lemieux's avatar
      Update test cases to verify time-change scenario · 8f436750
      James Lemieux authored
      Bug: 25302368
      
      The bug was already fixed as part of b/19651361 but I wanted to
      add the reported use case to the corpus for better regression
      testing.
      
      Change-Id: I51f80cfbbae01681b018d249de56d0d39b4122d2
      8f436750
  20. 20 Nov, 2015 2 commits
  21. 19 Nov, 2015 3 commits
    • James Lemieux's avatar
      Fix fab disappearing on rotation when no timers exist · 739e1ed7
      James Lemieux authored
      Bug: 25779786
      
      The issue here is that TimerSetupView actually customizes the fab.
      These customizations include setting it invisible. It was a poor design
      to share the fab with this view. So, the fix is that the view now holds
      its own fab-like button that it is free to manipulate without fear of
      altering the app-wide fab state unintentionally.
      
      Change-Id: Ie83b03c98db4f77e0be912b122b6f74c2c7e6c8a
      739e1ed7
    • James Lemieux's avatar
      ad9d3e6d
    • James Lemieux's avatar
      Miscellaneous fixes · 6468db45
      James Lemieux authored
      - add precision to some wording for translators
      - update widget provider XML layout
      
      Change-Id: I78d7d29b2ed2ea4768c0e36d125b38df971c1484
      6468db45
  22. 18 Nov, 2015 2 commits
  23. 17 Nov, 2015 1 commit
    • James Lemieux's avatar
      Avoid jank in the tabs from a cold open · 84006e23
      James Lemieux authored
      Bug: 24977472
      
      By default, the menu is inflated after the first draw. A proactive
      call to Toolbar.inflate(...) during creation defeats this default
      behavior.
      
      A second problem is that the menu that is inflated by default for
      DeskClock contains the search menu item which is briefly shown.
      By defaulting that menu item to be invisible and only making it
      visible when its corresponding controller exists, the
      dancing/flashing effect is avoided.
      
      Change-Id: I933ab9a59b471abe26e1cf07385e4a4c128d1808
      84006e23