Commit Graph

2650 Commits

Author SHA1 Message Date
Jeff Brown
23b871d714 Merge "Initial commit of InputManager and keyboard layout API." 2012-04-05 15:29:24 -07:00
Jeff Brown
9df6e7a926 Initial commit of InputManager and keyboard layout API.
Added a new InputManager service for interacting with input
devices and configuring them.  This will be the focus of
an upcoming refactoring.

Added an API for registering keyboard layouts with the system
based on the use of a broadcast receiver.  Applications can
register their own keyboard layouts simply by declaring a
broadcast receiver in their manifests.

Added the skeleton of a package that will ultimately contain
the keyboard layouts and other input device related resources
that are part of the base system.

Bug: 6110399
Change-Id: Ie01b0ef4adbd5198f6f012e73964bdef3c51805c
2012-04-05 14:42:10 -07:00
Dianne Hackborn
5459c43b83 Merge "Clean up status bar, system bar, navigation bar management." 2012-04-05 11:47:02 -07:00
Romain Guy
5ab92c0316 Merge "Make sure we clean up after ourselves" 2012-04-04 19:47:34 -07:00
Svetoslav Ganov
b39e509f43 Merge "Fixing broken clear focus behavior." 2012-04-04 19:01:13 -07:00
Romain Guy
edbca1285e Make sure we clean up after ourselves
Because of the mAdded=false statement a few lines above, a large section
of doDie() was not executed. Things would eventually get cleaned up
but it seems better to do it at the right time.

Change-Id: I1a2f3a8e05057dd7cd7205b6d3f9c145d6c0241d
2012-04-04 18:25:53 -07:00
Romain Guy
a393bedb6d Merge "Add a new OnDrawListener to ViewRoot" 2012-04-04 18:16:38 -07:00
Romain Guy
25eba5c502 Add a new OnDrawListener to ViewRoot
This can be used by app to efficiently listen for draw passes. This listener
is guaranteed to not generate any garbage unlike OnPreDrawListener.

Change-Id: Ida40d11a3f8a5d2617bafe722906ee5c9af48602
2012-04-04 17:59:11 -07:00
Svetoslav Ganov
57cadf2a97 Fixing broken clear focus behavior.
1. In a prevous patch I fixed the issues when on clearing
   focus of the first focusable view the callback for
   gaining focus were called before the ones for losing
   focus. Since it cause some issues the patch was reverted
   and resubmitted. In this chaos some code was missed so
   tests are failing. Added the missing logic to give focus
   to the first focusable in the current touch mode when
   a view loses focus.

2. Removed clear focusForRemoval methid since it is a dup
   of unFocus();

Note: All focus tests now pass.

Change-Id: I06881d4b5a66fc5a33efca16a96f20207a7220d3
2012-04-04 17:24:09 -07:00
Dianne Hackborn
f87d19621d Clean up status bar, system bar, navigation bar management.
The status bar and navigation bar are two completely separate
elements, with their own semantics.  The system bar now classifies
itself as a navigation bar, since that is really how it behaves.

This required rewriting the HDMI resizing code, so that it is
all done by PhoneWindowManager since that is what is responsible
for the size of the navigation bar (and thus now system bar).  This
actually gets rid of a fair amount of code, and means we can also
do the same thing for a pure navigation bar.

Likewise the system bar now has the navigation bar ability to be
hidden when requested by system UI flags.  To get the behavior
we want on Xoom, we only allow the nav bar to be hidden when it
will help provide a better aspect ratio for showing widescreen
videos.

Finally the nav/system bar now animates when hidden and shown.

Change-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a
2012-04-04 16:00:45 -07:00
Philip Milne
24fea55ebb Merge "Fix for bug 6104272." 2012-04-04 14:51:35 -07:00
Fabrice Di Meglio
d779412c58 Merge "Add View textAlignment" 2012-04-04 14:17:22 -07:00
Fabrice Di Meglio
9da0f8a5c4 Add View textAlignment
- fix bug #6163772
- use bits field and pack them as much as possible
- take care of "supportsRtl" flag from Manifest
- add visual unit tests

CTS unit tests in another CL

Change-Id: Ib77c4eb423854209af130688c5ef9977401a9c1c
2012-04-04 12:20:45 -07:00
Philip Milne
6c8ea06abf Fix for bug 6104272.
Add Java properties for those XML attributes that don't have getter/setter
pairs. Also, link existing methods to their XML attributes where the comments
were previously missing.

This CL is worth extra scruitiny: first because it's View, and secondly
because many of the new APIs depend on subtleties in the underlying implementations
that I'm not familiar with.

Also, please consider whether it is too much to deprecate getBackgroundDrawable().

Change-Id: I0f2641926d86e5f44b92a0057736f64b59d2e9b9
2012-04-04 12:16:02 -07:00
Chet Haase
09280606dc Enhanced frame profiling from gfxinfo
You can now set the max number of frames being tracked by the gfxinfo
profiling data by doing 'adb shell setprop hwui.profil.maxframes #'.
Also, running gfxinfo automatically resets the data so that any set of
frame data always starts from the beginning.

Change-Id: I87ae3fb4d580741a1b2fba75be4ec540de7c52a4
2012-04-04 07:49:06 -07:00
Chet Haase
21aec19d30 Merge "Optimization of alpha with DisplayList properties" 2012-04-03 15:40:54 -07:00
Fabrice Di Meglio
fde3f83cd2 Merge "Fix bug #6140391 Make RTL awareness as an opt-in into the AndroidManifest" 2012-04-03 14:45:53 -07:00
Chet Haase
db8c9a6a4d Optimization of alpha with DisplayList properties
Some views (such as ImageView and TextView) handle non-opaque alpha
values directly. This was originally an optimization, but we can handle it faster
in many cases without this optimization when DisplayList properties are enabled.
Basically, if a view has non-overlapping rendering, we set the alpha value directly
on the renderer (the equivalent of setting it on the Paint object) and draw each
primitive with that alpha value. Doing it this way avoids re-creating DisplayLists
while getting the same speedup that onSetAlpha() used to get pre-DisplayList properties.

Change-Id: I0f7827f075d3b35093a882d4adbb300a1063c288
2012-04-03 14:02:17 -07:00
Daisuke Miyakawa
fd007cb576 Merge "Shorten PRESSED_STATE_DURATION" 2012-04-03 14:00:58 -07:00
Daisuke Miyakawa
c19895f7ed Shorten PRESSED_STATE_DURATION
Bug: 6259150
Change-Id: Ic8b28295a7e97ca2885d074962f73d5f1bf980c6
2012-04-03 12:25:26 -07:00
Fabrice Di Meglio
59dfce8bda Fix bug #6140391 Make RTL awareness as an opt-in into the AndroidManifest
- introduce "supportsRtl" as a new application attribute in the AndroidManifest
- "supportsRtl" default value is FALSE (no RTL support)
- adapt the View layoutDirection and textDirection logic to take care of "supportsRtl" value

Change-Id: I5e4f9f576e14f35dedc6b0c29a7142c397f598e0
2012-04-03 11:43:20 -07:00
Jeff Sharkey
7e84830442 Merge "Let ViewStub be used in RemoteViews." 2012-04-03 11:25:24 -07:00
Joe Fernandez
110414928a am c1a0e54d: am b459b619: am 945b7cb3: Merge "docs: Accessibility Dev Guide (subsumes Accessibility Best Practices)" into ics-mr1
* commit 'c1a0e54de12aee41163b84a25ea8dfc8b64304dc':
  docs: Accessibility Dev Guide (subsumes Accessibility Best Practices)
2012-04-03 10:11:59 -07:00
Joe Fernandez
b459b619b3 am 945b7cb3: Merge "docs: Accessibility Dev Guide (subsumes Accessibility Best Practices)" into ics-mr1
* commit '945b7cb324f3bdfcf13efbe7bdf6a60f7163ed9a':
  docs: Accessibility Dev Guide (subsumes Accessibility Best Practices)
2012-04-03 10:04:54 -07:00
Jeff Sharkey
b27b7a1524 Let ViewStub be used in RemoteViews.
Specifically, this carefully ensures that ViewStub.inflate() uses
the restricted LayoutInflater from RemoteViews, which has a filter
to enforce the @RemoteView annotation.

Bug: 2541651
Change-Id: I341aacbf6029cdd717a894eb084760c6ec224786
2012-04-02 21:32:45 -07:00
Jeff Brown
56bad16f02 Merge "Add Japanese specific key codes." 2012-04-02 17:08:13 -07:00
Chris Craik
b6a80077dc Merge "Allow fine-grained control over functors execution" 2012-04-02 17:07:21 -07:00
Chet Haase
8d56b0e1d2 Enabling DisplayList properties
An earlier commit fixed problems with enabling DisplayList properties.
This CL actually enables the properties.

Change-Id: I5c41d0c64e9241822af53eb367de0fed7d9608e0
2012-04-02 16:34:48 -07:00
Chet Haase
9420abd56a Re-enable DisplayList properties.
Re-enabling DisplayList properties last week caused some app
errors due to the way that some transforms were being handled (specifically,
those coming from the old Animations and ViewGroup's childStaticTransformation
field). This change pushes *all* transform/alpha data from View.draw() into
the view's DisplayList, making DisplayLists more encapsulated (and correct).

Change-Id: Ia702c6aae050784bb3ed505aa87553113f8a1938
2012-04-02 15:31:24 -07:00
Yang Chuang
7511f9cd2f Add Japanese specific key codes.
These keys are specific to Japanese hardware keyboard which can be
used by input method.

Patch ported from AOSP, with the addition of EISU and KANA mappings.

Change-Id: I647473cdd257458e3b9d134b0fc623eae946c3e0
2012-04-02 15:19:45 -07:00
Romain Guy
8f3b8e3299 Allow fine-grained control over functors execution
Adds non-drawing execution mode

Change-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf
2012-04-02 15:15:07 -07:00
Fabrice Di Meglio
e0435a6c6a Merge "Fix layout params resolution" 2012-04-02 11:26:22 -07:00
Michael Jurka
e6c966caa3 Merge "Add frame counter to dumpGfxInfo" 2012-04-02 09:45:36 -07:00
Dianne Hackborn
61d6c8ca49 Merge "Add new feature to let apps layout over status bar / system bar." 2012-03-30 17:36:32 -07:00
Fabrice Di Meglio
4a5268857e Fix layout params resolution
- dont need to check if any parent as getResolvedLayoutDirection() is handling this case

Change-Id: I915b4a72e38d072005e47d3c5a3f63febbef6e60
2012-03-30 15:56:48 -07:00
Dianne Hackborn
3a3a6cfd8e Add new feature to let apps layout over status bar / system bar.
The main change is a few new flags you can supply to
View.setSystemUiVisibility().  One is a new visibility mode,
SYSTEM_UI_FLAG_FULLSCREEN, which is basically the same as
the global FLAG_FULLSCREEN option for windows, but driven as
part of the system UI state.

There are also three new flags for telling the framework that you
would like to have your application's UI ignore screen
decorations -- SYSTEM_UI_FLAG_LAYOUT_NO_NAVIGATION for going
behind the navigation bar and SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
for ignoring full screen decorations (that is the status bar).

In combination with this you can use SYSTEM_UI_FLAG_LAYOUT_STABLE
to have the framework report consistent insets to your application.

When using NO_NAVIGATION, when the user taps the screen we now
also automatically clear ONLY_CONTENT, so that we atomically show
both UI elements.  This should make it easy for apps like video
players that want to move between fully full-screen and regular
modes.

The ActionBar has also been extended when in overlay mode so
that it will adjust the system window insets to also account
for its space, and allow it to be hidden using the new
SYSTEM_UI_FLAG_FULLSCREEN.

Change-Id: Ic8db1adec49a0f420bfe40c1d92eb21307856d0b
2012-03-30 15:22:04 -07:00
Romain Guy
7687882800 Detect surface resizes
HardwareRenderer normally relies on the window manager to be notified of
surface dimension changes. It is however possible to execute a drawing pass
before receiving the window manager notification. We must therefore compare
the actual size of the target surface to the window size and perform a full
redraw when they are not the same.

Change-Id: Idccc8592f3f777edee1ef67a98a4c2a825dcfba7
2012-03-30 14:54:22 -07:00
Michael Jurka
a3fabff985 Add frame counter to dumpGfxInfo
Change-Id: I016f706e32cbdbce014795d8fc537b15c389dc7a
2012-03-30 05:06:55 -07:00
Jeff Brown
fa8b27c858 Improve responsiveness by always consuming batched events.
Change-Id: I2eb88f8fde97ce0cd820f39da4ebe8698a7db95c
2012-03-29 18:58:29 -07:00
Jeff Brown
a08f3e866a Merge "Enable vsync traversals by default." 2012-03-29 15:12:33 -07:00
Fabrice Di Meglio
e32a4ac8d3 Merge "Improve FocusFinder for RTL support" 2012-03-29 13:46:30 -07:00
Jeff Brown
ebb2d8d708 Enable vsync traversals by default.
Improved how the various callbacks are managed and sequenced
to reduce code duplication.

Added a heuristic to avoid postponing traversals until
the next vsync frame if we did not actually do any drawing during
the previous frame.  This helps in the very common case where
drawing occurs in response to input.

Change-Id: I277d9eeaf50408f8745a3cfd181db1d140770658
2012-03-29 13:10:55 -07:00
Chet Haase
f1260aac0e Merge "Disable DisplayList properties pending fixes for AlphaAnimation" 2012-03-29 09:45:38 -07:00
Chet Haase
76240dafe8 Disable DisplayList properties pending fixes for AlphaAnimation
The new DisplayList properties design has ordering conflicts with the
way that alpha works with old animations (AlphaAnimation). This CL
disables DiksplayList properties while I'm working on a fix and some
more thorough tests for old animations-vs-DL properties in general.

Change-Id: I8f6893138f939171491c2ec3c889214ee55d17b7
2012-03-29 09:42:34 -07:00
satok
6183cd64a9 Take sentence-level spell checking APIs public
Bug: 6136149

Change-Id: I772164d9c67e95876c228efcce2356a81a06be4f
2012-03-29 18:16:32 +09:00
Romain Guy
244ada1d35 Refactor GLES20Canvas/HardwareRenderer JNI layers
GLES20Canvas defined several JNI functions used only by HardwareRenderer.
Now that we have a JNI layer dedicated to HardwareRenderer we should
host the renderer related methods there.

Change-Id: I0bcb4ad0bcc1c4a37290df10c1685f2cfe5504ca
2012-03-28 16:41:26 -07:00
Joe Fernandez
e1302edd40 docs: Accessibility Dev Guide (subsumes Accessibility Best Practices)
Change-Id: Id7e3f647042d2afd390abe851be1c3b561af33ca
2012-03-28 00:57:06 -07:00
Fabrice Di Meglio
7e0a372978 Improve FocusFinder for RTL support
- fix some issues introduced in the previous CL

Change-Id: Ib679e9f66b029506c7e07e44b8fef176ad262585
2012-03-27 19:04:38 -07:00
Chet Haase
b85967b9af Re-enabling DisplayList properties
Several issues came up after DisplayList properties were enabled,
so they were disabled pending fixes. Those issues have been fixed, so
DisplayList properties are once again being enabled by default. This
CL both re-enables these properties (in View.java and DisplayListRenderer.h)
and fixes the various issues that enabling them caused the first time around.

Related issues (all currently marked as Fixed, though that was simply because
DL properties were disabled - this CL provides the real fixes now that
DL properties are enabled by default):
Issue #6198276 Text input broken
Issue #6198472 Native crash at pc 00076428 in many different apps in JRM80
Issue #6204173 Date/time picker isn't rendering all parts of UI
Issue #6203941 All Apps overscroll effect is rendered weirdly/has flickering
Issue #6200058 CAB rendering issue - not drawing items?
Issue #6198578 Front camera shows black screen after taking picture.
Issue #6232010 Layers not recreated when children change (DisplayList properties)

Change-Id: I8b5f9ec342208ecb20d3e6a60d26cf7c6112ec8b
2012-03-27 08:17:54 -07:00
Romain Guy
1fc18056eb Merge "Fix constants to be unique" 2012-03-26 17:15:57 -07:00