3041 Commits

Author SHA1 Message Date
Paul Lawrence
df42723d6b Merge "Don't double prompt on booting encrypted device" 2014-04-01 15:07:10 +00:00
Fabrice Di Meglio
a780d9323b Merge "Fix bug #13727850 Input values are not visible when setting up the lockscreen... ...security(PIN/Passwor/Pattern)." 2014-04-01 01:21:32 +00:00
Fabrice Di Meglio
1cf3594114 Fix bug #13727850 Input values are not visible when setting up the lockscreen...
...security(PIN/Passwor/Pattern).

- remove that hardcoded color
- enable passing a color for the Path lines

Change-Id: Ie40b15bf209f41ea2df16842a3e56ffc2020df65
2014-03-31 16:50:29 -07:00
Adrian Roos
82142c21dd Define trust agent framework components
Adds the TrustManager system service that allows
registering for changes to the trust status and
reporting events that are important to trust agents.

Bug: 13723878
Change-Id: I7d0d2ea86fd755702d31aa5d49cac038a6cd4301
2014-03-31 21:18:28 +02:00
Paul Lawrence
945490c12e Don't double prompt on booting encrypted device
vold will store password securely until KeyGuard requests it
and hands it on to KeyStore.

This is a revision of

https://googleplex-android-review.git.corp.google.com/#/c/418123/

which was reverted. It had two bugs in LockSettingsService.checkVoldPassword.
1) We were not checking password for null, which caused an exception
2) checkPattern/checkPassword return true if there is no saved pattern or password.
   This leads to situations where we get true returned even when the password
   doesn't match. Call the correct one based on what is there, not what vold
   thinks ought to be there.

Bug: 12990752
Change-Id: I05315753387b1e508de5aa79b5a68ad7315791d4
2014-03-28 10:35:44 -07:00
John Spurlock
0e14f2d455 Merge "Remove obsolete MultiWaveView" 2014-03-28 13:11:09 +00:00
Adam Lesinski
776abc24cd Uses VMRuntime.newUnpaddedArray for ideal array sizes
Bug:13028925

Change-Id: I0a9301248b10a339afbdc5e4ffe3310ac4fa1fb7
2014-03-27 11:42:10 -07:00
Jorim Jaggi
73581effb0 Merge "Move legacy notification processing to Notification.Builder" 2014-03-27 14:25:17 +00:00
Jorim Jaggi
5c2d84675b Move legacy notification processing to Notification.Builder
Bug: 13485610
Change-Id: I5466d3dbc328c77876dc701c17e7a5a06777dbbe
2014-03-27 12:08:55 +01:00
John Spurlock
4f0db5e23a Remove obsolete MultiWaveView
Change-Id: Ic878221c873d29577928aed2669f967851307e4d
2014-03-26 21:52:03 -04:00
Paul Lawrence
6ee7d25010 Revert "Don't prompt at boot if we already did that when decrypting"
This reverts commit 493e3e7e6523fd94cc1acae3e45935a1227d58c3.

Should fixes

Bug: 13611885
Bug: 13656830
Change-Id: I117c988bb6679f44f8add4fcc18f45cb8238dfb4
2014-03-26 22:31:04 +00:00
Dianne Hackborn
4590e52f3d Battery stats: wake locks, radio active, cleanup.
- Improve wake lock work source updates to also update the current
  history tag, in case the new work source gets recorded in the
  history.

- Fix bug in recording radio active time that was not distributing
  any time to apps.

- No longer hold a wake lock while dispatching data conn active call,
  since it comes with its own timestamp.

- Fix issue where the top app was not being cleared while the screen
  was off.

- Remove obsolete STATS_LAST stats type.

- Fix bug that was not clearing the total run time when resetting
  the stats.

Change-Id: Iabe17a9edf34f762374ae09fcffb8a819cf72e30
2014-03-24 13:36:46 -07:00
Dianne Hackborn
a1bd79268b Battery stats: track actually running time
Use the uptime while creating the battery stats history to
generate a new event indicating when the CPU is actually running.
We can do this in combination with the new event reporting when
the CPU comes awake, looking at the difference between the
uptime and elapsed time at that point to determine when it last
when to sleep.

Also use this information to generate a new set of aggregated
states, the uptime caused by each wake reason.

Finally use new radio down timestamp to adjust the times we
compute for radio use.  Note that this information is not (yet)
being used to adjust how these are recorded in the history.

Change-Id: I723b3b526c8e7d64de0cac9d1193e04132d5a3e4
2014-03-21 16:14:59 -07:00
Paul Lawrence
717e0f5db7 Merge "Don't prompt at boot if we already did that when decrypting" 2014-03-21 20:40:46 +00:00
John Spurlock
f9e1a0b369 Annotate framework vibrate calls with stream hints.
Migrate existing framework usages of Vibrator.vibrate to use
the new overload with an explicit stream hint.  This prevents
them from being blocked by rules targeting the unspecified stream.

For calls that pass the existing appops check in VibrateService,
pass streamHint down to the input device vibrator so we don't lose
the signal, but leave it up to InputManager to decide what to do
with it - currently unused.

Change-Id: I65c944e4010edea29a412bf57d8d7d3b8098b746
2014-03-21 08:57:53 -04:00
Christopher Tate
adfe8b86e9 App widget backup/restore infrastructure
Backup/restore now supports app widgets.

An application involved with app widgets, either hosting or publishing,
now has associated data in its backup dataset related to the state of
widget instantiation on the ancestral device.  That data is processed
by the OS during restore so that the matching widget instances can be
"automatically" regenerated.

To take advantage of this facility, widget-using apps need to do two
things:  first, implement a backup agent and store whatever widget
state they need to properly deal with them post-restore (e.g. the
widget instance size & location, for a host); and second, implement
handlers for new AppWidgetManager broadcasts that describe how to
translate ancestral-dataset widget id numbers to the post-restore
world.  Note that a host or provider doesn't technically need to
store *any* data on its own via its agent; it just needs to opt in
to the backup/restore process by publishing an agent.  The OS will
then store a small amount of data on behalf of each widget-savvy
app within the backup dataset, and act on that data at restore time.

The broadcasts are AppWidgetManager.ACTION_APPWIDGET_RESTORED and
ACTION_APPWIDGET_HOST_RESTORED, and have three associated extras:

    EXTRA_APPWIDGET_OLD_IDS
    EXTRA_APPWIDGET_IDS
    EXTRA_HOST_ID [for the host-side broadcast]

The first two are same-sized arrays of integer widget IDs.  The
_OLD_IDS values are the widget IDs as known to the ancestral device.
The _IDS array holds the corresponding widget IDs in the new post-
restore environment.  The app should simply update the stored
widget IDs in its bookkeeping to the new values, and things are
off and running.  The HOST_ID extra, as one might expect, is the
app-defined host ID value of the particular host instance which
has just been restored.

The broadcasts are sent following the conclusion of the overall
restore pass.  This is because the restore might have occurred in a
tightly restricted lifecycle environment without content providers
or the package's custom Application class.  The _RESTORED broadcast,
however, is always delivered into a normal application environment,
so that the app can use its content provider etc as expected.

*All* widget instances that were processed over the course of the
system restore are indicated in the _RESTORED broadcast, even if
the backing provider or host is not yet installed.  The widget
participant is responsible for understanding that these are
promises that might be fulfilled later rather than necessarily
reflecting the immediate presentable widget state.  (Remember
that following a cloud restore, apps may be installed piecemeal
over a lengthy period of time.)  Telling the hosts up front
about all intended widget instances allows them to show placeholder
UI or similarly useful information rather than surprising the user
with piecemeal unexpected appearances.

The AppWidgetProvider helper class has been updated to add a new
callback, onRestored(...), invoked when the _RESTORED broadcast
is received.  The call to onRestored() is immediately followed by
an invocation of onUpdate() for the affected widgets because
they will need to have their RemoteViews regenerated under the
new ID values.

Bug 10622506
Bug 10707117

Change-Id: Ie0007cdf809600b880d91989c00c3c3b8a4f988b
2014-03-20 12:30:51 -07:00
Dianne Hackborn
40c8725804 batstats: fix wake lock tracking, service bug
- Fix bug I introduced in handling wake lock changes where
  we weren't iterating over the new work sources correctly.
- Fix bug in ActiveServices that would wtf too much.
- Prepare to start tracking uptime in the battery history.

Change-Id: Ia94316be51bc6eab7b02f214a5c40c08e99cc3b1
2014-03-19 17:13:43 -07:00
John Spurlock
1af30c7ac4 Add stream-level suppression to vibrate/audio services.
- Add new audio restriction layer to app-ops.  Restrictions add
additional constraints to audio operations at a stream-level.
Restrictions do not affect the persistable state, and are purely
additive: that is, they can only impose additional contstraints, not
enable something that has already been disabled.  Restrictions
also support a whitelisted set of exempt package names.

- Add new audio stream-level checks to app-ops.

- Implement a provisional OP_PLAY_AUDIO suppression to three
java entry points MediaPlayer, AudioTrack, & SoundPool.

- Enhance vibrator api to take stream information as an optional
hint - the constants correspond to AudioManager stream types.
OP_VIBRATE now supports the stream-level restriction check.

- Simplify Vibrator subclasses by adding default implementations
for two .vibrate calls.

- Migrate NoMan's zen-mode control to use the new app-ops
stream-level restriction mechanism.

Change-Id: Ifae8952647202f728cf1c73e881452660c704678
2014-03-19 15:32:51 -04:00
George Mount
31dc8f701f Merge "Fix ActionBar layout bug when INVISIBLE." 2014-03-19 14:25:23 +00:00
George Mount
14a9738330 Fix ActionBar layout bug when INVISIBLE.
ActionBar did not layout properly when INVISIBLE, but worked
when VISIBLE or GONE.

Change-Id: I30ca85377f3516c79174a35b65648d4ca68e927a
2014-03-18 15:48:00 -07:00
Ashish Sharma
0535a9f7aa Include elapsed realtime (nanos) of the event in the radio state change notifications.
Bug: 13247811
Change-Id: I3454aa159a68b9087b4762df947b41965b5a3941
2014-03-18 21:42:02 +00:00
Jeff Sharkey
432f755d44 am ac0f9ffd: am da07fe64: am eeb36c5c: am d88d8174: Merge "Null pointer exception in FileRotator.java"
* commit 'ac0f9ffda2a7e48d2d641654dafd11b8da39830a':
  Null pointer exception in FileRotator.java
2014-03-17 17:57:13 +00:00
Jeff Sharkey
da07fe64b0 am eeb36c5c: am d88d8174: Merge "Null pointer exception in FileRotator.java"
* commit 'eeb36c5cfc107fe9128490e9e127c2bca2d24e28':
  Null pointer exception in FileRotator.java
2014-03-17 16:39:13 +00:00
Yohei Yukawa
c05362b84c am 77943308: am fd2f8d43: am 51b921d0: DO NOT MERGE - Preserve the order of InputMethodManager method calls
* commit '77943308f5661636d85cb5e78188dbbc8f0e329e':
  DO NOT MERGE - Preserve the order of InputMethodManager method calls
2014-03-14 21:59:35 +00:00
Yohei Yukawa
77943308f5 am fd2f8d43: am 51b921d0: DO NOT MERGE - Preserve the order of InputMethodManager method calls
* commit 'fd2f8d43419d1f25ced8b2bac96407925dd4c471':
  DO NOT MERGE - Preserve the order of InputMethodManager method calls
2014-03-14 21:54:49 +00:00
Yohei Yukawa
51b921d0e3 DO NOT MERGE - Preserve the order of InputMethodManager method calls
Cherrypick of I0f8d33b0c77129f72581bc43e7f4fdc25469b520

This CL allows the Framework class InputMethodManager to behave
in a more deterministic way, that is to say, with an I/O barrier.

InputMethodManager#setAdditionalInputMethodSubtypes is internally
implemented as a RPC to the corresponding counterpart in
InputMethodManagerService. The problem here is that this RPC is
marked as "oneway". As a consequence, this public API call
returns immediately without waiting the additional subtypes are
actually added. This behavior is also not documented so far
unfortunately.

See the following demo code:

  Final InputMethodManager imm = ...;
  imm.setAdditionalInputMethodSubtypes(id, subTypes);
  Final List<InputMethodInfo> ims = imm.getInputMethodList();

Currently, it is not guaranteed that the InputMethodInfo returned
from #getInputMethodList reflects the result of the previous call
of #setAdditionalInputMethodSubtypes because of its undocumented
asynchronous nature.

With this CL, InputMethodManager#setAdditionalInputMethodSubtypes
behaves as if it has I/O barrier. This change should make it easy
for IME developers to use additional subtype mechanism.

BUG: 13033954
BUG: 13291370
Change-Id: I0455b176bfb3176c533ba3241881f05092b98abc
2014-03-14 11:52:09 +09:00
Paul Lawrence
493e3e7e65 Don't prompt at boot if we already did that when decrypting
vold will store password securely until KeyGuard requests it
and hands it on to KeyStore.

Needs matching vold changes from
 https://googleplex-android-review.git.corp.google.com/#/c/432050/

Bug: 12990752
Change-Id: I930ed8180cf0b8feb1e58db043d5fb6dff1bab20
2014-03-13 13:48:19 -07:00
Adam Powell
4a5c9e941a am 68ec033b: am 75958c29: am 3a153c0d: Merge "Fix a bug in submenu presenter priority handling" into klp-dev
* commit '68ec033b7c9ea28155bbb007b01d5dbce2239392':
  Fix a bug in submenu presenter priority handling
2014-03-13 18:02:08 +00:00
Dianne Hackborn
08fc3a7fc2 Merge "Fix some uid issues in battery stats." 2014-03-13 17:04:54 +00:00
Dianne Hackborn
bbb7472b8e Fix some uid issues in battery stats.
Change-Id: I9f7773568ff12603d51b26d50d758add09bedbb2
2014-03-13 09:50:24 -07:00
Mikael Gullstrand
bbf1861fdd Null pointer exception in FileRotator.java
Sometimes a null pointer exception is thrown when examining files
managed by the file rotator.

The logs from the test show that the Wifi state is changed a large
number of times. On every state change, a write operation is
initiated on the file system. This will eventually result in out
of memory and the call to mBasePath.list() in the maybeRotate(...)
method in FileRotator.java will return null so the iteration will
throw a NullPointerException.

Change-Id: I5d5980d9593bc9ec75281169ca27ee591809903f
2014-03-13 17:25:01 +01:00
Kenny Guy
4979ff9f28 Merge "Show notifications from related users." 2014-03-13 11:57:55 +00:00
Adam Powell
68ec033b7c am 75958c29: am 3a153c0d: Merge "Fix a bug in submenu presenter priority handling" into klp-dev
* commit '75958c298477a3d1e556c4fe36e516b9e828c311':
  Fix a bug in submenu presenter priority handling
2014-03-13 10:01:15 +00:00
Yohei Yukawa
de69575dd1 Merge "Preserve the order of InputMethodManager method calls" 2014-03-12 22:26:31 +00:00
Justin Koh
c8dbd29fc9 am c65caed6: am c48701a1: am 641d8aff: Merge "Fix possible invalid pointer index in swipe dismiss." into klp-modular-dev
* commit 'c65caed6dabe9eed3551c412427df81cd881496a':
  Fix possible invalid pointer index in swipe dismiss.
2014-03-12 19:57:14 +00:00
Kenny Guy
3a7c4a5669 Show notifications from related users.
When filtering notifications for user include those for users that
are related to the current user.
Pipe through user id so we know which user the notification is for.

Change-Id: I4e2657c23bd7b611d450be5a1f9457824bc062cb
2014-03-12 19:51:03 +00:00
Justin Koh
c48701a134 am 641d8aff: Merge "Fix possible invalid pointer index in swipe dismiss." into klp-modular-dev
* commit '641d8aff87cbb9ed5e84ce849e0da3d3962b5eb3':
  Fix possible invalid pointer index in swipe dismiss.
2014-03-12 00:47:20 +00:00
Justin Koh
df4ee5c8ac Fix possible invalid pointer index in swipe dismiss.
Fix possible invalid pointer index in swipe dismiss: exit out if the pointer
index is -1. Also allow user to cancel this if in swipe mode.

Change-Id: I0f623ced0287679be8dd5c93ab6c67504b82fe9b
2014-03-11 16:27:25 -07:00
Dianne Hackborn
e5167ca61e Reduce wake lock noise in battery history.
When the work source of a wake lock was changed, this would
cause the old wake lock to be released in battery stats before
the new one was acquired (the power manager would correctly
keep holding the associated wake lock).  This resulted in a
pointless entry in the battery history showing the last wake
lock being released and a new one acquired.

This change adds a new path in to battery stats to report
when a wake lock has changed, allowing it to acquire the
new wake locks first before the old ones, so it can't drop
down to zero wake locks.  This also provides better timing
information, as the same current time can be used for both
operations.

In addition, added a new kind of history entry for the
current time, so you can tell when in actual world clock
time the battery data is happening.

Change-Id: Ibbf2eed83bb93f31f60267889b7bc5b9e71e355f
2014-03-11 10:02:40 -07:00
Amith Yamasani
724cc1f04f Merge "Allow related users to show activities on primary user" 2014-03-10 21:36:25 +00:00
Benoit Goby
6835033af4 am c6f0b54d: Merge "Add CAP_BLOCK_SUSPEND to system server" into klp-modular-dev
* commit 'c6f0b54d695b49966a13bb196800a985ac6ce212':
  Add CAP_BLOCK_SUSPEND to system server
2014-03-10 19:02:54 +00:00
Adam Powell
190909f2c1 Fix a bug in submenu presenter priority handling
Now that overflow menus and the PhoneWindow-level ListMenuPresenter
can coexist, make sure that ListMenuPresenter handles submenus spawned
by itself. Introduce an internal API for menus to prefer a specific
presenter when performing item actions.

Bug 11979407

Change-Id: Id0b8fcbb8b310cbb3a63a1e5ea7a89de5d53f86f
2014-03-10 10:30:59 -07:00
Paul Lawrence
2bc6857532 Merge "Clean up a few minor issues" 2014-03-10 16:41:22 +00:00
Amith Yamasani
734983fff3 Allow related users to show activities on primary user
Make ActivityManager and WindowManager understand related users.

Task stack will now contain interleaved tasks for related users,
but still group regular users separately from groups of related users.

InputMethodManagerService permits related users to invoke IME and receive
key events.

Change-Id: I3bd87b32aec69c3f8d470c8b29b144f4e849c808
2014-03-07 17:41:24 -08:00
Benoit Goby
a26d08e612 Add CAP_BLOCK_SUSPEND to system server
With linux 3.5 and above, CAP_BLOCK_SUSPEND is needed to take a
suspend blocker.

CAP_BLOCK_SUSPEND has aleady been added in master.

Change-Id: Ibd4b1f8498c3c4a7b69ea9fc68311546a8f0ecda
2014-03-08 00:17:43 +00:00
Adam Powell
f175b19aaa Merge "Fix a bug where OnTouchListeners in action views could be removed" into klp-dev 2014-03-07 23:28:19 +00:00
Dianne Hackborn
c51cf03cf2 Start recording wakeup reasons in battery history.
Depends on a modification to libsuspend so that we can get
a callback each time the device wakes up, to read the current
wakeup reasons from the kernel.  These are then stuffed in
to a new field in the battery history.

Also add new dump options --history-start and --charged
to better control what is dumped.

Finally the alarm manager uses a "*walarm*" tag for history
item wake locks that are coming from a wakeup alarm.

Change-Id: I457571973d5b2b5fdc4e4b63ab16275db20d7edd
2014-03-07 15:18:45 -08:00
Jeff Brown
71c8fb92a1 am 2b27ef97: am c969450a: am 840c8474: Merge "Add config_supportAutoRotation." into klp-modular-dev
* commit '2b27ef979dba3808cdae6dce32fe27b59197e34c':
  Add config_supportAutoRotation.
2014-03-07 19:29:48 +00:00
Jeff Brown
c969450acd am 840c8474: Merge "Add config_supportAutoRotation." into klp-modular-dev
* commit '840c84749a6066b436db4dc94c3e3929a8440575':
  Add config_supportAutoRotation.
2014-03-07 10:43:52 +00:00
Yohei Yukawa
ae90d762c3 Merge "Introduce InputMethodSubtypeArray for memory efficient IPCs" 2014-03-07 08:27:23 +00:00