Commit Graph

1712 Commits

Author SHA1 Message Date
Adam Powell
d0693bb603 am f2004180: am f5abccef: am 73a31ec9: Merge "New opaque cab assets; search dialog tweaks." into honeycomb-mr2
* commit 'f2004180f828584fa8525081a248e8c0f2055327':
  New opaque cab assets; search dialog tweaks.
2011-05-20 13:13:28 -07:00
Adam Powell
f2004180f8 am f5abccef: am 73a31ec9: Merge "New opaque cab assets; search dialog tweaks." into honeycomb-mr2
* commit 'f5abccefb10e8a31363c98d6a8491cb8168b7174':
  New opaque cab assets; search dialog tweaks.
2011-05-20 13:09:13 -07:00
Adam Powell
f5abccefb1 am 73a31ec9: Merge "New opaque cab assets; search dialog tweaks." into honeycomb-mr2
* commit '73a31ec91c3e472503e9fbbfe82b8c3bbc5140ed':
  New opaque cab assets; search dialog tweaks.
2011-05-20 13:04:11 -07:00
Adam Powell
8abebcde3f New opaque cab assets; search dialog tweaks.
* New opaque assets (now actually opaque!)

* SearchDialog determines theme to use from parent context

* SearchDialog now disallows action modes

Change-Id: If05fe64d7cc4460678d78412275ee988ddb47e9e
2011-05-19 18:48:44 -07:00
Kenny Root
a51b6fd6f8 resolved conflicts for merge of b2d0ee16 to master
Change-Id: I4483a6d0ccecfea4a1e66bb6eba80d13e8b9a3a4
2011-05-19 15:02:18 -07:00
Chet Haase
7189d571e2 am f0c6ddd9: am 51fb9703: Merge "DO NOT MERGE: Add custom fragment anims for popping backstack" into honeycomb-mr2
* commit 'f0c6ddd99b6770ee4de74ce42134f9f56b8ebc5d':
  DO NOT MERGE: Add custom fragment anims for popping backstack
2011-05-19 14:03:04 -07:00
Chet Haase
f0c6ddd99b am 51fb9703: Merge "DO NOT MERGE: Add custom fragment anims for popping backstack" into honeycomb-mr2
* commit '51fb97031f62b1181fc9eb6c636d09a68987d939':
  DO NOT MERGE: Add custom fragment anims for popping backstack
2011-05-19 13:59:06 -07:00
Chet Haase
19e748a3d1 DO NOT MERGE: Add custom fragment anims for popping backstack
The previous fragment implementation allowed for animations
during fragment transitions, but did not account for the
different behavior of fragments when popping the back stack.
In general, you probably don't want to run the same animation
for putting a fragment on the stack as for popping it off, which
is what happens now. For example, you might fade a fragment out when
putting it on the stack. But when popping ot off, fading it out
is probably not the behavior you want.

The new API (setCustomAnimations() overload with two additional
parameters) allows developers to specify animations to be run
in the popping operation. Otherwise, the animations are null and
the operation will not be animated.

Change-Id: I53bbc6e6ec4e953b7ecdd99e2452d81857917de2
2011-05-19 13:44:40 -07:00
Kenny Root
e6cd0c747e resolved conflicts for merge of 2433c443 to honeycomb-plus-aosp
Change-Id: I3385f57e5761679e6700bcbe3c41deb3ecd43ba1
2011-05-19 12:48:14 -07:00
Kenny Root
2433c443bb am f2006f31: Merge "Break apart queries to getInstalled* API" into gingerbread
* commit 'f2006f3123dcdf598e052051041b49c89710b53e':
  Break apart queries to getInstalled* API
2011-05-19 11:04:01 -07:00
Dianne Hackborn
f97ed77197 am d90a2c4d: am 1e662c32: Merge "DO NOT MERGE. Integrate from master: Rework display size access." into honeycomb-mr2
* commit 'd90a2c4d4463085155444efb07eba2d6579b444a':
  DO NOT MERGE.  Integrate from master: Rework display size access.
2011-05-16 13:01:38 -07:00
Dianne Hackborn
d90a2c4d44 am 1e662c32: Merge "DO NOT MERGE. Integrate from master: Rework display size access." into honeycomb-mr2
* commit '1e662c3294b740ff694ad98e4d9a366e1e4b5e62':
  DO NOT MERGE.  Integrate from master: Rework display size access.
2011-05-16 12:57:00 -07:00
Dianne Hackborn
ac8dea12c1 DO NOT MERGE. Integrate from master: Rework display size access.
Applications now get the display size from the window manager.  No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I47bf8b55ecd4476c25ed6482494a7bcc5fae45d2
2011-05-16 11:58:27 -07:00
Dianne Hackborn
fbdf9df053 am 2a20583a: am 700ab1c7: Merge "DO NOT MERGE. Integrate from master: Improve activity manager debug dumps." into honeycomb-mr2
* commit '2a20583a5f436d66ab73cd6c0fdc73e59a3cecad':
  DO NOT MERGE.  Integrate from master: Improve activity manager debug dumps.
2011-05-16 11:09:31 -07:00
Dianne Hackborn
2a20583a5f am 700ab1c7: Merge "DO NOT MERGE. Integrate from master: Improve activity manager debug dumps." into honeycomb-mr2
* commit '700ab1c75862babba90f54e02bdc877becd4f4fc':
  DO NOT MERGE.  Integrate from master: Improve activity manager debug dumps.
2011-05-16 11:06:28 -07:00
Dianne Hackborn
24df0757f8 am ed9321ab: am f9dd34f4: DO NOT MERGE: Integrate from main - Deprecate a bunch of APIs.
* commit 'ed9321ab5d282e40e7c5fa9caf0eb9d05646f2d0':
  DO NOT MERGE: Integrate from main - Deprecate a bunch of APIs.
2011-05-13 18:41:04 -07:00
Dianne Hackborn
ed9321ab5d am f9dd34f4: DO NOT MERGE: Integrate from main - Deprecate a bunch of APIs.
* commit 'f9dd34f4d3203fd50363b3b0247c5d0db6fe2c8f':
  DO NOT MERGE: Integrate from main - Deprecate a bunch of APIs.
2011-05-13 18:39:01 -07:00
Dianne Hackborn
9a84983a9f DO NOT MERGE. Integrate from master: Improve activity manager debug dumps.
Activity manager now does all dump requests into apps
asynchronously, so it can nicely timeout if there is an
app problem.  Also lots of general cleanup of the am
dump output.

Change-Id: I99447b87f77a701af52aeca984d93dfe931f065d
2011-05-13 18:38:19 -07:00
Dianne Hackborn
f9dd34f4d3 DO NOT MERGE: Integrate from main - Deprecate a bunch of APIs.
And clean up some documentation.

Change-Id: I8f06e2fc3bb6c552581b64657e82ba690d524232
2011-05-13 18:31:04 -07:00
Dianne Hackborn
ba4990c77c am 71da3207: am 7d87c37b: am 6121f06e: Merge "Fix a bug where an action bar could be created when it should not be." into honeycomb-mr2
* commit '71da32074ce729fe170de2d6c348b110fb6625cc':
  Fix a bug where an action bar could be created when it should not be.
2011-05-13 16:32:00 -07:00
Dianne Hackborn
71da32074c am 7d87c37b: am 6121f06e: Merge "Fix a bug where an action bar could be created when it should not be." into honeycomb-mr2
* commit '7d87c37b031616259d1db6a78ecb1ff20ee5ff5c':
  Fix a bug where an action bar could be created when it should not be.
2011-05-13 16:29:40 -07:00
Dianne Hackborn
7d87c37b03 am 6121f06e: Merge "Fix a bug where an action bar could be created when it should not be." into honeycomb-mr2
* commit '6121f06ed5847d1edd22b23c3b28bf3b3e3af602':
  Fix a bug where an action bar could be created when it should not be.
2011-05-13 16:26:44 -07:00
Dianne Hackborn
6121f06ed5 Merge "Fix a bug where an action bar could be created when it should not be." into honeycomb-mr2 2011-05-13 16:24:32 -07:00
Dianne Hackborn
28a8bce691 am 6824c135: am f3f2d731: Merge "DO NOT MERGE. Integrate fragment work from master" into honeycomb-mr2
* commit '6824c135fe9639c74f38f125d678c20065c3347c':
  DO NOT MERGE.  Integrate fragment work from master
2011-05-13 15:45:23 -07:00
Dianne Hackborn
6824c135fe am f3f2d731: Merge "DO NOT MERGE. Integrate fragment work from master" into honeycomb-mr2
* commit 'f3f2d731e19bb47a87dc071a5750fc0f18248da2':
  DO NOT MERGE.  Integrate fragment work from master
2011-05-13 15:36:48 -07:00
Adam Powell
a593d9852f Fix a bug where an action bar could be created when it should not be.
Change-Id: I9ca1038accdb6d0a539750ed8ab068a41612f6ae
2011-05-13 14:09:54 -07:00
Dianne Hackborn
16f6e89c2a DO NOT MERGE. Integrate fragment work from master
Back-port new fragment detach APIs from support lib.

This allow a much cleaner implementation of things like the
fragment pager class.

Integrate from support lib: fix restore of list state.

The FragmentManager/ListFragment impl was restoring the list
state before setting its adapter.  This caused the list view to
lose the state, since it gets cleared as part of setting the
adapter.  Now the fragment manager waits on restoring the view
hierarchy state until after it has done onActivityCreated(),
at which point we have set the adapter.

It would be nice to make list view less fragile in this regard,
but that is for a different change.

Change-Id: I38606ef7d0b06478995f3fb7726aead67420e172
2011-05-13 12:42:22 -07:00
Dianne Hackborn
c6c8ada163 am dda64e9a: am 51454295: am df9799f0: Fix build.
* commit 'dda64e9a4af2e7dbc75a3b2fc7c41b9d63848a59':
  Fix build.
2011-05-12 17:42:14 -07:00
Dianne Hackborn
dda64e9a4a am 51454295: am df9799f0: Fix build.
* commit '51454295a5813627a91dd5cf6b486a70a0b389cb':
  Fix build.
2011-05-12 17:39:22 -07:00
Dianne Hackborn
51454295a5 am df9799f0: Fix build.
* commit 'df9799f0fc3ef04d9b004ebbda44883f85321b24':
  Fix build.
2011-05-12 17:35:20 -07:00
Dianne Hackborn
3d0724dc22 resolved conflicts for merge of 0e59729b to master
Change-Id: I2d3a6bddf66b1df0c101c45ea2fec1cf65caf01b
2011-05-12 15:39:41 -07:00
Dianne Hackborn
df9799f0fc Fix build.
Change-Id: I97e357aa20c9ba91f20f77d53fc4dca1fd3aa598
2011-05-12 15:16:33 -07:00
Dianne Hackborn
0e59729b10 am 97280816: am 0f1de9ad: New compat mode front end: UI and persistence.
* commit '972808164adde6c0784e9c836d06219a9cf7eb7f':
  New compat mode front end: UI and persistence.
2011-05-12 15:05:19 -07:00
Dianne Hackborn
972808164a am 0f1de9ad: New compat mode front end: UI and persistence.
* commit '0f1de9adde0b52d2a385a76232bd7ac30c3eeea2':
  New compat mode front end: UI and persistence.
2011-05-12 15:01:53 -07:00
Dianne Hackborn
0f1de9adde New compat mode front end: UI and persistence.
Adds a really crappy UI for toggling compat mode.

Persists compat mode selection across boots.

Turns on compat mode by default for newly installed apps.

Change-Id: Idc83494397bd17c41450bc9e9a05e4386c509399
2011-05-12 13:28:45 -07:00
Christopher Tate
4a627c71ff Full local backup infrastructure
This is the basic infrastructure for pulling a full(*) backup of the
device's data over an adb(**) connection to the local device.  The
basic process consists of these interacting pieces:

1. The framework's BackupManagerService, which coordinates the
   collection of app data and routing to the destination.

2. A new framework-provided BackupAgent implementation called
   FullBackupAgent, which is instantiated in the target applications'
   processes in turn, and knows how to emit a datastream that contains
   all of the app's saved data files.

3. A new shell-level program called "bu" that is used to bridge from
   adb to the framework's Backup Manager.

4. adb itself, which now knows how to use 'bu' to kick off a backup
   operation and pull the resulting data stream to the desktop host.

5. A system-provided application that verifies with the user that
   an attempted backup/restore operation is in fact expected and to
   be allowed.

The full agent implementation is not used during normal operation of
the delta-based app-customized remote backup process.  Instead it's
used during user-confirmed *full* backup of applications and all their
data to a local destination, e.g. via the adb connection.

The output format is 'tar'.  This makes it very easy for the end
user to examine the resulting dataset, e.g. for purpose of extracting
files for debug purposes; as well as making it easy to contemplate
adding things like a direct gzip stage to the data pipeline during
backup/restore.  It also makes it convenient to construct and maintain
synthetic backup datasets for testing purposes.

Within the tar format, certain artificial conventions are used.
All files are stored within top-level directories according to
their semantic origin:

apps/pkgname/a/  : Application .apk file itself
apps/pkgname/obb/: The application's associated .obb containers
apps/pkgname/f/  : The subtree rooted at the getFilesDir() location
apps/pkgname/db/ : The subtree rooted at the getDatabasePath() parent
apps/pkgname/sp/ : The subtree rooted at the getSharedPrefsFile() parent
apps/pkgname/r/  : Files stored relative to the root of the app's file tree
apps/pkgname/c/  : Reserved for the app's getCacheDir() tree; not stored.

For each package, the first entry in the tar stream is a file called
"_manifest", nominally rooted at apps/pkgname.  This file contains some
metadata about the package whose data is stored in the archive.

The contents of shared storage can optionally be included in the tar
stream. It is placed in the synthetic location:

shared/...

uid/gid are ignored; app uids are assigned at install time, and the
app's data is handled from within its own execution environment, so
will automatically have the app's correct uid.

Forward-locked .apk files are never backed up.  System-partition
.apk files are not backed up unless they have been overridden by a
post-factory upgrade, in which case the current .apk *is* backed up --
i.e. the .apk that matches the on-disk data.  The manifest preceding
each application's portion of the tar stream provides version numbers
and signature blocks for version checking, as well as an indication
of whether the restore logic should expect to install the .apk before
extracting the data.

System packages can designate their own full backup agents.  This is
to manage things like the settings provider which (a) cannot be shut
down on the fly in order to do a clean snapshot of their file trees,
and (b) manage data that is not only irrelevant but actively hostile
to non-identical devices -- CDMA telephony settings would seriously
mess up a GSM device if emplaced there blind, for example.

When a full backup or restore is initiated from adb, the system will
present a confirmation UI that the user must explicitly respond to
within a short [~ 30 seconds] timeout.  This is to avoid the
possibility of malicious desktop-side software secretly grabbing a copy
of all the user's data for nefarious purposes.

(*) The backup is not strictly a full mirror.  In particular, the
    settings database is not cloned; it is handled the same way that
    it is in cloud backup/restore.  This is because some settings
    are actively destructive if cloned onto a different (or
    especially a different-model) device: telephony settings and
    AndroidID are good examples of this.

(**) On the framework side it doesn't care that it's adb; it just
    sends the tar stream to a file descriptor.  This can easily be
    retargeted around whatever transport we might decide to use
    in the future.

KNOWN ISSUES:

* the security UI is desperately ugly; no proper designs have yet
  been done for it
* restore is not yet implemented
* shared storage backup is not yet implemented
* symlinks aren't yet handled, though some infrastructure for
  dealing with them has been put in place.

Change-Id: Ia8347611e23b398af36ea22c36dff0a276b1ce91
2011-05-10 17:52:51 -07:00
Dianne Hackborn
aa9d84c37e resolved conflicts for merge of 05be6d6f to master
Change-Id: Ic6a6c5bb300f6f1d43f9ed550b284282b4f16212
2011-05-09 19:00:59 -07:00
Dianne Hackborn
05be6d6fe0 am 4907d1d5: am 0c6cbf41: Merge "Better compat mode part one: start scaling windows." into honeycomb-mr2
* commit '4907d1d5e2c7d244b07579b8c52153df69754e85':
  Better compat mode part one: start scaling windows.
2011-05-09 17:10:34 -07:00
Dianne Hackborn
4907d1d5e2 am 0c6cbf41: Merge "Better compat mode part one: start scaling windows." into honeycomb-mr2
* commit '0c6cbf410a642f6e9cea7cca0a6e53a4a3cdd324':
  Better compat mode part one: start scaling windows.
2011-05-09 17:08:40 -07:00
Dianne Hackborn
e2515eebf4 Better compat mode part one: start scaling windows.
First step of improving app screen size compatibility mode.  When
running in compat mode, an application's windows are scaled up on
the screen rather than being small with 1:1 pixels.

Currently we scale the application to fill the entire screen, so
don't use an even pixel scaling.  Though this may have some
negative impact on the appearance (it looks okay to me), it has a
big benefit of allowing us to now treat these apps as normal
full-screens apps and do the normal transition animations as you
move in and out and around in them.

This introduces fun stuff in the input system to take care of
modifying pointer coordinates to account for the app window
surface scaling.  The input dispatcher is told about the scale
that is being applied to each window and, when there is one,
adjusts pointer events appropriately as they are being sent
to the transport.

Also modified is CompatibilityInfo, which has been greatly
simplified to not be so insane and incomprehendible.  It is
now simple -- when constructed it determines if the given app
is compatible with the current screen size and density, and
that is that.

There are new APIs on ActivityManagerService to put applications
that we would traditionally consider compatible with larger screens
in compatibility mode.  This is the start of a facility to have
a UI affordance for a user to switch apps in and out of
compatibility.

To test switching of modes, there is a new variation of the "am"
command to do this: am screen-compat [on|off] [package]

This mode switching has the fundamentals of restarting activities
when it is changed, though the state still needs to be persisted
and the overall mode switch cleaned up.

For the few small apps I have tested, things mostly seem to be
working well.  I know of one problem with the text selection
handles being drawn at the wrong position because at some point
the window offset is being scaled incorrectly.  There are
probably other similar issues around the interaction between
two windows because the different window coordinate spaces are
done in a hacky way instead of being formally integrated into
the window manager layout process.

Change-Id: Ie038e3746b448135117bd860859d74e360938557
2011-05-09 17:03:24 -07:00
Joe Onorato
c6cc0f8c19 Rename ViewRoot to ViewAncestor.
ViewRoot is about to be a new public class for poking at ViewAncestor.

Change-Id: Ie95d707c6d8bbb48f78d093d7b2667851812a7d5
2011-05-04 14:08:11 -07:00
Conley Owens
4c79ca8cae am c30d7676: am 1a846ab0: am b1578d85: Merge "Fix startSearch condition on Dialog, because pressing search key causes ANR popup. If search key is pressed on Dialog and there is no search item then do nothing. How to reproduce the issue: Settings > About phone > Legal
* commit 'c30d767628861b0bbea907824682e47732c820f9':
  Fix startSearch condition on Dialog, because pressing search key causes ANR popup. If search key is pressed on Dialog and there is no search item then do nothing. How to reproduce the issue: Settings > About phone > Legal information > Google legal > Press search key > Touch list item or press back key > ANR popup is shown
2011-05-02 10:11:43 -07:00
Conley Owens
c30d767628 am 1a846ab0: am b1578d85: Merge "Fix startSearch condition on Dialog, because pressing search key causes ANR popup. If search key is pressed on Dialog and there is no search item then do nothing. How to reproduce the issue: Settings > About phone > Legal information >
* commit '1a846ab089878a6b342c6bc3e8850fc2e0ef3080':
  Fix startSearch condition on Dialog, because pressing search key causes ANR popup. If search key is pressed on Dialog and there is no search item then do nothing. How to reproduce the issue: Settings > About phone > Legal information > Google legal > Press search key > Touch list item or press back key > ANR popup is shown
2011-04-29 17:07:14 -07:00
Conley Owens
b1578d85ce Merge "Fix startSearch condition on Dialog, because pressing search key causes ANR popup. If search key is pressed on Dialog and there is no search item then do nothing. How to reproduce the issue: Settings > About phone > Legal information > Google legal > Press search key > Touch list item or press back key > ANR popup is shown" 2011-04-29 09:59:48 -07:00
Adam Powell
9b4bee0f14 Introducing the split action bar.
Apply (or extend) the theme Theme.Holo.SplitActionBarWhenNarrow or
Theme.Holo.Light.SplitActionBarWhenNarrow to enable splitting the
action bar across both the top and bottom of the screen. This places
the action menu along the bottom, leaving more room at the top for
titles, navigation, and custom views and more room at the bottom for
menu items.

TODO: Refine layout of the action menu when placed at the bottom of
the screen. Make action modes split as well.

Change-Id: I92c91f99c533f26aecf6b828ed041386c4f16922
2011-04-28 19:13:25 -07:00
Adam Powell
dae7824c4b Action bar work for phones
Drop tabs to a second row at < w480dp

Make 9-patches for the cab's "done" button thinner

Add a "disable home" display option to the action bar to turn off
focus and touch feedback when tapping home would do nothing

Change-Id: Ib2eedf311655f02055357321e2e9ad5b9037fed1
2011-04-25 17:42:45 -07:00
Dianne Hackborn
44bc17c6b5 Rework display size access.
Applications now get the display size from the window manager.  No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I2958a6660895c1cba2b670509600014e55ee9273
2011-04-21 15:17:52 -07:00
Dianne Hackborn
9567a66a5e Deprecate a bunch of APIs.
And clean up some documentation.

Change-Id: I7882183b3daf883b7ac6098d19f88dc7cfbcdf61
2011-04-20 10:26:44 -07:00
Amith Yamasani
25641ca1ac Merge "Plumbing in PackageManager and installd for multi-user support." 2011-04-19 10:41:20 -07:00
Kenny Root
0e2c0f37d9 Break apart queries to getInstalled* API
To avoid blowing past the Binder IPC limit, change the
PackageManagerService to have a DB-like interaction where the client
tells the service the last "row" that it read.

The fact that we use a HashMap instead of a TreeMap makes this
problematic. For now we're just making a new ArrayList for the keys and
then sorting them for each call. This can make the API slower for callers
of this, but it's probably greatly overshadowed by the cost of the data
transfer itself.

Bug: 4064282
Change-Id: Ic370fd148d4c3813ae4f2daffa1a7c28d63d5a09
2011-04-19 09:57:54 -07:00