3571 Commits

Author SHA1 Message Date
Dianne Hackborn
5232271a41 Fix issue #17146552: system anr
Add a safe path for Slog.wtf that doesn't acquire an activity manager
lock or block in any way.

Change-Id: I8fef8251a0cb85081442cae55d85063944248d15
2014-08-26 22:55:47 -07:00
Adam Powell
4902a89103 Merge "Adjust toolbar/action bar title handling" into lmp-dev 2014-08-27 01:31:18 +00:00
Adam Powell
af2d85973e Adjust toolbar/action bar title handling
Treat activity title changes as window title changes when propagating
to action bars. This gives it lower priority if a "hard" title has
been set. Fix some lifecycle handling around this that previously
resulted in multiple calls.

Automatically detect the starting display options for a
ToolbarWidgetWrapper if we're not grabbing them from styles. This
prevents setTitle and friends from going totally out to lunch if
constructed around a Toolbar with no starting title.

Bug 17138048

Change-Id: I9f58a3d222546745c8aa873e996b8f0d52a0ad21
2014-08-26 18:28:17 -07:00
Paul Jensen
5b62d263a7 Merge "Implement VpnConfig.addAllowedApplication()." into lmp-dev 2014-08-26 20:09:00 +00:00
Dianne Hackborn
4610545dd2 Merge "Fix issue #16311398: Limit number of documents a process can open" into lmp-dev 2014-08-26 19:56:26 +00:00
Calin Juravle
d68f83cc47 Merge "Pass vmSafeMode (manifest attribute) to installd." into lmp-dev 2014-08-26 19:10:25 +00:00
Dianne Hackborn
89ad456ea4 Fix issue #16311398: Limit number of documents a process can open
In application processes, monitor for when we start getting close
to the Dalvik heap limit, and ask the activity manager to try to
prune old activity instances in that case.

Add an explicit API for apps to ask that they have their own
activity instances cleaned up, if they want.

Fix some bugs in launching activities that were not correctly
applying the "multi task" behavior in the appropriate situations
of document-centric recents.

Clean up the activity manager's process removal code to all share
a common path.

Add a new "Spam" option to ActivityTests, which continually creates
new tasks, checking that the activity manager will now prune old
tasks rather than letting the app run out of RAM.

And while I was was doing this, I found problems with the path
for bringing an empty task to the foreground -- it could make
a new task instead of re-starting the root activity in the
existing task.  This is fixed, and some code in the recents
UI for working around the bug is removed.

And as long as I am doing that, we now have nice hooks in to
the activity manager for AppTask to give some APIs for better
managing the task, so add those along with more tests for these
APIs in ActivityTests.

We should look at also having the activity manager try to prune
old tasks when it sees app processes being killed, to better balance
memory use across multiple processes when some processes may host
many documents.  That however is for another CL...

Change-Id: I2bb81c3f92819350c868c7a7470b35817eb9bea9
2014-08-26 11:16:59 -07:00
Nancy Chen
e4b1d57dfd Merge "API review PhoneManager -> TelecommManager. Rename methods (6/6)" into lmp-dev 2014-08-25 22:24:09 +00:00
Paul Jensen
0784eeab28 Implement VpnConfig.addAllowedApplication().
bug:17109588
bug:13651397
Change-Id: Ibb944794627117728373f0105e24f196f3eeb9e9
2014-08-25 15:09:25 -04:00
Paul Lawrence
396ac76fd3 Show PIN screen with all PINs, not just simple ones
Bug: 17194645
Change-Id: I8b8ccd2b7cf6dbfac567492387d4f4fd61258a34
2014-08-25 11:13:46 -07:00
Nancy Chen
0eb1e402c7 API review PhoneManager -> TelecommManager. Rename methods (6/6)
PhoneManager
- handlePinMMI docs should explain what a Pin is and what MMI is
- rename isInAPhoneCall to isInCall
- rename showCallScreen to showInCallScreen
- merge this class into TelecommManager, we don't need both

Bug: 16960458

Change-Id: I7d573e27ed093f2ddb7849703cc62f9916835393
2014-08-25 10:50:44 -07:00
Jeff Sharkey
37cf9907d2 Merge "Installing splits into ASECs!" into lmp-dev 2014-08-24 18:45:55 +00:00
Jeff Davidson
90b1b9f985 Restore legacy VPN stats dialog.
Was originally removed in ag/522961, but restoring to keep legacy VPN
behavior the same from within VpnSettings. This dialog is only
accesible from VpnSettings and so should only ever be shown for legacy
VPNs.

Bug: 17164793
Change-Id: I06c4e136e1023b8f84edfd15a15264d2e41d325b
2014-08-22 17:06:37 -07:00
Jeff Sharkey
941a8ba1a6 Installing splits into ASECs!
Sessions can now zero-copy data directly into pre-allocated ASEC
containers.  Then at commit time, we compute the total size of the
final app, including any inherited APKs and unpacked libraries, and
resize the container in one step.

This supports both brand new ASEC installs and inheriting from
existing ASEC installs.  To keep things simple, it currently requires
copying any inherited ASEC contents, but this could be optimized in
the future.

Expose new vold resize command, and allow read-write mounting of ASEC
containers.  Move native library extraction into the installer flow,
since it needs to happen before ASEC is sealed.  Move multiArch flag
into NativeLibraryHelper, instead of making everyone pass it
around.  Migrate size calculation to shared location.

Separate "other" package name in public API, provide a path to a
storage device when relevant, and add more docs.

Bug: 16514385
Change-Id: I06c6ce588d312ee7e64cce02733895d640b88456
2014-08-22 16:25:04 -07:00
Adam Powell
c9991c7149 Merge "Fix (another) measurement issue in ActionBarContainer" into lmp-dev 2014-08-22 21:20:24 +00:00
Adam Powell
2b7ff72683 Fix (another) measurement issue in ActionBarContainer
Or, the patch in which we discover how many silly bugs adamp caused in
e77b6590.

Change-Id: Iaacd3792d161e068dee74b897872e9ab2f155aca
2014-08-22 13:57:43 -07:00
Elliott Hughes
5d04fee900 Merge "Don't show the pseudolocales unless we're in developer mode." into lmp-dev 2014-08-22 20:42:19 +00:00
Yigit Boyar
1960b32434 Merge "Fix RTL bug for actionbar tooltips" into lmp-dev 2014-08-22 19:15:40 +00:00
Elliott Hughes
dee5cde1ec Don't show the pseudolocales unless we're in developer mode.
The old zz_ZY and zz_ZZ pseudolocales are gone, replaced by ar_XB and en_XA.
The existing check for "developer mode" wasn't working, and now the
pseudolocales are there by default, we want to _remove_ them if we're not
in developer mode rather than add them if we are in developer mode.

Bug: 17190407
Change-Id: I6ee6eba53f5b816ef8e0d1768c94cd3484a196b5
2014-08-22 11:57:15 -07:00
Adam Powell
c793c9eb24 Merge "Add a missing condition when checking measurement for ActionBarContainer" into lmp-dev 2014-08-22 18:03:20 +00:00
Adam Powell
a12aaa75df Add a missing condition when checking measurement for ActionBarContainer
It even said "non-tab" right there.

Bug 17202141

Change-Id: Iacc7ec9610d2639aab59dd57ba7194178fb6391f
2014-08-22 10:46:55 -07:00
Brian Carlstrom
9a434ae00f Merge "Move SystemBackupAgent from services.jar to frameworks.jar" into lmp-dev 2014-08-22 17:03:49 +00:00
Calin Juravle
feb193085a Pass vmSafeMode (manifest attribute) to installd.
The flag is used to enforce --interpret-only flag when running dex2oat.

Bug: 12457423
Change-Id: Ifdafcc1afa32996577fa44c5682eeb58c79772ac
2014-08-22 15:33:05 +01:00
Adrian Roos
076e72554d Merge "Only run TrustAgentServices for users with secure keyguards" into lmp-dev 2014-08-22 14:17:32 +00:00
Yohei Yukawa
a277db28e9 Remove CursorAnchorInfoRequest and related stuff
This CL removes CursorAnchorInfoRequest and related stuff
in favor of InputConnection.requestUpdateCursorAnchorInfo,
which is more easy to understand. This CL also deprecates
InputMethodManager#updateCursor and related stuff.

Rationale:
1. The spec of #updateCursor says that it provides the cursor
   position in local coordinates, while the input method
   requires it in the screen coordinates.
2. #updateCursor has never been enabled in AOSP, because
   InputMethodManager#isWatchingCursor always returned false.
3. There has been no way to let
   InputMethodManager#isWatchingCursor return true.
4. In L, InputMethodManager#updateCursorAnchorInfo is
   introduced to address all the issues above.

Given that we no longer need to support #updateCursor,
CursorAnchorInfoRequest is overkill when we need to convey
just a couple of parameters.

BUG: 17185263
BUG: 17182367

Change-Id: I4a577bfd02b37b9e56c80b8b41bb25afa95dd8ef
2014-08-22 00:55:06 -07:00
Brian Carlstrom
8def5cbb3a Move SystemBackupAgent from services.jar to frameworks.jar
Bug: 17168017
Change-Id: I89b98ca839a78eeb7fb43930e0699ee235deafad
2014-08-21 23:15:13 -07:00
Yigit Boyar
d719539f91 Fix RTL bug for actionbar tooltips
Bug: 12570378
Change-Id: I13ba94c8b736a3a80a8d79e95bd18b93a1157303
2014-08-21 17:48:58 -07:00
Paul Lawrence
7bf41929f2 Merge "Save PatternVisible setting to crypto header" into lmp-dev 2014-08-21 16:25:56 +00:00
Adrian Roos
4b9e324b6f Only run TrustAgentServices for users with secure keyguards
Bug: 17107213
Change-Id: Ic9e93862c722ebc529f5b2010b9cea941f569ce7
2014-08-20 23:36:25 +02:00
Paul Lawrence
878ba0a266 Save PatternVisible setting to crypto header
Bug: 17059314
Change-Id: Ic64c64567f70ea11030cabfd33b57f77fb23dac7
2014-08-20 13:08:01 -07:00
Adam Powell
635c21b061 Fix measurement regression in ActionBarContainer
Make sure that we take into account all child views (including
ActionBarContextViews) when measuring the action bar container to
determine the measurement influence of an additional tab bar.

Bug 16982971

Change-Id: I53ba7e9a4c9e36d97c6385d2007a3ee0a4e2bc77
2014-08-20 18:15:30 -07:00
Adam Powell
75f9918760 Merge "Unify code paths for collapsing action views in action bars" into lmp-dev 2014-08-21 00:16:54 +00:00
Adam Powell
5352a89e8a Unify code paths for collapsing action views in action bars
This reverts a well-intentioned bugfix that made
ActionBarOverlayLayout focusable in touch mode and caused issues with
some activity layouts. Removes the associated key handling code for
the Back key in ActionBarOverlayLayout and handles it at a higher
level in Activity instead. (This same code path was already in use by
ToolbarActionBar.)

Bug 17105724

Change-Id: I57e4cace44a6d11f25a2549644b565446d616a52
2014-08-20 17:33:24 -07:00
Jeff Davidson
05542603dd Less intrusive VPN dialog and other UX tweaks.
-The ability to launch VPNs is now sticky; once approved by the user,
further approvals are not needed UNLESS the connection is revoked in
Quick Settings.

-The old persistent notification has been removed in favor of the new
Quick Settings UI.

-The name of the VPN app is now pulled from the label of the VPN
service rather than the app itself, if one is set.

Bug: 12878887
Bug: 16578022
Change-Id: I102a14c05db26ee3aef030cda971e5165f078a91
2014-08-20 16:55:28 -07:00
Adam Powell
ae4a10c17f Merge "Correctly populate title for ResolverActivity" into lmp-dev 2014-08-19 22:53:25 +00:00
Adam Powell
11f59a0899 Correctly populate title for ResolverActivity
This affects accessibility feedback.

Bug 17147141

Change-Id: I3e90b80c2813e79e0abe1c5ddc6e0c115a6369dd
2014-08-20 13:22:16 -07:00
Jeff Sharkey
bb7b7bea19 More progress towards split APKs in ASECs.
Teach DefaultContainerService to install split APKs, which will be
needed when moving to/from ASECs.  Also support forward locking for
testing purposes, even though its deprecated.

Move native library unpacking code to NativeLibraryHelper location
where it can be shared by both DCS and PMS.  Also update footprint
calculation logic to mirror the later unpack codepaths.

Immediately persist sealed sessions.  When resolving install
locations, prefer location of any existing install of that
package.  Lightweight parse requesting certificates now always
verifies that all contents are signed correctly.

Bug: 16514385
Change-Id: Ida1c4eb0f95b065104dd971e19126d4085ebf1f0
2014-08-20 12:47:27 -07:00
Dianne Hackborn
249a7fdf44 Merge "Temporary: raise overflow limit, print all wake locks." into lmp-dev 2014-08-16 04:32:18 +00:00
Dianne Hackborn
acc4a12074 Temporary: raise overflow limit, print all wake locks.
Change-Id: I02baa775b8e0659bd9cd4547b8671730f056cb86
2014-08-18 16:33:44 -07:00
Michael Wright
468fef6870 Merge "Persist Show IME option." into lmp-dev 2014-08-18 23:27:42 +00:00
Michael Wright
7b5a96ba83 Persist Show IME option.
Add a new setting to persist whether to show the IME when a hard
keyboard is connected.

Bug: 14066881
Change-Id: I2237ded850a0d4ab43ca441d0b7df13e0958e630
2014-08-17 17:51:19 -07:00
Michael Wright
665366a305 Change 'disable hardware keyboard' to 'show input method'
Previously it implied that the hardware keyboard would be disabled,
but really the toggle would just enable showing the IME even if a
hardware keyboard was present. Changed the string and swapped the
semantics to be more clear about the behavior.

Bug: 14066881
Change-Id: I9c8a7eb98b5277f1d09cc19fa7402e9b4cf51d92
2014-08-17 17:51:19 -07:00
Nicolas Prevot
f52233df74 Merge "When forwarding intents, ignoring the package set in the intent." into lmp-dev 2014-08-16 04:29:45 +00:00
Dianne Hackborn
028ceeb472 Fix issue #14617210: Apps can gain access to any ContentProvider...
...with grantUriPermissions (no user interaction required)

Add a new path in to the activity manager to start an activity as
if it was directy started by the original calling activity.  This
is specifically for the resolver activity and chooser activity to
be able to safely launch its data after serving as an intermediary.

Access to the new method is highly restricted -- it can only be
called by an activity that is declared in the framework apk itself,
and the execute-as-the-caller behavior will only happen if the
code is running under the system uid.  (This means we could still
have these run in the client's process in some cases and still work
correctly.)

Note there is some commented out code here half-done about trying
to propagate security exceptions back to the original calling
activity.  This would be really nice, especially now with the
chooser activity running in a system process so any errors made
by the app (bad permission grants, bad intents, etc) no longer
actually appear in the app so are essentially invisible.  I'd
really like to figure out a way to propagate these exceptions back
to the app, but this is hard since the app's process may no
longer even be running at this point.

Also tweak activity manager dump output to split the recents
dump out from activities, since recents can now be super large.

Change-Id: I50410c4783faf9302c69290589a068a846e0973a
2014-08-18 11:35:12 -07:00
Dianne Hackborn
89e4ae2f50 Merge "Work on issue #16629489: Google (Play?) Services eating through battery" into lmp-dev 2014-08-16 03:56:00 +00:00
Dianne Hackborn
d953c53d3b Work on issue #16629489: Google (Play?) Services eating through battery
There is a bug in how we deal with name overflows combined with resetting
the battery stats data.  If we do a reset while a wakelock is being
actively held that has been put into the overflow bucket, then we can
end up reducing the number of known wake locks in the list so when after
that it is released we try to release it under its real name rather than
the overflow name.

This means we need to keep track of which wake locks have been placed
in the overflow bucket while they are actively being used, so we can be
sure to properly handle it as part of that bucket until it is eventually
released.

This makes things...  somewhat more complicated.  So now we have a class
to take care of all these details, and also use it for other places where
we have the same overflow semantics sync and job stats.

Also fix potential deadlock -- BatteryStatsHelper needs to call on to
ConnectivityManager to find out of there is telepohny, however we use
that class when doing a dump while the battery stats lock is held.  To
fix this, we check the connectivity state up in the battery stats service
before acquiring the lock and propagate that information through to the
dump code.

Change-Id: Ib452206af5c36f4b0f03cc94d2845d36613d1ba5
2014-08-17 12:39:36 -07:00
Adam Powell
8f4a21e466 Merge "Fix a bug propagating navigation button events from ToolbarActionBar" into lmp-dev 2014-08-18 21:00:53 +00:00
Adam Powell
14e1afe0d8 Fix a bug propagating navigation button events from ToolbarActionBar
Add a simple internal wrapper for dealing with window callback events.
This should also make working with things like action modes from
ToolbarActionBar significantly easier in later changes.

Bug 16980711

Change-Id: I2c3d7525489a21847f4af9b80f6ebf9b34b4dd58
2014-08-18 15:58:23 -07:00
Jeff Sharkey
742e790294 Progress towards staging ASECs.
Move location selection logic into shared PackageHelper location,
and share it between DCS and PackageInstaller.  Fix bugs related to
installed footprint calculation; always count unpacked native libs.

Have PMS do its own threshold checking, since it's fine to stat
devices.  PMS only ever deleted staging ASECs, so move that logic
into installer and nuke unclaimed staging ASECs.  Allocate legacy
ASEC names using PackageInstaller to make sure they don't conflict
with sessions.

Start wiring up session to allocate ASEC and pass through staged
container for installation.

Fix bug to actually delete invalid cluster-style installs.

Bug: 16514385
Change-Id: I325e0c4422fc128398c921ba45fd73ecf05fc2a9
2014-08-18 15:52:24 -07:00
Nicolas Prevot
376e4ba962 When forwarding intents, ignoring the package set in the intent.
Apps should not be allowed to target a specific package in the target user.

BUG: 17025506

Change-Id: I81afa2f8d0a1114d91c001e357366792c63b6577
2014-08-15 11:57:47 +01:00