Commit Graph

7604 Commits

Author SHA1 Message Date
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
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
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
Prashant Malani
487f0d3d15 Merge "Add rotary encoder input source" into cw-e-dev 2015-12-08 01:27:18 +00:00
Michael Wright
4d9e6190b1 Merge "Add support for locking the screen when the lid is closed"
am: 9dc3c36c9c

* commit '9dc3c36c9cd796d90b65543567495d910d266e4c':
  Add support for locking the screen when the lid is closed
2015-12-07 23:19:53 +00:00
Chet Haase
f1b40f65b0 Merge "Fix requestLayout() optimizations" 2015-12-07 21:29:00 +00:00
Chet Haase
016f445757 Fix requestLayout() optimizations
A bug in recent layout optimizations was causing the framework to avoid
laying out containers with WRAP_CONTENT in one axis or the other.
This fix updates the logic in the code that finds dependent layout axes
to correctly account for this case.

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

Change-Id: Ie5f678beef5d8c4ba25291ffdcd59797d4697acc
2015-12-07 13:17:44 -08:00
Yohei Yukawa
3a346cfe8e Merge "Add subtypeId for SpellCheckerSubtype." 2015-12-07 20:58:02 +00:00
Yohei Yukawa
0894319162 Add subtypeId for SpellCheckerSubtype.
What this CL actually does is just copying the existing concept
"subtypeId" from InputMethodSubtype to SpellCheckerSubtype.

To recap, the underlying problem is that the system has stored only the
return value of SpellCheckerSubtype#hashCode() to track the set of
enabled subtypes, and SpellCheckerSubtype#hashCode() has been
implemented as Arrays.hashCode(new Object[] {locale, extraValue}), which
is problematic because:
  - Spell checker developers cannot change "locale" and/or 'extraValue'
    if they want to keep enabled subtypes enabled.
  - Android Framework developers cannot change the hash function even
    when new fields are added if they want to keep enabled subtypes
    enabled.
InputMethodSubtype has had the same issue, and what we did was
introducing a concept "subtypeId", which allows IME developers to
specify the return value of #hashCode().

For instance, suppose that a subtype X has already been used in
production with the following attributes:
  - locale: "tl_PH"
  - extraValues: "key1=value1,key2=value2"

With "subtypeId", you can change the attributes of subtype X without
losing the enabled state of subtype X on devices as follows.
  - locale: "fil_PH"
  - extraValues: "key1=value1,key2=value2,key3=value3"
  - subtypeId: Arrays.hashCode(new Object[] {
            "tl_PH", "key1=value1,key2=value2"})

This CL also deprecates existing public constructor of
SpellCheckerSubtype, which was probably published as a public API by
mistake.  Note that the constructor of SpellCheckerInfo class is @hide.
Also there is no public API that receives SpellCheckerSubtype object
instantiated by developers with custom data.  Making developers to be
able to instantiate SpellCheckerSubtype does not make sense right now.

Bug: 11736916
Bug: 22858221
Change-Id: I98f05c1e9421c47a93769bc4a6fe11b678bc2509
2015-12-04 16:16:47 -08:00
Robert Carr
12701f64d9 Fix build by making docs match params.
Change-Id: Id5bb5161514be372b709ecbb5d56e86554d3ec64
2015-12-04 15:18:40 -08:00
Yohei Yukawa
eae60ba5a4 Rewrite a fake language code "tl" in SpellChecker.
With following CLs, we already have a special rewrite rule of "tl" to
"fil" for IMEs that are targeting older versions of Android earlier than
Lollipop that did not support three letter language codes and used
"tl" (Tagalog) as the language string for "fil" (Filipino).
  - 92280cd309 [1]
  - ed65bc0c62 [2]

  [1]: I94f203bddceb9c87710cb187cc3cc0ee6d9092a5
  [2]: Ica9cd2baac002c406f92331aadd7725d7424046a

With this CL, we have the same rewrite rule for spell checker services.

Bug: 20696126
Change-Id: I0af0f520a15337e33973391c9965364e3ae1ee4c
2015-12-04 14:43:17 -08:00
Yohei Yukawa
658c29e86e retry: Add @hide SpellCheckerSubtype#getLocaleObject().
This is the 2nd try of I39dc0c310158ad23ba6c987efce07deaf30ce693.

This is a mechanical refactoring with no behavior change.

With this CL, InputMethodSubtype and SpellCheckerSubtype have the same
getLocaleObject() hidden API, which makes it easy to share the logic in
subsequent CLs.

No behavior change is intended.

Bug: 11736916
Bug: 20696126
Bug: 22858221
Change-Id: I51be014c752b736a808e2b0d56e664941a218a2f
2015-12-04 14:43:01 -08:00
Yohei Yukawa
8687b42463 Merge "Revert "Add @hide SpellCheckerSubtype#getLocaleObject()."" 2015-12-04 22:30:45 +00:00
Yohei Yukawa
80a918c3bd Revert "Add @hide SpellCheckerSubtype#getLocaleObject()."
This reverts commit e3c761c87e.

Previous CL unintentionaly contained behavior change.

Change-Id: I1e350f224df815e991d9f42ac4145ecfc5c1c8b0
2015-12-04 22:26:41 +00:00
Yohei Yukawa
ab004d5ad8 Merge "Add @hide SpellCheckerSubtype#getLocaleObject()." 2015-12-04 22:17:32 +00:00
Yohei Yukawa
e3c761c87e Add @hide SpellCheckerSubtype#getLocaleObject().
This is a mechanical refactoring with no behavior change.

With this CL, InputMethodSubtype and SpellCheckerSubtype have the same
getLocaleObject() hidden API, which makes it easy to share the logic in
subsequent CLs.

Bug: 11736916
Bug: 20696126
Bug: 22858221
Change-Id: I39dc0c310158ad23ba6c987efce07deaf30ce693
2015-12-04 22:07:39 +00:00
Robert Carr
b948014e3e Restore exception behavior of getLocationInWindow.
Restore exception throwing behavior on invalid arguments
for getLocationInWindow. This is tested by CTS.
Tweak some variable names to make the exception string readable.

Change-Id: I069d63b354d90ce74d156362b223765a5c2da2f0
2015-12-04 12:48:55 -08:00
Edward Savage-Jones
7def60daa0 Add support for locking the screen when the lid is closed
This commit adds configurable support for lockscreen
behaviour when the user has a device cover/lid.  This
is intended for lids with a viewing window so that the
user can see the time and interact with apps via the
window.

Change-Id: Id71883f66d1a180c4732912b3b59cabf9f4d7b6e
2015-12-04 18:26:31 +01:00
Jun Mukai
e56a3449d8 Merge "Introduce accessibility large pointer icons." 2015-12-04 01:53:16 +00:00
Yohei Yukawa
b4ea6ddc03 Merge "Introduce EditorInfo#locales." 2015-12-04 01:21:02 +00:00
Yohei Yukawa
8d6eeb01df Introduce EditorInfo#locales.
The primary goal of this CL is to enable application developers to
provide more context-based language (locale) information for IME
developers so that users can be benefited by more natural text input
experience.

As of API Level 23, there are several APIs that allow IMEs to retrieve
locale/country related information.

  - Locale#getDefault()
  - Configuration#locale
  - LocaleSpan#getLocale()
  - SubscriptionInfo#getCountryIso()

However, only LocaleSpan#getLocale() can be used to pass application
specific languge (locale) context from applications to IMEs.  Also
LocaleSpan is not designed to be used per input-context.  We want to
have something in EditorInfo and LocaleList would be the right thing.

Although default implementation of TextView#onCreateInputConnection()
starts filling EditorInfo#localeList with TextView#getTextLocales() by
this CL, application developers are encouraged to provide its own
LocaleList when they are confident that the user want to use a
certain (set) of language(s).

For instance, a chat application may be able to guess what language will
be used in the conversation before the user start typing.  At least it
should be able to remember the last used language for each conversation.

Another instance would be "From" and "To" EditText fields in a
translation app.  Those fields should have different LocaleList based on
the languages that the user want to translate from and to.

Bug: 22859862
Change-Id: I77db5b99a7cf745d800db75baf135bb60ad04820
2015-12-03 16:10:37 -08:00
Jorim Jaggi
4fa7892f35 Add flag so apps always draw status bar background
So we don't have to implement crazy magic when one app requests
drawing the status bar by itself, and the other doesn't in split
mode.

Bug: 24365214
Change-Id: I1f6a0efd0865b784402055e008da2f31e626f163
2015-12-03 15:23:27 -08:00
Alan Viverette
9643e73951 Merge "Ensure only one context menu is shown at a time" 2015-12-03 21:27:07 +00:00
Wale Ogunwale
2998eef694 Set proper stack in WM when activity is moved to stack in AM
When an activity is moved to a stack using the
ActivityStack#moveActivityToStack API a new task is created to
hold the activity in the stack. However, when the new task is
created in the window manager side it uses the stack id of the
previous stack the activity was in. We now pass the stack to use
from activity manager to window manager.

Bug: 25987309
Bug: 25961636
Change-Id: Iecc71f6d9b3e70a8d88e134b42f7532ba5327bad
2015-12-03 10:20:16 -08:00
Jason Monk
8f7f3184d5 Allow QS tiles to open dialogs
Add a TYPE_QS_DIALOG window type, that is in the same layer as
apps and dialogs and such.  It is guarded by having a token
that is granted by SysUI after a click has occured.  If the
app shows a dialog before listening finishes (QS closes) then
the token will stay granted until the tile is removed by the
user, otherwise the token will be removed immediately to avoid
later dialogs.

Also fix a couple tiny TileService issues:
 - Stop/Start listening reversed
 - Fix javadoc referencing wrong action

Change-Id: Iedcdd5fd9a2af2b33eb7f6f17bb0e6c997879876
2015-12-03 09:22:15 -05:00
Neil Fuller
568f4de11a Merge "Fix @code escapes" 2015-12-03 09:44:01 +00:00
John Reck
51aaf906f9 Nuke HardwareRenderer abstract base
Bug: 17303292

Change-Id: I4a272ea4f695f4f9993e8be640fdd8530b691be0
2015-12-02 15:46:11 -08:00
Neil Fuller
71fbb81b14 Fix @code escapes
The body of {@code} must not be HTML escaped. This is one of
several changes that fix the source in conjunction with a
doclava fix.

Bug: 25757239
Change-Id: Ib38a0fa2dd2a3d68e467f78a812071e763d7e881
2015-12-02 14:24:11 +00:00
Selim Cinek
eaa29ca6ff Migrated the systemUI based notification header
Previously the notification header had a seperate implementation
in SystemUI from which the platform implementation was derived.
Now that everything is in the framework, we’re migrating the
implementation for notification groups.ß

Change-Id: Ia61a75bd6c85e1805d4364a9e7e4587a020c1271
2015-11-30 17:46:21 -08:00
Selim Cinek
aef6c76f76 Migrated the onTouchListener of the header to its view
In order to ensure reusability and separate inflation,
the expand touch listener is now moved to its view.

Change-Id: I363fc4ae2c68833dc9f1258398ec9ad3bf44dc7f
2015-11-30 17:45:15 -08:00
Selim Cinek
53e64a438f Adapted the big picture template
Change-Id: Ia66c5f12a8688b2f0c6ea51fb8dbdefc39f62f8f
2015-11-30 17:45:15 -08:00
Selim Cinek
90c8f47a03 Adapted the layout for when the header would overflow
Now first the App name shrinks up to a minumum and then
the subtext shrinks. This way the expand button is always
visible.

Change-Id: Ibda8e9efbac7119cc31ce4c129be33a7a192f974
2015-11-30 17:45:15 -08:00
Filip Gruszczynski
9a3f84ced7 Merge "Remove dock divider surface when it's not visible." 2015-11-30 23:37:02 +00:00
Filip Gruszczynski
64cdc1458b Remove dock divider surface when it's not visible.
We achieve the removal by notifying System UI about the visibility of
the dock divider. This way System UI can change visibility of the root
view, which in turn will cause the WMS to destroy or create the surface
as necessary.

Bug: 25844096
Bug: 25683717

Change-Id: Idbc33368db697a059af49106dfadb80c3d7d06c1
2015-11-30 15:21:48 -08:00
Jun Mukai
19a5601979 Introduce accessibility large pointer icons.
This patch does the following things:
- add new graphic assets of large icons for accessibility needs
  (imported from ChromeOS data)
- add the logic to choose the set of normal icons or accessibility icons
- make InputManagerService to observe the settings change, so that
  it can reload the new resources

This patch misses non-1x graphic though, because ChromeOS doesn't
have such data.

Bug: 25778857
Change-Id: Ia5f95d47f50b3f6eea555c3af8069bc6bae0b400
2015-11-30 14:42:53 -08:00
Alan Viverette
8b40491bc2 Merge "Avoid concurrent modification for pending partial layout views" 2015-11-30 14:59:23 +00:00
Yohei Yukawa
0466206a6a Merge "Tell the reason why IMM called startInput()." 2015-11-25 20:36:13 +00:00