Commit Graph

157 Commits

Author SHA1 Message Date
Andy McFadden
271c3aee1f Move CalendarUtils into Calendar app
Bug 4575374

Change-Id: I325810002c63a82e712d7505327e77c388564d2c
2011-06-09 13:14:34 -07:00
Chet Haase
b39f051631 Add 'Property' object
This change adds a generic Property facility to the SDK, which allows an
easy way to reference fields (private or otherwise) in a general way.
For example, animations can use this facility to animate 'properties'
on target objects in a way that is more code- and compiler-friendly than
the existing String-based approach (for objects which have implemented
Properties, of course). The animator classes have been updated to use
this new approach (in addition to Strings, which are still more generally
useful for objects which have get/set functions but not Property objects).

The change also includes new Property objects on View (which can now be
used in creating animations on Views).

There is an unrelated change on GLES20RecordingCanvas to change the way we
cache bitmaps, which avoids spurious garbage by using an ArrayList instead of
a HashSet.

Change-Id: I167b43a3fca20e7695b1a23ca81274367539acda
2011-06-08 09:42:37 -07:00
Svetoslav Ganov
8643aa0179 Interrogation of the view hierarchy from an AccessibilityService.
1. Views are represented as AccessibilityNodeInfos to AccessibilityServices.

2. An accessibility service receives AccessibilityEvents and can ask
   for its source and gets an AccessibilityNodeInfo which can be used
   to get its parent and children infos and so on.

3. AccessibilityNodeInfo contains some attributes and actions that
   can be performed on the source.

4. AccessibilityService can request the system to preform an action
   on the source of an AccessibilityNodeInfo.

5. ViewAncestor provides an interaction connection to the
   AccessibiltyManagerService and an accessibility service uses
   its connection to the latter to interact with screen content.

6. AccessibilityService can interact ONLY with the focused window
   and all calls are routed through the AccessibilityManagerService
   which imposes security.

7. Hidden APIs on AccessibilityService can find AccessibilityNodeInfos
   based on some criteria. These API go through the AccessibilityManagerServcie
   for security check.

8. Some actions are hidden and are exposes only to eng builds for UI testing.

Change-Id: Ie34fa4219f350eb3f4f6f9f45b24f709bd98783c
2011-06-06 18:46:03 -07:00
Dianne Hackborn
8a7d44e824 resolved conflicts for merge of 54cb63e2 to master
Change-Id: I5b741a1781e3f76c03fc1534ffce871117effd10
2011-06-02 16:44:52 -07:00
Dianne Hackborn
ed60f81940 resolved conflicts for merge of 76450622 to master
Change-Id: I26ccd8f264e65f100d894f43cf597a781552db83
2011-06-02 09:20:52 -07:00
Dianne Hackborn
b96cbbd11c Add "tv" density for 720p screens.
Change-Id: I028969b007f2fceea66947d77a2ae31ef1d1a630
2011-05-27 13:40:26 -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
Joe Onorato
dba50c7ed2 Reduce log spew.
Change-Id: I69c9d7227d6cb91eac3b9f18d9edaa121c86ad0f
2011-05-19 13:32:25 -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
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
Jeff Sharkey
f055829f35 Avoid throwing when forceRefresh() missing server.
Bug: 4377651
Change-Id: Ia950a1e62d39ce9148827ebb4535f6441911b195
2011-05-04 11:58:06 -07:00
Jeff Sharkey
b7342acebc Tests for ThrottleService, NTP into TrustedTime.
Wrote initial suite of tests for ThrottleService, checking a variety
of edge cases.  Checks going over limits, updating policies, and reset
after cycle elapses.

Moved NTP code in ThrottleService into new TrustedTime interface,
which makes it easier to understand, and allows tests to provide custom
clocks.

Change-Id: I0d62b8b3a169516a2ab2d33025f6fe30dc792be8
2011-04-28 12:28:36 -07:00
Jesse Wilson
847cf342c9 Pool strings in JsonReader.
This yields a 10% improvement in parsing both Twitter and Google Reader
streams.

Change-Id: Ifc238777e929b5b3e9a4480098b315e418378f8b
http://b/3201883
2011-04-21 13:48:35 -07:00
Joe Onorato
43a17654cf Remove the deprecated things from Config.java. These haven't been working since before 1.0.
Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
2011-04-07 19:23:05 -07:00
Brian Carlstrom
08065b9f09 Tracking merge of dalvik-dev to master
git cherry-pick --no-commit  a80febd83c8bf0b6717da2a7136179bdc906a5b7

git cherry-pick --no-commit  5e642b41cf44c5da7afdd95ab3d5e2bdbf7b31dd

git cherry-pick --no-commit  4886db14c9eee4b6fee69bd54c57c5af04709c4c

git cherry-pick --no-commit  560c685e448769904047507b9484ce8111967d7e

git cherry-pick --no-commit  63dde7a2fcfa53dc531558635b64cea613d3cdb4

git cherry-pick --no-commit  74e5cb91060a379d98dd3a333b5f231bfb4f502e

git cherry-pick --no-commit  1cc8c9708b555e2e338b7798d38887a2fefcfea6

git cherry-pick --no-commit  09625a21f5abe0c0db15757f58585d552d62c3d7

git cherry-pick --no-commit  fcb02dfe0f5a2bb7c07e6d6fc69f756a484b5458

git cherry-pick --no-commit  a68cb7fa3ab42854768b8145ff85231663770292

git cherry-pick --no-commit  716beb1c131dd2c6b805d4f681debaa20075010c

git cherry-pick --no-commit  8c29b1097a7afe3a77e27546a56e396f3620a4ec

git cherry-pick --no-commit  9c6a1a55d1c8086c1cc57464eea43725694ff70c

git cherry-pick --no-commit  b14f5ea5c57acdd009ba5b51f1bbe430f3d353b8

Change-Id: I8cc94175441b009e23549762d6baee1dbace4881
2011-04-01 16:00:23 -07:00
Jesse Wilson
94e085fda0 Merge "Don't leak JsonReaders in example code." 2011-03-16 15:48:07 -07:00
Jesse Wilson
9d30ea0333 Don't leak JsonReaders in example code.
Change-Id: Id81fb44e26f895d7ac6ecf87eddfa9d14c643159
2011-03-16 15:02:48 -07:00
Jesse Wilson
a460c1871e Fix a bogus comment on LruCache.hitCount()
Change-Id: I219b65bd73b85a414c21d4c4abe59296c9c5945a
2011-03-16 14:57:01 -07:00
Jesse Wilson
dfed7c006a Remove deprecated and unused entryEvicted method.
Change-Id: I30ccf3d798a3ebfc88a1b340efaaacf524d56fae
http://b/3461302
2011-03-07 09:07:07 -08:00
Jesse Wilson
27f4bd7a47 Merge "Remove deprecated and unused entryEvicted method." 2011-03-07 08:47:43 -08:00
Xavier Ducrohet
7719436342 am b732b7b5: am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."
* commit 'b732b7b5e8192501360edc15fb8c6399d11fb97d':
  GpsLocationProvider: Clean up HAL initialization/cleanup sequence
  Fixed GSM encoded network initiated position request
  Ensuring thread-safe usage of DateFormat.
  Fixing infinite loop for zero duration.
  Fix for an infinite loop while scrolling lists.
  WAPPushManager, WAP Push over SMS message handler
  Add --non-constant-id to aapt.
2011-02-28 10:15:48 -08:00
Xavier Ducrohet
b732b7b5e8 am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."
* commit 'ce57a7f35344e76689d30f45964d1e37b78280cb':
  GpsLocationProvider: Clean up HAL initialization/cleanup sequence
  Fixed GSM encoded network initiated position request
  Ensuring thread-safe usage of DateFormat.
  Fixing infinite loop for zero duration.
  Fix for an infinite loop while scrolling lists.
  WAPPushManager, WAP Push over SMS message handler
  Add --non-constant-id to aapt.
2011-02-28 10:10:38 -08:00
Xavier Ducrohet
6504490cde am dff6b8e7: Merge "Add --non-constant-id to aapt."
* commit 'dff6b8e71dda9f5d841fa26408714aec2aef1505':
  GpsLocationProvider: Clean up HAL initialization/cleanup sequence
  Fixed GSM encoded network initiated position request
  Ensuring thread-safe usage of DateFormat.
  Fixing infinite loop for zero duration.
  Fix for an infinite loop while scrolling lists.
  WAPPushManager, WAP Push over SMS message handler
  Add --non-constant-id to aapt.
2011-02-28 09:16:38 -08:00
Jesse Wilson
c4e6209c52 Remove deprecated and unused entryEvicted method.
Change-Id: Id2ac0913968099eb0c8dfa762b87082ba6bd9cd9
http://b/3461302
2011-02-25 18:39:03 -08:00
Jesse Wilson
affe40af3c Merge "Callback on any removal, not just evictions." 2011-02-25 17:15:44 -08:00
Jesse Wilson
7db1b40a03 Callback on any removal, not just evictions.
Don't hold locks while running create or remove callbacks. That gets a bit
ugly because it means a create could be unwanted by the time it returns.

Change-Id: I14b2b3ed41a446750f8ee5a7e35cb8d801c4ce6d
http://b/3461302
2011-02-25 17:06:34 -08:00
Jesse Wilson
a0f8bc51af Remove default constructors from static utility classes.
Change-Id: Id8dc55a30a03e1da87500b66c429de9268033b9e
http://b/3344646
2011-02-24 10:46:22 -08:00
Romain Guy
d379d53a5e Add missing docs to AttributeSet.
Change-Id: Ieabc9e63104d274e59c3bd9a4e7ec475c5e32c6b
2011-02-22 11:32:29 -08:00
Jozef BABJAK
47f13e7c52 Fixing infinite loop for zero duration.
Change-Id: I837478c1598f1d2f99bf773597f0d66d0fc3cf1a
2011-02-22 07:20:30 +01:00
Jesse Wilson
56b6ad3e28 Add a new method, LruCache.remove
Change-Id: Iae78a2ed4d719d4f14a4677ecb6fe5bc823bb660
http://b/3184897
2011-02-11 15:54:28 -08:00
Jesse Wilson
dfe515e49a Remove LruCache.setMaxSize().
Dynamically changing a max cache size is clumsy; almost everyone
should set this when they create the cache.

Fix SQLiteDatabase to copy entries into a new cache when the size
is changed. In pratice this will always be immediately after the
SQLiteDatabase is created. Since the cache field is no longer
final, change the guard on the cache field to the SQLiteDatabase
instance itself.

Change-Id: I4e325f06edc551636723568a52770c0982e2d945
2011-02-11 11:35:22 -08:00
Jesse Wilson
c2c9a2492c Don't add setMaxSize() to the LruCache API. But do add maxSize().
Change-Id: I9697ab29491dabe85c2400defdde16b9abcd003a
2011-02-10 19:20:31 -08:00
Jesse Wilson
9b5a93550f Adopt LRU cache in SQLite.
Change-Id: I6b43dd8843d41726254bea3a175fe28f5f061ed7
http://b/3184897
2011-02-10 18:26:39 -08:00
Jesse Wilson
34895b09db Document that LruCache is threadsafe.
Change-Id: Iae1421b8c768000e56806f6cd74aef7c69a78973
http://b/3184897
2011-02-10 13:50:24 -08:00
Jesse Wilson
543146a82b Remove @Override that chokes Doclava.
Change-Id: I160aa2209d148c48f4ab8f4dc42ab77d300919de
2011-02-08 10:01:09 -08:00
Jesse Wilson
e2c1f4a0ee New LRU cache class.
Change-Id: I0e6ea1e489c684b876aebd5857c6f16a21048a8d
http://b/3184897
2011-02-07 16:39:35 -08:00
Jeff Brown
2c376fc46c Optimize IntentResolver to reduce lookup time by 50%.
IntentResolver frequently iterates over hundreds of different IntentFilters
and spends much of its time creating iterators and comparing strings.
This change avoids reduces the amount of garbage created by eschewing
iterators where possible.  The FastImmutableArraySet type on its own
provides a 2.5x speed boost compared to repeatedly iterating over a HashSet.

In absolute terms, during orientation changes we spent about 160ms resolving
11 intents and performing 1129 calls to IntentFilter.match.  Now we spend
half of that time.

Change-Id: Ia120e0082c8cf0b572a0317b9ef4a22c766dbad6
2011-01-28 17:34:01 -08:00
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
Bjorn Bringert
f5f7510486 Fix issue #3224616: TimeUtils.formatDuration() can drop 0s.
Integrated from master.

Change-Id: Ie12dd25cce03c06fafb7df1335266322df43b038
2010-12-20 15:23:02 -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