3050 Commits

Author SHA1 Message Date
Yohei Yukawa
b7b7907fb5 Allow IMEs to start/stop receiving onUpdateCursor callback
This CL introduces an API which allows IMEs to start/stop
receiving onUpdateCursor callback upon their request.

BUG: 13388665
Change-Id: I987326872def181dda5d9d701b762f088e0d9c39
2014-04-04 04:34:44 +09:00
Alan Viverette
b325345ef0 Merge "Switch framework Holo references to Quantum.Light" 2014-04-02 22:15:16 +00:00
Kenny Guy
f4824a0688 Fix issue with not allowing activities for current user.
Change-Id: Ic2e30c3f4990a03aac9801ee9bf5f270a5e90ef8
2014-04-02 19:17:41 +01:00
Kenny Guy
1ccace916c Merge "Rename related users to profiles." 2014-04-02 13:06:28 +00:00
Kenny Guy
2a764949c9 Rename related users to profiles.
Rename the related user concept as profiles.
When returning profiles of a user include the
user as a profile of itself.

Change-Id: Id5d4f29017b7ca6844632ce643f10331ad733e1d
2014-04-02 13:44:50 +01:00
Narayan Kamath
b69bb44558 resolved conflicts for merge of 71ab4f4f to master
Change-Id: I888c231f7579523e12fbd68f820f0775019e51e0
2014-04-02 11:52:07 +01:00
Narayan Kamath
71ab4f4f48 am ea9e5eca: am 17b1b8fe: Merge "Move zygote startup logic to the frameworks."
* commit 'ea9e5ecac1e5240370f0e3f998b9c8b159ee9320':
  Move zygote startup logic to the frameworks.
2014-04-02 10:41:24 +00:00
Narayan Kamath
973b4663b0 Move zygote startup logic to the frameworks.
The Zygote class is now in com.android.internal.os. It is
responsible for the vast majority of work before and after
the call to fork(). It calls back into the Runtime via
the new dalvik.system.ZygoteHooks class to allow the Runtime
to perform pre fork cleanup and post fork initialization.

The native code in Zygote.cpp is a direct and straightforward
port of the existing code in art. Most differences are
superficial, for example :
- We use C style logging (ALOGE) instead of stream based
  logging.
- We call env->FatalError() instead of using LOG(FATAL)

Change-Id: Ia101fb2af12d23894fe57e4134d2bc6d142e5059
2014-04-02 10:18:43 +01:00
Alan Viverette
6259933ec9 Switch framework Holo references to Quantum.Light
Change-Id: Ib545a143f1959b6104adbc9d594dd626851d90b3
2014-04-01 14:57:39 -07:00
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