Commit Graph

69102 Commits

Author SHA1 Message Date
TreeHugger Robot
eef5d285f9 Merge "Account for content insets in source rect hint for transition into PiP" into oc-dev 2017-04-18 01:33:28 +00:00
TreeHugger Robot
eb9fb8e0d0 Merge "A new power button mode to hide the IME when shown" into oc-dev 2017-04-18 01:13:04 +00:00
TreeHugger Robot
6e8f116647 Merge "Finish impl of job queue: handle URI permissions." into oc-dev 2017-04-18 01:07:18 +00:00
TreeHugger Robot
950fa06a29 Merge "More small fixes/adjustments to job scheduler." into oc-dev 2017-04-18 00:47:09 +00:00
TreeHugger Robot
89e8b7b58e Merge "AOD: Implement redacted notificatinos" into oc-dev 2017-04-18 00:31:59 +00:00
TreeHugger Robot
c2627353c4 Merge "Tightening up rotation behavior for PIP (3/3)" into oc-dev 2017-04-17 23:50:27 +00:00
Yohei Yukawa
d6475a682d A new power button mode to hide the IME when shown
As discussed in Bug 33038203 on certain platforms there is a demand
that the power button can change the behavior depending on whether an
IME window is shown on the screen or not.  The behavior requested here
can be summarized into two parts:

  * Hide the IME window if it is shown [1]
  * Go to the home screen if no IME window is shown

This CL implements the above request by introducing a new config mode
for config_shortPressOnPowerBehavior.  Note the definition of when an
IME is shown is often tricky than people would expect.  The way this
CL is implemented is to propagate IME window state from
InputMethodManagerService (IMMS) to PhoneWindowManager via
WindowManagerService regarding when the back button on the NavBar for
phones/tablets should be shown as an IME dismiss key [2].

 [1]: Even with this CL the IME still is allowed to ignore the request
      to hide the software keyboard. Currently there is no official
      protocol to forcefully hide the software keyboard.  How to deal
      with such a situation is a long standing TODO task.
 [2]: Internally this is controlled by the following IMMS fields:
       - InputMethodManagerService#mImeWindowVis
       - InputMethodManagerService#mBackDisposition
      Note that those fields rely on self-report from the IME.  To be
      precise, the base implementation of InputMethodService is
      responsible for report back its internal state to IMMS when
      necessary.  The important point is that, although this could
      allow a malicious IME to confuse the system UI to some extent,
      supporting malicious IMEs is not clearly a goal of Android.
      Anyway, the definition of when an IME is shown is a kind of
      hot topic in several system services recently.  Hopefully we
      can come up with better definition and reliable mechanism in
      a future release.

Fixes: 33824860
Test: Manually verified as follows
       1. Change config_shortPressOnPowerBehavior to "5"
       2. Rebuilt the OS image and flash it to the device
       3. Make sure that the power button works like a home button
          if software keyboard is not shown.
       4. Open dialer and focus in to the text field shown on top
       5. Make sure that the AOSP keyboard is shown.
       6. Run 'adb shell dumpsys input_method' to observe the
          following line:
            mImeWindowVis=Active|Visible
       7. Tap the power button to make sure that the AOSP keyboard
          gets dismissed.
       8. Tap the power button again to make sure that it works
          as if a home button.
Test: Manually tested as follows
       1. Open dialer and focus in to the text field to show an IME
       2. Run 'adb shell dumpsys window policy' to make sure
            mDismissImeOnBackKeyPressed=true
       3. Tap the back button to dismiss the IME
       4. Run 'adb shell dumpsys window policy' to make sure
            mDismissImeOnBackKeyPressed=false
Change-Id: I20721547c73360a70b5fc5cbe06824d577d1768a
2017-04-17 23:22:56 +00:00
Dianne Hackborn
342e603710 Finish impl of job queue: handle URI permissions.
The job queue now handles URI permissions associated with
the Intent of each job.  Just (kind-of) like Service!

Also do the second pass of locking in job scheduler, getting
rid of all the async dispatching on a handler, and just executing
calls right in line with simple locking.  This probably fixes
a few other race issues, and allows us to make sure that we
always finish a job correctly when dequeuing the last work (we
will always atomically dequeue and finish, so no new work can
slip in between).

And fix a little debug output in IntentFilter.

Test: ran CtsJobSchedulerTestCases, added new test for URI perms.

Change-Id: I52f700ef0cd5be3ff70050f9c0f5fe3e8a5ccac1
2017-04-17 16:14:58 -07:00
Winson Chung
8802eac3d8 Account for content insets in source rect hint for transition into PiP
- As a part of transitioning into PiP, we remove the content insets, and
  as a result, we also need to adjust the source hint rect for the change
  in insets as well.

Bug: 37418994
Test: Enter PiP from YT, ensure no jump at the end

Change-Id: I74219b05c91d3c8b8466dd8fff4d6dd692f08725
2017-04-17 16:11:28 -07:00
Adrian Roos
1a1ecfcf5a AOD: Implement redacted notificatinos
Test: Turn on "show sensitive notifications on lockscreen", receive notification, observe AOD
Bug: 36610748
Change-Id: I981ef4cea7cefc76dcd55ebad9d05c758927dabb
2017-04-17 15:41:09 -07:00
Dianne Hackborn
fd8807accf More small fixes/adjustments to job scheduler.
- JobServiceEngine now takes a concrete Service instead of
generic Context in its constructor, since it really must be
associated with a real Service.

- Expand documentation of how dequeueWork() operates.

- Fix some job scheduler implementation to hopefully actually
match the docs: transfer remaining executing work to the new
job, and actually correctly transfer state from old and new
jobs if we are rescheduling due to a true return from onStopJob().

Test: bit CtsJobSchedulerTestCases:*
Change-Id: Ia66797049883eefb566264f930070afb69d469b1
2017-04-17 15:31:15 -07:00
Jeff Sharkey
200d72d933 Merge "Storage API polishing." into oc-dev 2017-04-17 22:26:44 +00:00
Winson Chung
ef4dc81d50 Tightening up rotation behavior for PIP (3/3)
- Fixing up edge case when SysUI resizing conflicts with updating the
  display rotation bounds.  When an interaction causes both a display
  rotation and a resize from SystemUI, we should defer the resize animation
  until the rotation has been propagated to SystemUI, otherwise the bounds
  used will be incorrect.

Bug: 36879891
Test: android.server.cts.ActivityManagerPinnedStackTests
Change-Id: Ife1b7ab0c2f1f11f33cbc9614778ff49a28c79f6
2017-04-17 14:49:31 -07:00
TreeHugger Robot
1ed2771450 Merge "Add user to channel/group modification callbacks." into oc-dev 2017-04-17 21:26:54 +00:00
TreeHugger Robot
c025ea892e Merge "OEM single-build/multi-SKU via dynamic RRO support" into oc-dev 2017-04-17 21:02:48 +00:00
Makoto Onuki
5838563e93 Merge "Enhance PinItemRequest javadoc" into oc-dev 2017-04-17 20:50:44 +00:00
TreeHugger Robot
3440e92009 Merge "Allow to finish session when all views are gone" into oc-dev 2017-04-17 20:45:05 +00:00
TreeHugger Robot
c3fa6ab2ac Merge "getApplicationInfo() should throw NameNotFoundException" into oc-dev 2017-04-17 20:36:00 +00:00
TreeHugger Robot
ff4e132cff Merge "Enhance Chronometer to better support Swedish countdowns." into oc-dev 2017-04-17 20:15:22 +00:00
TreeHugger Robot
3b41407f19 Merge "Camera: Override enableZsl based on SDK version" into oc-dev 2017-04-17 19:49:12 +00:00
TreeHugger Robot
5b06dbd12b Merge "Make NETWORK_RECOMMENDATIONS_ENABLED hidden." into oc-dev 2017-04-17 19:03:03 +00:00
TreeHugger Robot
d8d7a283bd Merge changes I22b55b73,Id050f2f5 into oc-dev
* changes:
  Only foreground service notifications can be colorized
  Fixed a regression where the scrim would be black
2017-04-17 18:51:07 +00:00
Jeff Sharkey
789a8fc792 Storage API polishing.
Based on API council feedback, switch to using real UUID objects
instead of Strings.  Since UUID is a general-purpose utility class
that will be passed around quite a bit, add it to Parcel and Bundle.

Define well-known namespaced UUID values for "default" and "primary
physical" storage devices, which will let us annotate a bunch of
things with @NonNull.

Define new extras for MANAGE_STORAGE intent that apps can use to
signal where and how much space they'd like the user to free up.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest
Bug: 37325923, 35812899, 35806020
Change-Id: I8421b126d680f69141a361c1e77223fe2bf4a325
2017-04-17 12:19:50 -06:00
Andrii Kulian
8f4bd67929 Merge "Temporary remove resource-display caching" into oc-dev 2017-04-17 17:00:06 +00:00
Andrii Kulian
cff2f814a8 Temporary remove resource-display caching
An instance of ResourceKey may correspond to different instances
of Resources at different points in time. This can lead to old
instances of Display returned from cache even if resources have
changed.
We need to ensure 1:1 correspondence between Resources and
ResourceKey before using this kind of cache. Disabling it for now
to fix CTS.

Change-Id: Ib53550c4f2d969c06a570ab6051529269b04b38d
Fixes: 37328072
Fixes: 37305567
Bug: 33430498
Test: android.server.cts.ActivityManagerAppConfigurationTests
Test: android.app.cts.DisplayTest#testRotation
2017-04-17 16:56:55 +00:00
Aurimas Liutikas
ba590a694b Enhance Chronometer to better support Swedish countdowns.
Adds a method isTheFinalCountDown that allows to correctly
determine whether it is the final countdown.

Test: None
Change-Id: I786ae3455479bac25ccf25efba1c3dce18185117
2017-04-17 09:27:09 -07:00
TreeHugger Robot
ed8f49efdc Merge "Also use the notification's sound for the misc channel" into oc-dev 2017-04-17 16:23:55 +00:00
TreeHugger Robot
bbcf5fba1c Merge "Remove @removed method" into oc-dev 2017-04-17 15:01:54 +00:00
Julia Reynolds
b9e712ebde Also use the notification's sound for the misc channel
Even if it's nonexistent.

Test: runtest systemui-notification
Change-Id: I1167fdf10b776460de696657dd49ab6f2be85753
Fixes: 37414045
2017-04-17 14:33:30 +00:00
TreeHugger Robot
676590d060 Merge "expose the instant app installer component" into oc-dev 2017-04-17 14:17:27 +00:00
Todd Lee
ea2f3be7aa OEM single-build/multi-SKU via dynamic RRO support
The purpose here is to provide support for selectively
enabling Runtime Resource Overlays (RROs) (specifically
those pertaining to a specific SKU, within a OEM's "single
build" covering multiple SKUs) at boot based on the value
of a pre-defined system property.

This mechanism is designed to be compatible with other,
recent changes to Runtime Resource Overlays - specifically:

- has no effect on 'isStatic'. Resource overlays must be
  attributed as static in order to qualify for loading into
  the system_server. The 'requiredSystemPropertyName/
  requiredSystemPropertyValue' mechanism operates
  independent of this and can be used on both static and
  non static overlays. The effect of specifying a conditional
  property on any overlay is that it will ONLY be enabled
  in the event that the system reflects both the property
  and the specified value (Note that in the ABSENCE of a
  conditional property, overlays are assumed to be enabled).

- has no effect on OverlayManagerService (OMS) API. The
  OMS provides the system with an interface through which
  overlays can be enabled/disabled and even rearranged at
  runtime. This provides the basis of support for various
  user-level features (e.g. dynamic theme selection).
  The 'requiredSystemPropertyName/requiredSystemPropertyValue'
  mechanism operates independent of this -
  with enablement being completely coupled to the available
  system properties on the device and NOT subject to change
  at runtime.

Note: as part of this change, original overlay tests have been
updated (fixed) and expanded to include tests to cover the
conditional property implementation.

Issue: http://b/35100249
Test: frameworks/base/core/tests/overlaytests/testrunner.py

Change-Id: I1990ce21a27a385db1e2f53294b69dd03988351e
(cherry picked from commit d5566c6c47)
2017-04-17 14:12:00 +00:00
Julia Reynolds
f27d6b2b82 Add user to channel/group modification callbacks.
Because listeners can see notifications on managed profiles.

Test: runtest systemui-notification and testing with a sample app
(reading and updating channels and getting change
callbacks on a managed profile)
Change-Id: I5d7af3c417e3a3d18f992cc9ad01fbd7959de398
Fixes: 36783632
2017-04-17 08:44:35 -04:00
Philip P. Moltmann
494c3f5da2 Allow to finish session when all views are gone
An service can option to finish the session once all views that it
declared as important. Views that are important are all autofillable
views of any partition and the saveable fields of the last partition.

Test: CtsAutoFillServiceTestCases
Fixes: 35708237
Change-Id: I0ccade8ebb427e5d8928697ef0007c75d3f83df0
2017-04-16 21:36:25 -07:00
TreeHugger Robot
e587591c5a Merge "Remove ScoredNetwork.BADGING constants." into oc-dev 2017-04-15 09:04:35 +00:00
Jorim Jaggi
6acf7a7b45 Merge "Wallpaper color extraction API stub" into oc-dev 2017-04-15 04:52:24 +00:00
TreeHugger Robot
0d88904744 Merge "API for notification listener for Companioon apps" into oc-dev 2017-04-15 04:15:38 +00:00
Svetoslav Ganov
41200eac71 Merge "Add support for multiple fill contexts" into oc-dev 2017-04-15 03:29:13 +00:00
TreeHugger Robot
d98f26e4f3 Merge changes from topics 'network_specifier', 'networkspecifier' into oc-dev
* changes:
  [CM] Unhide the NetworkSpecifier as object API
  Make the NetworkSpecifier a class instead of a string.
  Add test coverage for NetworkSpecifiers.
2017-04-15 02:16:14 +00:00
Eugene Susla
cf00adebec API for notification listener for Companioon apps
Test: 1. Trigger the confitrmation dialog.
Ensure it looks exactly like the one from settings.
2. Call an API without associating the appa first
Ensure exception is thrown with a message mentioning the need to associate 1st
Change-Id: I94d4116e1988db869ed445ae3fd018c50590e3f4
2017-04-14 19:01:53 -07:00
TreeHugger Robot
e61d56fb70 Merge "Support flagNoPersonalizedLearning in layout XML" into oc-dev 2017-04-15 01:44:37 +00:00
TreeHugger Robot
7859022e8e Merge "BLE scan API using PendingIntent" into oc-dev 2017-04-15 01:34:08 +00:00
Lucas Dupin
c40608c041 Wallpaper color extraction API stub
Now it's possible to listen to changes on wallpaper colors by
registering a listener on WallpaperManager. It's also possible
to get the current wallpaper text color hints.

Bug: 36856508
Test: compilation
Change-Id: I5102cb7be9a4af60b85fc8913154a79dfe5c21a0
2017-04-14 18:33:08 -07:00
Dianne Hackborn
aaeb512331 Merge "Introduce a new JobServiceEngine class." into oc-dev 2017-04-15 00:55:55 +00:00
TreeHugger Robot
a05f1fdd93 Merge "Remove autofillMode attribute" into oc-dev 2017-04-15 00:50:51 +00:00
Stephen Chen
d831be95fb Remove ScoredNetwork.BADGING constants.
Bug: 35323372
Bug: 35114358
Test: make,  runtest --path
frameworks/base/core/tests/coretests/src/android/net/ScoredNetworkTest.java

Change-Id: I9640e374abe428235d94e0407d9d21f390550d2f
2017-04-15 00:40:58 +00:00
Joe LaPenna
509352d475 Make NETWORK_RECOMMENDATIONS_ENABLED hidden.
This value is necessary to easily look up the availability of a
recommendation (nee, scoring) provider; however it is only used by
bundled apps to monitor its availability, so hide the setting itself.                               


Test: make update-api; make; flashall
Bug: 34715823

Change-Id: Idf4591fd03d90207ef525f584793db65a1f6597c
2017-04-15 00:39:33 +00:00
Svet Ganov
013efe173e Add support for multiple fill contexts
When saving data filled by the user the platform provides to
an autofill provider the state of the UI allowing the provider
to interpret this state and store relevant information.

A limitation of the current design is that the fill provider
needs to interpret the screen content twice, once handling a
fill request and once handling a save request. To address this
we are introducing a id for each fill request allowing the
autofill provider to associate arbitrary state with each fill
request and store it in the client data bundle later passed
to save.

Another limitation of the current design is that if the screen
changes dynamically while the user interacts with the app the
UI state passed on save represents a static snapshot, therefore
it is not possible to the autofill provider to determine the
context in which the data in the UI was filled. We could
keep the views and have deltas for views being removed/added
/moved/changed but this is not enough as the fill provider
needs to know not only what changed but what changed for every
fill request and in one session there could be multiple fill
requests. To address this we provide a list of fill contexts
on save each of which has the id of the corresponding fill
request. This allows the fill provider to know the exact context
in which the data was popuplated and also use its custom client
state for this fill request if desired.

This change deprecates the old APIs and the new ones delegate
to the old ones. Once the clients migrate to the new APIs we
will remove the old ones.

Test: all autofill CTS tests pass

Change-Id: Idcebcc671aa3c078a305d8c358e225274fccc588
2017-04-14 17:37:31 -07:00
Chien-Yu Chen
3d2b5fe3e0 Camera: Override enableZsl based on SDK version
Override enableZsl based on app target SDK version so that for apps
targeting N and older, enableZsl is false for all template. For
apps targeting O and newer, enableZsl is false for all templates
except STILL_CAPTURE.

Test: CTS
Bug: 34983527
Change-Id: I2057e2351e81c269d322dffc199c58481ac3e78f
2017-04-14 17:35:43 -07:00
Sudheer Shanka
2359f016e2 Merge "Add new api Activity.getStartInitiatedTime." into oc-dev 2017-04-15 00:09:32 +00:00
TreeHugger Robot
baf1d7036e Merge "MASTER_CLEAR action should not be public" into oc-dev 2017-04-14 23:50:26 +00:00