98 Commits

Author SHA1 Message Date
Daniel Sandler
26ece57dad Be more discriminating when canceling notifications on changing packages.
Specifically: don't do it if the package is enabled at the
time the PACKAGE_CHANGED broadcast is sent. (We only want to
cancel notifications when packages enter the disabled
state.)

Bug: 6589355
Change-Id: Iba754cef27e2bdff35a13e403a867933c996f562
2012-06-01 16:26:46 -04:00
Eric Laurent
bffc3d1bd3 Silent and Vibrate mode clean up
Clean up related to new Vibration policy.
The vibrate behavior is now only derived from:
 - presence of a vibrator on the device
 - current ringer mode selected: NORMAL, VIBRATE or SILENT
If no vibrator is present the ringer mode can only be NORMAL or SILENT.

The control of ringer mode via volume keys when volume keys control the "master"
stream type (RING on phones, MUSIC on tablets) is as follows:
If a vibrator is present:
 VOL- and volume equals 1: NORMAL => VIBRATE
 VOL- and volume equals 0 and not continuous press: VIBRATE => SILENT
 VOL+ and in SILENT mode: SILENT => VIBRATE
 VOL+ and in VIBRATE mode: VIBRATE => NORMAL, volume = 1
If no vibrator is present:
 VOL- and volume equals 0 and not continuous press: NORMAL => SILENT
 VOL+ and in SILENT mode: SILENT => NORMAL, volume = 0

VIBRATE_ON and VIBRATE_IN_SILENT settings are not stored/retreived any more.

AudioService checks and corrects ringer mode and stream volumes if necessary when reading from
DB at boot time.

Also:
 Added dump for stream volumes in AudioService.
 Added device names missing in AudioSystem for USB accessory and USB device.

Issue: 6036529
Issue: 6414950
Issue: 6448163

Change-Id: I77fb821ec63e4e566320cac2701b4ac466e86aef
2012-05-08 15:10:37 -07:00
Jeff Sharkey
098d580cc2 Migrate ringtone playback to SystemUI.
Introduce IRingtonePlayer, which handles playback for both Ringtone
objects and Notifications. SystemUI now hosts this player, which it
registers with AudioService. It also keeps MediaPlayer instances
warm, and cleans them up after stop() or Binder death.

Move both Ringtone and NotificationManagerService to play back audio
through this new interface.

Bug: 6376128, 6350773
Change-Id: I1dcb86d16ee3c4f07cdb2248d33dcff4ead3609a
2012-04-27 14:15:05 -07:00
Daniel Sandler
0da673f02e Notifications may now be disabled on a per-package basis.
When a package's ability to post notifications is disabled,
all outstanding notifications from that package are
immediately canceled, and the score of any future
notification from that package is set so low that the
notification manager won't even send it to the status bar.

No UI for this yet, but you can try it out:

  adb shell service call notification 8 s16 $PKG i32 (1|0)

Bug: 5547401

Change-Id: Ieccac5746b40f60debd902a45d1dedbc91dcdc89
2012-04-19 11:39:49 -04:00
Jeff Brown
c2346134bb Extract Vibrator implementation from interface.
Moved the core logic of Vibrator into SystemVibrator, potentially
allowing for the creation of other Vibrator subclasses.

Fixed several places where we were creating new Vibrator
instances unnecessarily instead of getting it from the Context.

It is safe to make Vibrator abstract because its constructor
was hidden from the SDK so it was not possible to subclass it.

Bug: 6334179
Change-Id: I18ece6544c26a7efb2d5099f8346a10aef8a5e18
2012-04-13 04:05:17 -07:00
Amith Yamasani
0dedffd656 Dump the uid of a notification, for debugging.
Useful for multiuser testing.

Change-Id: I4aac8eda9b2f9c7ada07bd6a040260beb1acce87
2012-03-30 10:47:23 -07:00
Daniel Sandler
49a2ad1f40 Stop showing ADB and MTP/PTP/USB notifications at the top.
Two parts to this:
1. Stop treating FLAG_ONGOING_EVENT notifications specially
   (in particular, ordering them at the top of the panel).
2. Set the priority bits on the system UI notifications
   appropriately (low).

Change-Id: I3bde7e573654c5aad5e1c5d29e6a21ba94edcc5b
2012-03-29 00:42:16 -04:00
Daniel Sandler
3f0c58eb70 Merge "New notification priority and related APIs." 2012-02-24 10:53:42 -08:00
Daniel Sandler
2561b0b10a New notification priority and related APIs.
This change introduces a few new bits of data on
Notification that will help the Notification Manager and
System UI route and display them more intelligently:

 -> priority: an integer in a predefined range that
    indicates the app's best guess as to the relative
    importance (to the user, right now) of that information

 -> kind: a tag (really, set of tags) indicating the general
    type of notification (realtime, asynchronous, etc)

 -> extras: a Bundle of additional key/value pairs
    associated with this notification (currently @hidden)

The notification manager takes these data into account when
assigning to each notification a score which is passed with
the notification on to the system UI, where it can be used to
affect presentation. For example:

  - Spammy apps (identified explicitly by the user or by
    some other means) will have their notifications scored
    very negatively by the notification manager, allowing
    the UI to suppress them
  - Notifications of higher score might be shown larger
    or in a different way
  - Very important notifications (indicated by a very high
    score) might interrupt the user during an otherwise
    important task (videochat, game, etc)

Implementation note: This replaces/extends the old internal
notion of "priority", which was mostly used to organize
ongoings and system notifications at the top of the panel.

Change-Id: Ie063dc75f198a68e2b5734a3aa0cacb5aba1ac39
2012-02-24 13:47:00 -05:00
Mike Lockwood
ef9d55a6b0 am 8f7cc7af: am b9be8eff: am ffc89899: Merge "Don\'t pulse LED on new notification unless notification has LED flag set" into ics-mr1
* commit '8f7cc7af66520e3bd5e59e8eadb6907e3e043661':
  Don't pulse LED on new notification unless notification has LED flag set
2012-02-14 13:08:01 -08:00
Mike Lockwood
ece18efb35 Don't pulse LED on new notification unless notification has LED flag set
Bug: 6006131

Change-Id: I719c7d68e310bfaca227f6286159b3993784926b
Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-02-13 20:42:19 -08:00
Amith Yamasani
742a671273 Multi-user - 1st major checkin
Switching activity stacks
Cache ContentProvider per user
Long-press power to switch users (on phone)

Added ServiceMap for separating services by user
Launch PendingIntents on the correct user's uid
Fix task switching from Recents list
AppWidgetService is mostly working.

Commands added to pm and am to allow creating and switching profiles.

Change-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed
2012-02-03 12:01:47 -08:00
Daniel Sandler
b64cb88c32 Expanding NotificationManager's event logging.
Specifically, add the "tag" and "mustNotHaveFlags" columns.

(Hunting bug 5444859.)

Change-Id: Ic9ece44ed4697f7a8ef54e7870f72c9f94518cd9
2011-11-29 23:48:29 -05:00
Amith Yamasani
ebfc0e5d70 If "Pulse notification light" is off, don't flash the LED even once.
If it is on, flash repeatedly.

Bug: 5242350
Change-Id: I7da195a7c49c68c0a1fca12eecfc4a4e06dd0b61
2011-09-20 14:48:52 -07:00
Mike Lockwood
63b5ad9e17 Extinguish notification LED when user passes through lock screen
Also do not blink for notifications received when the screen is on.

Bug: 5233071

Change-Id: I15675ca317007d4b900ef74e60d11a5bca3d7333
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-08-30 09:55:30 -04:00
Mike Lockwood
b0626b53ad No longer disable notification lights when screen turns on
The new specification calls for LED to continue blinking until the user
pulls down the notification shade in the status bar.

Bug: 5143247

Change-Id: Id004cc3d1d9d76108329e57c6fbd8a8100068e0a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-08-23 21:06:45 -04:00
Daniel Sandler
aac0eb08bb Remove notifications when an app is disabled.
Bug: 4998840
Change-Id: Ic0c14105924d815aed78da1f5510c98a2fe1dd77
2011-08-06 22:51:56 -04:00
Dianne Hackborn
68454aa049 am 1b20abd3: am 20bf46af: am b0878223: am 6800a801: Merge "frameworks/base: Cap the number of toasts that a package can post."
* commit '1b20abd30c2757132b7a2d319ae73f420b864ed4':
  frameworks/base: Cap the number of toasts that a package can post.
2011-07-25 17:25:09 -07:00
Dianne Hackborn
1b20abd30c am 20bf46af: am b0878223: am 6800a801: Merge "frameworks/base: Cap the number of toasts that a package can post."
* commit '20bf46af14130314ae1aeb1e5482c38556c8f0f8':
  frameworks/base: Cap the number of toasts that a package can post.
2011-07-25 12:21:32 -07:00
jhtop.kim
2e448f75c0 Fix notification manager delete intent.
Notification manager was sending the delete intent even when
the notification was clicked and not just when cleared.

Change-Id: I9f8ae973b7972bc34cd15d213e58a961138fa7e5
Signed-off-by: jhtop.kim <jhtop.kim@samsung.com>
2011-07-15 11:21:41 -07:00
Mike Lockwood
541c9949ae Move adb related functionality from SystemServer and NotificationManagerService to UsbDeviceManager
Change-Id: I9e64b54bc2d027d88ae2d2cd893068e29b6fe237
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-13 22:20:06 -04:00
Mike Lockwood
9eb014aeb0 UsbManager: Clean up extras for ACTION_USB_STATE broadcast
Also added name for new PTP USB function

Change-Id: Ia2775ba2b23ef6a6108ca7e060239eb51c2eecc8
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-08 09:17:45 -07:00
Vairavan Srinivasan
f9eb06ca69 frameworks/base: Cap the number of toasts that a package can post.
NotificationManagerService keeps track of requested toasts in a
queue. Any package can trigger a DoS by repeated enqueue of
toasts which eventually results in a leak of WeakReferences in
system_server and causes dalvik (hosting system_server) to
abort the same.

Change-Id: I5e23c1bf7e195b07344711d2c6719fa568f2dfaf
2011-05-13 10:57:19 -07:00
Mike Lockwood
7866be2b76 am 40bbf929: DO NOT MERGE: Backport USB accessory support to gingerbread
* commit '40bbf9295d5245d3917629ce15f7b37670aef1ac':
  DO NOT MERGE: Backport USB accessory support to gingerbread
2011-03-02 15:16:32 -08:00
Mike Lockwood
40bbf9295d DO NOT MERGE: Backport USB accessory support to gingerbread
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-01 23:09:12 -08:00
Mike Lockwood
c4308f01c9 Move USB framework support from android.hardware to android.hardware.usb package
Change-Id: I00fd4f0caaa4aebe48f71c576bb211b5f38bf88d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-01 08:07:20 -08:00
Mike Lockwood
fc88f94fc3 am 6da062a9: Merge "DO NOT MERGE: Clean up USB notifications:" into gingerbread
* commit '6da062a96c6f8126aad450a937144fab4333488f':
  DO NOT MERGE: Clean up USB notifications:
2011-02-28 13:18:02 -08:00
Mike Lockwood
54e96c69d0 am 3333f8af: Merge "DO NOT MERGE UsbManager: squashed commit of:" into gingerbread
* commit '3333f8afb2d1eae8bfdb41fa87f86836ad8702f7':
  DO NOT MERGE UsbManager: squashed commit of:
2011-02-28 13:17:58 -08:00
Mike Lockwood
f13ec7a3ac DO NOT MERGE: Clean up USB notifications:
Add support for separate USB connected and configuration events

Include both USB connected/disconnected and configuration state
in USB_STATE Intent

Remove redundant USB_CONNECTED and USB_DISCONNECTED Intents
Now we just have the sticky USB_STATE broadcast

Move USB disconnnect rebouncing from Tethering to UsbService

Change-Id: I1dea480f4b0daf14247cf37c5f2060498882c002
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-27 18:39:26 -08:00
Mike Lockwood
7916432b3c DO NOT MERGE UsbManager: squashed commit of:
USB: Add functions for querying if a USB function is supported and enabled.

Rename android.hardware.Usb to UsbManager and UsbObserver to UsbService

Change-Id: I920a211934d993eab8ce744c1cc7b05342389286
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-02-27 18:39:21 -08:00
Daniel Sandler
e40451a89d Ongoing notification for GPS use.
This change improves upon the notification priority API
introduced in change I9e738cc4, allowing privileged clients
to set the priority of a notification when posting it
directly to INotificationManager. StatusBarTest is updated
to test this new feature.

The new LocationController in SystemUI uses this facility to
post a high-priority ongoing notification whenever GPS is in
use (replacing the functionality of the legacy GPS status
bar icon).

Also happens to fix http://b/3325472 (adding a log message
when notifications are dropped because of a missing icon).

Bug: 3412807

Change-Id: I523016ffa53bf979be98ddc4a2deb55a6270c68a
2011-02-03 21:11:46 -05:00
Mike Lockwood
b92df0f669 Clean up USB notifications:
Add support for separate USB connected and configuration events

Include both USB connected/disconnected and configuration state
in USB_STATE Intent

Remove redundant USB_CONNECTED and USB_DISCONNECTED Intents
Now we just have the sticky USB_STATE broadcast

Move USB disconnnect rebouncing from Tethering to UsbService

Change-Id: Id13eb0c5d51152d2a538985d680ba1db7d2241dc
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-14 18:32:59 -08:00
Mike Lockwood
770126a678 Rename android.hardware.Usb to UsbManager and UsbObserver to UsbService
In preparation for an upcoming change that will make UsbService into a real system service

Change-Id: Id85d624cfc6b10b49a08105cfaaacc667a492c12
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-09 22:52:05 -08:00
Andy Stadler
110988c8b7 Fix notification/builder defaults
* Builder wasn't setting mAudioStreamType to its non-zero default
* Clean up warnings (imports, unused variables, overrides)

Bug: 3250299
Change-Id: I019f54a0d6c97e71681d24144e784fa4b4737f7e
2010-12-03 14:29:16 -08:00
Mike Lockwood
35e16bfa9b NotificationManagerService: minor cleanup
Change-Id: I998727662eb3c0bae20e5af3f8c5e702bf5d4f38
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-30 19:53:36 -05:00
Joe Onorato
46439cec0e Update the look of the notifications. Includes adding a new Notification.Builder class.
Change-Id: I7c57b81c45defe77d6f3d22472e9cf8432bbed03
2010-11-21 16:16:27 -08:00
Joe Onorato
de1b359e88 Move the battery LED code over to the battery service from the notification service (!)
Change-Id: I12d7994ae245a36b8b2c3272fcbe173881caebd0
2010-10-27 11:26:00 -07:00
Brad Fitzpatrick
385a753dea resolved conflicts for merge of 368fdba4 to master
Change-Id: I42b7b433c86a71a5da5db67109f056a280077c9d
2010-10-21 07:39:10 -07:00
Joe Onorato
368fdba47a am bdf1706a: Merge "Reduce logging." into gingerbread
Merge commit 'bdf1706ac680c0fe74765b8d6d34823b8ac05306' into gingerbread-plus-aosp

* commit 'bdf1706ac680c0fe74765b8d6d34823b8ac05306':
  Reduce logging.
2010-10-19 12:29:43 -07:00
Joe Onorato
431bb22695 Reduce logging.
Remember, the system and main logs are
    - Shared resources
    - Primarily for recording problems
    - To be used only for large grained events during normal operation

Bug: 3104855
Change-Id: I136fbd101917dcbc8ebc3f96f276426b48bde7b7
2010-10-19 15:08:05 -04:00
Joe Onorato
184498ce5a Allow notifications to not specify a contentIntent.
If they don't, the click events will be passed through to the individual
views in the notification view, which may have their own PendingIntents
attached.

Previously, it was against the UX spec to allow this, but now we are
changing that and will have buttons in there.

Change-Id: I674234212f64b2b8802a0708b7eed0614e147ca3
2010-10-13 17:29:26 -07:00
Jason Chen
39b4867d48 Revert "Merge "Allow notifications to not specify a contentIntent.""
This reverts commit 8885321046622d6a8c0a4214af98dc27eecd48a0, reversing
changes made to 61b8aaadd742f0be708cd37971d2c9e822bf778a.
2010-10-08 16:22:53 -07:00
Joe Onorato
80a752c537 Allow notifications to not specify a contentIntent.
If they don't, the click events will be passed through to the individual
views in the notification view, which may have their own PendingIntents
attached.

Previously, it was against the UX spec to allow this, but now we are
changing that and will have buttons in there.

Change-Id: Ie3b2e96c6a1c4449fa86ed571f3ad0f047320d31
2010-10-08 17:57:18 -04:00
Mike Lockwood
dc936251c4 am 91cf049f: am 76e4fa19: Merge "Only pulse notification light if a new notification has been received since the screen was last turned off" into gingerbread
Merge commit '91cf049f34b4f3d53d39e868104f11156a332b65'

* commit '91cf049f34b4f3d53d39e868104f11156a332b65':
  Only pulse notification light if a new notification has been received since the screen was last turned off
2010-09-09 16:10:00 -07:00
Mike Lockwood
91cf049f34 am 76e4fa19: Merge "Only pulse notification light if a new notification has been received since the screen was last turned off" into gingerbread
Merge commit '76e4fa19264793e3ed7e2ee7afccfc808a1a7458' into gingerbread-plus-aosp

* commit '76e4fa19264793e3ed7e2ee7afccfc808a1a7458':
  Only pulse notification light if a new notification has been received since the screen was last turned off
2010-09-09 16:05:38 -07:00
Mike Lockwood
2117f6fa38 Only pulse notification light if a new notification has been received since the screen was last turned off
BUG: 2980248

Change-Id: I4dca527a191fae4ad87eeff8ad32594fd6aeb417
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-09 09:48:08 -04:00
Jean-Baptiste Queru
f089b90d21 am 5085848d: am 209e6518: Merge "Make the LED colors when charging customizable by the vendor"
Merge commit '5085848ddbadaafa088ed85753156adc2e54554d'

* commit '5085848ddbadaafa088ed85753156adc2e54554d':
  Make the LED colors when charging customizable by the vendor
2010-08-17 07:51:51 -07:00
Jean-Baptiste Queru
5085848ddb am 209e6518: Merge "Make the LED colors when charging customizable by the vendor"
Merge commit '209e651805dd40ea87df7ff67f2755605be9308c' into gingerbread-plus-aosp

* commit '209e651805dd40ea87df7ff67f2755605be9308c':
  Make the LED colors when charging customizable by the vendor
2010-08-17 07:48:50 -07:00
Daniel Sandler
b5c22f7236 am 811d66f1: am 9b87770f: Merge "Fix crash when startForeground posts a broken Notification." into gingerbread
Merge commit '811d66f1496b64b02c117e8d992db99e9e6cdc8d'

* commit '811d66f1496b64b02c117e8d992db99e9e6cdc8d':
  Fix crash when startForeground posts a broken Notification.
2010-08-05 12:08:25 -07:00
Daniel Sandler
0f0b11c871 Basic support for notification payloads in the panel.
Line-item veto is there, but allows you to cancel some
notifications you probably shouldn't be canceling. (Should
hide the "X" in those cases.)

No preference given to "sticky" notifications, because
there's no such thing yet.

Notifications are now limited to 4 visible icons, per spec.
The implementation is a total hack for now.

Change-Id: Ibdf433ae94189117f983c510fe5e0cff0bf5c44c
2010-08-05 09:34:50 -04:00