Commit Graph

7638 Commits

Author SHA1 Message Date
Jorim Jaggi
5098159ae3 Dim stack while dismissing
When dismissing the docked or fullscreen stack, a dim layer is
introduced for a nicer visual effect.

Change-Id: I9f12e331e978208aa9fd9e9883b3c8a36d4da3a0
2016-01-05 13:50:32 +01:00
Jorim Jaggi
a6c934e2a3 Use different asset when docked stack exists
- Add the ability to add a listener when the existence of the
docked stack changes.
- Register SystemUI as such a listener and switch the recents
button asset when docked stack exists.

Change-Id: I05350878c5adc7ad9f0399f0c42d8d1615d44d02
2016-01-05 13:49:41 +01:00
Wale Ogunwale
6cae765b67 Added support for android.R.attr#alwaysFocusable
Allows an activity to always be focusable regardless of if it is in a
stack whose activities are normally not focusable. For example, activities
in pinned stack aren't focusable. This flag allows them to be focusable.

Also, changed ActivityInfo.#{resizeable, supportsPip} to use flags.

Bug: 26273032
Bug: 26034613
Change-Id: I8c63e6d3256757e2e6931e08b8a65269f5169d35
2016-01-04 22:23:56 +00:00
Mathew Inwood
4985c5c782 Experimental: verify cached constructors before use.
Caching constructors can cause problems for dynamically loaded code if
the same class name appears in more than on classloader. Before using
cached constructors, verifty that they come from a valid classloader, i.e.
one that appears in the classloader chain of the current contexts
classloader. Remove ones that do not from the map to allow the associated
classes to be unloaded in case they're no longer in use.

Bug: 21690610
Change-Id: I84f2894cd03a5dc0c33aed9cd710e4a1f6d9515f
2015-12-31 12:32:40 +00:00
Vladislav Kaznacheev
b23a757aa2 Bind DropPermissions life cycle to Activity
Move requestDropPermissions from DragEvent to Activity.
Permissions will be granted using UriPermissionOwner
 associated with this activity and revoked when the activity
 is destroyed (if DropPermissions.release is not called before that).

Change-Id: Ic8f8fc3f56f57e83b9bc34ae8c96d82c2c9c4e1d
2015-12-22 14:40:11 -08:00
Robert Carr
cd9a18c7f8 Set SCALING_MODE_NO_SCALE_CROP for SurfaceView.
When resizing SurfaceView along with a main application window,
we want to be able to update the crop of the SurfaceView without waiting
for a buffer at a new size. If we fail to do so the SurfaceView may
extend beyond the edge of the host surface.

Bug: 26010823
Change-Id: I3bb52f82c02bb729a2494a3a43b9654d9aae9532
2015-12-21 14:57:52 -08:00
Selim Cinek
a69f2a6449 Fixed a measuring bug with the notification children container
The notification children didn't respect the given dimensions
when measuring and was simply measuring itself as high as desired.
This lead to a bug where the parent could crash when a layer was
set on it.
We are now measuring the container at most with the height of
the given size and let children draw over our view bounds.
In oder to still allow touch in those regions we also
override the touch rect.
This also simplifies the rest of the touch handling.

Bug: 26159274
Change-Id: I728553a6386455e6632e2511be8a3e7cb447e89b
2015-12-19 15:46:34 -08:00
Jun Mukai
56cd51a704 Merge "Introduce pointer capture API." 2015-12-18 23:30:10 +00:00
Daniel Koulomzin
db3631f8c1 Merge "Making ViewRootImpl drop input events when the Activity is in ambient mode." into cw-e-dev am: cbef517d02 am: 898e330aae am: 94794af6be
am: 3f66df086a

* commit '3f66df086a210bc0dec7a0bd86081f6f79b3a712':
  Making ViewRootImpl drop input events when the Activity is in ambient mode.
2015-12-18 21:04:41 +00:00
Daniel Koulomzin
3f66df086a Merge "Making ViewRootImpl drop input events when the Activity is in ambient mode." into cw-e-dev am: cbef517d02 am: 898e330aae
am: 94794af6be

* commit '94794af6bee35c249857f0440c361d589b77aa5d':
  Making ViewRootImpl drop input events when the Activity is in ambient mode.
2015-12-18 12:15:10 -08:00
Wale Ogunwale
8216eb2221 Added PRIVATE_FLAG_LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME window flag
Allows us to differentiate between child windows that always want to be
laid-out in the parent frame regardless of multi-windowing mode
(PopupWindows) and those that don't (SurfaceViews).

Bug: 26255254
Change-Id: Icbc245a24f9a38698444196846ddb25016ef7e2a
2015-12-18 10:42:42 -08:00
Jun Mukai
347e5d498f Introduce pointer capture API.
This depends on I4189eb4d93f50c2865b7a325727be5ceebcc71f8 of
frameworks/native.

Bug: 5452473
Change-Id: Ie21e521f3e5c581f976dc0feb5d84bfa48b046cd
2015-12-18 10:22:43 -08:00
Daniel Koulomzin
087ae471c2 Making ViewRootImpl drop input events when the Activity is in ambient
mode.

WearableActivityController tells ViewRootImpl about ambient mode.

Bug: 25912259
Bug: 25973146
Bug: 25714113
Change-Id: Idcca2b254db3145039f50f2a7dfd38a224ec287e
2015-12-18 12:56:00 -05:00
Alan Viverette
ad217b68f8 Merge "Don't call public non-final getResources() from getAssets()" 2015-12-17 16:38:42 +00:00
Vladislav Kaznacheev
9149d2b117 Rename and simplify DropPermissionHolder
Rename DropPermissionHolder to DropPermissions and move
all server-side implementation details into a separate class.
Rename DragEvent.getDropPermissionHolder to
requestDropPermissions and make it take the permissions
implicitly.

Change-Id: Ia83f7cb8af07ce13ba9536d24b0f9d63331d8736
2015-12-16 17:10:36 -08:00
Alan Viverette
713a5cdb53 Don't call public non-final getResources() from getAssets()
Refactors to getResourcesInternal() and calls that from both methods.
Adds documentation on Context.getResources() and getAssets() that the
instances returned should be consistent with each other.

Bug: 26228895
Change-Id: I41b09f1e9a3a0315bcdf1c08a7b431a9a697bb6f
2015-12-16 15:46:32 -05:00
John Reck
bf4b31f7b2 resolve merge conflicts of 04ce46db64 to master.
Change-Id: I935bb47718f0e7d5fb48945dd8de6e28dac136e5
2015-12-16 11:07:53 -08:00
John Reck
04ce46db64 Merge "libhwui: make setSurface asynchronous"
am: 738a5d4f18

* commit '738a5d4f18e69c03700b77af0ea7e2a101da2c34':
  libhwui: make setSurface asynchronous
2015-12-16 18:44:57 +00:00
Jun Mukai
e4e75daa65 Exclude accessing settings from PointerIcon.
This code structure causes a crash as rerported, better to extract
access to the settings to InputManagerService, who actually cares
about it.

Bug: 26196092
Change-Id: I4e0dbcc24ccf5d11681738ca3576b64471aa8cc4
2015-12-15 16:40:50 -08:00
Wale Ogunwale
3e5f080528 Merge "Fixed bug with caption not showing for some apps that handle config changes" 2015-12-15 18:11:11 +00:00
Wale Ogunwale
eb6722c0bc Fixed bug with caption not showing for some apps that handle config changes
We currently decide when to show the decor caption onConfigurationChanged
However, if the app handles configuration changes or the threshold isn't
big enough for the configuration change to be reported to the app, we don't
display the caption in some cases when transitioning from fullscreen mode
to freeform mode.
We now also use the onMultiWindowModeChanged call to also determine if
the caption should be visible.

Change-Id: I237437f04ad90f904912ebac0253245f547b0e3e
2015-12-15 09:01:45 -08:00
Michael Wright
e5f4a9c112 Merge "Make KEYCODE_SPACE a confirm key." 2015-12-15 16:41:16 +00:00
Jun Mukai
81245161a0 Merge "Make public pointer icon API with custom icons." 2015-12-15 04:46:53 +00:00
Rob Carr
28ba383214 Merge "Move window replacement tracking to window state." 2015-12-15 04:05:19 +00:00
Jun Mukai
d4eaef7f4c Make public pointer icon API with custom icons.
BUG: 25778347, 23804184
Change-Id: If138b97c750c912e9848412c27b65004899961eb
2015-12-14 19:45:10 -08:00
Michael Wright
aa1a94daaa Make KEYCODE_SPACE a confirm key.
By default space should "click" the focused item. This behavior also
applies to GridView and ListView if the items are clickable, but will
continue the previous behavior of scrolling if it's just a list of
items you can't really interact with.

Change-Id: Ic3a0334614d1dc68ff98bc4b1fb1ae2f961f71af
2015-12-14 17:30:25 -05:00
Jun Mukai
7767322565 Merge "Allow specifying pointer shape from xml resource." 2015-12-14 21:34:28 +00:00
Jun Mukai
80fdc1bd36 Allow specifying pointer shape from xml resource.
Bug: 25777986
Change-Id: I8be5d2cb130299b0ea8f4f4d3dc582143f7ff553
2015-12-14 12:09:27 -08:00
Andreas Gampe
e37f2c6e11 Merge "Frameworks/base: Use Arrays.toString" 2015-12-14 20:05:27 +00:00
Andreas Gampe
e6748ce31f Frameworks/base: Use Arrays.toString
Fix a couple of cases where Arrays.toString should be used.

Bug: 19797138
Change-Id: I905fc79e63face9b26975320a92086c732bf6316
2015-12-14 12:04:26 -08:00
Robert Carr
a1eb439eee Move window replacement tracking to window state.
In preparation for supporting replacement of child windows
we make replacement per window rather than per app.

Bug: 26070641

Change-Id: Ifa332086599c125611e430219c9497bae7e2ce31
2015-12-14 10:49:56 -08:00
Yohei Yukawa
c18a05faf1 Merge "Rotate IMEs (subtypes) by Meta+Space." 2015-12-14 18:39:19 +00:00
Prashant Malani
04b4819fcf Remove hide annotation from AXIS_SCROLL
Bug: 22836852
Bug: 18707397
Change-Id: I77ec72cf577cb68782b9954f4d40845d723a7685
2015-12-10 15:09:45 -08:00
Yohei Yukawa
ac0ec1b020 Merge "Use BCP-47 LanguageTag in IME/Spell-Checker." 2015-12-10 17:45:18 +00:00
Thomas Buhot
0bcd0cb6b1 libhwui: make setSurface asynchronous
On the critical path of the cold launch of applications
the main thread of the started application tells the RenderThread
to create a surface. This process is synchronous and blocks
the main thread of the application until the creation
of the EGLContext is complete.
As a consequence the launch time of the application is delayed
by time spent allocating the EGL Context in the RenderThread.

With this optimization the launch time of any application
is improved (for example settings by 20 to 40 ms).

Change-Id: Ibf47aaa0abb8dedf7aa00693073db3785d9d6b08
Signed-off-by: Thomas Buhot <thomas.buhot@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
2015-12-10 14:51:58 +08:00
Filip Gruszczynski
ac7518854e Merge "Remaining APIs for freeform window caption." 2015-12-10 01:57:10 +00:00
Filip Gruszczynski
3dec081967 Remaining APIs for freeform window caption.
The APIs are:
* setting a listener for the area of the caption where we display
control buttons; this is intended for apps that overlay the caption on
their content, so they don't display the content in that area and clash
with the buttons;
* specifying the color pallete of controls in the caption; by default we
try to infer the best color from the theme (dark buttons for light theme
and vice versa), but in case we get it wrong, we allow the developer to
overwrite it;
* specifying the caption background during the resizing; by default we
try to infer a good color from the theme, but in case we do it wrong, we
allow the developer to overwrite this.

The CL also includes merging of layouts decor_caption_dark and
decor_caption_light into a single one. Not only it reduces code
duplication, but also is necessary for allowing adjustment of the
controls color pallete after the layout was created.

Bug: 25486369
Bug: 25818398

Change-Id: Ib87fe849b07df341893ec7873982bf7ab932f6d5
2015-12-09 13:46:30 -08:00
Yohei Yukawa
ae61f7118a Rotate IMEs (subtypes) by Meta+Space.
With this CL, PhoneWindowManager starts monitoring Meta+Space to trigger
input method rotation.

Note that InputMethodManagerService currently supports only one way
rotation.  Currently there is no difference in the behavior between
Meta+Space and Shift+Meta+Space.  Reverse rotation will be supported in
a subsequent CL.

Bug: 25753404
Change-Id: I4005692215edfcf8bed3e86b1e07000148f986f5
2015-12-09 13:00:10 -08:00
Chet Haase
709bf2a37c Merge "Revert "Add support for partial view layouts"" 2015-12-09 18:40:06 +00:00
Chet Haase
4610eeff9c Revert "Add support for partial view layouts"
This reverts commit c55d5072ac.

There were several bugs related to incorrect handling of various
layout issues (layout not being run on containers/views that needed
it), reverting to take another run at it outside of master.

Issue #25980198  requestLayout() sometimes doesn't result in measure/layout for view

Change-Id: Ic0e159cbcf6171652d8fd1bee9ae44a3977cea04
2015-12-08 16:45:23 -08:00
Selim Cinek
7b83639c34 Changed the appearance of the notification children
Some further tuning to the layout

Change-Id: Ifb3797e9982d718a30954adb9e1901eb2a1fa75d
2015-12-08 16:25:00 -08:00
Selim Cinek
7a7c63ab35 Fixed a small measuring but with the notification header
Change-Id: I64e3504516110f245624b037e534d208d57d8250
2015-12-08 16:25:00 -08:00
Selim Cinek
ea4bef7386 Removed duplicate content from group notification header
Previously the headers all had duplicate content, which is
now optimized to look visually more appealing.

Change-Id: I38ed8db1985fd8a9470888e1b7e1e6b0f2e23b19
2015-12-08 16:25:00 -08:00
Filip Gruszczynski
d427047d98 Merge "Remove Window.setDecorView API." 2015-12-09 00:13:42 +00:00
Filip Gruszczynski
9b81e406b0 Remove Window.setDecorView API.
We currently don't have a strong use case for this.

Change-Id: I106aaf1224d7934964d9b92628fd3cdd42507c46
2015-12-08 16:07:02 -08:00
Yohei Yukawa
868d19b93b Use BCP-47 LanguageTag in IME/Spell-Checker.
The primary goal of this CL is to make it clear that BCP-47 is the
expected format to annotate locale information for each
{InputMethod, SpellCkecker}Subtype.  In order to avoid possible
compatibility issues, this CL introduce a new "languageTag" attribute
instead of reusing existing "imeSubtypeMode" and "subtypeLocale"
attributes.

For IME developers, this CL changes nothing unless "languageTag"
attribute is specified.  To summarize:

  A: If only legacy locale-string is specified
     (existing IMEs/Spell-Checkers fall into this category):
    -> The system uses locale-string.

  B: If only LanguageTag is specified:
    -> The system uses LanguageTag.

  C: If both locale-string and languageTag are specified:
    -> The system uses LanguageTag.  Legacy locale-string is ignored.

For application developers, there should be some follow-ups CLs because
even with this CL most likely they would still have to take care of
previous versions of Android where:
  - Locale#forLanguageTag()              (N/A in API Level 20 and prior)
  - Locale#toLanguageTag()               (N/A in API Level 20 and prior)
  - InputMethodSubtype#getLocale()       (Deprecated in N)
  - SpellCheckerSubtype#getLocale()      (Deprecated in N)
  - InputMethodSubtype#getLanguageTag()  (N/A in M and prior)
  - SpellCheckerSubtype#getLanguageTag() (N/A in M and prior)
One idea would be is in the official support library to provide a utility
method that takes care of above tasks and just returns a Locale object.
If we had a utility method in the support library, probably not
returning a Locale object from #getLanguageTag() would make sense.

From performance point of view both existing legacy locale-string
attribute and new LanguageTag attribute are just String objects that
travel from XML manifest to system services to applications via IPCs.
Hence there are no performance implications except for having one more
String objects.

Bug: 22858221
Change-Id: I6db107ad2afc7709167f7c4e5d24bd589ac8bd70
2015-12-08 12:27:55 -08:00
Michael Wright
4407cbde63 Merge "Add support for locking the screen when the lid is closed" am: 9dc3c36c9c am: 4d9e6190b1
am: 37c8bcbcc9

* commit '37c8bcbcc9f5098a2a7fde91a3b112abd35a85ad':
  Add support for locking the screen when the lid is closed
2015-12-08 03:03:45 -08:00
Prashant Malani
3e5f615800 Merge "Add rotary encoder input source" into cw-e-dev am: 487f0d3d15 am: 6344cb8144 am: 3ebd5ceb90
am: 54909b8e6b

* commit '54909b8e6b45c913081df54496423bb35bd8955c':
  Add rotary encoder input source
2015-12-08 03:02:16 -08:00
Michael Wright
37c8bcbcc9 Merge "Add support for locking the screen when the lid is closed" am: 9dc3c36c9c
am: 4d9e6190b1

* commit '4d9e6190b186f1d2e1cd25defd0d6e12dd833b38':
  Add support for locking the screen when the lid is closed
2015-12-08 10:55:07 +00:00
Prashant Malani
54909b8e6b Merge "Add rotary encoder input source" into cw-e-dev am: 487f0d3d15 am: 6344cb8144
am: 3ebd5ceb90

* commit '3ebd5ceb90137572262efeda12cdce4b503ddded':
  Add rotary encoder input source
2015-12-08 01:43:27 +00:00