2429 Commits

Author SHA1 Message Date
Adam Powell
daa1d56726 Fix for ActionBar#setSelectedNavigationItem() in collapsed tab mode
Make sure the selected item is properly propagated to the collapsed
spinner.

Bug 6754308

Change-Id: Iaa4e331b00106b31c5984980d33e3ac88853ae4d
2013-04-09 13:57:22 -07:00
Dianne Hackborn
bc94810104 Merge "Have audio service clean up new receivers in crashing processes." into jb-mr2-dev 2013-04-08 20:10:37 +00:00
Dianne Hackborn
79f7ec70eb Have audio service clean up new receivers in crashing processes.
The new media button receiver with only a pending intent (no
component name) could be left hanging if the process that
registered it went away.  These semantically need to be tied
to the calling process's lifetime; we now clean them up when
the calling process goes away.

Also added some additional cleanup of media button receivers
when packages change (updated, cleared).

And on top of that, a new "media" command for doing media
things.  Currently lets you send media keys and monitor
remote display data.

Oh and finally added a new BaseCommand base class for
implementing these command line utilities.

Change-Id: Iba1d56f10bab1eec4a94a7bb1d1c2ae614c8bcf5
2013-04-08 13:08:37 -07:00
Adam Powell
e0e2f4fd3a Fix accessibility in action bars and add extra customization
Fix a bug where the content description of the big unified Home/Up
button was not getting set properly.

Add the ability to change the home-as-up glyph from ActionBar.

Add the ability to set a custom action description for the home-as-up
button, useful if the above functionality is used.

Bug 8548229

Change-Id: I0635799772c7234b68247dfc105dce7f11acda32
2013-04-05 16:46:22 -07:00
Jeff Brown
4a706bc6f1 Merge "Correctly manage the lifecycle of IME InputChannels." into jb-mr2-dev 2013-04-05 20:57:01 +00:00
Daniel Sandler
5feceebb89 New NotificationListenerService.
This is the best and only way for apps to listen for
notifications: create a NotificationListenerService, wait
for the NoMan to bind to you (as a result of the user
checking a box somewhere in Settings and agreeing to a
scary dialog box), and you'll start receiving notification
posted and dismissed callbacks. Your service, while enabled,
will also be able to clear one or all notifications.

Use this power wisely.

This change moves StatusBarNotification out of
com.android.internal into android.service.notification.
[Internal customers, including System UI and early users of
the system-only listener binder API, will need to be
updated.]

Bug: 8199624
Change-Id: I1be46f823d4b3ddc901109ec1e085cd6deb740c2
2013-04-05 19:54:44 +00:00
Jeff Brown
1951ce86c2 Correctly manage the lifecycle of IME InputChannels.
InputChannels are normally duplicated when sent to a remote process
over Binder but this does not happen if the recipient is running within
the system server process.  This causes problems for KeyGuard because the
InputMethodManagerService may accidentally dispose the channel
that KeyGuard is using.

Fixed the lifecycle of InputChannels that are managed by the IME
framework.  We now return a duplicate of the channel to the application
and then take care to dispose of the duplicate when necessary.
In particular, InputBindResult disposes its InputChannel automatically
when returned through Binder (using PARCELABLE_WRITE_RETURN_VALUE).

Bug: 8493879
Change-Id: I08ec3d13268c76f3b56706b4523508bcefa3be79
2013-04-04 22:45:12 -07:00
Adam Powell
8c16aa9fa2 Uphold common ordering expectations around action bar Home/Up dispatch
Some apps aren't particularly happy if a stray key event is dispatched
to a newly created window before its menu is prepared, causing the
action bar's Home/Up event to be dispatched. Ignore these clicks on
the Home/Up button before the menu goes through its initial prepare
step.

Note that it is still possible (and valid!) for Home/Up to be
dispatched even if the app chose to return false from
onCreateOptionsMenu or similar.

Bug 7085070

Change-Id: If4b7d5f8c5a08ce8a094f1919347604d78ddedfb
2013-04-04 10:51:09 -07:00
Jean-Michel Trivi
3261b537c5 RemoteControlClient receives playback position change requests
RemoteControlClient defines two listener interfaces for playback
  position, one to let the framework query the current playback
  position, the other to request playback to seek to a given
  position.

Updated IRemoteControlDisplay interface to support passing info
  about whether the user of RemoteControlClient can provide a
  playback position, and receive a new one.
Updated implementations of IRemoteControlDisplay to new
  interface.

Bug 8120740

Change-Id: I1a5a969da4d0f8c9ad27f691919dd08f8653982b
2013-04-01 18:14:30 -07:00
Jean-Michel Trivi
bc43b4c2f2 RemoteControlClient can report current position, speed
Extend RemoteControlClient class to support reporting the
 current playback position, and the playback speed.
Define listener for an application to receive new playback
 position to seek to (use of listener to be implemented).
Update IRemoteControlDisplay implementations to new interface.

bug 8120740

Change-Id: I2654daeca1ac49713d325df8226dceb85943c020
2013-03-29 09:47:48 -07:00
Robert Greenwalt
665e1aed5e Add BT - DataTracker connection
Allows the external BT stack the means to communicate with
ConnectivityService during reverse tethering.

bug:8445208
Change-Id: Ice7dfb0b50c9481d359aed14a51372878185171c
2013-03-27 15:45:12 -07:00
Jeff Brown
ca3d655d20 Merge "Use input transport for communications between app and IME." into jb-mr2-dev 2013-03-27 02:43:54 +00:00
Adam Powell
7f51ae71f1 Merge "Fix some visibility state transition issues with ActionBarView" into jb-mr2-dev 2013-03-26 22:51:52 +00:00
Jeff Brown
c28867a1d6 Use input transport for communications between app and IME.
The input method manager service now supplies an input channel for
communication while creating an IME session on behalf of the
application.

This change significanly reduces the overhead of IME event dispatch
by using a standard input channel to send input events rather than
using binder.  This results in fewer thread context switches
and fewer object allocations.

What's more, the IME may perform additional batching of the motion
events that it receives which may help it catch up if it is
getting behind while processing them.

Bug: 7984576
Bug: 8473020
Change-Id: Ibe26311edd0060cdcae80194f1753482e635786f
2013-03-26 15:42:39 -07:00
Adam Powell
6684e92ae8 Fix some visibility state transition issues with ActionBarView
Restore state as expected for titles and expanded action views.

Bug 8246128

Bug 8479205

Change-Id: Icad59685c5eab241f19ecd94479dc5e7a9f678b6
2013-03-26 15:38:26 -07:00
Geremy Condra
df4144f4df am 9fa57b74: am 2aee33c1: Merge "BackupManagerService files need new security labeling."
* commit '9fa57b74d8acb99c86f761a98f6e76998de8aff2':
  BackupManagerService files need new security labeling.
2013-03-25 22:29:10 -07:00
Geremy Condra
2aee33c1cd Merge "BackupManagerService files need new security labeling." 2013-03-26 05:10:38 +00:00
Christopher Tate
57b0f36382 Merge "Throw on illegal arguments to ArrayUtils.equals(a1, a2, len)" into jb-mr2-dev 2013-03-22 22:24:21 +00:00
Christopher Tate
fc05434908 Throw on illegal arguments to ArrayUtils.equals(a1, a2, len)
Specifically, throw an explicit IllegalArgumentException if
'len' is negative, rather than falling over in some other
way further down the line.

Change-Id: If955de7ec1a15aa9aa8c42b6994b059e0cdffcee
2013-03-22 15:01:13 -07:00
Jeff Sharkey
9da8c37ab8 Merge "Move XML utility methods into shared location." into jb-mr2-dev 2013-03-22 20:45:17 +00:00
Jeff Sharkey
ded7b75d1a Move XML utility methods into shared location.
Change-Id: I15e8f0e4a6c5546d9be956ca0d46715d3441458c
2013-03-22 13:43:41 -07:00
Michael Wright
52a5352626 Separate sessionCreated and finishedEvents callbacks
Bug: 8276952
Change-Id: If7051086c060fcce5d1e958ebbddec0784c851da
2013-03-21 17:47:40 -07:00
Wink Saville
24d248acdf Add new StateMachine constructor with name and handler params.
Change-Id: Ic252de6cac24a043050b37d81767d19e2739b2fc
2013-03-17 14:26:21 -07:00
Craig Mautner
e4bbb1cc45 Catch BadTokenException and continue.
BadTokenException is a normal consequence of swapping IMEs while there
is a DO_SHOW_SOFT_INPUT message in the IIMethodWrapper queue. This
race condition cannot be avoided without an unacceptable lock down of
InputMethodManagerService.

Fixes bug 8387663.
Fixes bug 8263462.

Change-Id: I2c21573cf972145ab08e66604cdb9344139a3f31
2013-03-15 11:38:44 -07:00
Irfan Sheriff
11aefad94d Add support for scan always available mode
Modify WifiService to add a controller to track the various
desired states and let the WifiStatemachine actually control
the bring up.

Bug: 8141918

Change-Id: I6e98fd5a29b43c3c50c315eff5255cd0a3eaebcd
2013-03-14 13:55:56 -07:00
Irfan Sheriff
1c80a05176 Merge "Add all variations message parameters for send/obtain." into jb-mr2-dev 2013-03-14 20:26:36 +00:00
Wink Saville
8b0db52040 Add all variations message parameters for send/obtain.
Change-Id: Ib8f3b66650d2ae2a8af7a537871361613e65b48e
2013-03-14 13:23:19 -07:00
Craig Mautner
ca0ac718cb Remove WindowManager messages from remote queue.
When a new IME is attached it is not enough to remove the
WindowManager messages from the local queue, but the ones in
the previous IME queue must also be removed.

Fixes bug 8263462.

Change-Id: I9e916c6052a83dc7691bcba0b6ab8328b9b7cc36
2013-03-14 09:43:02 -07:00
Michael Wright
e8cc96b8f8 Remove unused interface IInputConnectionCallback
Bug: 8276952
Change-Id: I3755df557388bee55f0cc4780adc300672cbe9a1
2013-03-12 11:01:14 -07:00
Wink Saville
614edf5833 Merge "Add additional message methods." into jb-mr2-dev 2013-03-11 16:46:05 +00:00
Wink Saville
4753cd2014 Add additional message methods.
Change-Id: Iac96815f7b72bcb3b9c658a24c24e0733e0ea1b0
2013-03-11 09:32:48 -07:00
Jim Miller
6e5d6492db Merge "Fix long-standing bug with LockPatternView drawing artifacts" into jb-mr2-dev 2013-03-09 00:09:18 +00:00
Christopher Tate
294b512eca DO NOT MERGE - Full backup/restore now handles OBBs sensibly
OBB backup/ restore is no longer handled within the target app
process.  This is done to avoid having to require that OBB-using
apps have full read/write permission for external storage.

The new OBB backup service is a new component running in the
same app as the already-existing shared storage backup agent.
The backup infrastructure delegates backup/restore of apps'
OBB contents to this component (because the system process
may not itself read/write external storage).

From the command line, OBB backup is enabled by using new
-obb / -noobb flags with adb backup.  The default is noobb.

Finally, a couple of nit fixes:

- buffer-size mismatch between the writer and reader of chunked
  file data has been corrected; now the reading side won't be
  issuing an extra pipe read per chunk.

- bu now explicitly closes the transport socket fd after
  adopting it. This was benign but triggered a logged
  warning about leaked fds.

(Cherrypicked)

Change-Id: I471f6348abcccb7bf1e1710b7beda9f23de53e14
2013-03-08 15:08:10 -08:00
Jim Miller
0caa377f46 Fix long-standing bug with LockPatternView drawing artifacts
Moving very slowly in LockPatternView would often draw discontinuous
lines and have missing wedges in the pattern rings.

This fixes the problem by correctly accounting for the invalidate
region. The invalidate region is constrained to the last registered
pattern cell and the current point.  When a new pattern cell is added,
the bounding region expands to refresh it once.

Fixes bug 8315830

Change-Id: I72342535ae292fcadb02d96b89665ba8431886b2
2013-03-07 18:49:32 -08:00
Jeff Sharkey
94c91dca55 ArrayUtils.indexOf(), containsAll() with tests.
Change-Id: I040164d4e45126e4a6c1df54bd114f47951da560
2013-03-06 16:28:36 -08:00
Dianne Hackborn
474690caf8 Fix issue #8325007: EyeEm app crashes on launch- NPE at...
...android.view.ViewGroup.measureChildWithMargins

The app is doing grungy stuff with trying to insert its own
views inside the window decor.  This new custom layout of the
action bar was assuming it would get fitSystemWindows() called
at which point it would retrieve all of its child views...  but
with the app doing this, it blocks the call down to
fitSystemWindows() and breaks us.  So we now make the layout
manager more robust and ensure it has retrieved its children
when measuring.

Also fix an issue where the xlarge layouts were not updated.

Change-Id: I6c69f26f26b59a6aa8fa1e5788288ffce0b490ca
2013-03-06 11:33:26 -08:00
Dianne Hackborn
7cf71fbdc3 A few small missing things from the custom action bar layout.
Change-Id: I91e0b43ccf92d5c9541f80220922951acb0795e7
2013-03-05 18:00:12 -08:00
Dianne Hackborn
9c9aec721a Merge "Fix issue #8311263: Corrupted UI across all tabs in People app" into jb-mr2-dev 2013-03-05 17:34:40 +00:00
Dianne Hackborn
1dc5f92716 Fix issue #8311263: Corrupted UI across all tabs in People app
The problem is that there are other configurations that the
action bar can be in that ActionBarOverlayLayout didn't account
for -- such as here, the nav part visible but the rest hidden.

Fixing this was non-trivial because it means that to correctly
implement fitSystemWindows() we need to in these cases take the
actual measured height of the action bar for positioning the
content view...  but that is not yet available, since
fitSystemWindows() must run before layout.

To solve this, ActionBarOverlayLayout now inherits directly from
ViewGroup and implements its own custom layout.  In its measure
pass it does all of the fitSystemWindows() work that is dependent
on the measured sizes of the action bar child views after those
are measured and applies them to the content view before it is
measured.

Change-Id: Ie327075d502e9c348aa80b0968c6b0403478301e
2013-03-04 18:17:50 -08:00
Justin Koh
4207fda51b Add policy check to always show overflow menu button on TV devices.
Add policy check to always show overflow menu button on TV devices.
Bug: 8236681

Change-Id: I4f92eef7a6d530feb698f83b0720b36115f7a04a
2013-03-01 13:03:20 -08:00
Dianne Hackborn
df7221ced3 Unify normal and overlay action bar layouts.
Switch the action bar to always use the overlay layout, and
make it smarter to do the right thing depending on whether the
action bar is in overlay mode or not.

This allows apps to use the system UI magic flags without
having to worry about whether the action bar is configured
in overlay mode or note -- just select a stable layout and it
will automatically go into overlay mode.

In the future this should also allow us to simplify the action
bar code, since it is all sitting on one common implementation.
For example, much of the logic in ActionBarImpl can be moved
to the root action bar layout, and that layout can be optimized
to do custom layout with all of the known elements it has.

Also fixed a little bug in the performance tests.

Change-Id: Iec0c0c0699754f0d1ce37402d786b4966e052a56
2013-02-27 18:27:42 -08:00
Daniel Sandler
4d85af68a4 Spurious file removed.
Change-Id: I2ac3f417553aea806ad570e247afc985e9ececb3
2013-02-26 10:51:45 -05:00
Wink Saville
ff4fcdb98c Tweak logging and some code reformatting.
Add logAndAddLogRec method that logs a string and adds it to LogRecords.
Add loge(s, e)
Add missing javadoc to the logging methods
Reformatted the code.

Change-Id: I42f39e45aae77e5b6968f16b6b83f4804ccb7e73
2013-02-24 07:21:45 -08:00
Dianne Hackborn
c4aad01cbb Formalize overscan metrics.
The window manager now maintains and reports a new formal
"overscan insets" for each window, much like the existing
content and visible insets.  This is used to correctly
position the various UI elements in the various combination
of layout options.  In particular, this allows us to have
an activity that is using fitSystemWindows to have the content
of its UI extend out to the visible content part of the screen
while still positioning its fixed UI elements inside the
standard content rect (and the entire window extending all
the way into the overscan area to fill the screen as desired).

Okay, maybe that is not written so clearly.  Well, it made
my head hurt too, so suffer!

The key thing is that windows now need to know about three
rectangles: the overall rectangle of the window, the rectangle
inside of the overscan area, and the rectangle inside of the
content area.  The FLAG_LAYOUT_IN_OVERSCAN option controls
whether the second rectangle is pushed out to fill the entire
overscan area.

Also did some improvements to debug dumping in the window
manager.

Change-Id: Ib2368c4aff5709d00662c799507c37b6826929fd
2013-02-22 19:14:37 -08:00
Jim Miller
ab8e936e85 Merge "Add explicit userId to AppWidget binder calls" 2013-02-21 00:00:49 +00:00
Jim Miller
a75a883fe9 Add explicit userId to AppWidget binder calls
Keyguard currently relies on being in the system process to grab the
given user's widgets.  When we split keyguard into a new process,
it will need to have access to user-specific info to instantiate a
specific user's widgets.  In order to accomplish this, we add an
explicit userid to each binder call as well as new permission
check to allow keyguard access.

This also fixes a potential race condition of having an incorrect user id
due to an async call to change the user.  Every binder call now has a specific
user id. The user id is either the calling process user's id or an explicit
one passed by applications like keyguard. It is created once when an
AppWidgetManager is instantiated and remains for the lifetime of the object.

Fixed bug where widgets sometimes didn't show up for secondary users.

Moved permission check in AppWidgetService into getImplForUser()

Refactored to use userid from context associated AppWidgetManager instance.

Clean up AppWidgetHost to use userId from Context.

Remove redundant userId check in checkPermission since it's handled by
ActivityManager.handleIncomingUser()

Removed redundant userid check.

Upload after rebase...

Change-Id: Iae3e20f2b342c323bb58768b3d22051510f8268b
2013-02-20 15:41:14 -08:00
Fabrice Di Meglio
50c291b653 Merge "SystemUI optimization - rely on inheritance for layout direction" 2013-02-20 23:18:04 +00:00
Daniel Sandler
09a247e9a8 New INotificationListener interface.
Use with INotificationManager.registerListener(). Limited to
system only right now.

Change-Id: I65b6a8778267022cdc5e58eb75ae607a54b1cc52
2013-02-19 15:26:37 -05:00
Fabrice Di Meglio
b5fe52b389 SystemUI optimization - rely on inheritance for layout direction
- this CL purpose is to fully rely on inheritance for setting the
SystemUI views layout direction. This is the default case for layout
direction and should stay like that.

Change-Id: I8efb6ab6e5bd10f519c7a27e8837efb69631940e
2013-02-15 13:10:38 -08:00
Jeff Sharkey
9a2c2a6da9 Parse network stats using native code.
Switch to parsing detailed network stats with native code, which
is 71% faster than ProcFileReader.

Change-Id: I2525aaee74d227ce187ba3a74dd08a2b06514deb
2013-02-13 17:40:49 -08:00