Commit Graph

3118 Commits

Author SHA1 Message Date
Christopher Tate
a2a0850de8 Add hidden API for querying available 'home' activities
To support improved home-app selection UX in Settings.

Bug 9958444

Change-Id: I106090784618bf7bea6fce28f4f9b9fb8480d310
2013-09-13 12:16:00 -07:00
Chet Haase
e850c973b0 Merge "Hide translucent activity conversion API" into klp-dev 2013-09-12 19:41:33 +00:00
Chet Haase
abd3d778e5 Hide translucent activity conversion API
This API and functionality is not yet completely baked. It's worth
thinking more about this mechanism before exposing it as public API.

Issue #10461415 KLP API Review: Activity convert to translucent

Change-Id: I94d986b62443b3bfa7a9a19807ecebe36bf57e07
2013-09-11 14:33:05 -07:00
Alexander Ray
7563d42331 Merge "Add consumer IR framework" into klp-dev 2013-09-11 19:05:38 +00:00
Dianne Hackborn
95d785346b Fix issue #10688644: Java crash in com.android.phone:
java.lang.SecurityException: Operation not allowed

There was a situation I wasn't taking into account -- components
declared by the system has a special ability to run in the processes
of other uids.  This means that if that code loaded into another
process tries to do anything needing an app op verification, it will
fail, because it will say it is calling as the system package name but
it is not actually coming from the system uid.

To fix this, we add a new Context.getOpPackageName() to go along-side
getBasePackageName().  This is a special call for use by all app ops
verification, which will be initialized with either the base package
name, the actual package name, or now the default package name of the
process if we are creating a context for system code being loaded into
a non-system process.

I had to update all of the code doing app ops checks to switch to this
method to get the calling package name.

Also improve the security exception throw to have a more descriptive
error message.

Change-Id: Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25
2013-09-11 09:59:47 -07:00
Erik Gilling
51e95df8f2 Add consumer IR framework
Change-Id: I786c00db0cce61ef75e4edc24e90f2cdcba6dbfb
2013-09-11 09:52:47 -07:00
Adam Skory
86d9c457de Merge "Revert services assist context in KitKat" into klp-dev 2013-09-11 11:27:50 +00:00
Adam Skory
7140a25f01 Revert services assist context in KitKat
Reverts extension to assist context API to query
foreground services for assist context data.

Also hides Intent.ACTION_VOICE_ASSIST because
nobody's actually using it yet.

Bug: 10461702
Change-Id: Idf6836adc659b434e11ebb2b98e8b814c94a7227
2013-09-11 12:04:58 +01:00
Jeff Brown
dc6fd0a20a Merge "Propagate input ANR reason to activity manager log." into klp-dev 2013-09-10 23:52:53 +00:00
Jeff Brown
bd181bb832 Propagate input ANR reason to activity manager log.
Make it a little easier to diagnose input dispatch timeouts by
providing the detailed reason as the ANR annotation in the log.

Bug: 10689184
Change-Id: Ie18fd9ad066b0673d1f57c030e027ad0085f4650
2013-09-10 16:44:24 -07:00
David Braun
b776122a8a Merge "Factor out read/write SMS settings seperate from send/receive." into klp-dev 2013-09-10 20:33:28 +00:00
David Braun
18966a8dd8 Factor out read/write SMS settings seperate from send/receive.
Change-Id: I161782b1508be433c910ec13c0b18e728bf7d2ba
2013-09-10 13:14:46 -07:00
Christopher Tate
4d0b9abae7 Merge "Fix clearApplicationUserData() to allow a null observer" into klp-dev 2013-09-09 21:26:50 +00:00
Christopher Tate
31b65f9aa1 Fix clearApplicationUserData() to allow a null observer
The services themselves already handle 'null' to mean "no observer";
it was just the non-AIDL marshalling code that wasn't doing the
right thing.

Bug 9588299

Change-Id: I99e26cd207f91e8060d9fc113aef90a106640b64
2013-09-09 14:17:27 -07:00
Dianne Hackborn
80213addda Merge "Fix issue #10671878: Proc stats needs to remove old data structures" into klp-dev 2013-09-09 20:37:02 +00:00
Dianne Hackborn
be4c1d74a7 Fix issue #10671878: Proc stats needs to remove old data structures
We now keep track of which process and service states are actively
in use, and remove any that are not in use during a commit.  The
activity manager needed to be tweaked to report this data, and ensure
it does not try to operate on one of these structures when not in
use.

Also some other fixes:

- We now keep track of process names associated with services, for
display in the UI.
- Keep track of total run time for each service, also for UI.
- The parceled format is more efficient, not storing duplicates of
process/package names, and writing times as ints when possible.
- Reduced commit period from 1 day to 12 hours, so that our UI can
be a little closer at its attempt to display the stats over 1 day.

Change-Id: Ifeda0ffe963a7b49d8eb2a3f6923f3a5e71a4e43
2013-09-09 09:49:52 -07:00
Tom O'Neill
365632e8ee Explain what warnIfCallingFromSystemProcess() is about
- Helps the next person to hit a bug like b/10621831

Change-Id: Id44dc57472516ec5f574d22d4c131ab9870648db
2013-09-09 09:34:58 -07:00
Jeff Sharkey
911d7f411f Provide calling package to ContentProviders.
The calling package is important for ContentProviders that want to
grant Uri permissions as a side effect of operations, so offer it
through a new API.  Validates the provided package against the
calling UID before returning.

Bug: 10626527
Change-Id: I7277880eebbd48444c024bcf5f69199133cd59e4
2013-09-06 08:08:18 -07:00
Dianne Hackborn
dfafaffe86 Merge "Fix issue #10387684: ArrayIndexOutOfBoundsException in ArrayMap.put" into klp-dev 2013-09-05 20:38:55 +00:00
Dianne Hackborn
f691359724 Fix issue #10387684: ArrayIndexOutOfBoundsException in ArrayMap.put
Locking of sSharedPrefs was bad -- it was using a per-context lock
instead of a static lock.

Change-Id: Ib261a40619c43f7ea2e686057c0702fb5461d843
2013-09-05 13:21:24 -07:00
Adam Powell
a73c3a5488 Merge "Add View#cancelPendingInputEvents API" into klp-dev 2013-09-05 19:37:51 +00:00
Chet Haase
e8222dddaf Change build version from KEY_LIME_PIE to KITKAT
Issue #10631619 Change build version to KitKat

Change-Id: I6ad13f6169ad74204078d36929479998b498ad8b
2013-09-05 08:44:33 -07:00
John Spurlock
322d77185d Revert "Re-@hide activity-level FLAG_IMMERSIVE and helpers."
This reverts commit 5e777f6685.

Change-Id: I6dc00f376cbbe34dafde3470d8e06c9123f81d8d
2013-09-05 02:39:46 +00:00
Adam Powell
1487466dc2 Add View#cancelPendingInputEvents API
This API allows an application to cancel deferred high-level input
events already in flight. It forms one tool of several to help apps
debounce input events and prevent things like multiple startActivity
calls, FragmentTransactions, etc. from executing when only one was
desired since it's otherwise not desirable for things like click
events to fire synchronously.

Change-Id: I60b12cd5350898065f0019d616e24d779eb8cff9
2013-09-05 00:55:20 +00:00
John Spurlock
5e777f6685 Re-@hide activity-level FLAG_IMMERSIVE and helpers.
Un-@hidden in api 18, but probably should not have been.

The framework currently takes no action based on the flag,
making the docs misleading.

Bug:10460791
Change-Id: If6cc8791a85710897c8fe77cf6682d1460e3416e
2013-09-04 15:28:50 +00:00
Alan Viverette
083199efed Merge "Update captioning APIs" into klp-dev 2013-08-30 21:34:43 +00:00
Alan Viverette
69ce69b0e1 Update captioning APIs
CaptioningManager is now a first-class service in Context and can
have listeners added to it to monitor changes.

BUG: 10260603, 10461210
Change-Id: I2df5b2997537bb343d902b7ace3343ad483f3717
2013-08-29 12:23:48 -07:00
Craig Mautner
ac738a25f8 Merge "Hide stackId from prying eyes." into klp-dev 2013-08-27 21:20:30 +00:00
Craig Mautner
2703052413 Hide stackId from prying eyes.
Member variable does not have to be publicly visible.

Fixes bug 10461556.

Change-Id: I9aeaf4f451738b1d6dc0289afb1deae6e8f7e5c2
2013-08-26 12:27:01 -07:00
John Spurlock
b06b8b0267 Merge "Improve transient bar transitions." into klp-dev 2013-08-21 13:36:36 +00:00
Christopher Tate
2f61f91491 Make "low ram device" a readonly system property
This lets components outside the Zygote / Android resource regime
know whether this is considered a "low ram" device.

Set the property [ro.config.low_ram] to "true" if the device is to be
considered low-ram.  Any other property string (or its absence) will
be interpreted as meaning this is a normal larger-ram device.  The
"true" string must be all lower case.

Bug 10131789

Change-Id: I15332d169b4aa4eaa0a6c1952787af0b03d23a6b
2013-08-20 14:35:56 -07:00
John Spurlock
5b9145bf99 Improve transient bar transitions.
1. If app clears transient flag w/ a gesture, the touch-outside
listener would always win, causing an unsightly hide + immediate
reshow.  Instead, give the app some time to clear the flag, then
perform a smooth transition in place.

2. When the transient bars are hidden, we do not know ahead of time
which background will be used on reshow (if transient bars are
revealed, the background is semi-transparent, if transient bars
are cleared, the background is opaque).  Window manager is responsible
for showing windows, but sysui is responsible for setting the view
background.  Therefore, we need some level of coordination between
the two in this case.  Introduce two new non-public sysui flags
that represent the window manager's request to reshow the hidden
bars, but do not reshow until sysui acknowledges (by clearing the flag).
This gives sysui whatever time is necessary to prepare itself for
reshow, avoiding unsightly blip from opaque -> transparent during
the enter animation.

3. When both system bars are hidden, any low-profile changes are
moot.  Avoid unsightly low-profile animations during bar reshow
by suppressing the flag in this case.

4. Improve transient bar home -> launcher transition by cancelling
the -> opaque animation.  This also fixes a bug where hitting
home from the transient bar would leave you with a semi-transparent
bar in a non-transient state.

Bug:10284800
Change-Id: I238210561d8d5f70c1a517283b986c9105a1ec75
2013-08-20 15:37:03 -04:00
Maggie Benthall
1cd230a552 Merge "Add methods for managing CAs to DevicePolicyManager(Service)" into klp-dev 2013-08-20 18:35:08 +00:00
Maggie Benthall
da51e68e58 Add methods for managing CAs to DevicePolicyManager(Service)
Guard install/uninstall by enforcing that the caller have the new system-only permission MANAGE_CA_CERTIFICATES.
Also include API methods for asking whether there are any User CA certs
installed, or if one by a particular name is installed in the keystore.

CA certs will be installed via KeyChain into the TrustedCertificateStore.

Bug: 8232670

Change-Id: I17b47a452e72eb4fe556dc6db823a46c6e854be8
2013-08-20 14:30:36 -04:00
Craig Mautner
007751276c Merge "Notify ViewRootImpl when it's safe to modify Canvas." into klp-dev 2013-08-19 23:13:47 +00:00
Craig Mautner
bc57cd1b24 Notify ViewRootImpl when it's safe to modify Canvas.
When Activity.convert{To|From}Translucent() is called the
ViewRootImpl is now notified when it is safe to convert the Canvas
from translucent to opaque and back to translucent. This will make
it possible to save resources when compositing opaque layers.

Fixes bug 10349536.

Change-Id: I7282aee1d54601fb00611d20be204bf164d873f6
2013-08-19 15:47:42 -07:00
Romain Guy
46bfc48110 Fix hardware layers lifecycle
Bug #10075732

Hardware layers could survive across EGL terminate events.

Change-Id: Ie8565d55cb29fe6625fa1584d695edfecd37ab5e
2013-08-16 18:38:29 -07:00
Jeff Sharkey
e0475c8287 Gracefully handle missing directories.
Bug: 10295932
Change-Id: I9d18682d0ba57bf7f77d043ee8dab286ee80ba2a
2013-08-15 12:04:37 -07:00
Alan Viverette
95a4609b90 Throw exception in FragmentManager when queuing to a destroyed activity
Change-Id: I0522cf27fd423070f7578c1c43c1f05a335810bf
2013-08-14 11:17:25 -07:00
Jeff Sharkey
998cfa2c63 Merge "API to discover granted Uri permissions." into klp-dev 2013-08-12 03:59:58 +00:00
Jeff Sharkey
08da7a1143 API to discover granted Uri permissions.
Now that granted Uri permissions can be persisted across reboots,
offer APIs to discover them. Returns incoming or outgoing grants
matching the requested flags and mask. Add helper method to discover
"open" documents using this new API and filtering for non-documents.

Require that callers own at least of the filtering packages to avoid
exposing all grants. Switch internal grant tracking to use ArrayMap.

Change-Id: I0a755f221d0d160b411f8d3cfc48279b64345733
2013-08-11 20:56:15 -07:00
Jeff Sharkey
6e14b22cfe Merge "APIs for multiple external storage devices." into klp-dev 2013-08-12 00:13:35 +00:00
Jeff Sharkey
1abdb71230 APIs for multiple external storage devices.
Provide developer APIs to discover application-specific paths on
secondary external storage devices.  Covers files, cache, and OBB
directories.  Apps will not have write access outside their package-
specific directories on secondary devices, so only primary storage is
exposed through Environment.

Creation of .nomedia files will be handled by FUSE daemon in future
change.

Change-Id: Ifcce6201a686d80269d7285adb597c008cf8fa7c
2013-08-11 17:07:44 -07:00
Geoffrey Borggaard
9b59e5aa9c Merge "Add a name to the DeviceOwner" into klp-dev 2013-08-09 20:27:26 +00:00
Geoffrey Borggaard
334c7e32d4 Add a name to the DeviceOwner
We will need to display the name of the device owner (the human
readable name of the institution) to the user.
"This device is managed by google.com"

Change-Id: Ic33b6530c19cb14a118245692697205de3911a58
2013-08-09 15:56:52 -04:00
Dianne Hackborn
8a0de58ece Get ProcessStats callable from other processes.
Also fix a bug where, when parceling the stats, we were
computing the final duration values too late.  We need to
do that before we write the long table.

Change-Id: Idb6c1ed95417448c56973fe5866bfb3570e525f4
2013-08-08 15:00:18 -07:00
Craig Mautner
bd6a6e6019 Use package CompatibilityInfo as default. DO NOT MERGE
Do not use CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO as default
if there is one for the package.

Partial fix for 10191318.

Change-Id: Ie218f0717398bb86e5c35066c8fe6a462b7d5273
2013-08-08 09:52:46 -07:00
Ben Murdoch
3650382175 Fix the build
Change-Id: If34523c4b25b3d60edc00b0f37b636bedfc756c2
2013-08-08 12:16:10 +01:00
Matt Casey
77ece7b192 Merge "Extend assist context to foreground services" 2013-08-08 09:33:08 +00:00
Jason Monk
602b232a06 Add PAC File support for proxy configuration
PAC (Proxy auto-config) files contain a single javascript function,
FindProxyForURL(url, host).  It gets called to determine what proxy should be
used for a specific request.

This adds PAC support to the system.  The ProxyProperties has been modified
to hold the PAC file when one is present.  The Proxy method
setHttpProxySystemProperty has been modified to insert a PacProxySelector
as the default ProxySelector when it is required.  This new ProxySelector
makes calls to the ConnectivityService to parse the PAC file.

The ConnectivityService and the WifiConfigStore have been modified to support
saving the extra PAC file data.

The ConnectivityService now has a class attached (PacProxyNative) that
interfaces to the native calls for PAC files.  The parsing of the PAC file
is handled by libpac (which is being added to external/) which utilizes
libv8 to parse the javascript.

As a fallback to applications that don't use the java ProxySelector,  the proxy
is setup to point to a local proxy server that will handle the pac parsing.

bug:10182711
Change-Id: I5eb8df893c632fd3e1b732385cb7720ad646f401
2013-08-07 21:01:39 -04:00