Commit Graph

2163 Commits

Author SHA1 Message Date
Scott Main
f755a2e8aa Merge "docs: a couple notes for a11y methods in View and cleanup to the A11y service HTML to be semantically correct and thus improve its accessibility :)" into ics-mr0 2011-10-14 17:19:17 -07:00
Scott Main
b303d8381d docs: a couple notes for a11y methods in View and cleanup to the
A11y service HTML to be semantically correct and thus improve its accessibility :)

Change-Id: I483a8a441d802b056f68f82e0e782d86a73298ac
2011-10-14 17:03:35 -07:00
Mathias Agopian
57337eb78e Merge "Add a LayerScreenshot" into ics-mr0 2011-10-14 15:35:54 -07:00
Mathias Agopian
d6809f40cf Add a LayerScreenshot
A LayerScreenshot is a special type of layer that contains a screenshot of
the screen acquired when its created. It works just like LayerDim.

Bug: 5446982
Change-Id: I7814aff2380e7e146937f2b641907be2a30c76cc
2011-10-14 14:32:48 -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
Amith Yamasani
0000538592 Merge "Use ringer assets for notification volume since the two volumes are tied." into ics-mr0 2011-10-14 10:30:43 -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
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
f4b40de684 Merge "Fix issue #5445966: WindowManager reporting -long on prime when it shouldn't be." into ics-mr0 2011-10-12 17:01:18 -07:00
Dianne Hackborn
36991744a2 Fix issue #5445966: WindowManager reporting -long on prime when it shouldn't be.
The window manager now uses the app screen dimensions to compute
the various configuration properties, as it should.

This means that prime is official a "not long" device.  Poor prime.
It probably feels inadequate now.

Because it is.

Oh and all that other stuff?  Debugging logs.  Turned off.  And
why the heck not, debugging logs are great.

Change-Id: Iaaf8ef270d986d34fd046d699ef4c0ecea1981fc
2011-10-12 15:17:11 -07:00
Jeff Brown
d5bb82d18c DO NOT MERGE. Improve screenshot chord debouncing.
Bug: 5011907

Introduce a 150ms delay in handling volume down keys
while waiting to see if a power key will follow.

Don't trigger the screenshot chord if both volume up and
volume down are pressed together.

Don't trigger the long-press power menu if volume keys are
also pressed.

Require the user to press both keys in the chord within
the debounce time and continue long-pressing them in order
to trigger the screenshot action.

Change-Id: I248968d37b73c09d6d08e7f62667c443eba32da0
2011-10-12 15:05:59 -07:00
Amith Yamasani
71def77a28 Use ringer assets for notification volume since the two volumes are tied.
This is only for voice capable devices, as tablets will still have notification
volume be a first-class citizen and doesn't make sense to show a phone icon
for notification volume.

Bug: 5431744
Change-Id: I28eed3ebc4cda173986c2f15e137e81641ee0a7c
2011-10-12 12:25:24 -07:00
Svetoslav Ganov
a1a274f279 Merge "Accessibility text changed event text not populated." 2011-10-10 16:05:53 -07:00
Romain Guy
589b0bb6ab Make sure we have the correct GL context when grabbing a bitmap
Bug #5427391

Change-Id: I4687a6a3e8968fc3ca8ef171833b2bb7afc16f89
2011-10-10 13:57:47 -07:00
Svetoslav Ganov
9920f4fdea Accessibility text changed event text not populated.
Added the TYPE_VIEW_TEXT_CHANGED event to the populating events.

bug:5430831

Change-Id: I78e87640ea4279227d89f399ad43e9b88eb4a486
2011-10-10 12:32:16 -07:00
Dianne Hackborn
df89e65bf0 Fix how we hide and show the nav bar.
The PhoneWindowManager is now responsible for hiding and showing
the nav bar.

For hiding, it just moves it off the screen (easy way to get a
nice slide animation on and off).  At the same time, we use a
new WM facility to put up a fake input window to capture all
touch events.

When a touch event is received, we force the system UI to clear
the navigation hiding bit so it will be shown again.

This removes a bunch of code from the system UI for hiding and
showing the nav bar.  Also removes the code calling from userActivity()
to the system UI, which was bad.  (Also no longer using userActivity()
fixes bugs around re-showing the nav bar due to key presses and
other wrong things.)

Change-Id: I8c3174873b5bcaa36a92322a51e8f7993e88e551
2011-10-07 14:32:01 -07:00
Dianne Hackborn
85b9edf2da Merge "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately" 2011-10-06 15:15:32 -07:00
Svetoslav Ganov
7853c579fa Merge "Fixing errors in position information of scrollable views reported for accessibility." 2011-10-06 15:13:06 -07:00
Dianne Hackborn
9a230e01a1 Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately
This cleans up how ui flags are managed between the client and window manager.
It still reports the global UI mode state to the callback, but we now only clear
certain flags when the system goes out of a state (currently this just means the
hide nav bar mode), and don't corrupt other flags in the application when the
global state changes.

Also introduces a sequence number between the app and window manager, to avoid
using bad old data coming from the app during these transitions.

Change-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23
2011-10-06 14:57:37 -07:00
Svetoslav Ganov
d9ee72fddb Fixing errors in position information of scrollable views reported for accessibility.
1. ScrollView/HorizontalScroll view were reporting only the scroll X and Y but
   failed to convey the max scroll along X and Y so the position can be determined.

2. WebView was not reporting correctly its scroll position for accessibility.

3. Some descendants of AdapterView were reporting incorrect position information.

4. Updated the accessibility docs with some details about the scroll information.

5. Cleaned up duplicated code.

bug:5412132
bug:5412265

Change-Id: I165e73ecde027dad811425b9f395a3f758c923ba
2011-10-06 14:42:58 -07:00
Chet Haase
e9121bc10a Merge "Fix issue #5367164: memory leak in LayoutTransition" 2011-10-06 14:35:53 -07:00
Chet Haase
1a76dcd6d1 Fix issue #5367164: memory leak in LayoutTransition
When a transition occurs, layout change listeners are added to the container
being transitioned as well as every container up the view hierarchy. The
parent views were not having those listeners removed, so every time a transition
ran, more listeners would be added. Adding to that, the use of an ArrayList
as the collection to hold the listeners meant that adding duplicate items
would just increase the size of the list. There's now a sanity-check on the add
call to make sure that the listener does not exist already, but more importantly
we remove all listeners added when the transition ends.

Change-Id: I4ea05adf30765db091124065539b0ffd32729b3b
2011-10-06 12:42:18 -07:00
Chet Haase
40e0383dce Fix issue #5384631: hw windows not resizing correctly
When the SystemUi becomes visible, the activity window resizes.
The hardware renderer was not begin resized to suit, so it was drawing
to a surface larger than that of the activity window, and some of the
rendering (like the action bar) appeared off the screen.

The fix is to keep track of the surface size in HardwareRenderer and to
recreate the surface when the size changes.

This change also removes the BUFFER_CHANGE flag from WindowManager.LayoutParams.
The only reason the flag existed was to trigger a hardware surface recreation,
but checking the old/new size is a more direct way of handling this.

Change-Id: I9d6bf6385794886d1d93c60609c170864cdcdfab
2011-10-06 11:59:10 -07:00
Jeff Brown
4dfce20cac Make SENSOR orientation modes trump rotation lock.
Bug: 5371750

Change-Id: I4d18b6c8ba1de0afd5929ddb8d7123272e35fbe2
2011-10-05 16:12:07 -07:00
Dianne Hackborn
30c845f9ca Turn off logging.
Change-Id: I5b050e33fe918c08b24091c6ccb9c5fe2b01d496
2011-10-05 11:30:55 -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
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
Svetoslav Ganov
2588a07730 Merge "The logic for not populating text to some accessibility events is scattered." 2011-10-03 18:33:32 -07:00
Svetoslav Ganov
0058f724eb Merge "Accessibility services cannot obtain the source of an event coming from a root namespace descendant." 2011-10-03 17:43:39 -07:00
Svetoslav Ganov
2cdedffcfa Accessibility services cannot obtain the source of an event coming from a root namespace descendant.
1. The user can touch the screen at an arbitrary location potentially crossing the root namespace
   bounday which will send an accessibility event to accessibility services and they should be able
   to obtain the event source. Also accessibility ids are guaranteed to be unique in the window.
   Added a package scoped findViewByAccessibilityId method that dives into nested root namespaces.

2. Added accessibility support to the AnalogClock.

bug:5405934

Change-Id: I84edcb554bae41aafcbbc2723c5e62c1ef8a6ddf
2011-10-03 15:07:44 -07:00
Adam Powell
f8419a0299 Fix bugs around overlay action modes.
Multiple focusable windows cause undesired behavior around selection
modes. TextView isn't sure how to behave when it loses window focus
with regard to selection handles and action modes need to be focusable
for WebView find on page since it uses an EditText as a custom view.

For now:

* Use a layered window decor for overlay action mode when there is no
  action bar requested. This eliminates an extra window and avoids the
  issue described for full-screen UIs.

* Disable WebView's find-on-page mode when the action mode's UI will
  not be focusable. This only affects WebViews in floating windows.

Also remove the "Text Selection" title for WebView's selection mode at
UX's request, as it is inconsistent with TextView's selection mode and
the string does not fit on phones in portrait even on wide
devices. This now uses the same mechanism used in TextView to decide
whether to use title text.

Change-Id: I80caeecea9b47728cf26bb0a388153ca0bdeafe1
2011-10-03 13:20:23 -07:00
Svetoslav Ganov
82e236d72a The logic for not populating text to some accessibility events is scattered.
1. Some accessibility evenents should not and were not dispatched for
   text population but there was no centralized location for enforcing
   this - rather the system was firing them in a specific way or there
   were conditions in a few places enforcing that. Now this is centralized
   and clean.

2. Updated the documentation with some new event types the were lacking.

3. Explicitly stated in the documentaition which events are dispatched to
   the sub-tree of the source for text populatation.

bug:5394527

Change-Id: I86e383807d777019ac98b970c7d9d02a2f7afac6
2011-09-30 19:55:27 -07:00
Romain Guy
59c7f80dd2 TextureView works best when it draws stuff.
Bug #5391188

Change-Id: I5e754881ccb08ff288ebd60de77282c9cbcf3f86
2011-09-29 17:21:45 -07:00
Romain Guy
9622e20486 Add system property to force hw acceleration.
Change-Id: I538e641435f282b1af20866a8acd1f8d292734c4
2011-09-29 16:38:24 -07:00
Adam Powell
2fcbbd0363 Fully qualify javadoc links and make the tools happy
Change-Id: I2ad839be71b550a2bcfb90f67627afdd10d3ae14
2011-09-28 18:56:43 -07:00
Romain Guy
2a9fa89643 Don't build display lists for views with a layer.
This could cause the draw() code of views to be invoked too often
or worse, called with the wrong canvas. For instance, a view backed
by a software layer could get its draw() method called to record a
display list. Using a software layer is the recommended way to use
drawing operations not supported in hardware. Since we would
sometimes call the draw() method with the hardware backend anyway,
the app could crash by executing an unsupported operation.

Change-Id: Ib5f9a3a4c6f3efff5e0162ecd73d2dffe06e30a6
2011-09-28 16:50:02 -07:00
Romain Guy
462785fa25 Add a bit more doc to TextureView
Change-Id: Ib76c80d8f70ede1bb63db319bca1e93c489def4d
2011-09-27 17:42:10 -07:00
Chet Haase
6e6db61809 Fix display list issue that was crashing an external app.
The app was removing a View whilst in its onDraw() method. This meant
that we asked it for its display list and it invalidated that display list
(by removing itself) before it returned from onDraw(). We later attempted to
draw that invalid display list into its parent nad died in native code.

The fix is to check the state of the display list after the call to getDisplayList()
and to avoid doing further work with it if it's invalid.

Change-Id: I14a342b4fe79c8dce2626ff61237b447040e7f42
2011-09-26 14:32:26 -07:00
Jeff Brown
4c253119db Merge "Prevent unintended rotations. Bug: 4981385" 2011-09-23 18:28:01 -07:00
Jeff Brown
c0347aa19f Prevent unintended rotations.
Bug: 4981385

Changed the orientation listener to notify the policy whenever
its proposed orientation changes, and changes the window manager
to notify the orientation listener when the actual orientation
changes.  This allows us to better handle the case where the
policy has rejected a given proposal at one time (because the
current application forced orientation) but might choose
to accept the same proposal at another time.

It's important that the proposal always be up to date.  A proposal
becomes irrelevant as soon as the phone posture changes such
that we can no longer determine the orientation with confidence
(such as when a device is placed flat on a table).

Simplified the orientation filtering.  Now we just wait 200ms
for the device to be still before issuing a proposal.  The idea
is that if the device is moving around a lot, we assume that
the device is being picked up or put down or otherwise in
the process of being moved.  We don't want to change the rotation
until that's all settled down.  However, we do want to tolerate
a certain amount of environmental noise.

(The previous confidence algorithm was also designed along
these lines but it was less direct about waiting for things
to settle.  Instead it simply made orientation changes take
longer than usual while unsettled, but the extra delay was often
too much or too little.  This one should be easier to tune.)

Change-Id: I09e6befea1f0994b6b15d424f3182859c0d9a530
2011-09-23 17:26:09 -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
Svetoslav Ganov
83a559e78f Merge "Scroll accessibility events should not populate text." 2011-09-23 13:26:18 -07:00
Adam Powell
2b2f6d6c54 Remove unnecessary parameter
Change-Id: I32810a31140263a996d4f600fa53db5f29e60f42
2011-09-23 11:15:39 -07:00
Svetoslav Ganov
b84b94e1a0 Scroll accessibility events should not populate text.
Scroll events are used to report position change and should not
contain the text content of the view that fires them because it
is usiually a containter for many other views and the text will
be long and not informative for accessibility purposes. Also
such evens are fired relatively frequently. If a client wants
to fetch some textual content for a scroll event he can use
the interrogation APIs.

bug:5352059

Change-Id: I43e02aca895c8ab16ba82ebe1cee3aea8ce7711a
2011-09-22 19:55:47 -07:00
Adam Powell
7db82acd81 Fix leaky view tags
The implementation of the method View#setTag(int, Object) stored tag
objects as entries in a static WeakHashMap associated with the View as
a key. This was problematic for any tag object that stored a hard
reference back to the View the tag was placed on, as it would cause
the WeakReference key to never be collected and the entry to persist
forever.

This was particularly nasty if an app used a keyed tag to store a
ViewHolder object referencing child views for use in the Adapter
implementaion for an AdapterView, since child views will always have
hard references leading back to the parent.

Change-Id: Ia17840a301ba0e0c928861405388fb2f625dac2c
2011-09-22 19:55:41 -07:00
Daniel Sandler
7933b7056f am cc22b992: Merge "Revert "Allow views to setSystemUiVisibility() with the same value and have it work."" into ics-factoryrom
* commit 'cc22b99249ac80891af99be941862edc9569fc4b':
  Revert "Allow views to setSystemUiVisibility() with the same value and have it work."
2011-09-22 10:31:47 -07:00
Ken Wakasa
9f48d6348d Fix comment
Change-Id: Ic0fd15d0b1b4d2c24eb177a6b22e0cc08ec1de99
2011-09-22 19:24:48 +09:00
Jeff Brown
a829e16681 Merge "Handle orientation changes more systematically. Bug: 4981385" 2011-09-21 21:09:10 -07:00