Commit Graph

119 Commits

Author SHA1 Message Date
Dianne Hackborn
5d9d03a023 Maybe fix issue #3093599: java.lang.IndexOutOfBoundsException...
...Invalid index 0, size is 0 at
android.app.ActivityThread.performPauseActivity(ActivityThread.java:2326)

It looks like if an arrow key is dispatched between the time the
list view is told its data set has changed and it does the resulting
layout pass, we could try to move the position to a now invalid
index.  This may prevent that from happening.

Also put in a better error message if saving state of a fragment
whose target is no longer in the fragment manager.

And fix a bug in PackageManager where we could return a null from
queryIntentActivities().

And add a new API to find out whether a fragment is being removed,
to help fix issue #3306021: NPE at
android.app.AlertDialog.getDefaultDialogTheme(AlertDialog.java)

Next, for new HC apps we can delay committing data to
storage until the activity is stopped.

Finally, use the new multi-threaded AyncTask executor in a few
places, so we don't have worked blocked by long-running tasks from
the application.

Change-Id: I27b2aafedf2e1bf3a2316309889613fa539760f3
2011-01-24 21:23:03 -08:00
Andy Stadler
c5a0ce242f Throw Base64DataException instead of IOException
* Define Base64DataException
* Throw it from Base64InputStream & Base64OutputStream
* This enables callers to disambiguate "bad data" from "broken stream",
  which makes it more possible to do proper retry logic.

Bug: 3365205
Change-Id: I332e7c008f92b333400d1b4dcaef5aedc7c10ef4
2011-01-24 16:47:56 -08:00
Jesse Wilson
eb97c0ddc0 Patch new JSON APIs with changes informed by GSON.
Change-Id: I86c12a123080cc06ab23d11d1563bb52c5902517
2011-01-10 12:56:31 -08:00
Michael Chan
aa5bb98120 b/3279789 Fixed NPE in CalendarUtils$TimeZoneUtils$AsyncTZHandler.onQueryComplete
Null cursor was returned from query

Change-Id: I76a7d710b0764f52ed6ced23792717feb7b6ae08
2011-01-09 12:11:02 -08:00
Patrick Dubroy
96abab264e Merge "Ensure bitmaps aren't freed while referenced from a display list" 2010-12-20 17:15:31 -08:00
Patrick Dubroy
f890fab5a6 Ensure bitmaps aren't freed while referenced from a display list
Also removes the reference queue finalizers. They aren't necessary
anymore now that Bitmaps are allocated in the heap.
2010-12-20 17:02:15 -08:00
Dianne Hackborn
a2ea747faa More cleanup of Loader APIs.
- Remove old method names.
- Introduce onXxx() hooks to Loader.
- Improve debugging.

Change-Id: I3fba072a05c7023aa7d2c3eb4e126feb514ab6d8
2010-12-20 14:10:31 -08:00
Brad Fitzpatrick
26d8fa9dbf Put Log.wtf's terrible failure in logcat -b main.
As discovered by jpa@, previously it was only in logcat -b events, not
-b main, which people don't typically watch.

Bug: 2964398
Change-Id: Id672dd936f1678dd347158428b0ca03e4ad1e2d4
2010-12-15 15:14:06 -08:00
Bjorn Bringert
93fbae34ce Merge "Don't drop zeros in the second position in formatDuration()" 2010-11-24 03:25:17 -08:00
Brad Fitzpatrick
1b29825cca Misc Looper cleanups; add android.util.PrefixPrinter
Change-Id: I0b9adce46cb785b4dd4e6296e1f97c8bcf0dbfbf
2010-11-23 17:17:33 -08:00
Bjorn Bringert
901b3796fd Don't drop zeros in the second position in formatDuration()
Bug: 3223250
Change-Id: I462c96af51cc052f9df1dc3d2c668551b10155ea
2010-11-23 14:43:12 +00:00
Brad Fitzpatrick
cdcb73ef78 Cache WindowManager in StrictMode; add android.util.Singleton
Change-Id: I15a85461424de930710d4901658440b5d305cabb
2010-11-22 23:00:23 -08:00
Jesse Wilson
9d9b4e70a1 Decode JSON literal types eagerly and with our own decoder.
Previously we relied on Double.parseDouble() to decode tokens. Since
that method is expensive, we deferred calling it unless absolutely
necessary.

Now we decode the literal type immediately. For efficiency we decode
the token right out of the char buffer. This makes things more
complicated but it saves many calls to charAt().

With this change overall performance is 7% faster for JSON documents
cited in the bug.

    benchmark                     run  ms linear runtime                    %
GsonParseFull no switch, no int parse 309 ============================    93%
GsonParseFull                baseline 330 ============================== 100%

http://b/3201883
Change-Id: I436b6769956b1357a17c807a327d3a234691c73f
2010-11-18 23:06:50 -08:00
Jesse Wilson
762b33f949 am 2d2f10fa: am 28c74257: Add @Deprecated to match @deprecated where it\'s missing.
* commit '2d2f10fa3412adc07a08c25ba5d2df600fb654bf':
  Add @Deprecated to match @deprecated where it's missing.
2010-11-09 10:26:39 -08:00
Jesse Wilson
28c742573c Add @Deprecated to match @deprecated where it's missing.
Change-Id: Ice95022671968386a601f32df7850f9baa1d2dd0
2010-11-09 10:10:11 -08:00
Tom O'Neill
0f2d6c69f3 Merge "Remove inappropriate conversion of IOException to AssertionError" 2010-11-08 08:02:44 -08:00
Tom O'Neill
28e3f10170 Remove inappropriate conversion of IOException to AssertionError
An IOException is a recoverable condition, and AssertionError should be
used for non-recoverable conditions.

Fixes b/3169361

Change-Id: Ie71a537293e01ffb49c5f535412e2631e27c84c8
2010-11-05 10:14:24 -07:00
Dianne Hackborn
079e235750 Add new fade in/out feature for drawable containers.
This is used to allow list view's pressed and activated indicators
to fade in an out, though of course it can be used elsewhere as well.

There is a lot of complexity in supporting this in list view.  The
two main things that are being dealt with:

- When recycling views, we need to make sure that the view's drawable
  state doesn't get animated from an old row's state.  The recycler
  now keeps track of which position a view was last in, and if it is
  reused at a new position there is a new View/Drawable API to tell
  it to jump to its current state instead of animating.

- For the pressed indicator to fade out, we need to keep displaying it
  after it is hidden.  There are new variables and code to keep track
  of this state, and tweaks in various places to be able to remember
  the last selected position and continue updating the drawable bounds
  as needed.

Change-Id: Ic96aa1a3c05e519665abf3098892ff2cc4f0ef2f
2010-11-03 19:11:19 -07:00
Dianne Hackborn
a0b46c9c44 Implement issue #3116702: New manifest tags for supported screen sizes
Merged from GB.

Change-Id: I94730b54bcacd083f77708e84c35f4932a7b9d2e
2010-10-22 16:18:43 -07:00
Dianne Hackborn
a6d9c7c04c Implement issue #3116702: New manifest tags for supported screen sizes DO NOT MERGE
Change-Id: Iabf64d86c89d387ffbfbc39f950d308a73fe17eb
2010-10-21 15:32:06 -07:00
Jesse Wilson
3312b29760 Fix typos in JSON documentation.
Change-Id: Ife519f755b1974adee13553cd4dfa2b15dd23aac
2010-10-15 17:33:54 -07:00
Erik
b0eee7df01 am 277465fb: am 57bd0615: Merge "b/3054044 Make allDay event times format in utc" into gingerbread
Merge commit '277465fb5bfc74716f194f1abc2befb42ed73590'

* commit '277465fb5bfc74716f194f1abc2befb42ed73590':
  b/3054044 Make allDay event times format in utc
2010-10-01 11:21:21 -07:00
Erik
d762a347fb b/3054044 Make allDay event times format in utc
AllDay events could get formatted with the local time zone
instead of utc. This makes it so that using the utc flag in the
wrapper for formatting correctly passes in UTC as the time zone.

Change-Id: I65090ef939ce64c1a942c7683cf76a927c02cb53
2010-10-01 11:01:01 -07:00
Jesse Wilson
674df1b373 am f78fdacc: am eaa2cabf: Merge "Fix problem where Base64InputStream single-byte reads were unsigned." into gingerbread
Merge commit 'f78fdaccde379d1c101be137416808ea62a2f292'

* commit 'f78fdaccde379d1c101be137416808ea62a2f292':
  Fix problem where Base64InputStream single-byte reads were unsigned.
2010-09-22 13:53:33 -07:00
Jesse Wilson
64b25cf736 Fix problem where Base64InputStream single-byte reads were unsigned.
Change-Id: Ibdfb77a283300baa61738fe98aa1c9f29eaf976f
http://b/3026478
2010-09-22 10:28:27 -07:00
Erik
ffc9bf68d6 am bfbab8ca: am a8cc20e5: Merge "b/3004029 Fixed content resolver loss" into gingerbread
Merge commit 'bfbab8ca36ed62a71118b355f2b8d8985bdb9d38'

* commit 'bfbab8ca36ed62a71118b355f2b8d8985bdb9d38':
  b/3004029 Fixed content resolver loss
2010-09-15 19:10:10 -07:00
Erik
d0f81ea95c am 42e72e57: am 344d9663: Merge "Close tz query cursor when done." into gingerbread
Merge commit '42e72e570b66c3bed316a9e7a766d2f8fc986ae6'

* commit '42e72e570b66c3bed316a9e7a766d2f8fc986ae6':
  Close tz query cursor when done.
2010-09-15 19:10:04 -07:00
Erik
09bd4bf85e b/3004029 Fixed content resolver loss
We were creating a static AsyncQueryHandler which only held a
weak reference to the content resolver. This caused db updates
to be dropped once the original context had been gc'd. This
fix creates a new handler for each update to ensure we have a
valid resolver.

Change-Id: I049d8390ac0215e12e63d57b0bae4d3f6df64b6a
2010-09-15 15:45:19 -07:00
Erik
5ba5de93c7 Close tz query cursor when done.
Change-Id: I9cb30539b12121f01e093985985e3c802f7a9e8c
2010-09-15 13:37:19 -07:00
Erik
ac212158f0 am 0b46070d: am 426ee7f2: Fixes some bugs in TimeZoneUtils
Merge commit '0b46070d8878a8791f343cbbe720388e7dfe4e6f'

* commit '0b46070d8878a8791f343cbbe720388e7dfe4e6f':
  Fixes some bugs in TimeZoneUtils
2010-09-15 12:32:46 -07:00
Erik
088fbbc7b6 am 86e19914: am b92788aa: Merge "Adds time zone functionality into fw as a hidden api" into gingerbread
Merge commit '86e1991428c2bc78354965c51b2821ae16f32a55'

* commit '86e1991428c2bc78354965c51b2821ae16f32a55':
  Adds time zone functionality into fw as a hidden api
2010-09-15 11:38:26 -07:00
Erik
426ee7f22e Fixes some bugs in TimeZoneUtils
TimeZoneUtils was updating the db and modifying the selection. This
creates a static selection for each update type and creates new
values for each update. Also adds a method for apps to force the
local tz cache to refresh if they think another app has modified
the db.

Change-Id: Iaaade635ac8ff11bb116005a0f6b44efcd4c4056
2010-09-14 16:08:55 -07:00
Erik
71ad58c751 Adds time zone functionality into fw as a hidden api
This is the start of work towards pushing api that is needed for
Calendar to become unbundled into frameworks. This adds functions
for getting and setting time zones for the Calendar app. The new
methods are currently hidden.

Change-Id: I1b4265b23630c46d9730a179ec02da8d6c0e03ea
2010-09-14 11:16:08 -07:00
Dianne Hackborn
d0438da05c am 75f0024c: am 6e86915e: Merge "Fixes to battery stats debug output." into gingerbread
Merge commit '75f0024cf40eadb2cdaa6ae53409c515b68f21c1'

* commit '75f0024cf40eadb2cdaa6ae53409c515b68f21c1':
  Fixes to battery stats debug output.
2010-09-07 15:16:38 -07:00
Dianne Hackborn
b5e3165129 Fixes to battery stats debug output.
Change-Id: I32e7cad9633b8c517a74573069e426d9f835a83d
2010-09-07 14:09:36 -07:00
Chet Haase
49afa5bc10 Add facilities for layout transitions
Change-Id: I5c73ce6c6ba3bc9e3b57fcfbbcab37d511db6132
2010-08-24 13:09:20 -07:00
Dianne Hackborn
a10382b67d am 2e47052f: am 567722ee: Merge "Fix problems with determining when to kill apps for wake usage." into gingerbread
Merge commit '2e47052fc4ad3439adc2322fd953fd58a85d457c'

* commit '2e47052fc4ad3439adc2322fd953fd58a85d457c':
  Fix problems with determining when to kill apps for wake usage.
2010-08-16 15:18:27 -07:00
Dianne Hackborn
1ebccf531d Fix problems with determining when to kill apps for wake usage.
Also improve debug printing of various times.

Change-Id: Ifcc288fd1bcbf44c069875ba97925b9e7ffe9a48
2010-08-15 17:27:29 -07:00
Dianne Hackborn
b7a2e47722 Fragment and PreferenceFragment and FragmentManager, oh my!
- Introduce FragmentManager public API, for all Fragment management
  needs.  Will in the future allow the removal of the (growing number
  of) fragment APIs on Activity.

- Fragment now has a concept of arguments.  This can be supplied
  immediately after creation, and are retained across instances.

- PreferenceActivity now has an API to have it update its headers (note
  not tested).  Headers now have arguments.  Keys for controlling
  when PreferenceActivity shows at launch have been added to the SDK.

- Fixes to back stack handling and state saving/restoring.

Change-Id: Ib9d07ae2beb296c4eb3a4d9e1b3b59544675e819
2010-08-12 17:23:48 -07:00
Romain Guy
02890fd0f9 Replace Bitmap's finalizers with PhantomReferences.
This change also removes the use of SoftReferences for View's
drawing cache.

A bitmap now creates a PhantomReference enqueued in a reference
queue provided by the new Finalizers class. This queue is polled
from a thread started after forking zygote. That thread is in charge
of clearing the references after GC runs and of calling reclaim()
on them. The reclaim() method is now how finalizers are run.

Note that a PhantomReference cannot be kept in the instance it
refers to, which is why they are kept in a separate List.

Change-Id: If3c1a5e9dc23fa49e34857860d730f5cf5ad5926
2010-08-09 09:44:40 -07:00
Jesse Wilson
d07fb882f8 Optimizing skipValue() to avoid allocation.
I ran a quick benchmark on a desktop VM: this shortened the time
to parse a complete JSON document by ~25%.

Change-Id: Id479734654addfe86f4bf251f0dd6e78843023bf
http://microbenchmarks.appspot.com/run/jessewilson@google.com/twitter.JsonParseBenchmark/366001
2010-08-06 19:30:07 -07:00
Jesse Wilson
1ba4171405 Adding JsonReader.setLenient() to handle malformed JSON strings.
Also replacing setIndentSpaces() with a more general purpose method,
setIndent().

Change-Id: I64fbe4901aec23de5392362c1d40b77bc2b5566b
2010-08-06 19:24:54 -07:00
Jesse Wilson
76d7e20a75 A new streaming JSON API.
Change-Id: Iefa7ee44ddacbe22ea9ebca3165ac59030659bf2
2010-08-06 10:34:44 -07:00
Dianne Hackborn
c801768e4d Integrate Loader support in to Activity/Fragment.
Introduces a new LoaderManager class that takes care of
most of what LoaderManagingFragment does.  Every Fragment
and Activity can have one instance of this class.  In the
future, the instance will be retained across config changes.

Also various other cleanups and improvement.

Change-Id: I3dfb406dca46bda7f5acb3c722efcbfb8d0aa9ba
2010-07-08 15:17:22 -07:00
Brad Fitzpatrick
37d33a546b am 599f7287: am 9ac3743d: Merge "Log.wtf when databases go to be downgraded." into kraken 2010-06-08 12:40:57 -07:00
Brad Fitzpatrick
44dc76a8a7 Log.wtf when databases go to be downgraded.
BUG=2734435

Change-Id: I686d6d9415f3081544c3fbe379287c31e0ecec20
2010-06-08 12:20:51 -07:00
Daisuke Miyakawa
df3f1cc3fe Add KDDI/Softbank to available Shift_Jis mapping.
Bug: 2689523
Change-Id: I5140bd02a5e30b323eb19b1b0eb2dcf17027f878
2010-05-25 14:10:09 -07:00
Shimeng (Simon) Wang
db990751ef Updated URL pattern based on http://data.iana.org/TLD/tlds-alpha-by-domain.txt
Note: this change doesn't solve the Arabic country code top level domains, which
was turned on today.  For that, more changes need to be done; probably we need a way
to convert the BiDi url to punycode first; then apply this URL pattern.

issue: 2663885
Change-Id: I0597fe620c4d44259bff88ecfcbcca1565928c6f
2010-05-07 14:59:04 -07:00
Shimeng (Simon) Wang
cbeaf2d0ae Revert "Updated URL pattern based on http://data.iana.org/TLD/tlds-alpha-by-domain.txt"
This reverts commit 63b849ef8d6a47422b0f2779f1d9320f6a65d16b.
2010-05-06 20:45:55 -07:00
Shimeng (Simon) Wang
9b1872e619 Updated URL pattern based on http://data.iana.org/TLD/tlds-alpha-by-domain.txt
Note: this change doesn't solve the Arabic country code top level domains, which
was turned on today.  For that, more changes need to be done; probably we need a way
to convert the BiDi url to punycode first; then apply this URL pattern.

issue: 2663885
Change-Id: Iac5d16bf9e091a072a59f8244ab6e87940badd4f
2010-05-06 15:38:15 -07:00