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
- The ImageWallpaper wasn't watching for the desired dimensions to
change, at which point it needs to resize its surface.
- The system process has been running with the small dalvik heap
limit, which is too tight with these huge wallpapers; this would
cause switching wallpapers to eventually stop working as it
couldn't get the memory it needed to load the new one.
- The compatibility mode background surface had a bunch of issues,
such as moving its windows to the right by the window size to
make them disappear. This of course doesn't play well with the
now super-sized wallpaper surface. This code is re-worked to
not require such shenanigans.
Change-Id: I64fde4059645d8507f1c4761ba6c17b89877a5c0
Ongoings are the only notifications currently given higher
priority (and it's in an internal data structure, not a
public API, so fear not about abuse---this will be no worse
than on the phone where ongoings floated to the top).
The only thing left is to give privileged customers a way to
alter the priority of their notifications.
Bug: 3412807
Bug: 3146719
Change-Id: I9e738cc413982845cf4858faa8ccd0a7dbf3187c
lightsout mode
Fix an opportunity for race conditions when the action bar is
shown/hidden rapidly.
Change-Id: I91c0666cad3afd8a4d870d642f971949fba0d333
* Added changeEncryptionPassword() to the MountService.
* Update LockPatternUtils to call changeEncryptionPassword()
when the password is changed.
Note we only require the new password to change the
encryption password.
Bug: 3382129
Change-Id: I26a7e919e325e75e22fa4290da0a8b1b57b55a80
Bug 3370191
The documented behavior is to hide the error when the text changes.
However, this should not be the case if the error was reset by a text watcher.
Comparing errorBefore and errorAfter as was done before is not sufficient in the
case where the error is reset to the same value. String pool optimization will re-use
the same Object and it will look like the error has not been modified (hence the
blinking behavior reported in the bug).
For this reason, TextView has a mErrorWasChanged flag. The fix is to export methods
that can use this flag as in done inside TextView when a physical keyboard is used.
These methods are hidden.
Change-Id: Ie3ec59a368f3b1588b81242890b971ac48e8ff7e
This changes the behavior of WaveView to start waves again when
the user moves the halo back towards the center.
Change-Id: Ia3b8fbd091e90e83e0c34b98a3060d3236191d7a
- Fix for crash when detaching from window
- Potential fix for occasional IllegalStateException when updating List based widgets
Change-Id: I3d3f2bb691552a1136111043db686c4926b510c6
Post popup menu click events rather than executing inline so that the
popup can close undisturbed.
Change-Id: I01481bd37d7921c10c6b8b484eab33f0d25447ff
This makes the system more flexible and allows
adding new technology types without having to
update the API.
Change-Id: Iaee6b633965e501a70e8afc3f1d54d9d94a4d05a
The SurfaceHolder provided by the wallpaper service was not reporting
the correct size in getSurfaceFrame(). This broke an optimization in
the ImageWallpaper. The old code happened to work because calling
lockCanvas on the SurfaceHolder with a null dirty rectangle happened
to have the side-effect of updating the SurfaceHolder's surface frame
size field because it passed mSurfaceFrame as the dirty rect, causing
mSurfaceFrame to be set to the size of the region to be drawn.
However, relying on this side-effect is wrong. Among other things,
the dirty region could actually be smaller than the surface frame.
This patch fixes WallpaperService, SurfaceView and ViewRoot to ensure
that the surface frame size is always set explicitly and is not modified
by calls to lockCanvas.
Change-Id: I10948f5ec269409ceaf0f7d32b3f6731e9499ebc
into the indeterminate progress icon
This fixes a bug that caused ActionViews to not be updated properly
after a pass through invalidateOptionsMenu/onPrepareOptionsMenu. Apps
can now set/clear action views to display progress spinner widgets or
anything else on demand.
Change-Id: I138eceb504177c6bb5b86d40a68a82973aa841a5
1. Views may setSystemUiVisibility() to recommend that
the system chrome (status bar or other UI) show or hide
itself. (This functionality was previously available only
via the FLAG_FULLSCREEN window flag for some SystemUI
implementations.)
2. Views may register a OnSystemUiVisibilityChangedListener
on a view, and find out when the system UI actually
appears or disappears, allowing apps to coordinate the
appearance of their own UI if desired.
Bug: 3241144
Change-Id: Ia1758d94099182d49a1e3688ea2738ae4995b829
Also adjust default web text selection menu to allow overflow, preventing items
from being cut off in portrait or on smaller screens.
Change-Id: I686c9a8daab31a38c2fcb75ee1402f09f568c238
This catches possible exceptions caused by attempting to
unregister a receiver that may have already been unregistered.
This is related to the OOM issue workaround in Change I99a7e0c3.
Change-Id: Ib69a8acc6b12659125c958a03efac0a8a68a3859
Added some logic to ImageWallpaper to avoid redrawing the wallpaper
when it is not necessary. Even with the resize fixes, we were still
redrawing the wallpaper an extra 5 times due to visibility and
offset changes which had no real effect.
Change-Id: Ifa39b7bb8c0f7a6a41bc81e00cc2159440f529c5