Commit Graph

3293 Commits

Author SHA1 Message Date
Craig Mautner
d4c819c002 am dd9ce628: Merge "Clean up activities and displays when done" into klp-modular-dev
* commit 'dd9ce6287eb9ccae8d527e6750c91b0bd47834fc':
  Clean up activities and displays when done
2014-02-25 18:49:37 +00:00
Craig Mautner
95da1087ed Clean up activities and displays when done
More maintenance fixes.

Fix bug 13157352.

Change-Id: Ic86d39a84452a1cf1dc1762cec517b419ad0a852
2014-02-25 10:40:18 -08:00
Craig Mautner
c004c9a87f am ffda4648: Merge "Fixes for ActivityView on home activity" into klp-modular-dev
* commit 'ffda464851008f750246f343c939d8003071cd23':
  Fixes for ActivityView on home activity
2014-02-22 07:33:24 +00:00
Craig Mautner
12ff7391a1 Fixes for ActivityView on home activity
When the ActivityView is part of the home activity special checks
must be made. Things like don't move the home stack to the back
when the ActivityView activity is resumed.

Fixes bug 13119389.

Change-Id: I3a6040c9824dfd4b8ee97d58d131b14a519b470a
2014-02-21 21:08:00 -08:00
Greg Hackmann
0cab896a98 resolved conflicts for merge of 9e413bf4 to klp-modular-dev-plus-aosp
Change-Id: Ibc41f0248235afca9546829e00b31003d09f4f7e
2014-02-21 16:35:52 -08:00
Greg Hackmann
bbfc08b3ab Merge changes I6d4fdada,Ia34899a4
* changes:
  open("/dev/rtc0") failure in AlarmManagerService.setTime() should be non-fatal
  Move time setting code from SystemClock to AlarmManagerService
2014-02-21 21:01:00 +00:00
Greg Hackmann
38bf514668 Move time setting code from SystemClock to AlarmManagerService
On devices using /dev/rtc instead of /dev/alarm, updating the
time-of-day clock and RTC are separate syscalls.  Hence the clock and
RTC could be left in inconsistent states if two threads called
SystemClock.setCurrentTimeMillis() simultaneously.

By moving this code into AlarmManagerService, we can put a global lock
around AlarmManagerService.setTime() and prevent the race condition.

Note that access to SystemClock.setCurrentTimeMillis() is now gated by
android.permission.SET_TIME, where before it was gated by filesystem
permissions (i.e., could the process write to /dev/alarm or /dev/rtc).

Change-Id: Ia34899a4cde983656305fd2ef466dfe908ed23c8
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2014-02-21 09:53:19 -08:00
Elliott Hughes
e253b514f4 am 29d60b95: am 8d41e653: Merge "Miscellaneous small documentation fixes."
* commit '29d60b95fa8019c0542f46551057c4d376bb8a7a':
  Miscellaneous small documentation fixes.
2014-02-21 17:28:51 +00:00
Elliott Hughes
8d41e653ba Merge "Miscellaneous small documentation fixes." 2014-02-21 17:19:21 +00:00
John Spurlock
01573b5011 am 469301f7: am 9dd87081: am 99873565: am ba231fca: Fix bad @links in PendingIntent.java
* commit '469301f7edf2201fdbac217fb0ae49652fa9466c':
  Fix bad @links in PendingIntent.java
2014-02-19 13:54:13 +00:00
John Spurlock
469301f7ed am 9dd87081: am 99873565: am ba231fca: Fix bad @links in PendingIntent.java
* commit '9dd87081e4bea9cd48db35fa82b3adeda37a34b5':
  Fix bad @links in PendingIntent.java
2014-02-19 13:51:00 +00:00
John Spurlock
9dd87081e4 am 99873565: am ba231fca: Fix bad @links in PendingIntent.java
* commit '998735652d2449e3ccbac7686b71bf40dca06e94':
  Fix bad @links in PendingIntent.java
2014-02-19 13:47:52 +00:00
John Spurlock
998735652d am ba231fca: Fix bad @links in PendingIntent.java
* commit 'ba231fcabfdf8f8bd72dbb428b8d35ae14a1a14d':
  Fix bad @links in PendingIntent.java
2014-02-19 13:44:14 +00:00
John Spurlock
ba231fcabf Fix bad @links in PendingIntent.java
Change-Id: I0a0014e17907f5cf16c3536a99e41efa9dafc963
2014-02-18 13:19:57 -05:00
Nick Kralevich
dd3d95f182 resolved conflicts for merge of 4ad93639 to klp-modular-dev-plus-aosp
Change-Id: I7ad222301ec0b863d48a1a9a839469436c385ea0
2014-02-12 11:05:59 -08:00
Jeff Brown
38f96e5020 Add support for injecting events into ActivityContainers. (DO NOT MERGE)
Modified ActivityView to inject touch events it receives back into
its activity container.  The container then injects the event into
the input system along with the display id of the underlying virtual
display.

Enhanced the input system to support concurrent dispatch of touch
events on multiple displays which is required for this to work.

Change-Id: I9cf1870db3be6f99a52ed9a1e3ceafe42c940093
2014-02-11 14:43:04 -08:00
Griff Hazen
dfcb0803bf Add local-only option to Notification (using flag)
Change-Id: Ic6d2f3b0cf06b58c0afa2af0fa6b245124424223
2014-02-11 12:00:00 -08:00
Griff Hazen
af745f6df7 Fix ActivityView layout bug.
Child TextureView should be positioned at origin of ActivityView,
with matching width and height. Previously, a container's padding
would be applied twice for example.

Change-Id: Ie0be10614a45aede4207abf986721385d04d8c76
2014-02-10 08:58:32 -08:00
Craig Mautner
4e5b67e695 Queue startActivity params if not yet ready.
If the ActivityView is not ready when the startActivity method is
called we now save the Intent until the ActivityView is ready.

Fixes bug 12821638.

Change-Id: I30ebb2699963f174cc2d5a3fb77a99ed33a4252b
2014-02-07 15:30:03 -08:00
Craig Mautner
df88d73092 Add IIntentSender to ActivityContainer.startActivity
PendingIntents and IntentSenders can now be launched. Still does not
work once the host activity has been paused and resumed.

Window manager TaskStacks now exist independently of Displays and app
windows persist after Displays are removed below them. Attaching the
stack to a new Display does not yet restore the windows to it.

Fixes bug 12747909.

Change-Id: I509007ee23fda400b353f483cf6ecce08177763b
2014-02-04 15:10:13 -08:00
Mårten Kongstad
48d22323ce Runtime resource overlay, iteration 2
Support any number of overlay packages. Support any target package.

UPDATED PACKAGE MATCHING
------------------------
In Runtime resource overlay, iteration 1, only a single overlay package
was considered. Package matching was based on file paths:
/vendor/overlay/system/framework-res.apk corresponded to
/system/framework-res.apk. Introduce a more flexible matching scheme
where any package is an overlay package if its manifest includes

    <overlay targetPackage="com.target.package"/>

For security reasons, an overlay package must fulfill certain criteria
to take effect: see below.

THE IDMAP TOOL AND IDMAP FILES
------------------------------
Idmap files are created by the 'idmap' binary; idmap files must be
present when loading packages. For the Android system, Zygote calls
'idmap' as part of the resource pre-loading. For application packages,
'idmap' is invoked via 'installd' during package installation (similar
to 'dexopt').

UPDATED FLOW
------------
The following is an outline of the start-up sequences for the Android
system and Android apps. Steps marked with '+' are introduced by this
commit.

Zygote initialization
   Initial AssetManager object created
+    idmap --scan creates idmaps for overlays targeting 'android', \
           stores list of overlays in /data/resource-cache/overlays.list
   AssetManager caches framework-res.apk
+  AssetManager caches overlay packages listed in overlays.list

Android boot
   New AssetManager's ResTable acquired
     AssetManager re-uses cached framework-res.apk
+    AssetManager re-uses cached 'android' overlays (if any)

App boot
   ActivityThread prepares AssetManager to load app.apk
+  ActivityThread prepares AssetManager to load app overlays (if any)
   New AssetManager's ResTable acquired as per Android boot

SECURITY
--------
Overlay packages are required to be pre-loaded (in /vendor/overlay).
These packages are trusted by definition. A future iteration of runtime
resource overlay may add support for downloaded overlays, which would
likely require target and overlay signatures match for the overlay to
be trusted.

LOOKUP PRIORITY
---------------
During resource lookup, packages are sequentially queried to provide a
best match, given the constraints of the current configuration. If any
package provide a better match than what has been found so far, it
replaces the previous match. The target package is always queried last.

When loading a package with more than one overlay, the order in which
the overlays are added become significant if several packages overlay
the same resource.

Had downloaded overlays been supported, the install time could have been
used to determine the load order. Regardless, for pre-installed
overlays, the install time is randomly determined by the order in which
the Package Manager locates the packages during initial boot. To support
a well-defined order, pre-installed overlay packages are expected to
define an additional 'priority' attribute in their <overlay> tags:

    <overlay targetPackage="com.target.package" priority="1234"/>

Pre-installed overlays are loaded in order of their priority attributes,
sorted in ascending order.

Assigning the same priority to several overlays targeting the same base
package leads to undefined behaviour. It is the responsibility of the
vendor to avoid this.

The following example shows the ResTable and PackageGroups after loading
an application and two overlays. The resource lookup framework will
query the packages in the order C, B, A.

        +------+------+-     -+------+------+
        | 0x01 |      |  ...  |      | 0x7f |
        +------+------+-     -+------+------+
            |                           |
        "android"                Target package A
                                        |
                       Pre-installed overlay B (priority 1)
                                        |
                       Pre-installed overlay C (priority 2)

Change-Id: If49c963149369b1957f7d2303b3dd27f669ed24e
2014-02-03 11:20:30 +01:00
Craig Mautner
34b73dfaa3 Cleanup after ActivityView
- Release Surface and VirtualDisplay when shutting down ActivityView.
- Shut down child stacks when relaunching parent activity.

Change-Id: I60314b2b43bd2da5406cf6ec871293b5baca157c
2014-01-15 17:47:51 -08:00
Narayan Kamath
909427d093 am f588d2df: am d0ec6d8c: am bc2a449a: am cb4d3ec1: Merge "Fix preference puts with "null" values."
* commit 'f588d2dff2ca6000fe02c5ac6e85f97133477767':
  Fix preference puts with "null" values.
2014-01-13 13:07:47 +00:00
Narayan Kamath
d0ec6d8c50 am bc2a449a: am cb4d3ec1: Merge "Fix preference puts with "null" values."
* commit 'bc2a449a615b30efb81a1a0082a1bb0db515d0f5':
  Fix preference puts with "null" values.
2014-01-13 05:01:44 -08:00
Narayan Kamath
cb4d3ec1ea Merge "Fix preference puts with "null" values." 2014-01-13 12:29:41 +00:00
Craig Mautner
4504de5d5a Implement ActivityView.
With an existing ActivityContainer a caller can now create an
ActivityView which consists of a new VirtualDisplay immediately
attached to the ActivityContainer.

Change-Id: Id70333dcbef55d524a87df8f8c92d72ca5579364
2014-01-10 10:54:55 -08:00
Craig Mautner
bd503a4e3a Allow for the possibility of null ActivityContainer
When BinderProxy is passed in as the IBinder for
getEnclosingActivityContainer the activity manager cannot turn it into
an ActivityRecord. This causes NPE in ActivityThread which is Not Good
(tm).

Allowing null to be returned when requesting an ActivityContainer and
handling it appropriately fixes this bug.

Fixes bug 12473669.

Change-Id: I6937636042f8853b3ddc2df40be010e7391e41a5
2014-01-10 10:16:43 -08:00
Craig Mautner
88bfc6ddc8 Merge "Extend stack management to other displays." into klp-modular-dev 2014-01-08 17:33:42 +00:00
Narayan Kamath
db47efd3f8 am 651807fc: am 3f589e5d: am 2842bd02: am de8c3cf1: Merge "AArch64: Use long for pointers in App/Backup"
* commit '651807fcd0b1012ea848efe5f67b4381d8ce6797':
  AArch64: Use long for pointers in App/Backup
2014-01-08 12:33:16 +00:00
Narayan Kamath
c6f429007c Fix preference puts with "null" values.
Null values were being written out as <null /> elements in the
XML prefs file (as expected). This allowed the getFoo() functions
to work correctly because they treated null values as missing mappings
but containsKey would fail.

bug: https://code.google.com/p/android/issues/detail?id=64563
Change-Id: I1f466d01db96bf26e208d4fed3a6f257228bea5d
2014-01-08 12:04:53 +00:00
Narayan Kamath
3f589e5d1e am 2842bd02: am de8c3cf1: Merge "AArch64: Use long for pointers in App/Backup"
* commit '2842bd021c11274720d6a10219538b536b7d2050':
  AArch64: Use long for pointers in App/Backup
2014-01-08 04:02:05 -08:00
Ashok Bhat
58b8b24256 AArch64: Use long for pointers in App/Backup
For storing pointers, long is used, as
native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: I7aee49dc26cf6c86af8f1d882e9cd1cc145a1977
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-08 11:54:01 +00:00
Ian Rogers
878df18c48 am 8dbfde50: am 0e16e3d7: am c2b50c10: am f11dee79: Merge "Add a call to registerAppInfo for the VMRuntime"
* commit '8dbfde504787a002de1074a5dfac7eea9d060a43':
  Add a call to registerAppInfo for the VMRuntime
2014-01-07 21:45:07 +00:00
Ian Rogers
0e16e3d7dd am c2b50c10: am f11dee79: Merge "Add a call to registerAppInfo for the VMRuntime"
* commit 'c2b50c10f0bf636562deba1d92ec7b54b13909de':
  Add a call to registerAppInfo for the VMRuntime
2014-01-07 13:38:44 -08:00
Craig Mautner
e0a3884cb6 Extend stack management to other displays.
- Abandon ActivityContainer.startActivity() in favor of
IActivityManager.startActivityAsUserInContainer().
- Modify Am to test starting an activity on a container.
- Create a DisplayContext as the base context if the activity token
is on a different display.
- Test for home display in more cases when manipulating home stack.
- Rename mDisplayInfos => mActivityDisplays.
- Create new method for moving task to front of stack regardless of
which display it is on.

Change-Id: I4fcb83ae844c5839ee3e2722229623d1a80ed921
2014-01-06 08:51:21 -08:00
Mark Doliner
9525f2a72e Miscellaneous small documentation fixes.
Most of these I noticed on my own. The change to docs/html/tools/testing/testing_ui.jd is mentioned in a bug report:
https://code.google.com/p/android/issues/detail?id=56324

Signed-off-by: Mark Doliner <markdoliner@google.com>
2014-01-03 19:15:36 +00:00
Dave Allison
24bafbc933 Add a call to registerAppInfo for the VMRuntime
This calls into the VMRuntime tells it where the
application directory is located.

Bug: 11539952
Change-Id: I20e0b8c63e459699a1bc9af435e65ae96f1e1e73
2013-12-18 17:01:37 -08:00
Craig Mautner
4a1cb22056 Pair ActivityStacks with Displays
- Introduce concept of ActivityStacks residing on Displays and able
to be decoupled and moved around.
- Add a new interface, IActivityContainer for clients to handle
ActivityStacks.
- Abandon ordering of stacks based on mStackState and instead use
ActivityDisplayInfo.stacks<ActivityStack> ordering.

Progress towards closing bug 12078972.

Change-Id: I7785b61c26dc17f432a4803eebee07c7415fcc1f
2013-12-18 15:08:15 -08:00
Kenny Root
e0b14ea70b am 31b9ec01: am 62d509d2: am 37c69fdd: Merge "Use java.util.Objects instead on internal API"
* commit '31b9ec01ff6087773cb35af6824a6422a0181afb':
  Use java.util.Objects instead on internal API
2013-12-13 22:23:33 +00:00
Kenny Root
62d509d24f am 37c69fdd: Merge "Use java.util.Objects instead on internal API"
* commit '37c69fdd826f3973966430adc1abfbefc19bc16e':
  Use java.util.Objects instead on internal API
2013-12-13 14:17:29 -08:00
Kenny Root
e6585b32ea Use java.util.Objects instead on internal API
Not needed since java.util.Objects implements all the needed
functionality.

Change-Id: Icd31d49a9801d1705427f028e9ac927d58e7d34c
2013-12-13 13:40:30 -08:00
Scott Main
5f41b262a5 am aec930b2: am f70d7b9a: am cf5ed42f: am df75bdcc: rewrite intent guide and add doc with intents supported by platform apps
* commit 'aec930b2c6c7e9ad2a7808a1636f7c0fae0164af':
  rewrite intent guide and add doc with intents supported by platform apps
2013-12-11 22:02:15 +00:00
Scott Main
f70d7b9ace am cf5ed42f: am df75bdcc: rewrite intent guide and add doc with intents supported by platform apps
* commit 'cf5ed42f0b5f2b3787da39d19e9716d6b244b9b5':
  rewrite intent guide and add doc with intents supported by platform apps
2013-12-10 17:04:57 -08:00
Scott Main
cf5ed42f0b am df75bdcc: rewrite intent guide and add doc with intents supported by platform apps
* commit 'df75bdcc5546112958a6a5834c1a7e060f88bc68':
  rewrite intent guide and add doc with intents supported by platform apps
2013-12-11 01:00:46 +00:00
Scott Main
df75bdcc55 rewrite intent guide and add doc with intents supported by platform apps
Change-Id: Ida7ccbc693e7635198fd368b9560b7843266c7cc
2013-12-10 15:53:37 -08:00
Mathieu Chartier
f2156ad2db am 6a58a2e7: am cb3ee4ed: am 3254260b: Merge "Update Dalvik process state through VMRuntime."
* commit '6a58a2e7e6d39180a130f3bff09aeb7afa6b1e3c':
  Update Dalvik process state through VMRuntime.
2013-12-10 02:30:45 +00:00
Mathieu Chartier
cb3ee4ed3e am 3254260b: Merge "Update Dalvik process state through VMRuntime."
* commit '3254260b8b55496468e2b897c76cadd9ecde508d':
  Update Dalvik process state through VMRuntime.
2013-12-09 18:24:29 -08:00
Mathieu Chartier
3254260b8b Merge "Update Dalvik process state through VMRuntime." 2013-12-10 02:18:06 +00:00
Craig Mautner
bdc748af8c DO NOT MERGE: Eliminate StackBox.
StackBox is too constraining. Adding size and position to TaskStacks
directly makes stack positioning and management more flexible and
prepares for ActivityView.

Change-Id: I33c6b4e1c23a5a8069fd507c160bcb34e4d287b2
2013-12-09 15:15:34 -08:00
Amith Yamasani
09e9cdcece DO NOT MERGE : Move some system services to their own sub package.
(Cherry pick from master)

As a next step they can be moved into separate directories to be
built as separate modules that may or may not be included in a
particular configuration.

Moves AppWidgetService, BackupManagerService, ClipboardService, DevicePolicyMS,
and WallpaperMS.

Change-Id: Idd92871c1828bdde81d85fe99a9c87a22d53169d
2013-12-09 15:14:41 -08:00