Commit Graph

1953 Commits

Author SHA1 Message Date
Dianne Hackborn
88f10c6ce5 Merge "Fix issue #5679504: Device stuck and sudden reboot - Watchdog reset?" into ics-mr1 2011-11-30 14:12:44 -08:00
Romain Guy
7797cae256 Merge "Cache drawable constant states instead of drawables Bug #5678369" into ics-mr1 2011-11-30 14:07:34 -08:00
Dianne Hackborn
1fbee79eb3 Fix issue #5679504: Device stuck and sudden reboot - Watchdog reset?
Calls to get the display size no longer need to acquire the global
window lock.

Change-Id: I751ea6ed0e20f1f521783f4bd5a8f9c31cd43573
2011-11-30 11:29:58 -08:00
Romain Guy
39fe17c8fb Cache drawable constant states instead of drawables
Bug #5678369

Caching drawables directly in a static map was responsible for runtime
restarts. If two different UI threads requested the same drawable, the
first thread to issue the request would be given a drawable callback
belonging to the second thread. This would cause an exception in
ViewRootImpl on invalidate.

The solution is to store the drawable states and to create a new
drawable instance every time a drawable is requested from the
cache. This is similar to how preloaded resources are handled.

Change-Id: I47e24e2a168cf67a3589185c6cd77b70f9a1c7cf
2011-11-30 10:34:07 -08:00
Svetoslav Ganov
9f086d812f NumberPicker incorrectly shown for the old theme.
1. NumberPicker is trying to greedily grow to its max size
   but if the max size is not specified the default value
   was the max integer which makes the widget get quite
   tall in some cases. Now the widget tries to reach the
   max size only if it has been specified.

2. NumberPicker was not computing its min width when the array
   of display values is set.

3. DatePicker' layout for the old Theme was adding a margin on
   the right of the group of spinners and if the calendar view
   is not shown the spinners were not centered. Added the spinners
   right margin to the left margin of the calendar view.

4. TimePickerDialog was using the wrong conext and was not dismissable
   on an outside touch. Same for the DatePickerDialog context.

bug:5646161

Change-Id: Ic15f9b3e6291b76493604230ceb4f783a04d4ac7
2011-11-29 18:40:05 -08:00
Jeff Brown
ddaa9ac896 Fix races when content providers are acquired and released.
This change fixes race conditions that occur very regularly when
content providers are accessed from multiple threads at the same
time.

When a content provider is not already in the application's cache,
the application needs to ask the ActivityManager to obtain it.
Meanwhile, another thread can come along and do the same thing.
This can cause problems because the application attempts to
install two copies of the provider and the reference counts
and other bookkeeping can get muddled.

Similarly, there are races between releasing the last reference
to a content provider and acquiring the content provider.  It's
possible for one thread to snatch the content provider from the
jaws of death.  We need to handle this explicitly to ensure that
the content provider does not accidentally get released right
after it was acquired by the other thread.

This change ensures that the reference count bookkeeping and
provider map are maintained in parallel while holding the same lock.
Previously because the lock was dropped and reacquired in the
middle of acquisition and removal, it was possible for a
content provider with a zero reference count to be returned
to the application.  Likewise, it was possible for a content
provider with a non-zero reference count to be disposed!

This change also performs compensatory actions when races are
detected to ensure that the necessary invariants are maintained
throughout.  In particular, it ensures that the application
drops a duplicate reference to a content provider when no
longer needed.

Another way to solve this problem would be to explicitly prevent
the races from happening in the first place by maintaining a
table of content providers that are in the process of being
acquired.  The first thread to attempt to acquire the provider
would store a record.  The next thread would find the record
and block until the first thread was finished.  I chose not
to implement the code in that manner because we would still
have needed to perform compensatory actions in the case where
the same provider binder has multiple logical names.  Also,
it could cause deadlocks if the attempt to acquire
a content provider were re-entrant for some bizarre reason.

Bug: 5547357
Change-Id: I2ad39a8acc30aaf7ae5354decd0a0a41e9b9c3da
2011-11-14 18:31:13 -08:00
Adam Cohen
6066a2b4de Merge "Fix uncaught exception in WindowManager#setWallpaperOffsets (issue 5613241)" into ics-mr1 2011-11-14 14:33:06 -08:00
Adam Cohen
8e2e572224 Fix uncaught exception in WindowManager#setWallpaperOffsets (issue 5613241)
Change-Id: I4646095f4cde9514425be8ab2dbf805d9788aa5c
2011-11-14 13:28:50 -08:00
Dianne Hackborn
d400d03f4a Merge "Fix issue #5595933: GREF leak due to race condition in..." into ics-mr1 2011-11-11 14:24:58 -08:00
Dianne Hackborn
5a6ef737ed Fix issue #5595933: GREF leak due to race condition in...
...LoadedApk.ServiceDispatcher.connected , LoadedApk.forgetServiceDispatcher

Don't be stupid if we receive a new binding to a ServiceConnection after it
has already been unbound.

Change-Id: I85a49de97372bf9af55542a89031f0b7a2ac8fbb
2011-11-11 12:31:52 -08:00
Adam Cohen
d562d300cd Merge "Deferring wallpaper update to improve workspace scrolling (issue 5506959)" into ics-mr1 2011-11-10 19:27:58 -08:00
Adam Cohen
041a0baba7 Deferring wallpaper update to improve workspace scrolling (issue 5506959)
-> On the Xoom, this change gets us back up to 60 fps. The
   change is really more of a workaround for the fact that we don't
   have vsync, and we ought to be able to change it back once we do.

Change-Id: I80888f18887bf5f2fed72c19641ed430ef6dbfcf
2011-11-10 16:53:26 -08:00
Romain Guy
a958265827 Initialize egl_cache with an app writeable file
Change-Id: I5dda234feab0fedd6e4179a80715ae20dee1c833
2011-11-10 14:20:10 -08:00
Dianne Hackborn
cd489c4ce5 Merge "Don't crash if there is no connectivity service." into ics-mr1 2011-11-08 17:58:26 -08:00
Dianne Hackborn
d4d32c594f Don't crash if there is no connectivity service.
Change-Id: I5f991896125fda22ff99b98a6aca244adbb17449
2011-11-08 17:33:59 -08:00
Dianne Hackborn
e4d4fbc8c0 Add drop box reports of low memory.
We are tagging these as "watchdog" to make them visible in the
reporting tools.

Also new am command to kill all background processes, mostly to make
it easier to test this stuff.

Change-Id: Ib9dc4747cd8bd44156fdf11d6a087cd4272203eb
2011-11-08 15:44:34 -08:00
Adam Powell
78fed9b78f Change the "start deferred" fragment API to "user visible hint"
Allow a fragment to set a hint of whether or not it is currently user
visible. This will be used implicitly to defer the start of fragments
that are not user visible until the loaders for visible fragments have
run. This hint defaults to true.

Change-Id: Id1349d319886a277ef07301f64f7b9e12c8729bf
2011-11-07 13:47:13 -08:00
Adam Powell
2db4e4bd1b Fix bug 5557267 - [ViewPager] non-primary fragments unnecessary
stopped if "defer start" is enabled

Only revise the target state in moveToState if it would cross the
stopped/started boundary.

Change-Id: I8f6e400331157eac9343261117cf633611fc1e4d
2011-11-02 14:30:47 -07:00
Adam Powell
89fc3acd4b Bug 5513073 - IllegalArgumentException: View not attached to window
manager

Remove extra queued dialog dismiss messages when applicable. Log an
error if the app tries to dismiss a dialog when its window has been
destroyed.

Change-Id: Ice8383d4420c052e31fbbd9fcd25051f3bd9b58d
2011-11-01 18:50:39 -07:00
Dianne Hackborn
ad41a94b29 Merge "Some optimizations." into ics-mr1 2011-11-01 18:02:44 -07:00
Dianne Hackborn
0500b3cfda Some optimizations.
- Don't try to create a thumbnail bitmap on the client side.  This
  wastes 64k, and isn't needed since we are doing screenshots.
- Optimize View to put all of the callback pointers out of line.
  Added a couple new APIs so these don't need to be protected/public.
- Lazily create ViewGroup's cache paint.
- Change FrameworkPerf app to not use HW accel drawing, to give better
  comparison with GB.

Change-Id: Iec56d02459820d74a4cc9c7ec9c1856563c82c7b
2011-11-01 18:01:33 -07:00
Adam Powell
cfe9aee728 Fix bug 5528574 - "View not attached to window manager" upon
orientation change when there is a dialog with ActionMode on

Fix a bug closing down active action modes as dialogs are closing.

Change-Id: I0d28e3b3845d5ed50fbb55b180dafa1b11957b81
2011-11-01 15:03:23 -07:00
Adam Powell
37510908a7 Bug 5535639 - Monkeys mad at FragmentManager
Also check for starting deferred start fragments when a loader is
destroyed.

Change-Id: Ia17a902c579c09d7ac01079c7c1da137635aa08b
2011-10-31 11:48:24 -07:00
Joe Fernandez
74b2b95473 am 09848bc8: Merge "docs: add developer guide cross references, Project ACRE, round 3" into ics-mr0
* commit '09848bc89de999416e2de82a7693b2deec6bf802':
  docs: add developer guide cross references, Project ACRE, round 3
2011-10-29 02:16:10 +00:00
Joe Fernandez
61fd1e8d8c docs: add developer guide cross references, Project ACRE, round 3
Change-Id: I6125315ecdf0f78dd947c514a9944729d723e95d
2011-10-28 14:23:23 -07:00
Adam Powell
635c60af62 Add API for deferring fragment start.
Fragments now have the setDeferStart method to signal that a fragment
has lower priority than others. Deferred start fragments will not
always be started immediately; they will be started once any loaders
have finished servicing any outstanding requests. This is useful if
any attached fragments are not immediately visible and can wait to
start until later.

Disabling deferStart on a fragment that is waiting for a deferred
start will start it immediately. Start.

Change-Id: Ia1f004877ca5e88d4f10147d21c7e2e97f141c34
2011-10-27 15:54:51 -07:00
Daniel Sandler
8de952bfc1 am d2cd1f72: Merge "Lazily fetch the status bar service." into ics-mr0
* commit 'd2cd1f722421c33e88df92d036663f30b316fa3f':
  Lazily fetch the status bar service.
2011-10-20 13:11:15 -07:00
Daniel Sandler
9cbd360a67 Lazily fetch the status bar service.
Works around a timing issue in the lockscreen's connection
to the status bar.

Bug: 5479833
Change-Id: I043441b94db74df3e4319dd7bfb7635446cdc5d6
2011-10-19 01:41:29 -04:00
Jim Miller
138f6fa439 am 9a7e4ce7: Merge "Fix 5466678: use new setSystemUiVisibility() API to enable clock in statusbar" into ics-mr0
* commit '9a7e4ce72a1f97832e71386ad023439ed9b179bd':
  Fix 5466678: use new setSystemUiVisibility() API to enable clock in statusbar
2011-10-17 18:06:08 -07:00
Jim Miller
305c78cce6 Fix 5466678: use new setSystemUiVisibility() API to enable clock in statusbar
This fixes a bug where the clock wasn't being shown in the statusbar while
the music widget is showing.

Change-Id: Ic1c52c4ab7fa1490fe14ddafaf2c494bcf51866d
2011-10-17 11:41:44 -07:00
Joe Fernandez
5a401ddbc8 am 471fa9d1: Merge "docs: add developer guide cross-references, Project ACRE, Round 2" into ics-mr0
* commit '471fa9d10b4fa4da070c0ffb5fa5ea1354c8e6b8':
  docs: add developer guide cross-references, Project ACRE, Round 2
2011-10-14 10:54:29 -07:00
Joe Fernandez
471fa9d10b Merge "docs: add developer guide cross-references, Project ACRE, Round 2" into ics-mr0 2011-10-14 10:52:33 -07:00
Joe Fernandez
558459fe85 docs: add developer guide cross-references, Project ACRE, Round 2
Change-Id: I39a534ae3a2a34b4dabc333a09961012ef911d3e
2011-10-14 10:18:33 -07:00
Mathew Inwood
772158a596 Merge "Allow setting of source bounds on global search intents." 2011-10-14 06:35:26 -07:00
Mathew Inwood
050453eaf5 Allow setting of source bounds on global search intents.
This is to allow the launcher to include the source bounds of the
search affordance on the homescreen when launching the global
search app.

Bug: 5235747

Change-Id: I7af1a651d593b6d946aa2fe42d900a9c4470b4e2
2011-10-14 14:11:52 +01:00
Daniel Sandler
dba9356590 Break apart DISABLE_HOME and DISABLE_RECENT.
Additionally, start using setSystemUiVisibility() where
possible in the keyguard to allow activities and dialogs to
re-enable some of the navigation keys (notably: home but not
recents).

Finally, stop disabling MENU for activities atop the keyguard.

Bug: 5380495 // no home in driveabout, clock
Bug: 5396134 // able to show home/recent in keyguard
Change-Id: I04eb224554ee8cff79476b85148c4cda75bb0b62
2011-10-13 15:28:10 -04:00
Dianne Hackborn
2e8fb73ec0 Fix issue #5435470: SharedPreferencesImpl should read from file...
...via BufferedInputStream

Change-Id: Ic14eff1e53b6f4a0de5f59bd97cd390eb908e3c6
2011-10-10 18:47:00 -07:00
Dianne Hackborn
58f42a59bd Fix issue #5405788: Device continuously opening and closing...
...the "Complete action using" dialog

When an application goes idle, it sends back to the activity manager
the configuration it last used, to make sure the two don't get out
of sync.  Fix a bunch of edge cases here in dealing with that, and
be sure to also send the current configuration when launching an
activity so the client is always up-to-date when launching.

Also a small fix to not show the upgrading dialog during first boot.

Change-Id: I14ed366a87cd689d1c78787369e052422290ac6f
2011-10-10 14:53:08 -07:00
Christopher Tate
bf6ee4f509 Fix wallpaper restore
Following a restore of the wallpaper data files, the settingsRestored()
method was binding the new wallpaper by passing null as the component,
because once upon a time that meant just use the configuration that had
just been loaded from the [newly restored] settings filed.  However, at
some point this broke when the load from settings was made a staging
operation, not also the commitment of the changes.

This CL passes the newly-determined component configuration explicitly
to the bind, overriding the product default that may already have been
emplaced by the time the restore happens.

It also turns off the (minor) debugging that had been enabled in
WallpaperBackupHelper while digging into the issue.

Bug 5416839

Change-Id: I963893c236e24c75d10dde75836805295ea42cbb
2011-10-07 12:37:42 -07:00
Dianne Hackborn
668f7c3ec9 Merge "Fix issue #5348948: Third Party app "Byki Turkish" shows..." 2011-10-05 11:15:13 -07:00
Dianne Hackborn
836e262aa8 Fix issue #5348948: Third Party app "Byki Turkish" shows...
...a tiny dialog (works fine in GB and HC)

I found two problems:

- When first binding an application, we were not correctly computing
the compat configuration.
- When retrieving the display metrics to hand to Resources, we were
using the one with compat applied.  This is not right, because
Resources will apply the compat itself, so in some cases the compat
scaling was applied twice.

Change-Id: I22c9cfed9e271290c1a7544fa3ffa54a2e65daf9
2011-10-04 19:17:49 -07:00
Christopher Tate
b5de598554 Merge "Add -nosystem flag to adb backup" 2011-10-04 16:16:11 -07:00
Christopher Tate
240c7d2d1f Add -nosystem flag to adb backup
This makes it easy to back up everything that belongs to 3rd party apps, but
nothing that comes with the system per se.  If any system packages are
explicitly named on the command line they will be included in the backup
even if -nosystem was passed.  So, for example, this will back up all 3rd
party apps as well as system settings, but nothing else belonging to
system-deployed apps:

   adb backup -all -nosystem com.android.provider.settings

Bug 5361503

Change-Id: Iebe04b7d7027ca58b9f55e8eb7f219d6cca69269
2011-10-04 15:35:00 -07:00
Joe Fernandez
cac15eb21c Merge "docs: add developer guide cross-references, Project ACRE" 2011-10-04 14:03:12 -07:00
Joe Fernandez
b54e7a3d9f docs: add developer guide cross-references, Project ACRE
Change-Id: I5df1c4e13af67ff4c4a5b22f3cb1247bf0103b09
2011-10-04 13:57:00 -07:00
Dianne Hackborn
9ecebbfbf7 Add mechanism for Parcel to not allow FDs to be written to it.
This is to help implement issue #5224703.

Change-Id: I026a5890495537d15b57fe61227a640aac806d46
2011-10-03 16:58:41 -07:00
Dianne Hackborn
a982ad19d2 Merge "Fix issue #5173952: Opening a Notification From Lock Screen..." 2011-09-23 14:54:26 -07:00
Dianne Hackborn
90c52de286 Fix issue #5173952: Opening a Notification From Lock Screen...
...Should Skip Unsecure Lockscreen (ICS)

Also while I am in there, clean up logging of intent objects to include
even less sensitive information, while showing the true Intent in dump
output (since apps can't get to that).

Change-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e
2011-09-23 13:39:33 -07:00
Scott Main
e797ed6a74 docs: a few additions and revisions to action bar docs
Change-Id: I12c24e5d4ed49d8f9822050d330f617bd614b7b9
2011-09-23 12:56:20 -07:00
Kenny Root
0d3647dc00 am 9c711282: Merge "Unhide new PackageManager APIs for API 14" into ics-factoryrom
* commit '9c711282ad234e104c34eb4408d85fc1bb149ded':
  Unhide new PackageManager APIs for API 14
2011-09-21 18:56:52 -07:00