Commit Graph

1724 Commits

Author SHA1 Message Date
Dianne Hackborn
fee1c69a49 resolved conflicts for merge of 77dd616e to master
Change-Id: Idb7180177b01e7d822327ccc7c76617220860da2
2011-05-25 16:36:50 -07:00
Adam Powell
f8ac6b7394 Action bar tab layout
Sync with UX on action bar tab layout behavior.

Make action bar tabs behave better with configuration changes.

LinearLayout now supports largest child measurement in unspecified
mode.

Change-Id: Id520641715a61c07e64124a0c5a70912996c98a0
2011-05-25 11:55:56 -07:00
Dianne Hackborn
77dd616e68 am 00b3a5c6: am c404e9b2: Merge "More compatibility mode improvements." into honeycomb-mr2
* commit '00b3a5c65e6ef26056178d1d7473b921671752e9':
  More compatibility mode improvements.
2011-05-24 19:13:45 -07:00
Dianne Hackborn
00b3a5c65e am c404e9b2: Merge "More compatibility mode improvements." into honeycomb-mr2
* commit 'c404e9b20165f634904d1489216d17d8e09fe696':
  More compatibility mode improvements.
2011-05-24 19:10:53 -07:00
Dianne Hackborn
5be8de3420 More compatibility mode improvements.
We now correctly adjust display metrics, fixing for example issues
seen in Barcode Scanner.  In addition the decision about when to use
compatibility mode has a bug fixed where certain apps would not go
out of compatibility mode even though they should be able to.

Change-Id: I5971206323df0f11ce653d1c790c700f457f0582
2011-05-24 18:13:25 -07:00
Ying Wang
8f40e58712 Merge "Fix intermediate src dir for framework.jar" 2011-05-24 16:27:17 -07:00
Dianne Hackborn
e2c7715c77 resolved conflicts for merge of bbca8133 to master
Change-Id: I81493674dceab848e41d380a77a37e5a9be06db6
2011-05-24 11:27:11 -07:00
Jeff Sharkey
a462079303 Observe screen on/off events in NetworkPolicy.
The POLICY_REJECT_BACKGROUND policy requires that network traffic be
blocked when a UID goes into the background.  Even if the UID has an
activity in the foreground, it's considered "background" if the screen
is turned off.

This changes watches for SCREEN_ON/OFF broadcasts, and rule generation
now observes screen state.  It also introduces an observer pattern so
that ActivityManager doesn't directly know about NetworkPolicy, and
moves the service management into SystemServer.

Change-Id: Ie7a84929d3ca60ae4578d47e19d5a8da10fd8d58
2011-05-23 18:39:56 -07:00
Dianne Hackborn
bbca81334e am 4bb78889: am 40277df7: Merge "Add "television" mode." into honeycomb-mr2
* commit '4bb78889d04594c01a6af7f6d38c1764e9f575f9':
  Add "television" mode.
2011-05-23 16:16:54 -07:00
Dianne Hackborn
4bb78889d0 am 40277df7: Merge "Add "television" mode." into honeycomb-mr2
* commit '40277df7c33c0fc381eec589c768fe86de4b4404':
  Add "television" mode.
2011-05-23 16:07:43 -07:00
Dianne Hackborn
e360bb6bd8 Add "television" mode.
Change-Id: Ida1fdb61b036a8b489dbeda196fb4bc82e651b2b
2011-05-23 15:11:08 -07:00
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
Ying Wang
65ee22aa01 Fix intermediate src dir for framework.jar
Intermediate src dir for JAVA_LIBRARIES should be in the common
intermediate dir.

Change-Id: Ib16ddd63aed080cdd1494204b347c1e1e1beafcb
2011-05-18 09:48:40 -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