Commit Graph

4957 Commits

Author SHA1 Message Date
Guang Zhu
f31d73c985 Merge "send accessibility events on view property invalidation" into klp-modular-dev 2014-05-07 07:38:59 +00:00
Guang Zhu
84e2509823 send accessibility events on view property invalidation
from certain call sites of invalidateViewProperty, appropriate
accessibility event needs to be delivered as well.

Below is a list of call references found, ones with "*" are
modified by this change:

package: android.view
View
  *offsetLeftAndRight(int) (4 matches)
  *offsetTopAndBottom(int) (4 matches)
  *setAlpha(float)
  setCameraDistance(float) (2 matches)
  setLayerPaint(Paint)
  setPivotX(float) (2 matches)
  setPivotY(float) (2 matches)
  *setRotation(float) (2 matches)
  *setRotationX(float) (2 matches)
  *setRotationY(float) (2 matches)
  *setScaleX(float) (2 matches)
  *setScaleY(float) (2 matches)
  setTransitionAlpha(float)
  *setTranslationX(float) (2 matches)
  *setTranslationY(float) (2 matches)
ViewGroup
  *offsetChildrenTopAndBottom(int)
ViewOverlay
  OverlayViewGroup
    invalidateViewProperty(boolean, boolean) (2 matches)
ViewPropertyAnimator
  AnimatorEventListener
    onAnimationUpdate(ValueAnimator) (2 matches)

Bug: 14262013

Change-Id: Ibc9ed438f476ad10a6ad8df668142958c5903f55
2014-05-06 18:23:15 -07:00
Adam Powell
f4a3941ebe Clean up WindowInsets API for release
Hide window decor inset methods and rename the clone* methods to have
less baggage.

Bug 14566960

Change-Id: Ia06bb959fd77acd6ff69f337c3200047a529612a
2014-05-06 16:27:59 -07:00
Adam Powell
a0516e7ad1 Merge "onWindowDismissed API cleanup" into klp-modular-dev 2014-05-06 20:17:31 +00:00
Adam Powell
117b695222 onWindowDismissed API cleanup
Move the window swipe to dismiss plumbing off of Window.Callback into
its own internal interface implemented by Activity and Dialog. Make it
internal API instead of public. Apps should control this via the
window feature setting.

Change-Id: I64cd237fa7eab08719b2c34e31dac7d34f02563a
2014-05-05 18:20:47 -07:00
Justin Koh
8031fa014c Fix build due to @deprecated tag not having content
Bug: 14441321
Change-Id: Ia42040db7030e4318ed2c34bbe90808a49f002db
2014-05-05 16:29:52 -07:00
Justin Koh
268f858be5 Merge "Hide KeyEvent#isCancelKey, isConfirmKey DO NOT MERGE" into klp-modular-dev 2014-05-05 23:14:06 +00:00
Justin Koh
6f5dcc3546 Hide KeyEvent#isCancelKey, isConfirmKey DO NOT MERGE
Bug: 14116162
Change-Id: I6b947c9b46bb5ea094b39428bb432e8f6fc6b57a
2014-05-05 16:08:38 -07:00
Justin Koh
8bed554e4f Hide InputDevice#supportsSource DO NOT MERGE
Bug: 14116162
Change-Id: I7c0ae516596f965083622aa77281abf6d47dc0b7
2014-05-05 15:47:39 -07:00
Justin Koh
1aa59f86ca Hide getDeviceGlobalActionKeyTimeout
Hide getDeviceGlobalActionKeyTimeout, as requested. Remove mention from
@deprecated notice.
Bug: 14441321

Change-Id: Ic6e84e718c2eaa15a86d8cd4d13645be88490b61
2014-05-05 14:40:56 -07:00
Justin Koh
feabd2c730 Make global action key timeout configurable.
Make global action key timeout configurable: deprecated the old public method
and created a new one: getDeviceGlobalActionKeyTimeout.
Bug: 14441321

Change-Id: Ifa9b136984a9f02cfe4040baeff11275174967c5
2014-05-02 10:04:34 -07:00
Jeff Brown
140ffc783c Clean up some terminology related to interactive state.
Change-Id: Ife4445685a5314dea64332a3490fa8dd3ffd89a2
2014-05-01 15:22:27 -07:00
Mindy Pereira
23ffc73abd Update fling min velocity
Make it configurable for watch

Change-Id: Icf90ebd5bd5924fb2a5beb6715479d5dbe7e7dd9
2014-04-30 17:17:10 -07:00
Deepanshu Gupta
e17ed92200 am 126f4057: am 5ba2f230: Add view cookies for action bar menus. [DO NOT MERGE]
* commit '126f4057a06756fbb1c194b5d9d40f9f922d14ee':
  Add view cookies for action bar menus. [DO NOT MERGE]
2014-04-24 01:31:15 +00:00
Deepanshu Gupta
126f4057a0 am 5ba2f230: Add view cookies for action bar menus. [DO NOT MERGE]
* commit '5ba2f230faa355eb9bc1e90f6c48eeeb437f390c':
  Add view cookies for action bar menus. [DO NOT MERGE]
2014-04-24 01:27:45 +00:00
Deepanshu Gupta
5ba2f230fa Add view cookies for action bar menus. [DO NOT MERGE]
The change adds the view cookies for the menus rendered in the action
bar. This enables the IDE to map the menu to the relevant XML Tag in the
menu xml and show the highlighting accordingly.

The change also contains a bugfix where a method wasn't renamed
properly.

Change-Id: Idcfc263a8ebe0a4f25afa3a1eb085fa628fd03ca
(cherry-picked from commit 1001961f90)
2014-04-23 18:04:21 -07:00
Adam Lesinski
c0f6eed40f Allow InputEvents to propagate w/o IME
If no IME was present, InputEvents such as KeyEvents
would simple be dropped instead of going through
to the Activity's View hierarchy.

Change-Id: I9de25bdbf5d1564b77b25679e19dae18591a8c1c
2014-04-18 14:52:04 -07:00
Michael Kolb
6642e51ac5 Populate isRound from config.xml to WindowInsets
Change-Id: I41b3aef1322a7cdccdcbc679eb753e0a1e561fad
2014-04-17 17:32:50 -07:00
Adam Powell
973ddaacae DO NOT MERGE Add isRound to WindowInsets
isRound allows a view to determine whether the window it is contained
within obscures the corners of the window content. This allows views
aware of this property to adapt their layout accordingly.

Switch ViewRootImpl to use dispatchApplyInsets instead of
fitSystemWindows.

Change-Id: Ic3e3936b73815b2593cb9720af1a309fbd18406e

Conflicts:
	core/java/android/view/ViewRootImpl.java
2014-04-16 14:59:16 -07:00
Adam Powell
50d7bfd822 DO NOT MERGE Refactoring of fitSystemWindows to applyWindowInsets for views
Applying insets is now handled by:

* WindowInsets class - Encapsulate system insets and local decor
  insets into a single object, written specifically so that new inset
  categories may be added later. Apps cannot construct their own
  WindowInsets, only clone with optional modifications. This is to
  prevent losing data in the event of new insets added in the future.

* onApplyWindowInsets - Actually perform the application of insets.

* OnApplyWindowInsetsListener - Allow an app to use a separate
  Listener object to apply insets to a View. This allows for things
  like support lib integration in custom views written for older
  versions where the verifier would otherwise complain about the use
  of the new WindowInsets class as a method parameter. It also allows
  for applying insets in a custom way without writing a custom view.

* dispatchApplyWindowInsets - Dispatch the call to self and children
  in turn, if applicable. An OnApplyWindowInsetsListener will override
  the behavior of the view's default onApplyWindowInsets method; a
  listener wishing to call down to the 'superclass' implementation as
  part of its own operation should call view.onApplyWindowInsets. App
  code should generally not override this method and instead override
  onApplyWindowInsets or provide a listener.

Compatibility support with the existing fitSystemWindows method has
been provided in both directions: for code that previously called
fitSystemWindows on arbitrary views and also for code that overrode
the fitSystemWindows method in custom views. A view that supports the
newer onApplyWindowInsets mechanism should not mix that behavior with
other calls to fitSystemWindows or vice versa. Support lib-style code
should take care to consistently use one mechanism or the other at
runtime.

Change-Id: Ie88b96e0382beb5d3c3f6cd013f7043acbc0a105
2014-04-15 10:30:25 -07:00
Jeff Brown
d912e1f6a1 Use the display's actual state in the view hierarchy.
Previously, the view hierarchy would suppress drawing whenever the
PowerManager.isScreenOn() method returned false.  However, this method
really describes the interactive state of the device rather than the
actual display state.  This is especially a problem when there are
multiple displays but it also breaks drawing while in doze mode.

This change makes the view hierarchy consider the actual state of the
display instead on an individual basis.

Bug: 13133142
Change-Id: I69870b6b14a3504607a30562aa48c3452f777c1f
2014-04-11 18:46:22 -07:00
Jeff Brown
037c33eae7 Plumb display power state through display manager.
Declare a new method, Display.getState() to retrieve the actual
power state of a display.

Improved documentation for Intent.ACTION_SCREEN_ON and
Intent.ACTION_SCREEN_OFF to clarify what they really mean in
terms of the interactive state of the device.

Deprecated PowerManager.isScreenOn() and replaced it with
PowerManager.isInteractive() with a more suggestive name and
better documentation.

Redirect display power state changes to go through the display
manager first and only then head over to the power manager for
legacy compatibility.

Eliminated the bright here and woke here policy flags since they
were unused.  Simplified the input dispatch policy somewhat.

Ensure that screen wake locks are respected up until the point
when dozing really begins.

Fixed a regression in DreamService where onDreamingStarted
might be called before onWindowAttached.

Bug: 13133142
Bug: 13472578
Bug: 13929355
Bug: 13760290
Change-Id: Iabef96921dd554ce3768fb18619cefc3230b5fb0
2014-04-10 20:46:14 -07:00
Michael Wright
e9eb58c9a0 Merge "Add InputDevice#supportsSource(int)." into klp-modular-dev 2014-03-29 00:56:17 +00:00
Michael Wright
d08c864784 Add InputDevice#supportsSource(int).
This mirrors the InputEvent#isFromSource API.

Change-Id: Ie4869cc52d22d49a71d4d3e22f1ae38b16367395
2014-03-28 12:59:34 -07:00
Michael Wright
1b10869f39 Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE
Also change MotionEvent.PointerCoords bit packing and unpacking
methods to be consistent with BitSets which are now used on the
native PointerCoords object.

Bug: 11480300
Change-Id: Ib18c99b94ac555104c69eac526860aa501e89e03
2014-03-26 14:56:07 -07:00
Michael Wright
1e3c93975e Adds API for determining confirm and cancel keys.
Bug: 13624048
Change-Id: I9f42eeb9c3a6bdae35eb0d7213fb4ac0fd8dc0d9
2014-03-26 14:40:42 -07:00
Jeff Brown
96abebd025 am 80af5316: am f260ed09: Merge "Fix inverted conditional in View.setFilterTouchesWhenObscured." into klp-dev
* commit '80af53162477385f20956a55305d0c048ef5c1df':
  Fix inverted conditional in View.setFilterTouchesWhenObscured.
2014-03-19 20:11:12 +00:00
Jeff Brown
80af531624 am f260ed09: Merge "Fix inverted conditional in View.setFilterTouchesWhenObscured." into klp-dev
* commit 'f260ed09263d60ff941225e31e22d344afd90c0f':
  Fix inverted conditional in View.setFilterTouchesWhenObscured.
2014-03-19 20:05:40 +00:00
Jeff Brown
aba566589e Fix inverted conditional in View.setFilterTouchesWhenObscured.
Bug: 13530806
Change-Id: Icdaf909c355f5b22635e1060f2190502916b144f
2014-03-18 17:59:21 -07:00
Adam Powell
41685ce983 am 898d6d96: am 7f2c9e94: Merge "Add a config override for ViewConfiguration#hasPermanentMenuKey" into klp-dev
* commit '898d6d964cb3b650b5c9bed2276310547e5455e0':
  Add a config override for ViewConfiguration#hasPermanentMenuKey
2014-03-13 23:53:38 +00:00
RoboErik
ca9eef6203 b/12068020 Make kb layouts only unique to vendor/product. Do not merge
This is a cherry-pick of https://googleplex-android-review.git.corp.google.com/#/c/399886/

Instead of storing a kb layout per device descriptor (which is expected
to be unique), store it for each vendor/product. This way we can keep
a consistent layout between identical but physically different keyboards.

There are some corner cases this is expected to fail on, namely devices
that incorrectly have the same vendor/product id. Devices that don't
define a vendor/product id will continue to use the descriptor to store
layout files.

Change-Id: I1f2508561992080459310d5a644dad65a9c24f1a
2014-03-12 13:21:08 -07:00
Adam Powell
898d6d964c am 7f2c9e94: Merge "Add a config override for ViewConfiguration#hasPermanentMenuKey" into klp-dev
* commit '7f2c9e9420252a493b7399639f794c8a963444e5':
  Add a config override for ViewConfiguration#hasPermanentMenuKey
2014-03-11 23:26:38 +00:00
Adam Powell
15b13a792c Add a config override for ViewConfiguration#hasPermanentMenuKey
Allow device overlays to override the behavior of the
hasPermanentMenuKey method at build time. This is useful for devices
that do not behave as the usual autodetection mechanism expects.

Device overlays should set config_overrideHasPermanentMenuKey to 1 if
the device DOES have a permanent menu key or 2 if the device DOES NOT
have a permanent menu key.

Bug 11698700

Change-Id: I467b68528cf681b08adcaebc2402d8bdd84f6b5c
2014-03-11 21:20:13 +00:00
Adam Powell
fd6b99750b Prevent overflow from MeasureSpec.adjust; measure cache fix
Extract the size from the MeasureSpec value before adding the
delta. The opposite order could result in a negative delta causing
overflow into size from the EXACTLY mode, creating a very large size
value in the resulting MeasureSpec.

Don't reapply optical bounds insets after pulling a value from the
measurement cache. (The insets will have already been applied before
insertion into the cache.)

Change-Id: Ib0154f4d6c3a7c31e7fee24fd7d5d10cc5dc71a1
2014-03-10 14:09:18 -07:00
Jeff Brown
6212a49a94 Declare KEYCODE_SLEEP and KEYCODE_WAKEUP.
These new keys behave in similarly to KEYCODE_POWER but do not
simply toggle between awake and asleep states.

Sleep puts the device to sleep if it is awake.
Wakeup wakes up the device if it is asleep.

Bug: 12938999
Change-Id: I260fb918cc858882fe06fa880910df5763a76c5d
2014-03-07 14:02:55 -08:00
Michael Wright
9aa7c6e583 am e4a71792: am 4448f9d7: am c5dea68e: Merge "Revert Japanese special case fallback keys." into klp-dev
* commit 'e4a7179278375f48171746ffe93ca4529a927ecb':
  Revert Japanese special case fallback keys.
2014-03-06 01:00:43 +00:00
Michael Wright
e4a7179278 am 4448f9d7: am c5dea68e: Merge "Revert Japanese special case fallback keys." into klp-dev
* commit '4448f9d7ade3d08a29b1a191e182a403c5584388':
  Revert Japanese special case fallback keys.
2014-03-06 00:56:59 +00:00
Michael Wright
4448f9d7ad am c5dea68e: Merge "Revert Japanese special case fallback keys." into klp-dev
* commit 'c5dea68e9856698953dafca868eaee7207614641':
  Revert Japanese special case fallback keys.
2014-03-06 00:53:22 +00:00
Michael Wright
c5dea68e98 Merge "Revert Japanese special case fallback keys." into klp-dev 2014-03-06 00:50:15 +00:00
Filip Gruszczyński
c16ba8cda7 Passing and using defStyle in ViewGroup initFromAttributes.
Change-Id: I2104037d6f701aa3a27bf09226aca171ec77495d
2014-03-05 14:43:49 -08:00
Will Haldean Brown
bd79652a9a Merge "Add swipe-to-dismiss support to PhoneWindow." into klp-modular-dev 2014-03-04 21:22:30 +00:00
John Spurlock
3b86923854 am c6ecac77: am 38f81ccc: am fee6f69e: Merge "Volume panel should not clear system ui flags." into klp-dev
* commit 'c6ecac77cfa35bbc72a4b7e1e3374ad00f83b305':
  Volume panel should not clear system ui flags.
2014-03-04 19:19:14 +00:00
John Spurlock
c6ecac77cf am 38f81ccc: am fee6f69e: Merge "Volume panel should not clear system ui flags." into klp-dev
* commit '38f81ccc768958b1a9100cb2caa93ec3aedd9b5e':
  Volume panel should not clear system ui flags.
2014-03-04 19:15:56 +00:00
John Spurlock
38f81ccc76 am fee6f69e: Merge "Volume panel should not clear system ui flags." into klp-dev
* commit 'fee6f69e8321c3f94c2b341fe483f7b1f6534169':
  Volume panel should not clear system ui flags.
2014-03-04 19:12:40 +00:00
Will Haldean Brown
ca6234e084 Add swipe-to-dismiss support to PhoneWindow.
This adds a new window feature -- FEATURE_SWIPE_TO_DISMISS -- and a
theme attribute to activate that feature. When the feature is
activated, a SwipeDismissLayout is inflated as the DecorView layout.
SwipeDismissLayout intercepts touch events and steals ones that are
large swipes to the right if its children don't. PhoneWindow registers
handlers that listen for these swipe events, translate the window when
necessary, and finish the activity at the end of the gesture.

Change-Id: I512e758f3c3ffd3b353dba3b911c0e80a88d6f5f
2014-03-04 09:26:15 -08:00
John Spurlock
ca4d040342 Volume panel should not clear system ui flags.
Remove private WM flag (used only by the volume panel) to force
the clearable system UI flags clear.

Instead, always lay out the volume panel as if the bars are visible,
as we do for system dialogs - and don't clear the flags.

Reverts part of I25f29af5b6518aba695b64a75977ae240b742118

Bug:11986621
Change-Id: I842729d729d2a6eb2a687d0b930ddb160c6a1b57
2014-03-04 10:12:01 -05:00
Michael Wright
bdffc3ad05 Revert Japanese special case fallback keys.
Reverts commits 4567e40eb0 and
a977707d6e, which added special case fallbacks
for game controllers in the Japanese locale.

Bug: 12923922
Change-Id: I229126e589e11fb5de86772ef9c59d09723af941
2014-02-26 15:43:48 -08:00
Jeff Brown
2687550272 Add a new "doze mode" based on Dream components.
When a doze component has been specified in a config.xml resource
overlay, the power manager will try to start a preconfigured dream
whenever it would have otherwise gone to sleep and turned the
screen off.  The dream should render whatever it intends to show
then call startDozing() to tell the power manager to put the display
into a low power "doze" state and allow the application processor
to be suspended.  The dream may wake up periodically using the
alarm manager or other features to update the contents of the display.

Added several new config.xml resources related to dreams and dozing.
In particular for dozing there are two new resources that pertain to
decoupling auto-suspend mode and interactive mode from the display
state.  This is a requirement to enable the application processor
and other components to be suspended while dozing.  Most devices
do not support these features today.

Consolidated the power manager's NAPPING and DREAMING states into one
to simplify the logic.  The NAPPING state was mostly superfluous
and simply indicated that the power manager should attempt to start
a new dream.  This state is now tracked in the mSandmanSummoned field.

Added a new DOZING state which is analoguous to DREAMING.  The normal
state transition is now: AWAKE -> DREAMING -> DOZING -> ASLEEP.
The PowerManager.goToSleep() method now enters the DOZING state instead
of immediately going to sleep.

While in the doze state, the screen remains on.  However, we actually
tell the rest of the system that the screen is off.  This is somewhat
unfortunate but much of the system makes inappropriate assumptions
about what it means for the screen to be on or off.  In particular,
screen on is usually taken to indicate an interactive state where
the user is present but that's not at all true for dozing (and is
only sometimes true while dreaming).  We will probably need to add
some more precise externally visible states at some point.

The DozeHardware interface encapsulates a generic microcontroller
interface to allow a doze dream for off-loading rendering or other
functions while dozing.  If the device possesses an MCU HAL for dozing
then it is exposed to the DreamService here.

Removed a number of catch blocks in DreamService that caught Throwable
and attempted to cause the dream to finish itself.  We actually just
want to let the process crash.  Cleanup will happen automatically if
needed.  Catching these exceptions results in mysterious undefined
behavior and broken dreams.

Bug: 12494706
Change-Id: Ie78336b37dde7250d1ce65b3d367879e3bfb2b8b
2014-02-20 13:39:13 -08:00
Andy McFadden
4f0a80d0b8 Allow "opaque" flag to be updated. DO NOT MERGE
Added a setOpaque() call and a bunch of comments.

Bug 12387406

Change-Id: Ic066cba926223f22f9bc56a7013987001d9cc795
2014-02-18 15:54:24 -08:00
Narayan Kamath
583b7b1671 am 39a789bf: am 7ae1726d: am aa9ba887: am 6e09eb4c: Merge "AArch64: Make graphics classes 64-bit compatible"
* commit '39a789bf6efd5c3478a442e60e896cae371fd04c':
  AArch64: Make graphics classes 64-bit compatible
2014-01-28 19:26:29 +00:00