Doze: Introduce a pulse period function.

Instead of pulsing every 30 seconds to mimic the LED, use
a function that pulses more frequently for new notifications,
decaying to a slower pulse, and eventually stopping.

Specifically, the step function for the interval is:
 - 10 seconds for the first minute
 - then 30 seconds until the five minute mark
 - then 60 seconds until the 30 minute mark
 - then no pulsing at all

 - Since we pulse more frequently on new notifications, remove
   the "multi-pulse" concept.
 - Move all doze-related duration parameters to a new helper,
   backed by config, overridable by sysprops, include in dump.
 - Wake up from dozing when hitting volume keys during a pulse.
 -
Bug:17393939
Change-Id: Ica86f08b25c738338fced165c77faf3dfccd0343
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index a5217ab..42cfd39 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -100,6 +100,11 @@
                 if (!down) {
                     return mService.onSpacePressed();
                 }
+            case KeyEvent.KEYCODE_VOLUME_DOWN:
+            case KeyEvent.KEYCODE_VOLUME_UP:
+                if (down) {
+                    mService.wakeUpIfDozing(event.getEventTime());
+                }
         }
         if (mService.interceptMediaKey(event)) {
             return true;