Commit Graph

3133 Commits

Author SHA1 Message Date
Svetoslav
c6d1c345f4 Runtime permissions: per user permission tracking.
Before all permissions were granted at install time at once, so the user
was persented with an all or nothing choice. In the new runtime permissions
model all dangarous permissions (nomal are always granted and signature
one are granted if signatures match) are not granted at install time and
the app can request them as necessary at runtime.

Before, all granted permission to an app were identical for all users as
granting is performed at install time. However, the new runtime model
allows the same app running under two different users to have different
runtime permission grants. This change refactors the permissions book
keeping in the package manager to enable per user permission tracking.

The change also adds the app facing APIs for requesting runtime permissions.

Change-Id: Icbf2fc2ced15c42ca206c335996206bd1a4a4be5
2015-03-23 18:50:35 -07:00
Wale Ogunwale
e7666f9e45 Merge "Default ActivityInfo.resizeable to false for all SDK versions." 2015-03-23 22:00:01 +00:00
Alan Viverette
0ef59ac0e5 Update DatePicker and CalendarView to latest Material spec
Bug: 19431364
Change-Id: If364a051a5208d170495de4182e46b32c7560e08
2015-03-23 13:13:25 -07:00
Casey Ho
3daef246bd Merge "Javadoc for ACTION_SCREEN_<ON|OFF> to indicate they cannot be registered in the manifest." 2015-03-20 21:05:04 +00:00
Wale Ogunwale
abfcc22ddf Default ActivityInfo.resizeable to false for all SDK versions.
Bug: 19347452
Bug: 19865400
Change-Id: I2afbcdb9c876c756b14068efc750093057f0b865
2015-03-20 11:32:20 -07:00
Alex Klyubin
160a253d48 am d71f548f: am 4177b8cb: Merge "Add app-level usesCleartextTraffic manifest attribute."
* commit 'd71f548f4803f0696af7de9a2989673cfd83800f':
  Add app-level usesCleartextTraffic manifest attribute.
2015-03-19 16:43:52 +00:00
Casey Ho
dbf6785c67 Javadoc for ACTION_SCREEN_<ON|OFF> to indicate they cannot be registered in the manifest.
Change-Id: Ic97a36498628f7f249b6776df455e01aaa995ae4
2015-03-18 20:02:25 -07:00
Alan Viverette
4a357cd2e5 Replace usages of deprecated Resources.getColor() and getColorStateList()
Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
2015-03-18 18:37:18 -07:00
James Cook
f2560e62cf Merge "Improve undo support for text entered with IME" 2015-03-18 21:39:03 +00:00
James Cook
d202668670 Improve undo support for text entered with IME
Use span properties to detect:
* Composing text - don't record undo operations
* Completing a composition - record an insert undo operation
* Canceling a composition - don't record

Save the composition state on parcel/unparcel.

Stop using begin/end batch edit to try to detect when a TextWatcher
is modifying the text. IMEs trigger multiple InputFilter passes in
a single batch edit. Use SpannableStringBuilder to determine when
we're in a TextWatcher callback because it is the authority on that
state.

Fix a bug in undo manager where it doesn't forget undos correctly if
there are more than one in the stack.

Bug: 19332904
Change-Id: Iaa9b0b2a7bf6683302cc85e7616e5d5fcc9fa202
2015-03-18 14:36:41 -07:00
Alan Viverette
dd0d4b7579 Merge "Enable/disable hardware rendering on windows by application tag" 2015-03-18 21:32:19 +00:00
Alan Viverette
9b0ab65ed4 Enable/disable hardware rendering on windows by application tag
Previously, hardware rendering cannot be enabled or disabled
on windows created without a parent activity (e.g. by services)
by setting the <application> tag, "android:hardwareAccelerated"
in AndroidManifest.xml. It's enabled by default in Android L
from the commit, 5e1565ead6.
This patch provides a way of setting hardware rendering for
that case.

Change-Id: I60ee9566e99db39cd661fe6f196f43c3968b311a
Signed-off-by: Dohyun Lee <dohyun.lee@lge.com>
2015-03-18 14:21:04 -07:00
Ed Heyl
07459a3617 Merge "Fix build: Revert "Enable/disable hardware rendering on windows by application tag"" 2015-03-18 20:40:47 +00:00
Ed Heyl
1445469b9e Fix build: Revert "Enable/disable hardware rendering on windows by application tag"
This reverts commit ae114d2eb4.

Change-Id: I5400c9aa121491164e8739892408c377b99f3980
2015-03-18 20:39:37 +00:00
Alan Viverette
78d9de97a6 Merge "Enable/disable hardware rendering on windows by application tag" 2015-03-18 20:01:50 +00:00
Alan Viverette
ae114d2eb4 Enable/disable hardware rendering on windows by application tag
Previously, hardware rendering cannot be enabled or disabled
on windows created without a parent activity (e.g. by services)
by setting the <application> tag, "android:hardwareAccelerated"
in AndroidManifest.xml. It's enabled by default in Android L
from the commit, 5e1565ead6.
This patch provides a way of setting hardware rendering for
that case.

Change-Id: I08ce58a8644970a2a18407e83ad317a72a2dad10
Signed-off-by: Dohyun Lee <dohyun.lee@lge.com>
2015-03-18 12:43:08 -07:00
John Spurlock
a212e6b5b1 Merge "Update package manager documentation." 2015-03-18 19:23:17 +00:00
Alex Klyubin
01a959d60a Add app-level usesCleartextTraffic manifest attribute.
The attribute declares whether the app intends to use cleartext
network traffic (e.g., HTTP, WebSockets, XMPP, SMTP, IMAP -- without
TLS or STARTTLS). The default value is true. If set to false, the app
declares that it does not intend to use cleartext network traffic. In
this case the app requests the platform, tooling, and third-party
libraries to prevent it from using cleartext traffic. The danger of
cleartext network traffic is that its confidentiality, authenticity,
and integrity are not guaranteed.

This feature is designed to help apps which care about security of
data exchanged over the network. These apps can accidentally
regress/downgrade to using cleartext network communications. This
typically happens when the server the app communicates with all of a
sudden tells it to use cleartext communications (e.g, HTTP URL
instead of an HTTPS URL) or when one of the components of the app gets
updated and regresses to cleartext communications without the
developer noticing.

In general, the prevention measures are on best effort basis. It's
impossible to automatically prevent all instances of cleartext
traffic. For example, an app bent on bypassing restrictions could
perform low-level network I/O with unusual TCP packet fragmentation,
or could use a custom application-level protocol.

The expectation is that most apps use libraries for network
communications and these libraries over time will start to honor this
flag, thus increasing the protections offered by it.

Bug: 19215516
Change-Id: I8700d51ddbc5d528faa4b6a5fa5bc9551ad02d13
2015-03-18 10:46:56 -07:00
John Spurlock
38e6425bb4 Update package manager documentation.
Out lists are required to be non null.

Change-Id: I87b586a90f9f221bbea6f6f18135bfcdd65680c2
2015-03-18 12:09:32 -04:00
Christopher Tate
6597e3435f Notification listener backup & restore
We now back up & restore the set of enabled notification listeners.  Post-
restore, a listener that had been enabled on the ancestral device will be
enabled on the current device as soon as it's installed, matching the
user's previous configuration.  After this has happened the enable/disable
state for that app is not "sticky"; disabling it again will work as
expected.

The infrastructure for accomplishing this is general: it can be leveraged
by any ManagedServices derivative.  There's a bit of extra wiring in the
settings provider to support the restore-time information flow as well.
This is because ManagedServices -- like many other parts of the system --
monitors writes to the settings provider and does work in response to new
writes of the elements that it cares about.  Unfortunately this means that
there is no way to use the BackupAgent's restoreFinished() hook to post-
process the restored data: by the time it is run, the ManagedService's
observers have already executed and culled any unknown components from
the description that was just pushed into settings.

As of this patch, the settings provider's restore logic knows that a
particular settings element will require a message to interested observers
about the restore-driven change.  The message is delivered as a broadcast,
and is sent after the new value has been committed to the settings db.
Adding other system ManagedService handling that parallels this will only
require adding a new corresponding entry to the table of individual settings
for which the relevant "this settings element is being restored" broadcast
is sent, found in SettingsHelper.

(It isn't sent for all settings elements because very few settings elements
have semantics that require it; 3rd party code won't be running yet during
platform restore anyway; and sending up to hundreds of broadcasts during
setup & restore is far from ideal.)

Bug 19254153

Change-Id: Ib8268c6cb273862a3ee089d2764f3bff4a299103
2015-03-16 16:24:28 -07:00
Eric Laurent
aff57b7519 Merge "broadcast radio API" 2015-03-16 18:30:23 +00:00
Nicolas Prevot
8458e531bf Merge "Remove the owner userid of cross-profile intent filters." 2015-03-16 11:25:51 +00:00
Eric Laurent
2035ac85f6 broadcast radio API
Initial implementation of system APIs for broadcast
radio framework. Added manager and interfaces to control
a broadcast radio function exposed by the radio HAL.

- RadioManager: contains data structures and definitions as well as
top level API for feature discovery and tuner interface instantiation.
- RadioTuner: interface to control a broadcast radio tuner.
- RadioModule: framework component implementing the RadioTuner interface
and controlling a HW radio module via the radio HAL.
- RadioMetadata: representation of radio meta data (Station name, PTY,
song title, artwork, etc...) communicated by the framework to the client.

Change-Id: Iee42a185c694503e25f0b2dcfa417d88f5e9549b
2015-03-13 15:34:50 -07:00
Dianne Hackborn
a83ce1dd2a More work on collecting assist data.
Optimize parceling of AssistData (which is now renamed to
AssistStructure) by pooling duplicated class name strings.

Change text associated with a view node to a CharSequence,
so styling information comes along.

Include global text attributes -- size, colors, etc.

Introduce a new AssistContent structure, which allows us
to propagate information about the intent and data the
activity is looking at.  This further allows us to propagate
permission grants, so the assistant can dig in to that data.
The default implementation propagates the base intent of an
activity, so if for example you bring up the assistant while
doing a share the assistant itself has the same information
and access that was given to the share activity (so it could
for example share it in another way if it wanted to).

Did some optimization of loading PersistableBundle from xml,
to avoid duplicating hash maps and such.

Changed how we dispatch ACTION_ASSIST to no longer include
the more detailed AssistStructure (and new AssistContent)
data when launching; now the example code that intercepts
that needs to be sure to ask for assist data when it starts
its session.  This is more like it will finally be, and allows
us to get to the UI more quickly.

Change-Id: I88420a55761bf48d34ce3013e81bd96a0e087637
2015-03-12 17:07:51 -07:00
Fyodor Kupolov
7487657ee9 Extracted a separate class to run dexopt on packages
performDexOptLibsLI and related methods were extracted to PackageDexOptimizer
class. Minor refactoring of PackageManagerService.

This is a non-functional change. It should simplify further work to allow
storing OAT files inside package dir.

(cherry picked from commit eeea67b8c3)

Change-Id: I3494a2da70605362bb6fb4625ffbee1cbe1cd457
2015-03-11 16:03:41 -07:00
Alan Viverette
93795053da Make TypedArray and LayoutInflater exceptions more useful
Include unresolved TypedValue data in TypedArray exceptions, wrap all
LayoutInflater exceptions with the parser position.

Bug: 19658760
Change-Id: I8965bdc4d0c58c082cb7129c3b692a3e5418cfdb
2015-03-09 15:32:50 -07:00
Tor Norbye
1c2bf03d10 Annotate return values with @CheckReturn
Change-Id: Icd8fb6adb591ccd7f35f2336ae716b198abf69c5
2015-03-07 20:49:18 -08:00
Andreas Gampe
3aa2d01752 am 3f74f638: am 55966006: am 7a4cb563: Merge "Frameworks/base: Remove unnecessary Pattern instance"
* commit '3f74f6386a15d09f27dbc81edd8dd2c13e298d73':
  Frameworks/base: Remove unnecessary Pattern instance
2015-03-08 00:17:54 +00:00
Andreas Gampe
5596600697 am 7a4cb563: Merge "Frameworks/base: Remove unnecessary Pattern instance"
* commit '7a4cb563a29f05658760739d3bc2e70bd6342174':
  Frameworks/base: Remove unnecessary Pattern instance
2015-03-07 17:13:16 +00:00
Andreas Gampe
055678b5fe Frameworks/base: Remove unnecessary Pattern instance
Using a static Pattern in UriMatcher prevents compile-time
initialization.

It is also not efficient, as String.split has a fast path for simple
splits.

Bug: 19542228

Change-Id: Ie9e5bfe6da04c6d05ec10b1426d0cd136ef46ef2
2015-03-07 00:19:01 +00:00
Tor Norbye
80756e3888 Annotate ARGB integer parameters with @ColorInt
Change-Id: I307f72a382272cf18ddb6b07d9fcb81228568d9a
2015-03-05 16:34:12 -08:00
Nicolas Prevot
4b8d582151 Remove the owner userid of cross-profile intent filters.
The owner user id was used to identify in which user an app had set
a cross-profile intent filter. But it's not really necessary.

BUG:19505190

Change-Id: Iacc49d31c95e34efee1895e5fbe7224277dbc493
2015-03-05 15:28:54 +00:00
James Cook
c1bce3de90 Merge "Fix crash in UndoManager after parceling TextView" 2015-03-02 22:43:51 +00:00
James Cook
f143ace3aa Fix crash in UndoManager after parceling TextView
UndoOwner maintains a manual reference count of the number of undo operations
it is associated with, but this count is not restored (and hence becomes zero)
when UndoManager is parceled and unparceled. This can cause the count to
underflow on subsequent text editing.

A test for this will land separately in CTS.

Bug: 19568283
Change-Id: Ic50890828db9679c7cef805388957d66dc75422d
2015-03-02 13:27:51 -08:00
John Spurlock
7b91c55b3f Merge "Remove unused imports in frameworks/base." 2015-03-02 20:43:50 +00:00
Scott Kennedy
9f78f6528f Mark arg and extras @Nullable in ContentProvider#call()
Change-Id: I431b01323fe76c744520c72661d30f6b9cb6b7f1
2015-03-01 15:29:58 -08:00
John Spurlock
08c7116ab9 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
James Cook
7af589995f Merge "Reland: Add basic support for Ctrl-Z to editable TextViews" 2015-02-27 20:44:45 +00:00
Alan Viverette
228fd600ce Merge "Implement landscape layout for time picker dialog" 2015-02-27 18:13:54 +00:00
James Cook
f59152cf00 Reland: Add basic support for Ctrl-Z to editable TextViews
Reland 9201e79783 which was reverted in
c8f08e07a4.

Original description:
* Add an UndoManager to the Editor for each editable TextView
* Record operations as being owned by that Editor
* Parcel the undo state
* Wire hardware keyboard shortcuts Ctrl-Z for undo and Ctrl-Shift-Z
  for redo into TextView shortcut handling.
* Expose IDs for "undo" and "redo" for symmetry with cut/copy/paste.

Additional fix:
* Ensure each UndoOwner always has a valid mManager, even after the
  UndoManager is parceled and restored.

Bug: 19332904
Bug: 19505388
Change-Id: Iad4476e6e9ca952281e69bf22c07cca915dfa7bd
2015-02-27 10:04:08 -08:00
Fyodor Kupolov
8b8423e0c9 Merge "Extracted a separate class to run dexopt on packages" 2015-02-26 17:51:31 +00:00
Alan Viverette
62c79e9a64 Implement landscape layout for time picker dialog
Adds support overriding default alert dialog panel elements by including
them in the dialog's custom content view, but no public API (yet!) since
the panel IDs have never been public. Some minor cleanup and refactoring
in TimePickerDialog. Removes Holo styles for "clock" and "calendar" style
pickers since they are new in Material. If the new styles are used against
Holo they will match Material but with Holo primary/accent colors.

Also implements themed color state lists to resolve TODOs in both time
and date pickers.

Bug: 19431361
Change-Id: I095fd8d653e02d9e5d20d66611432a08a7a5685e
2015-02-26 09:47:10 -08:00
Jeff Brown
6e53931f49 Add Context.getSystemService(Class<?>).
Added an overload of getSystemService() that takes a class instead of a
service name to eliminate the extra cast and provide more type safety.

Cleaned up docs.

Removed the default constructor of BatteryManager which should not have
existed.

Change-Id: I9da46b20641fc83ecd3342560e5b94cb721f289c
2015-02-25 17:04:13 -08:00
Fyodor Kupolov
eeea67b8c3 Extracted a separate class to run dexopt on packages
performDexOptLibsLI and related methods were extracted to PackageDexOptimizer
class. Minor refactoring of PackageManagerService.

This is a non-functional change. It should simplify further work to allow
storing OAT files inside package dir.

Change-Id: I3494a2da70605362bb6fb4625ffbee1cbe1cd457
2015-02-25 10:00:51 -08:00
James Cook
8ee1d64c0a Merge "Change UndoManager mOwners from HashMap to ArrayMap" 2015-02-24 14:55:51 +00:00
Narayan Kamath
419389c52a am fd335f84: am 948682d1: am 6e208cdd: Merge "Remove wrong javadoc comment"
* commit 'fd335f8467259410c0a55733331e10531141e76e':
  Remove wrong javadoc comment
2015-02-24 10:28:12 +00:00
Narayan Kamath
948682d15f am 6e208cdd: Merge "Remove wrong javadoc comment"
* commit '6e208cddad3315c4e38accdb801908b2b9b5cbbd':
  Remove wrong javadoc comment
2015-02-24 10:11:52 +00:00
Narayan Kamath
6e208cddad Merge "Remove wrong javadoc comment" 2015-02-24 10:04:33 +00:00
James Cook
761a4b3335 Change UndoManager mOwners from HashMap to ArrayMap
The number of undo operation owners is small (and usually one),
so save memory by switching to ArrayMap.

Bug: 19332904
Change-Id: Ic32cd49c292db2eaab1739cea8e8e518e68bd826
2015-02-23 16:20:16 -08:00
Mike Lockwood
b673770f71 Add MIDI Manager API tweaks:
- Change the package name from android.midi to android.media.midi

- Add option for specifying a Handler for DeviceCallback notifications

Change-Id: Ia9e9817a651c06299f4e02ee1da3c9666ff64cb9
2015-02-23 14:32:23 -08:00