Commit Graph

12984 Commits

Author SHA1 Message Date
Feng Cao
ec496000ec Several improvements and bug fixes to the inline autofill flow
* Pipe the augmented autofill's inline actions through to the
  InlineSuggestionsResponse
* Do not send the inline action if the number of inline suggestions is
  zero
* Refactor autofill inline suggstion session so that all the calls to
  the IME has happens within the class
* Send an empty response to IME to hide the inline suggestion UI  when
  view exits and the previous response wasn't empty

Test: manual verification, atest InlineLoginActivityTest
Bug: 149522488
Bug: 150312201

Change-Id: I7a0dbf44e9fad6e7da857448c0f2b186e1681d17
2020-02-28 17:25:30 -08:00
Nicholas Ambur
626b24958f Merge "remove client token passing active VI service" into rvc-dev 2020-02-27 18:01:24 +00:00
Sudheer Shanka
442399b1c1 Merge "Include pending media as well when deleting mediastore entries." into rvc-dev 2020-02-27 17:49:53 +00:00
Taran Singh
73b1d16d28 Merge "Pipe windowToken for hideSoftInput" into rvc-dev 2020-02-27 07:14:04 +00:00
Tarandeep Singh
4fe5b654a1 Pipe windowToken for hideSoftInput
Pipe the windowToken of the window requesting hideSoftInput just like we
did it for showSoftInput [1].
This calls hideInsets on the correct display when control target is
different from IME target e.g. ActivityView.
Also hideInsets should be called on InsetsControlTarget instead which was
originally attempted in [2]

[1]: Ia49e23dd077d264a58d28a7b8acffde54b7db187
[2]: I7133e151a1037c42b275b97857936437a7a6725f

Bug: 149870112
Bug: 133381284
Test: Manually using steps mentioned in bug.

Change-Id: Ia596a392eb73ae46debd097151c8c9a7edd59833
2020-02-27 04:13:25 +00:00
TreeHugger Robot
13ecf63ba4 Merge "Add API constraints to ScheduledJobStateChanged atom" into rvc-dev 2020-02-27 02:57:01 +00:00
Jeffrey Huang
cb50e94e7a Merge "Move libstatssocket to shared." into rvc-dev 2020-02-27 01:00:01 +00:00
Taran Singh
05b07c2657 Merge "Remove IME surface when hidden" into rvc-dev 2020-02-27 00:53:09 +00:00
Jeffrey Huang
21f7e6a3f6 Move libstatssocket to shared.
This fixes the boot loop when zygote tries
to log to statsd during boot time.

Linking libstatssocket statically from two different places
causes translation errors resulting in multiple instances of the
same struct being created. This meant that the struct is no longer
shared across the same process for opening/closing of the socket.

Bug: 149889582
Test: Phone boots
Change-Id: Ibfa25c0fe7874ba08157a5ec43601c5cf8305723
2020-02-26 11:51:26 -08:00
Tarandeep Singh
94c9a8328e Remove IME surface when hidden
When IME is no longer shown, notify IMS to hide the window surface.
This reclaims the memory allocated to IME window surface.

Fix: 150163310
Test: atest CtsInputMethodTests
      Manually:
      1. Open any app that has editor  and run
         adb shell  dumpsys SurfaceFlinger | grep Total
      2. Note down total memory
      3. Tap on editor and IME shows. Note down memory
         using command in #1. It should go up by ~27MB
      4. Hide IME and note down memory again.
         It should revert to original value in #1.

Change-Id: I6c2a13dd40b22d3fd62b4763ba369992e5ff1138
2020-02-26 18:58:33 +00:00
Will Brockman
4f0f9d2d85 Start InstanceIDs at 1.
Protobufs make it easy to confuse default and unset values.

Test: atest NotificationManagerServiceTest
Fixes: 149760215
Change-Id: Ia27f33cb8331960369f86e75ac3cfa148dad887a
2020-02-25 18:57:32 +00:00
TreeHugger Robot
20ea7f5258 Merge "Introduce SoftInputShowHideHistory" into rvc-dev 2020-02-25 05:35:25 +00:00
Nicholas Ambur
1ec50c8f2f remove client token passing active VI service
Previous implementation relied on client to pass a token which the
service used to verify if it was the active service. This is seen to be
a security concern as there is no way to verify how the client obtained
the token. Instead, a check is done to confirm the caller's UID matches
the UID of the active service.

In the case of voice model enrollment, KeyphraseEnrollmentInfo class is
leveraged. A client is allowed to enroll if it is the active voice
interaction service or if it is a voice model enrollment application
bundled with the system image.

All previous manifest permision checks still apply.

Bug: 148159858
Test: gts-tradefed run gts-dev -m GtsAssistIntentTestCases -t \
com.google.android.assist.gts.KeyphraseModelManagerTest \
\#testShouldEnrollOnlyWhenActiveService

Merged-In: Ie2c4653d365770a9123a22bc69822518b4ccc568
Change-Id: Ie2c4653d365770a9123a22bc69822518b4ccc568
(cherry picked from commit c6f4118f9e)
2020-02-25 01:20:05 +00:00
Suprabh Shukla
1b5778d119 Add API constraints to ScheduledJobStateChanged atom
This helps us know if jobs with a particular constraint are being
starved or otherwise dysfunctional due to a bug.

Test: make statsd_testdrive &&
./out/host/linux-x86/bin/statsd_testdrive 8

Sample output:
    atom {
      scheduled_job_state_changed {
        attribution_node {
          uid: 10224
          tag: ""
        }
        job_name: "android.jobscheduler.cts.jobtestapp/.TestJobService"
        state: SCHEDULED
        stop_reason: STOP_REASON_CANCELLED
        standby_bucket: RESTRICTED
        job_id: 691
        has_charging_constraint: true
        has_battery_not_low_constraint: true
        has_storage_not_low_constraint: false
        has_timing_delay_constraint: false
        has_deadline_constraint: true
        has_idle_constraint: true
        has_connectivity_constraint: true
        has_content_trigger_constraint: false
      }

Bug: 138239687
Change-Id: I175e5a0f5cc2cb3be447ccb58142006946092e75
2020-02-24 19:09:46 +00:00
Dieter Hsu
0dbbb422e2 Retry TTS speaking for a11y shortcut warning dialog
TTS engine might fetch data over the network or prepare data when
binding tts service at first time after boot that may take a few
seconds. Because the dialog is shown only once and on-demand for
enableing accessibility shortcut, it's unable to speak successfully
unless others have bound tts ahead of time.

Bug: 139887992
Test: 1. adb shell settings delete secure accessibility_shortcut_dialog_shown
      2. manual reboot, long press both vol keys and tts speaks
Test: Add 2nd user and long press both vol keys and tts speaks
Test: atest AccessibilityShortcutControllerTest

Change-Id: I6290f0a64d1a51aa46f13e7d88a15a096ddb0fdc
Merged-In: I6290f0a64d1a51aa46f13e7d88a15a096ddb0fdc
2020-02-24 08:14:12 +00:00
lumark
d85e158db8 Introduce SoftInputShowHideHistory
Add SoftInputShowHideHistory class to monitor showSoftInput / hideSoftInput
histories, each entry data contains:
  - ClientState: IME focused client process pid / uid who
  shows / hides soft input
  - Current focused window
  - Target display ID
  - Reason: describes why show / hide input
  - Request show or hide input
  - Timestamp

Bug: 141738570
Test: manual by calling "adb shell dumpsys input_method"
Change-Id: I21ad1708d68eae59dcd3d414248193fb130dadc2
Merged-In: 10ecd64cdd
(cherry picked from commit 10ecd64cdd)
2020-02-24 07:55:29 +00:00
Sudheer Shanka
7d28b5bf81 Include pending media as well when deleting mediastore entries.
Bug: 146914674
Bug: 140565622
Bug: 137381621
Test: manual
Change-Id: I903a13deb467b45839a7d03b60754c8fc464456c
2020-02-24 05:50:33 +00:00
Richard Gaywood
2a04318b00 Merge "Add method to return merged stats to AIDL" 2020-02-21 15:21:30 +00:00
TreeHugger Robot
f748ca137e Merge changes from topic "revert-10338939-YCRBMILGZV"
* changes:
  Revert "[NS D03] Migrate the bad wifi avoidance policy"
  Revert "[NS D04] Implement a simple speed comparison between scores."
2020-02-21 08:51:09 +00:00
Andrii Kulian
f753ea6cd6 Do not verify display context in DecorContext constructor
Non-activity context can be passed to DecorContext, so an exception
can be thrown when Context#getDisplay() call does verification.
An example is that a free dialog uses Application context as its context.

Bug: 149928768
Test: manual: test crashed apps reported in bugs before/after this patch.
Change-Id: Ib302c23cb8e2e388e7468f37f1b63b83ef52ef0e
2020-02-21 07:29:11 +00:00
Chalard Jean
5845d54106 Revert "[NS D03] Migrate the bad wifi avoidance policy"
Revert submission 10338939

Reason for revert: The feature was punted out of R.
Reverted Changes:
I32c12702c:[NS D04] Implement a simple speed comparison betwe...
I688593cc0:[NS D03] Migrate the bad wifi avoidance policy

Change-Id: I640635a1ed94bed3b53466abe2a988caf0eca2b0
2020-02-21 06:47:35 +00:00
TreeHugger Robot
2cf1cf436f Merge "Remove exception from OverlayConfig zygote method" 2020-02-20 21:13:47 +00:00
Haining Chen
6c839dd1c6 Merge "Implementations of biometric contraints for weak and convenience tiers (1) 24 hours fallback (2) 4 hours idle timeout" 2020-02-20 21:05:24 +00:00
Antoan Angelov
3688af691b Merge "Enable ViewPager swiping for intent resolver." 2020-02-20 20:48:57 +00:00
Ryan Mitchell
857ce7ace1 Remove exception from OverlayConfig zygote method
The AssetManager constructor is marked UnsupportedAppUsage and the
recent changes to OverlayConfig caused an exception to be thrown when
the function is not called from the root process.

Previously a warning message would be logged indicating that no static
overlays would be loaded. Removing the uid check will restore the
previous behavior.

Also remove the system uid checks for initializeSystemInstance so PMS
service can also be constructed during testing.

Bug: 149806146
Test: invoke new AssetManager() from non-root thread
Change-Id: I55af2cddeba4df7a99c281c93e0181b9e2139139
2020-02-20 11:11:29 -08:00
Ryan Mitchell
290bc3ba36 Merge "Add test mapping for Overlayconfig" 2020-02-20 17:45:19 +00:00
Richard Gaywood
3ee7557fb5 Add method to return merged stats to AIDL
For procstats aggregated stats collection, we need to expose the
aggregated ProcessStats object back to the caller.

Change-Id: Ifb52f813d679e3e0a1e061f983d8b4f539d6d72a
Test: nothing yet
2020-02-20 16:09:20 +00:00
Ryan Mitchell
105c546159 Add test mapping for Overlayconfig
Bug: 138458867
Test: atest
Change-Id: Ia5e3d8d4b548aae3f1cd44d5c2cf0db5bf420d34
2020-02-20 15:33:34 +00:00
Charles Chen
c56ce6fd08 Merge "Exempt-From-Owner-Approval: Report non-visual Context misuse" 2020-02-20 12:30:06 +00:00
Automerger Merge Worker
214e7a5f62 Merge "Check argument in PowerProfile.getNumCoresInCpuCluster" am: 74952231df am: 310c1b76ea am: 15bcefd386
Change-Id: I2029bc94536f3617da34bfc4ac18489819baa14a
2020-02-20 11:14:20 +00:00
Automerger Merge Worker
310c1b76ea Merge "Check argument in PowerProfile.getNumCoresInCpuCluster" am: 74952231df
Change-Id: Id1bf2fa710c24ba76efbc5ad9b83dab63b8c334a
2020-02-20 10:47:24 +00:00
Treehugger Robot
74952231df Merge "Check argument in PowerProfile.getNumCoresInCpuCluster" 2020-02-20 10:36:46 +00:00
TreeHugger Robot
20afdde053 Merge "Add kernel per-uid cpu time reader tests to presubmit" 2020-02-20 09:07:44 +00:00
Sudheer Shanka
9244b3809f Merge "Add LongSparseArray.removeIf(Predicate)." 2020-02-20 05:22:06 +00:00
TreeHugger Robot
33b5e30fdc Merge "Handle the case of null intent type when obtaining target intent filter." 2020-02-20 04:58:51 +00:00
Yohei Yukawa
62612562d0 Merge "Offload user-switching task from startInputOrWindowGainedFocus()" 2020-02-20 03:27:26 +00:00
Sudheer Shanka
a43148216a Add LongSparseArray.removeIf(Predicate).
Fixes: 149648797
Test: atest core/tests/coretests/src/android/util/LongSparseArrayTest.java
Change-Id: Ib7e73dcfe8be1dc1f3af577f30da7ebd5950d42a
2020-02-19 18:44:10 -08:00
Andrii Kulian
5877c7d6c0 Exempt-From-Owner-Approval: Report non-visual Context misuse
Make obtaining a visual service from non-visual Context instance
report a strict mode violation and print the stacktrace.

Make calling getDisplay() throw an exception if called on an instance
that is not associated with a display. For existing usages introduce
a new internal method that does not perform the verification until
the usages are properly fixed.

Bug: 128338354
Test: StrictModeTest#testIncorrectContextUse_GetSystemService
Test: StrictModeTest#testIncorrectContextUse_GetDisplay
Change-Id: Id25d590eca6e10066e55d7ed6436d3bc9e433beb
2020-02-20 01:29:25 +00:00
Yohei Yukawa
d277d6902f Offload user-switching task from startInputOrWindowGainedFocus()
As tracked in Bug 28750507, InputMethodManagerService#onSwitchUser()
is known to be slow, and the direct reason of the UI jank in the
launcher discussed Bug 139806621 is that #onSwitchUser() is running as
part of IMMS#startInputOrWindowGainedFocus() that is called as a sync
IPC from the UI thread of the launcher.  Note that this is a
relatively new behavior that was introduced in Android 10 to support
per-profile IME mode (Bug 111083076). So users shouldn't see this code
path unless the device is running on Android 10 with work profile
enabled.

What this CL does is removing that direct code path from
IMMS#startInputOrWindowGainedFocus() to #onSwitchUser() by introducing
a new pending result

  InputBindResult.ResultCode.SUCCESS_WAITING_USER_SWITCHING,

which means

  IMMS is now performing user switching and cannot start input session
  right now, but it will call the client back when the IME becomes
  available for the target user.

Note that InputMethodManager is already able to handle this kind of
pending state, where IME is not yet available, since we already have a
similar pending results as follows.

 * InputBindResult.ResultCode.SUCCESS_WAITING_USER_SWITCHING
 * InputBindResult.ResultCode.SUCCESS_WAITING_IME_BINDING

One remaining concern is that when IMMS#switchUserOnHandlerLocked() is
running with holding the giant lock (IMMS#mMethodMap), thus it's still
possible that IMMS#startInputOrWindowGainedFocus() can be blocked
because of lock contention, which eventually blocks client's UI
thread.  Although its chance wouldn't be that high, in order to tackle
that scenario we need to pursue different approaches such as:

 * Further optimize IMMS#startInputOrWindowGainedFocus() to reduce the
   likelihood of lock contention. This isn't a perfect solution for
   this particular case but it's still worth doing.  Possible
   candidate of optimizations are:
    * Bug 28750507:  optimize IMMS#switchUserOnHandlerLocked()
    * Bug 149864769: off-load Context#unbindService()
    * Reconsider the use of giant lock.

 * Redesign the current "startInput" protocol as part of our on-going
   effort to redesign IME focus handling protocol (Bug 141738570)
   e.g. can we completely make IMMS#startInputOrWindowGainedFocus()
   async IPC?

Bug: 139806621
Fix: 144291210
Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases
Test: Manually made sure that IMMS#startInputOrWindowGainedFocus()
      isn't blocking Launcher's UI thread when swiping home.
  1. lunch aosp_coral-userdebug && make -j
  2. Flash the image
  3. Open the system settings
  4. System -> Gestures -> System nagivation
  5. Select "Gesture nagivation"
  6. Install Test DPC.
  7. Enable managed profile with Test DPC.
  8. adb install -r \
        $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk
  # deal with dex2oat
  9. adb shell cmd package compile -m speed \
        -f com.google.android.inputmethod.latin
 10. adb shell cmd package compile -m speed \
        -f com.android.inputmethod.tools.edittextvariations
 11. adb shell cmd package compile -m speed \
        -f com.google.android.apps.nexuslauncher
 12. adb root
 13. adb shell setprop pm.dexopt.disable_bg_dexopt true
 14. adb reboot
 15. adb shell am start -u 10 \
        -n com.android.inputmethod.tools.edittextvariations/.EditTextVariations
 16. Tap the first edit text on the EditTextVariations
 17. Make sure that AOSP Keyboard is shown
 18. adb shell am trace-ipc start
 19. external/chromium-trace/systrace.py \
        gfx freq am wm sched binder_driver view \
        -a com.android.launcher3 -o binder.html
 20. Swipe up the home button
 21. Hit the enter key to terminate the systrace.
 22. Check the IPC log to see how much the UI thread is blocked by
     IMMS#startInputOrWindowGainedFocus()
Change-Id: I5a73a66d2b8acadad9b3577ebc4c17b5a25fd011
2020-02-19 17:12:17 -08:00
Connor O'Brien
62e8396436 Add kernel per-uid cpu time reader tests to presubmit
Add TEST_MAPPING file to enable presubmit testing for changes to
KernelCpuUidTimeReader, KernelCpuUidBpfTimeReader and
KernelSingleUidTimeReader.

Test: atest
Bug: 138317993
Change-Id: Ic6272f101647a0e6fb3508b79c66387fefda0b04
Signed-off-by: Connor O'Brien <connoro@google.com>
2020-02-19 16:27:28 -08:00
Haining Chen
c06c481fcb Implementations of biometric contraints for weak and convenience tiers
(1) 24 hours fallback
(2) 4 hours idle timeout

Bug: 141025588

Test: atest AuthServiceTest
Test: atest KeyguardUpdateMonitorTest
Test: atest BiometricsUnlockControllerTest
Test: atest KeyguardIndicationControllerTest
Test: make -j
Change-Id: I1078ce39a2ae1e4c250b6468e477b703e3016e2c
2020-02-19 23:58:31 +00:00
Automerger Merge Worker
0bdf785b96 Merge changes from topic "settings-vpn" am: 70f90282ef am: ff39b8ba90 am: 752013f696
Change-Id: Idac6e83bab50b818e2776f28da380f08000e2a42
2020-02-19 23:08:32 +00:00
Feng Cao
6c821f6ea1 Merge "Introduces the Bundle to inline suggestions APIs to encode custom UI styling information." 2020-02-19 22:35:42 +00:00
Automerger Merge Worker
ed67786e6b Merge "Consume health HAL 2.1 values from framework" am: 217aadd0c2 am: 28c43860ea am: 8f9d77ae03
Change-Id: I60f9cee5e0ba74349a0448204b0e31d213151e5f
2020-02-19 22:16:25 +00:00
Winson Chiu
633cd037f7 Merge changes from topics "package-parsing-v2.1", "parsing-parsed-package-split"
* changes:
  Remove AndroidPackageWrite
  Migrate to new ParsedComponents and ParseResult
  Split ParsedComponents
  Add ParseResult infrastructure
  ParsingPackage/ParsedPackage test code migration
  ParsingPackage/ParsedPackage split source migration
  Important migration for new ParsingPackage/ParsedPackage split
  Separate ParsingPackage into core and ParsedPackage into server
2020-02-19 22:16:15 +00:00
Evan Rosky
2d88183bde Merge "SystemUI Split via TaskOrganizer" 2020-02-19 18:43:36 +00:00
Feng Cao
36960ee20e Introduces the Bundle to inline suggestions APIs to encode custom UI styling information.
* The bundle will be generated/consumed by the support library.
* More API documentation and example usage will be added later once we have the support library impl ready.
* The old style resource name approach doesn't work due to the potential mismatch in the support library version across the host IME and the platform renderer service, and the non-static nature of the public attribute int id in the support lib.
* The Bundle added to the onCreateInlineSuggestionsRequest() is intended for the platform/ExtServices to communicate the UI versions it supports.
* The Bundle added to the InlinePresentationSpec is intended for the IME to communicate the custom styles for the chosen UI versions.

Test: manual verification, and also atest CtsInputMethodTestCases:InlineSuggestionInfoTest CtsInputMethodTestCases:InlineSuggestionTest CtsInputMethodTestCases:InlineSuggestionsRequestTest CtsInputMethodTestCases:InlineSuggestionsResponseTest
Bug: 146454892

Change-Id: Id7fea32a7550fb924fec811b376790474a7b92eb
2020-02-19 09:42:22 -08:00
Winson
f00c755a23 Migrate to new ParsedComponents and ParseResult
Removes the massive old ComponentParseUtils in favor of
the new split classes.

Cleans up the parsing code to be uniform, removing the
String[] outError pattern in favor of ParseInput.

Bug: 135203078

Test: atest com.android.server.pm

Change-Id: I584ed37d4715300453dbe760d45d1eb4759b3dd3
2020-02-19 08:31:48 -08:00
Katsiaryna Naliuka
e2c0b5fe4b Handle the case of null intent type when obtaining target intent filter.
Currently the method swallows the exception but that pollutes the logs.
This change preserves the behavior while getting rid of distracting
errors in the logs.

Test: atest IntentTest; atest ChooserActivityTest

Change-Id: I2b02dc4ae0343fa1fd58a112455e426d8a6d3f34
2020-02-19 16:08:40 +01:00
TreeHugger Robot
d0f257ebb6 Merge "Show a line below the tabs in tabbed view to align with UX mocks." 2020-02-19 13:01:27 +00:00