Commit Graph

1659 Commits

Author SHA1 Message Date
Dianne Hackborn
1333276c7a Fix to not lose state when saving a deactivated fragment.
Also deactivating a fragment shouldn't put it in the exiting state.

Change-Id: I514f3589ee7bbbee131cd7b4a48803e99b212bd0
2011-06-03 17:34:45 -07:00
Dianne Hackborn
185e3e243e Fix when managed cursors are required.
Only do this when we are actually restarting, not when we
are just resuming after a pause.

Change-Id: I32fd263917b03776efca8e096d0343107721398d
2011-06-03 15:26:40 -07:00
Dianne Hackborn
b46ed7636b Add new Fragment API for explicitly saving/restoring state.
Also fix issue #4519821:
Blank screen displayed on tapping "Battery Use" option in the settings

We weren't correctly doing the full Activity resume code when coming
back from delivering a new Intent or result.

And fix a fragment problem where we still weren't correctly restoring
the state of list views.  (I think this was from a bad manual-merge
from master.)

Change-Id: If79dc7e998155c39ab8c04781f6c73a82238a9ef
2011-06-02 19:18:07 -07:00
Dianne Hackborn
e66763516a Work around OpenFeint bug.
Change-Id: Ib8320e50bb63fc56dc0118d5c8e9e328dbd3fcb1
2011-06-01 16:52:36 -07:00
Dianne Hackborn
2f0b17573d Fix issue #4502672: Wrong xml resources used for homescreen widgets.
There was a race in the system process between applying the initial
configuration and executing code in higher-level system services
like the app widget service that relies on the config.  For some
reason it starting showing up more after my code changes; it should
now be completely fixed.

Also fix the activity starting window to run in compatibility mode
if its application is going to be in compatibility mode.

And some various cleanup and small fixes.

Change-Id: I0566933bf1bbb4259c1d99a60c0a3c19af1542e5
2011-05-31 18:04:14 -07:00
Dianne Hackborn
94250ac69c Merge "Add new supports-screens attributes for declaring the compatible screens." into honeycomb-mr2 2011-05-26 17:07:52 -07:00
Dianne Hackborn
df6e980e3f Add new supports-screens attributes for declaring the compatible screens.
Change-Id: I40d57e4354e48accc1027c9f90916ea73eb5190d
android:requiresSmallestWidthDp provides the smallest supported width.
android:compatibleWidthLimitDp provides the largest compatible width.
2011-05-26 14:48:04 -07:00
Kenny Root
1d8f8819f1 Merge "Break apart queries to getInstalled* API DO NOT MERGE" into honeycomb-mr2 2011-05-26 13:10:23 -07:00
Dianne Hackborn
81e56d535c Rework how we decide whether to use system or status bar.
The PhoneWindowManager is now responsible for determing this,
since it needs to do this before we can generate the configuration
since we need to take into account the system bar size we will use.

Also the Display should now report the screen height without
including the system bar.

Change-Id: I82dfcc5e327e4d13d82c373c6c870f557a99b757
2011-05-26 10:46:19 -07:00
Kenny Root
1bb6cf18c0 Break apart queries to getInstalled* API DO NOT MERGE
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: Ia3a8cdaa94581ed9336f2e05694b8c8a5f757bce
2011-05-26 09:53:24 -07:00
Dianne Hackborn
36cd41f8ef Spiffy new compatibility mode UI.
Change-Id: I1207eaafae59a434fcc979ad60a83e2d685288af
2011-05-25 21:08:37 -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
Dianne Hackborn
e360bb6bd8 Add "television" mode.
Change-Id: Ida1fdb61b036a8b489dbeda196fb4bc82e651b2b
2011-05-23 15:11:08 -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
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
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
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
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
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
df9799f0fc Fix build.
Change-Id: I97e357aa20c9ba91f20f77d53fc4dca1fd3aa598
2011-05-12 15:16:33 -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
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
Dianne Hackborn
cf407ad88b Fix issues #4087362 and #4087356
4087362: Provide a safer way to call DialogFragment.dismiss()
4087356: PreferenceActivity.invalidateHeaders() can cause
IllegalStateException: Can not perform this action after onSaveInstanceState

These are very safe; the first is just a new public API that
allows you to use an existing feature in DialogFragment, and the
second just uses the version of commit that avoids the failure if
happening at a point where the operation would be lost if restored
from the last state (which is no big deal for preferences).

Change-Id: I53971c9fb1efdcd599694cdcd4585b81afc156b8
2011-03-11 13:48:32 -08:00
Christopher Tate
9b95a4fcdc Broaden the filter for wallpaper restore
Tweak the filter parameters so that we now use any restored wallpaper image
that is larger than our ideal size, and will reject any smaller images only
if they are *much* smaller than our ideal size.  The specific threshold used
here will just barely reject Nexus One or Droid sized wallpapers for restore
onto a Xoom, but will pass anything larger.

Bug 4070129

Change-Id: I889bdb3ef5011343b2fccb2f81c6abc2f4603ee2
2011-03-10 17:53:53 -08:00
Dianne Hackborn
7fd981598e Merge "Fix issue #4066157: ActivityManager.getMemoryClass() returning large memory class" into honeycomb-mr1 2011-03-09 18:00:10 -08:00
Mike Lockwood
9e8e4ea0a8 Merge changes Ib517e5e4,I93be7695,I49bf22a4 into honeycomb-mr1
* changes:
  Close USB dialogs if their corresponding accessory or device has disconnected
  USB: Add API and dialog for apps to request permissions for USB devices and accessories
  UsbService: Automatically use system apps by default if it is the only choice
2011-03-09 03:52:47 -08:00
Mike Lockwood
3a68b8338b USB: Add API and dialog for apps to request permissions for USB devices and accessories
New APIs:

UsbManager.hasPermission returns true if the caller has permission
for the given device or accessory

UsbManager.requestPermission poses a dialog to allow the user to give the caller
permission for the device or accessory.
Result is returned via a PendingIntent.
No dialog is displayed if the caller already has permission.

Also moved UsbResolverActivity to SystemUI package

BUG: 4069037

Change-Id: I93be769501a8776b49ac26e468af19f8fa2114c9
2011-03-08 21:22:19 -05:00
Dianne Hackborn
7ad33c8f9e Fix issue #4066157: ActivityManager.getMemoryClass() returning large memory class
Change-Id: I1970252e07f703087ac96378410ae2b6e6e4c2d3
2011-03-08 15:53:25 -08:00
Andy Stadler
50c294f21b Clarify rules about encryption of emulated storage.
Bug: 3351426
Change-Id: I3a8fcd369862f3eab1781699108e29fe7ab474a0
2011-03-07 19:13:42 -08:00
Vasu Nori
3728130310 bug:3513950 Rename "completedDownload" to "addCompletedDownload"
Change-Id: I28b33a0268309d74fd2512b5bdb599f38ff3a96d
2011-03-07 11:51:14 -08:00
Dianne Hackborn
48f91e35c5 Merge "Fix Fragment.onInflate() to actually work correctly." into honeycomb-mr1 2011-03-03 22:23:07 -08:00
Dianne Hackborn
e3a7f628c6 Fix Fragment.onInflate() to actually work correctly.
Like, um, it needs to be given the Activity since this is called before
the activity is attached.

And it was called after the entire fragment and its *view* was created
when being restored from saved state.

And the documentation was whacked.

Also fix the IME selector to dismiss when you tap outside of it.

Change-Id: Icbcafe7558965a570bdef9cda3441b1f0f7a317c
2011-03-03 22:17:16 -08:00
Svetoslav Ganov
9aa597e68b Propagating core settings to the system process.
bug:3511123

Now the core settins are stored in the ActivityThread
instad in the AppBindData of the currently bound app.
Also the settings are pushed to the system process on
init.

Change-Id: I100bb7dc80d0d4548def22c328427bbef1694eb7
2011-03-03 18:20:43 -08:00
Svetoslav Ganov
11e515cbef NPE in in AppGlobals#getIntCoreSetting
bug:3508658

It ActivityThread#currentActivityThread() is called when
the ActivityThread is not attached it returns null and
AppGlobals#getIntCoreSetting was not checking for that.

Change-Id: I5e00d1947a161ad1e52ecfaa12cbbac3b534a0db
2011-03-03 12:55:59 -08:00
Bjorn Bringert
268c7111f6 Merge "Pass AppData to the app from SearchDialog queries." 2011-03-03 00:18:23 -08:00
Bjorn Bringert
1dda71ae36 Merge "Fixed NPE in ActivityManager's launch count service." 2011-03-03 00:10:03 -08:00
Dianne Hackborn
63e1cea248 Merge "Fix issue #3485923: Gmail crash" 2011-03-02 22:44:55 -08:00
Dianne Hackborn
6482517101 Fix issue #3485923: Gmail crash
Allow application to try to recover if a surface OOM error
happens on the client side.

Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
2011-03-02 22:38:58 -08:00
Amith Yamasani
940ef38c7c Pass AppData to the app from SearchDialog queries.
Bug: 3494468

During migration of SearchDialog to use SearchView, the appdata was not
passed along. This fixes the loss.

Change-Id: Ia754086d2bb95294e1d29650a72e4fdddec9c899
2011-03-02 18:43:23 -08:00
Svetoslav Ganov
54d068ec6a Add system wide management of core settings
bug:3505060

Since we want to have some settings that are used very frequently
by many applications (long-press timeout is one example) these should
be managed efficiently to reduce lookups from different processes
because in the case of a cache miss a disk I/O is performed. Now
the system manages such core settings and propagates them to the
application processes.

Change-Id: Ie793211baf8770f2181ac8ba9d7c2609dfaa32a7
2011-03-02 18:22:49 -08:00
Peter Visontay
bfcda39cad Fixed NPE in ActivityManager's launch count service.
Bug: 3497127
Change-Id: I38661fb0654e807f05cc57e43cff912de8d39096
2011-03-02 19:06:36 +00:00
Dianne Hackborn
e0edf4c1a2 Merge "Fix issue #3405957 com.android.settings: java.lang.NullPointerException..." 2011-03-01 17:36:25 -08:00
Dianne Hackborn
bfe2e3f9da Fix issue #3405957 com.android.settings: java.lang.NullPointerException...
...at android.app.DialogFragment.dismissInternal(DialogFragment.java:264)

Don't allow a DialogFragment to be dismissed twice.

Change-Id: Id2e9e3be1046b0d7862492c57c36001d8fd44a69
2011-03-01 17:20:43 -08:00
Dianne Hackborn
94b072b6f4 Merge "Fix issue #3411615: Crash when getting dialog layout inflator." 2011-03-01 17:18:10 -08:00
Dianne Hackborn
606ecf3e9f Merge "Fix issue #3495749: Crash on choosing to open the downloaded images" 2011-03-01 15:26:44 -08:00
Dianne Hackborn
25193d330e Fix issue #3411615: Crash when getting dialog layout inflator.
Well, I'm not sure it is right for onCreateDialog() to return a null
dialog, but if it does, let's not crash here.

Change-Id: I5ff49b9b3c326d9005f70a01435c01bfc7307343
2011-03-01 15:01:30 -08:00
Dianne Hackborn
ce418e661a Fix issue #3495749: Crash on choosing to open the downloaded images
This is due to the window doing a relayout after its activity is
stopped, at which point it may need to interact with the adapter
to load data.

The fix here is to tell ViewRoot about an activity being stopped
and, if in this state, hold off on doing any new measurements and
layouts of the hierarchy until it is no longer stopped.

In this case the relayout was happening due to the cursor
being deactivated, with causes the adapter to invalidate
its data.  Because this is now in a dialog window, this
allows the window to actually be resized smaller (unlike when
in a full screen activity), and boom.

Change-Id: I26442b4679819b4a4e6bc56289afd3445526750b
2011-03-01 14:45:28 -08:00
Mike Lockwood
04e1a9620f Merge "Move USB framework support from android.hardware to android.hardware.usb package" 2011-03-01 11:58:22 -08:00