Commit Graph

22777 Commits

Author SHA1 Message Date
Dianne Hackborn
b465217240 am bea7afc5: Merge "Fix issue #6284404: ArrayIndexOutOfBoundsException in..." into jb-dev
* commit 'bea7afc52cc85e35b7fc200912246c62d3791198':
  Fix issue #6284404: ArrayIndexOutOfBoundsException in...
2012-05-15 13:59:47 -07:00
Dianne Hackborn
bea7afc52c Merge "Fix issue #6284404: ArrayIndexOutOfBoundsException in..." into jb-dev 2012-05-15 13:57:06 -07:00
George Mount
9b0ec73d52 am d97d4f6c: Merge "Only open CAB for long-press." into jb-dev
* commit 'd97d4f6cf642663375de59668f5d42ee12ee7a69':
  Only open CAB for long-press.
2012-05-15 13:27:13 -07:00
George Mount
d97d4f6cf6 Merge "Only open CAB for long-press." into jb-dev 2012-05-15 13:25:03 -07:00
Dianne Hackborn
03fcc333cf Fix issue #6284404: ArrayIndexOutOfBoundsException in...
...FragmentManagerImpl.restoreAllState

This was a bug related to the difference between the pre- and post-HC
behavior of onSaveInstanceState().  Prior to HC, state was saved
before calling onPause().  Starting with HC, it is saved between
onPause() and onStop().  To maintain compatibility with existing
applications, there is a check in ActivityThread for pre-HC to in
that case emulate the behavior of old applications, still calling
onSaveInstanceState() before onPause() but using the state later.

One of the special cases we had to deal with in the old model of
saving state before pausing was restarting an activity that is
already paused.

Consider, for example: you have two activities on screen, the one on
top not fullscreen so you can see the one behind.  The top activity
is resumed, the behind activity is paused.  In the pre-HC world, the
behind activity would have already had its state saved.

Now you rotate the screen, and we need to restart the activities.
We need to destroy the behind activity and create a new instance,
but the new instance has to end up in the paused state.  To
accompish this, we restart it with a flag saying that it should
end up paused.  For the pre-HC world, since it ends up paused,
we need to make sure we still have its instance state kept around
in case we need it because we can't regenerate it (since it is
already paused).

So that is what the changed code here is doing.  It goes through
the normal create/start/resume steps, but holds on to the current
saved state so that it isn't lost when resume clears it, and then
puts the activity back to paused and stuffs that old saved state
back in to it.

The problem is that this code was doing it for every application,
even HC apps.  So we end up in a bad state, when a HC app has its
saved state sitting there as if it had been saved, even though it
is only paused.  Now if we go to restart the activity again, instead
of asking it for a new saved state (as we should for a HC app as
part of stopping it), we just re-use the existing saved state again.

Now this wouldn't generally be a huge problem.  Worst case, when we
restart the activity yet again we are just instantiating it from
the same saved state as we used last time, dropping whatever changes
may have happened in-between.  Who cares?  All it has been doing is
sitting there in the background, visible to the user, but not something
they can interact with.  If the activity made changes to its
fragments, those changes will be lost, and we will restore it from
the older state.

However...  if one of those fragements is a retained fragment, this
will *not* appear in the saved state, but actually be retained across
each activity instance.  And now we have a problem: if the retained
fragments are changed during this time, the next activity instance
will be created from the most recent state for the retained fragments,
but the older state for everyting else.  If these are inconsistent...
wham, dead app.

To fix this, just don't keep the saved state for HC apps.

Also includes a small optimization to ActivityStack to not push
the home screen to the front redundantly.

Change-Id: Ic3900b12940de25cdd7c5fb9a2a28fb1f4c6cd1a
2012-05-15 13:13:33 -07:00
Svetoslav Ganov
8b764de2ad am 0e3057c6: Merge "Add accessibility scroll support to some widgets." into jb-dev
* commit '0e3057c667425e4b1326c598442e69a4e0e036e2':
  Add accessibility scroll support to some widgets.
2012-05-15 12:02:16 -07:00
Svetoslav Ganov
0e3057c667 Merge "Add accessibility scroll support to some widgets." into jb-dev 2012-05-15 11:58:55 -07:00
Jeff Sharkey
68ba1c8604 am d6c1e498: Merge "Migrate stream extras in CHOOSER intents." into jb-dev
* commit 'd6c1e49847ed5389e8917ff315c91b89493ebe9f':
  Migrate stream extras in CHOOSER intents.
2012-05-15 11:38:55 -07:00
Jeff Sharkey
d6c1e49847 Merge "Migrate stream extras in CHOOSER intents." into jb-dev 2012-05-15 11:35:45 -07:00
Chris Wren
6933771481 am 78cb7cf7: Allow animations to run past cancelled draws, if the view is visible.
* commit '78cb7cf7d1d82834c4405650a17e387370004570':
  Allow animations to run past cancelled draws, if the view is visible.
2012-05-15 11:32:53 -07:00
Svetoslav Ganov
1c2ecfa9ca am 8b4d73b2: Merge "Revert "Showing default activity in activity chooser view only if enough space."" into jb-dev
* commit '8b4d73b2d5ba91bd61b6892f5620603fe3428e50':
  Revert "Showing default activity in activity chooser view only if enough space."
2012-05-15 11:32:42 -07:00
Svetoslav Ganov
db3cf0dd58 am 0e29ac9e: Merge "Accessibility focus traversal in virtual nodes." into jb-dev
* commit '0e29ac9e4ede6e75a5ca91eb744bbff83949c71e':
  Accessibility focus traversal in virtual nodes.
2012-05-15 11:32:40 -07:00
Gilles Debunne
8573c20404 am 855f5407: Merge "Minor changes in SpellCheckSpan pool management in SpellChecker" into jb-dev
* commit '855f5407c74694ebd924b36738ecc79241c4becf':
  Minor changes in SpellCheckSpan pool management in SpellChecker
2012-05-15 11:32:09 -07:00
Romain Guy
d5cfec8d34 am 7b8523aa: Merge "Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)" into jb-dev
* commit '7b8523aaed11a3b5ee286776023233036ac0759d':
  Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)
2012-05-15 11:31:54 -07:00
Svetoslav Ganov
d83a080067 am 8ce2d78a: Merge "Improving accessibility focus traversal." into jb-dev
* commit '8ce2d78aa89e89e9a5607d8809bf6d248508a531':
  Improving accessibility focus traversal.
2012-05-15 11:31:28 -07:00
Dianne Hackborn
1bcd6b8ce8 am a827843f: Merge "Fix issue #6020164: Settings crashed on orientation change..." into jb-dev
* commit 'a827843f9b46700a187bd3a506498a0f36f474fa':
  Fix issue #6020164: Settings crashed on orientation change...
2012-05-15 11:31:16 -07:00
Jeff Brown
e2ec70bf92 am 00ff4748: Merge "More VelocityTracker refactoring." into jb-dev
* commit '00ff47484f8137aa3e59f680ff07d2662cfb4088':
  More VelocityTracker refactoring.
2012-05-15 11:31:08 -07:00
Chris Craik
6b65cfbe97 am dbd98bfe: Merge "Remove unused native method" into jb-dev
* commit 'dbd98bfecb34eb3f7101994a6026c7a68ea1e8a9':
  Remove unused native method
2012-05-15 11:31:00 -07:00
Eric Laurent
dd99f70a3f am dfae6db0: Merge "Implement new volume display policy." into jb-dev
* commit 'dfae6db0228a2ba4e34deb48d54fb06a2637e6a2':
  Implement new volume display policy.
2012-05-15 11:30:53 -07:00
George Mount
124d767e93 am 108feca9: Merge "Change selection to use left/right instead of base/extent." into jb-dev
* commit '108feca9a02e7b5da705161660b76d4f356f5900':
  Change selection to use left/right instead of base/extent.
2012-05-15 11:30:41 -07:00
Svetoslav Ganov
48d1586f40 Add accessibility scroll support to some widgets.
1. Added support for accessibility scroll action to
   some widgets that are scrollable.

2. Making the super call when handling an accessibility
   action in the views to call super first to allow
   an accessibility delegate to intercept the call.

bug:5932640

Change-Id: I5eb37d64bf9fba1d5c596981132e0df717e2a18a
2012-05-15 11:21:32 -07:00
Chris Wren
78cb7cf7d1 Allow animations to run past cancelled draws, if the view is visible.
Bug: 6475482
Change-Id: Iecb3a04744282135efa0049f1b70a46dc4a6bb23
2012-05-15 10:57:59 -07:00
Svetoslav Ganov
8b4d73b2d5 Merge "Revert "Showing default activity in activity chooser view only if enough space."" into jb-dev 2012-05-15 10:49:01 -07:00
Svetoslav Ganov
0e29ac9e4e Merge "Accessibility focus traversal in virtual nodes." into jb-dev 2012-05-15 10:48:44 -07:00
George Mount
899f609f78 Only open CAB for long-press.
Bug 6182286

Change-Id: I18590c457548e63cf45f5f7b626f5e8bd855f521
2012-05-15 08:28:28 -07:00
Gilles Debunne
855f5407c7 Merge "Minor changes in SpellCheckSpan pool management in SpellChecker" into jb-dev 2012-05-15 02:57:00 -07:00
Svetoslav Ganov
b9f286e1a3 Revert "Showing default activity in activity chooser view only if enough space."
This reverts commit 340e2611de

Change-Id: I396b70e8c737e6f1c36429618889e5c8fc690b55
2012-05-15 02:48:13 -07:00
Svetoslav Ganov
791fd31a68 Accessibility focus traversal in virtual nodes.
1. Finished the implementation of support for maintaining
   accessibility focus in view with virtual descendants.

2. Finished the NumberPicker implementation of virtual
   subtree such that all requred attributes are reported
   and ensuring that it support accessibility focus in
   its virtual descentants.

3. Fixed a bug where if a predecessor of the view that is
   accessiiblity focused is removed the accessibliity focus
   host in ViewRootImpl is not cleared leading to a crash
   when trying to draw the accessibility focus highlight.:

bug:6472646
bug:6433864

Change-Id: I3645642b87b4a26025c0b2ba9dfaad92d11a48f1
2012-05-15 00:43:53 -07:00
Romain Guy
7b8523aaed Merge "Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)" into jb-dev 2012-05-14 20:12:09 -07:00
Romain Guy
e651cc6239 Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)
Change-Id: Ie28538a2104d21154fdc78a56525e7403f08287d
2012-05-14 19:44:40 -07:00
Svetoslav Ganov
e436812e85 am 844047ac: Merge "Fix inconsitency in aAccessibilityNodeInfo cache." into jb-dev
* commit '844047acb7133c0b6b7128f19b76f93eaca9371e':
  Fix inconsitency in aAccessibilityNodeInfo cache.
2012-05-14 19:34:14 -07:00
Philip Milne
b0708669f9 am c8b7747b: Merge "Add validation code for GridLayout.LayoutParams" into jb-dev
* commit 'c8b7747bc04418ee1a6c0cffe11cdd55c44e5f68':
  Add validation code for GridLayout.LayoutParams
2012-05-14 19:34:10 -07:00
Michael Jurka
87f6f80993 am 143a02aa: Merge "Prevent ViewPropertyAnimators from getting started twice" into jb-dev
* commit '143a02aa79fbc28490bac39fabb6db0608774630':
  Prevent ViewPropertyAnimators from getting started twice
2012-05-14 19:34:07 -07:00
Chet Haase
c63aaee9ff am 728e4394: Merge "Minor touch-up of Animation docs" into jb-dev
* commit '728e43948c9b4d18a900fa50acad8d2734947b21':
  Minor touch-up of Animation docs
2012-05-14 19:33:44 -07:00
Mathias Agopian
41f089e086 am 7ed1d661: Merge "fix SurfaceView visibility state changes" into jb-dev
* commit '7ed1d6613e2f5aa05158a87888f5a6474eca5cc1':
  fix SurfaceView visibility state changes
2012-05-14 19:32:53 -07:00
Svetoslav Ganov
21ba7c9603 am 8f761760: Merge "Removing default accessibility gesture handling." into jb-dev
* commit '8f76176016a63026168f5886604d4378f170fc6c':
  Removing default accessibility gesture handling.
2012-05-14 19:32:47 -07:00
Dianne Hackborn
2da87ec32e am 2a7a6ca0: Merge "Implement new window cropping." into jb-dev
* commit '2a7a6ca00ab176105b5bbfa6b17bb0dcd058d517':
  Implement new window cropping.
2012-05-14 19:32:39 -07:00
Guang Zhu
58b0dcde83 am 0d607fbe: accessibility bug fix in NumberPicker
* commit '0d607fbe546ac943de38dad33ae681b09efec6ea':
  accessibility bug fix in NumberPicker
2012-05-14 19:32:33 -07:00
Svetoslav Ganov
8ce2d78aa8 Merge "Improving accessibility focus traversal." into jb-dev 2012-05-14 18:26:24 -07:00
Jeff Sharkey
3b7d1ef4be Migrate stream extras in CHOOSER intents.
When sending CHOOSER intent, inspect its target for any EXTRA_STREAM
needing migration. If any migration happens, copy the ClipData to
the CHOOSER intent and set GRANT_READ flag. Also update CHOOSER docs.

Bug: 6463773
Change-Id: I66a7adf7bf6f2f173866925cb7e048f4c7a63222
2012-05-14 17:37:11 -07:00
Dianne Hackborn
a827843f9b Merge "Fix issue #6020164: Settings crashed on orientation change..." into jb-dev 2012-05-14 17:31:53 -07:00
Dianne Hackborn
b61a02657b Fix issue #6020164: Settings crashed on orientation change...
...while listening to TTS example

This was a nice one.  What was happening is that immediately upon
being created, the activity was starting another activity in a
different process.  The second activity would never show, just
immediately exit.  However the original activity had time to
pause and get into stopping itself before the second activity had
come back to the activity manager to say it was going away, resulting
in the activity manager asking the original activity to resume.

At this point the activity manager's state is that the second
activity is finishing and gone, and the original activity is
resumed.  However in the app process the original activity is
still working on stopping itself, and it eventually completes
this and tells the activity manager.  The activity manager now
changes its state to STOPPED, even though it is actually resumed
and that is the last thing it told it to be, and it is now
proceeding to set itself in that state.

This would result later in the activity manager sending an
unnecessary state change to the application.  In the case of
the screen here, we next do a rotation change, the activity
manager thinks the current state is STOPPED not RESUMED, so it
tells the application to relaunch the activity in a new config
but not in the resumed state.  Now it does the whole "start a
new temporary activity" thing again, at which point it tries
to pause the original activity again, and we have an unbalanced
onPause() call to the app and it falls over.

Change-Id: I38b680746f4c61ae30e7ce831e1de187adf60902
2012-05-14 17:19:18 -07:00
Jeff Brown
00ff47484f Merge "More VelocityTracker refactoring." into jb-dev 2012-05-14 17:12:32 -07:00
Chris Craik
dbd98bfecb Merge "Remove unused native method" into jb-dev 2012-05-14 17:04:10 -07:00
Eric Laurent
dfae6db022 Merge "Implement new volume display policy." into jb-dev 2012-05-14 16:30:47 -07:00
Svetoslav Ganov
e5dfa47d84 Improving accessibility focus traversal.
1. Now the views considered during the accessibility focus search
   are the ones that would get accessibility focus when thovered
   over. This way the user will get the same items i.e. feedback
   if he touch explores the screen and uses focus traversal. This
   is imperative for a good user experience.

2. Updated which focusables are considered when searching for access
   focus in ViewGroup. Generally accessibility focus ignores focus
   before/after descendants.

3. Implemented focus search strategy in AbsListView that will traverse
   the items of the current list (and the stuff withing one item
   before moving to the next) before continuing the search if
   forward and backward accessibility focus direction.

4. View focus search stops at root namespace. This is not the right
   way to prevent some stuff that is not supposed to get a focus in
   a container for a specific state. Actually the addFocusables
   for that container has to be overriden. Further this approach
   leads to focus getting stuck. The accessibility focus ignores
   root names space since we want to traverse the entire screen.

5. Fixed an bug in AccessibilityInteractionController which was not
   starting to search from the root of a virtual node tree.

6. Fixed a couple of bugs in FocusFinder where it was possible to
   get index out of bounds exception if the focusables list is empty.

bug:5932640

Change-Id: Ic3bdd11767a7d40fbb21f35dcd79a4746af784d4
2012-05-14 16:21:29 -07:00
George Mount
108feca9a0 Merge "Change selection to use left/right instead of base/extent." into jb-dev 2012-05-14 16:04:42 -07:00
Chris Craik
8230231c88 Remove unused native method
depends on external/webkit change: https://android-git.corp.google.com/g/#/c/190468/

bug:6486310
Change-Id: Id1c1eabf27135c73e45a489ab4c7cfa26e0c9def
2012-05-14 15:57:06 -07:00
Svetoslav Ganov
844047acb7 Merge "Fix inconsitency in aAccessibilityNodeInfo cache." into jb-dev 2012-05-14 14:14:26 -07:00
Eric Laurent
8c78752f2b Implement new volume display policy.
Whenever a stream type is muted, the progress bar in volume panel
is at 0.
If a stream is muted by ringer mode and does not control ringer mode,
the progress bar is disabled.
Pressing VOL- when in vibrate or silent mode resets the last audible
volume of ringtone stream (music strem on tablets) to 0.

VolumePanel implementation:
 - Always prefer AudioManager APIs over AudioService APIs when available on both.
 - Do not use AudioManager.shouldVibrate() (deprecated).

Change-Id: I57fcb19ada4e8d729b6b41d668496562ebe340c3
2012-05-14 14:13:10 -07:00