Commit Graph

2785 Commits

Author SHA1 Message Date
Svetoslav Ganov
c406be9036 Fix inconsitency in aAccessibilityNodeInfo cache.
1. Fixed errors in the accessibility node cache.

  A. The cache was not catching the case when the current window changes as a
     result the user touch exploring it. As a result the cache had nodes from
     more that one window but the node ids are not unique thus causing a mess.

  B. The node info tree was prefetched regardless if a prefetched node is root
     name space (i.e. view ids - not accessibility ids - are namespaced) while
     the prefetched nodes were taking this into account. As a result there can
     get disconnected subtrees in the cache.

  C. When an event for a property change such as focus was received the cache
     we were removing the source node. As a result there may be disconnected nodes.

  D. When a node was added to the cache and an older version exists there was
     no check if it will point to the same children and parent. As a result if
     the state of the node has fewer children the subtrees rooted at the no
     longer present children will stay disconnected in the cache.

  E. When a node got accessibility or input focus the old one in the cache was
     not removed. As a result you may have a state with more than one access
     or input focus.

2. Added integrity check enabled only on user builds when a specific flag is set
   for the cache which checks whether:

  A. All nodes are from the same window.

  B. All nodes are connected.

  C. There are no duplicates.

  D. There is only one input focus.

  E. There is only one accessibility focus.

3. The reported accessibility node info tree was stopping at the root namespace
   boundary which is not correct. The reported tree has to reflect everything
   on the screen that the user can see such a workspace with widgets. The root
   namespace is added to avoid clash of view id but the accessibility ids are
   unique no matter if the view is inflated from a remote view.

4. Added calls to notify the accessibility layer when a preoprty that is interesting
   for accessibiliy has changed.

bug:6471710

Change-Id: I069470d91f209ba16313fa6539787a55efa3512e
2012-05-11 17:42:07 -07:00
Svetoslav Ganov
0891a89790 Merge "Polish the NumberPicker, TimePicker, and DatePicker based on UX request." into jb-dev 2012-05-10 13:00:08 -07:00
Svetoslav Ganov
232dd3f335 Polish the NumberPicker, TimePicker, and DatePicker based on UX request.
1. Now the spinners in the time and data picker a wider therefore
   easier to interact with, i.e. harder to miss accidentall.

2. Removed the scroll distance cut off user to distinguish between
   fling and change by one.

3. Added visual feedback when the areas the serve as virtual buttons
   in number picker are poked.

4. Removed the coeffcient that was making drap not to be one-to-one
   with the scrolled distance.

5. Added some margin at the top and bottom of the spinners in
   date and time pickers.

bug:6321432

Change-Id: I311c1733d1951b0563209401faa830ca70ec87cb
2012-05-10 12:35:22 -07:00
Svetoslav Ganov
a1dc761c83 Adding scroll actions to accessibility node info.
1. Scrolling actions are crucial for enabling a gesture based
   traversal of the UI and specifically scrollable containers
   especially lists and anything backed by an adapter. Since
   accessibility focus can land only attached views, it cannot
   visit views for adapter items not shown on the screen.
   Auto scrolling the list as a result of putting access focus
   ot a list item does not work well since the user may get
   trapped in a long list. Adding an accessibility node provider
   to emit virtual views for one view before the first and one
   after the last is complex and suffers the limitation of trapping
   the user. Accessibility service need an explicit scroll actions
   which may be performed upon an explicit user action. Hence,
   the user is informed for the start/end of the visible part of
   the list and he makes a deliberate choice to scroll. This will
   benefit also people developing Braille devices since they can
   scroll the content without telling the user to stop using the
   Braille controller and take the device out of his pocket to scroll
   and go back to the Braille controller.

NOTE: Without these action large portions of the screen will be
    hard to access since users will have to touch and explore to
    find and scroll the list.

Change-Id: Iafcf54d4967893205872b3649025a4e347a299ed
2012-05-10 12:28:04 -07:00
Svetoslav Ganov
f103758b7c Merge "Delegate list item focus and click actions to the parent list." into jb-dev 2012-05-09 13:46:57 -07:00
Gilles Debunne
12ff149265 Merge "Spell checker underlines words even when there are no suggestions" into jb-dev 2012-05-09 11:49:08 -07:00
satok
a4c82c1c78 Not to add invalid spell check spans
Bug: 6464197

Change-Id: I6e9d359847b200e2afae61f85eb7cfe7f179b888
2012-05-09 11:20:17 +09:00
Adam Powell
a87f234681 Merge "More fun with AbsListView smooth scrolling" into jb-dev 2012-05-08 15:52:12 -07:00
Adam Powell
aadf4fb68e More fun with AbsListView smooth scrolling
If any data set change is pending when a smooth scroll is requested,
post it for later - not just if the list is currently empty.

Fix a bug in relative smooth scrolling where the last view was being
determined incorrectly.

Bug 6434713

Change-Id: Ic249eefc594151a414a6a8758074a9a60888e2b4
2012-05-08 15:43:34 -07:00
Gilles Debunne
41347e9e8b Spell checker underlines words even when there are no suggestions
Bug 6222722

Also fixed a cast to Long warning.

Change-Id: Ief299cc3cb952b83f774ca1be13dc69352015a3e
2012-05-08 15:39:17 -07:00
Gilles Debunne
5fae996751 Removed debug code in TextView
Bug 6462527

The String parameter was used to debug code during the
refactoring process.

Change-Id: I49a78bbfa3b45c185311d0dbebddddc52515c099
2012-05-08 14:53:30 -07:00
alanv
c1d7e770e1 Delegate list item focus and click actions to the parent list.
Change-Id: Ie05c79f049896bfb498d4b33f0611da38f381140
2012-05-08 14:50:02 -07:00
Svetoslav Ganov
775bcac6bc Updating the documentation of share action provider.
1. Added some clarification how a developer can use the
   same provide with different historical files in a
   context dependent manner.

Change-Id: I2a3390ade7e4b8b1170d381668e1439e52c17b7e
2012-05-07 19:05:50 -07:00
Svetoslav Ganov
d57521c674 Fix the build.
Change-Id: I9b9e26e22a6be27341f4b0b95cb8edd1629fa812
2012-05-07 18:39:07 -07:00
Adam Powell
ae9c72d9a8 Merge "AbsListView: Toss transient state views once they no longer have transient state." into jb-dev 2012-05-07 18:24:09 -07:00
Svetoslav Ganov
b1ae25cb37 Merge "ActivityChooserModel does not handle package changes on the thread that created it." into jb-dev 2012-05-07 18:23:44 -07:00
Adam Powell
bf1b81fb25 AbsListView: Toss transient state views once they no longer have
transient state.

Bug 6365897

Change-Id: Ib2bd546c74d3303ac01bcae9b01e221db36c1440
2012-05-07 18:17:51 -07:00
Svetoslav Ganov
b2ee0d5767 Merge "Text traversal at various granularities." into jb-dev 2012-05-07 17:54:31 -07:00
Svetoslav Ganov
6d17a936f7 Text traversal at various granularities.
1. Implementing text content navigation at various granularities.
   For views that have content description but no text the
   content description is the traversed at character and word
   granularities. For views that inherit from TextView the
   supported granularities are character, word, line, and page.

bug:5932640

Conflicts:

	core/java/android/view/View.java

Conflicts:

	core/java/android/view/View.java

Change-Id: I66d1e16ce9ac5d6b49f036b17c087b2a7075e4c0
2012-05-07 17:31:52 -07:00
Adam Powell
6392a3609c Merge "Fix misc. bugs in AbsListView smooth scrolling." into jb-dev 2012-05-07 17:10:42 -07:00
Adam Powell
e69370e168 Fix misc. bugs in AbsListView smooth scrolling.
Handle the edge cases a bit better. Deal with padding. If a smooth
scroll begins, the list is empty, but a data change is pending, try
again on the next looper pass.

Bug 6453837
Bug 6434713

Change-Id: I53f22ebacdcbc5d981a6c8055c4fd3fc1ef140f6
2012-05-07 16:48:32 -07:00
Svetoslav Ganov
ca85879781 ActivityChooserModel does not handle package changes on the thread that created it.
1. The model is using a package monitor to observe changes in
   packages (adding/memoving/etc) to update its internal state
   for which it then notifies its clients. However, the monitor
   is called from a binder thread and the work has to be off
   handed on the thread that created the model. Hence, clients
   do not need to worry about using the the model from the UI
   thread since the change callback may touch the UI from
   another thread.

bug:6386152

Change-Id: I882a0f4104907f64de64a95ece585052bba457d6
2012-05-07 16:00:09 -07:00
Amith Yamasani
44e3f88f2f Merge "Javadoc improvements in SearchView per API review." into jb-dev 2012-05-07 11:33:16 -07:00
satok
8589474d26 DO NOT MERGE. Backport If36b8a69e7fa22e837c99d Fix the issue that the spell check doesn't start when the user changes the cursor position by touch
Change-Id: I1535eae23efc42660b9d1e6dbfba6c800b0302b2
2012-05-07 18:30:17 +09:00
Dianne Hackborn
7bfa14570e Merge "Finish up issue #6249094: Display permissions based on relevance to private data" into jb-dev 2012-05-06 17:49:53 -07:00
Dianne Hackborn
99222d212f Finish up issue #6249094: Display permissions based on relevance to private data
Added bitmaps for permission group icons.  We had to pick either
icons for a dark or light background, and it had to be light for
settings, so the installer theme has gone back to dark.

Tweaked the permission groups to match the icons.

Redid the group priorities to make them correct (they were written
with higher priorities being less important).

Fixed bug where priority was not being used for system apps.

Change-Id: Ia3d3f0c1614a11b4cfd11682ce9e6c9f87d75c06
2012-05-06 17:45:13 -07:00
Svetoslav Ganov
464676bcb4 Merge "Showing default activity in activity chooser view only if enough space." into jb-dev 2012-05-06 17:17:34 -07:00
Romain Guy
ab4c4f4ff7 Remove unnecessary framework allocations
These allocations were frequently triggered by the home screen. This change
removes dozens of allocations during page scrolls on home.

Change-Id: I7289efa28ecf5bd62459042b10062aa9cf0432dd
2012-05-06 13:11:24 -07:00
Svetoslav Ganov
340e2611de Showing default activity in activity chooser view only if enough space.
1. While a default target is very convenient, having two targets for the
   widget on a phone takes too much space and the apps do not have room
   to add other essential affordances to the action bar. Making the default
   activity show only of the screen is large enough - the action bar
   accommodates at least four targets i.e. 500dip.

2. Fixed a bug where changing the backing model of an ActivityChooserView
   when the view is not shown did not remove the observer for the old
   model, hence the View can get into a state where it responds to changes
   of two models while presenting only one. Also in such a case the view
   would leak since the singleton model will keep a handle to it.

3. Updated the documentation of share action provider to explain how a
   a developer can change the backing history file and refresh the UI
   based on the historical data in that file.

bug:6447692

Change-Id: Id5c9e54cd5df322ded8574ba028cb680e628243b
2012-05-05 17:49:16 -07:00
Svetoslav Ganov
414efc3b5f API REVIEW: android.widget.CalendarView
1. Making sure that the comment blocks for methods setting/getting
   resource attributes include links to the related attribute
   documentation.

bug:6442803

Change-Id: If8acedfedf02400eee3f61ca3029325c05a5fb86
2012-05-04 16:54:06 -07:00
Adam Powell
9c98234095 Merge "Fix LinearLayout measureWithLargestChild for wrap_content views" into jb-dev 2012-05-04 15:01:14 -07:00
Adam Powell
eabc919844 Fix LinearLayout measureWithLargestChild for wrap_content views
Bug 6442795

When the measureWithLargestChild setting is enabled, LL used to
measure the full container taking the largest child rule into account,
but the child views were not properly remeasured for AT_MOST
measurespecs. Correct this.

Fix measureWithLargestChild for height

Change-Id: Ieb91114bc2ae65f9104337bd6d16a7d9e559571d
2012-05-04 14:54:14 -07:00
Amith Yamasani
3d3e7a5816 Javadoc improvements in SearchView per API review.
Bug: 6442174

Added attr refs to 2 methods.

Change-Id: I9b5f93e8e921a7260fdc25c8134e655f09a1ffb7
2012-05-04 14:47:25 -07:00
Fabrice Di Meglio
66388dcb09 Hide RTL related APIs - DO NOT MERGE
- fix bug #6441155 API review: @hide RTL layout APIs

Change-Id: I13c5ea5f579cecffed9d517f06180ab0576cd26a
2012-05-04 13:15:12 -07:00
Dianne Hackborn
0e128bb2e0 New permissions UI.
Had to keep around a little of the old API for the device
admin settings UI to continue to use.

Change-Id: I84c5666a7f3fec0495eae196a0ffc2223c9e6f82
2012-05-03 19:00:23 -07:00
Adam Powell
43b8fd76c0 Merge "Fix nested cross-scrolling for ScrollView/HorizontalScrollView" into jb-dev 2012-05-03 11:00:53 -07:00
Adam Powell
b3e02c44d5 Fix nested cross-scrolling for ScrollView/HorizontalScrollView
Bug 6429006

Disallow intercepting touch events for parents of
ScrollView/HorizontalScrollView when scrolling begins. Properly
respect touch slop when the child of a ScrollView does not accept
touch events.

Change-Id: I2ce503ad5104d450829ed58cd2748c9163e020d3
2012-05-02 22:14:13 -07:00
Jim Miller
782c04b864 Revert "Fix for layout parameter validation bug in GridLayout."
This reverts commit 8a36e05443 which was causing
keyguard_screen_tab_unlock.xml to have a bad layout.

Change-Id: I50bdc6dbdf8d7b98ef77eae532860d375574213e
2012-05-02 15:50:30 -07:00
Gilles Debunne
54562cfbcd Merge "Better horizontal internal scroll handling in Text." into jb-dev 2012-05-02 11:59:54 -07:00
Gilles Debunne
fd5bc01f70 Better horizontal internal scroll handling in Text.
Bug 6378843

Corrects CL 183460, which would clip text with a width greater than
twice the TextView's width.

Internal horizontal translation is now handled in a similar way to
vertical scrolling.

Internal scrolling is indeed handled by the TextView, which translates
the canvas and sets the clipping bounds accordingly.

When drawing the internal DL, we tighten the horizontal bounds like we
did for the vertical bounds using top and bottom. As in Touch.java, we
use the getHorizontallyScrolling() method to know if we indeed have to
measure the actual text width.  If there is no horizontal scrolling we
use the TextView's width as a safe upper estimate in order to avoid an
actual computation. Note that horizontal scrolling is typically only
used for long single-lined text, so that the measurement loop is quick.

As a result, the internal DLs represent the entire text, and there is no
need to invalidate them when an internal scrolling takes place. This
behavior replaces the draw-only-what-is-needed we had before, but is
more consistent with what we do for long texts inside of a ScrollView
with no noticeable performance change, even on very long text.

Change-Id: I47c24c0ae988547d4f1e9f87d136225c93a3056d
2012-05-02 10:30:03 -07:00
Philip Milne
3e35030459 Merge "Fix for layout parameter validation bug in GridLayout." into jb-dev 2012-05-01 16:21:15 -07:00
Gilles Debunne
61552bc81f Merge "API fix in CheckedTextView" into jb-dev 2012-05-01 16:19:40 -07:00
Adam Cohen
c9ca7f38bc Merge "Preventing onClickPendingIntents from being set on collection widget items (issue 5961701)" into jb-dev 2012-05-01 15:36:21 -07:00
Philip Milne
8a36e05443 Fix for layout parameter validation bug in GridLayout.
Bug 6404882.

When a cell has an unspecified row and a column that is specified as greater
than the specified number of columns, GridLayout fails to report or correct
the error and loops indefinitely searching for a valid row to place the cell.

There is a cyclic dependency between the validation of layout parameters
(and allocation of undefined cell indexes) and the maximum column/row counts.
A performance optimization in layout paramter allocation caused this dependency
to be handled in correctly. The problem is fixed in this CL for this bug and
the symmetric problem for rows.

Change-Id: I0392343bc8a721a0ca7163f58f233ba8046c22e2
2012-05-01 15:24:50 -07:00
Adam Cohen
ffc46a5c7c Preventing onClickPendingIntents from being set on collection widget items (issue 5961701)
Change-Id: If60f98c5e1be66ca840cbd4953841ef2c57a012b
2012-05-01 12:58:12 -07:00
Gilles Debunne
2fb40285c7 API fix in CheckedTextView
Bug 6103310

Change-Id: Ic144ed99199a296df3ef1a16f59caff08af58fd9
2012-05-01 12:11:23 -07:00
Gilles Debunne
8ed491b75b Merge "API fix, AutoCompleteTextView" into jb-dev 2012-05-01 11:58:35 -07:00
Gilles Debunne
1dcd2bfcab Merge "API fix in TextView" into jb-dev 2012-05-01 11:58:26 -07:00
Michael Jurka
c81a075196 Merge "Revert "Adding getters/setters for StackView xml attrs. (Bug 6104219)"" into jb-dev 2012-05-01 11:47:36 -07:00
Winson Chung
0b3d3a3a56 Revert "Adding getters/setters for StackView xml attrs. (Bug 6104219)"
This reverts commit 7ced8f9cab
2012-05-01 11:46:09 -07:00