Commit Graph

15022 Commits

Author SHA1 Message Date
Jeff DeCew
5185c6bf66 Merge changes from topic "template_redesign"
* changes:
  Update variable names to reduce confusion.
  Fix/hack MessagingStyle notifications
  Reduce notification minimized height
  Fix the placement of the work profile and feedback badges.
  Fix HUNs
  Remove the unneeded icon spacing in the InboxStyle.
  Hide app name from minimized notifications
  Notification Title is 16pt in Big state
  Ensure headerless notification with large icon is big enough.
  Round corners of BigPicture
  Increase the expand button touchable area.
  Remove the reply action entirely.
  Notification template redesign; part 1.
  Remove night-mode override of notification_divider_height
2020-11-17 13:21:53 +00:00
Janis Danisevskis
148e99707e resolve merge conflicts of 07bfeb3630 to master
Test: I solemnly swear I tested this conflict resolution.
Bug: None
Change-Id: Iab84b0fa8c708845aecd13dd45c242147829fd8b
2020-11-16 19:28:35 -08:00
Treehugger Robot
07bfeb3630 Merge changes I9731d978,I9e325782,I441a4d4d,I86a85e48,I9268fd66, ... am: aeb15e8592 am: 788f03de26 am: 365c77133b
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1471565

Change-Id: If797faa86575774a6beeb1788e66ed6ae2d17994
2020-11-17 00:25:55 +00:00
Treehugger Robot
aeb15e8592 Merge changes I9731d978,I9e325782,I441a4d4d,I86a85e48,I9268fd66, ...
* changes:
  Keystore 2.0 SPI: Install legacy Keystore provider as AndroidKeyStoreLegacy
  Keystore 2.0 SPI: Zygote install Keystore2 provider conditionally
  Keystore 2.0 SPI: Evolve the generator SPI.
  Keystore 2.0 SPI: Evolve Factory SPI
  Keystore 2.0 SPI: AndroidKeyStoreProvider loads keys from Keystore 2.0
  Keystore 2.0 SPI: Evolve the Crypto SPI.
  Keystore 2.0 SPI: KeyParameter utilities.
  Keystore 2.0 SPI: Update the chunked streamer.
  Keystore 2.0 SPI: KeyStoreCryptoOperationUtils
  Keystore 2.0 SPI: KeyStoreKeys adopt Keystore 2.0
  Keystore 2.0: Shim around the basic functionality of Keystore 2.0
  Keystore 2.0 SPI: Duplicate Keystore SPI to android.security.keystore2 package
2020-11-16 22:51:03 +00:00
Inseob Kim
71d21ecd60 Merge "Remove obsolete property ro.kernel.android.tracing" am: 3661fc477c am: cb98552e03 am: 1ee0a2519e am: d15205e7cc
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1498598

Change-Id: I2925414e9cb2ef68ddee4a6fc89c4d4b56e4def8
2020-11-16 12:40:42 +00:00
Inseob Kim
d15205e7cc Merge "Remove obsolete property ro.kernel.android.tracing" am: 3661fc477c am: cb98552e03 am: 1ee0a2519e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1498598

Change-Id: Icedff80bb584ab245b039d1bb3f5c56fb31d592c
2020-11-16 12:12:16 +00:00
Janis Danisevskis
6180e85e36 Keystore 2.0 SPI: Zygote install Keystore2 provider conditionally
This patch makes Zygote install the Keystore 2.0 SPI as
"AndroidKeyStore" and the old Keystore SPI as "AndroidKeyStoreLegacy"
if the platform property ro.android.security.keystore2.enable is
set to true. This allows us to boot Android with vital components, such
as LockSettingsService, still using the legacy Keystore, while we run
CTS tests against the new implementation, migrate other system
components, and perform migration tests.

This CL will be superseded by a CL that makes Zygote install the
Keystore 2.0 SPI exclusively when the migration of all dependent
components is complete.

Bug: 171305684
Test: None
Change-Id: I9e32578285167c4d63f4f536a07fe98473a883e0
2020-11-13 19:55:41 -08:00
TreeHugger Robot
81a1f37b1c Merge "Consistent handling of modified UTF-8." 2020-11-14 02:29:42 +00:00
Jeff Sharkey
50a99364c6 Consistent handling of modified UTF-8.
A recent set of patches had mismatched handling of UTF-8 vs modified
UTF-8; this change converges all paths towards using modified UTF-8
to match the DataInput/Output API contract.

New tests verify that underlying raw data is compatible between the
upstream and local implementations.

Bug: 171832118
Test: atest FrameworksCoreTests:android.util.CharsetUtilsTest
Test: atest FrameworksCoreTests:android.util.XmlTest
Test: atest FrameworksCoreTests:android.util.BinaryXmlTest
Test: atest FrameworksCoreTests:com.android.internal.util.FastDataTest
Change-Id: I49423edc867839fb6626cd8bd361abe7bc512633
2020-11-13 14:11:41 -07:00
TreeHugger Robot
385212485f Merge "Using CUJ name instead of ordinal in traces" 2020-11-13 20:39:09 +00:00
Vadim Tryshev
43389874e6 Merge "Moving the name getter of latency action to LatencyTracker" 2020-11-13 18:21:24 +00:00
Jeff DeCew
dc81adf34e Reduce notification minimized height
Bug: 163626038
Test: manual
Change-Id: Ic5e94389f2f41eebcecc8df393ff2f26c1d7e426
2020-11-13 13:16:02 -05:00
Jeff DeCew
b5839a11e9 Increase the expand button touchable area.
The touchable area used to be a 48x48 square, but we
actually want the entire right-hand side of the
notification to be touchable in the collapsed state.

Bug: 163626038
Test: atest SystemUITests
Test: manual - check touch bounds and validate w/ TalkBack
Change-Id: I9c1b5a0e01d841ed5d448ee5e1030b7f1cbbb2f2
2020-11-13 13:16:00 -05:00
Jeff DeCew
1842262813 Notification template redesign; part 1.
Known issues:
* Sub-par dyson animation
* Sub-par animation of text in the title
* Notification height limits not yet adjusted
* Decorated custom view height limits not yet updated
* HUNs may need to get their own headerless template
* Messaging style notifications are not yet headerless
* Possible [de]colorization bug for grouped icons
* Some notifications still not always expandable

Bug: 163626038
Test: Manual, visual testing
Change-Id: I9e7e2fd689938a13e042c8f6319bd7d0d2252781
2020-11-13 13:16:00 -05:00
Inseob Kim
56ab231a8f Remove obsolete property ro.kernel.android.tracing
Bug: 173179120
Test: build
Change-Id: If46e65dac70ab4f1835048dbbcc8b571ce598224
2020-11-13 19:39:02 +09:00
Dan Shi
4514ae9876 Merge "Revert "Move BasicShellCommandHandler to frameworks/lib/modules-..."" 2020-11-12 22:46:35 +00:00
Dan Shi
f689b18ddc Revert "Move BasicShellCommandHandler to frameworks/lib/modules-..."
Revert "Update import path of BasicShellCommandHandler"

Revert "Update path for BasicShellCommandHandler"

Revert "Update path for BasicShellCommandHandler"

Revert "Update rule for BasicShellCommandHandler"

Revert submission 12975279-move_BSCH

Reason for revert: b/173120275
Reverted Changes:
Ib750f4774:Move BasicShellCommandHandler
I43c0dc327:Update import path of BasicShellCommandHandler
I73d58c07c:Update path for BasicShellCommandHandler
I21f103949:Update path for BasicShellCommandHandler
I8a2873df6:Move BasicShellCommandHandler to frameworks/lib/mo...
I91df774a3:Update rule for BasicShellCommandHandler

Exempt-From-Owner-Approval: to fix b/173120275

Change-Id: Iaa44f9aa4c1621f331275dc76ecb7505100fe9c5
2020-11-12 22:44:12 +00:00
vadimt
660729d4da Moving the name getter of latency action to LatencyTracker
Test: compiling
Bug: 131859447
Change-Id: I150e50d1ec33260ba8de9c71a11938850b74ecc0
2020-11-12 13:41:52 -08:00
vadimt
84f452dbe2 Using CUJ name instead of ordinal in traces
Test: manual
Bug: 167170986
Change-Id: Id212a997d1922ef5f3eed5f16b4bde603de9ce0c
2020-11-12 13:24:52 -08:00
TreeHugger Robot
4a15a3ef65 Merge "Make IInputMethodManager to oneway (1/N)" 2020-11-12 17:50:42 +00:00
Chiachang Wang
c91ed0851e Merge "Move BasicShellCommandHandler to frameworks/lib/modules-utils" 2020-11-12 05:08:48 +00:00
Wu Ahan
88dd4d99f6 Merge "Support translation between interaction type and cuj type" 2020-11-12 02:36:09 +00:00
Ytai Ben-tsvi
93f4464b76 Merge "Clean up on client death in SoundTriggerService" 2020-11-11 21:31:39 +00:00
Ytai Ben-Tsvi
3559e8693e Clean up on client death in SoundTriggerService
This change adds tracking of SoundTriggerService client death
and frees up resources whenever that happens.

Test: Kill Now Playing process and observer recovery.
Bug: 171026874
Change-Id: Ie31d0a3ed392b1513b4e81ec3c344f4e79adcf52
2020-11-11 10:12:59 -08:00
Adam Bookatz
b89db6c170 Merge "Remove some unused methods in BSI" 2020-11-11 17:46:17 +00:00
Ahan Wu
72d5d080a2 Support translation between interaction type and cuj type
Support a helper method to translate the cuj name from interaction type.

Bug: 172660959
Test: atest
CollectorsHelperTest: com.android.helpers.UiInteractionFrameInfoHelperTest
Change-Id: I3bcc64684b79fad7fc59b71a269231eb6dd91674
2020-11-11 05:02:48 +00:00
Jeff Sharkey
af7d02531c Merge changes from topic "nov7"
* changes:
  Custom binary XML wire protocol.
  Progress towards efficient XML serialization.
  More efficient alternatives to ByteBuffer.
  CharsetUtils alternatives that avoid allocations.
2020-11-10 23:35:51 +00:00
Kweku Adams
ff6fcd7bcd Check app querying permissions.
We no longer let apps query the existence of other apps (with some
exceptions). Make sure we honor that by always returning false for the
power-allowlist if the calling app doesn't have the required
permissions.

Bug: 166668654
Test: atest DeviceIdleTest
Test: atest CtsSecurityTestCases:DeviceIdleControllerTest
Test: atest FrameworksMockingServicesTests:DeviceIdleControllerTest
Change-Id: I895f1d666a213e141d9fbf08600c611f04f3a7fd
2020-11-10 11:02:27 -08:00
Jeff Sharkey
4ccea87969 Custom binary XML wire protocol.
We've identified that XML writing and reading uses roughly 1.5% of
all system_server CPU, and can generate many temporary objects.

Building on the recent TypedXmlSerializer/PullParser interfaces, this
change introduces new BinaryXmlSerializer/PullParser implementations
that store data using a custom binary wire protocol.  Benchmarking of
a typical packages.xml has shown this new binary approach can write
4.3x faster and read 8.5x faster, while using 2.4x less disk space:

    timeWrite_Fast_mean: 27946635
    timeWrite_Binary_mean: 6519341

    timeRead_Fast_mean: 59562531
    timeRead_Binary_mean: 7020185

A major factor in choosing to invest in this new wire protocol is
that it enables the long-tail of over 100 unique XML schemas used
across the OS internals to be transparently upgraded to gain these
benefits with only minimal changes, reducing the risks associated
with rewriting those schemas.

Finally, since the wire protocol is essentially a serialized event
stream, it's trivial to transparently convert this new protocol
into human-readable XML and vice-versa.  The tests in this change
demonstrate this translation working correctly, and future changes
will introduce new shell tools to aid development work.

Bug: 171832118
Test: atest FrameworksCoreTests:android.util.XmlTest
Test: atest FrameworksCoreTests:android.util.BinaryXmlTest
Test: atest CorePerfTests:android.util.XmlPerfTest
Change-Id: Ib9390701f09562dca952b3786622675b9c68a462
2020-11-10 11:58:03 -07:00
Jeff Sharkey
b5856365b4 Progress towards efficient XML serialization.
We've identified that XML writing and reading uses roughly 1.5% of
all system_server CPU, and can generate many temporary objects.

To set the stage for some long-term improvements, this change
introduces new TypedXmlSerializer and TypedXmlPullParser interfaces
which offer efficient access to primitive attributes and text.

This change also updates XmlUtils to redirect primitive operations
through these new interfaces.

Bug: 171832118
Test: atest FrameworksCoreTests:android.util.XmlTest
Change-Id: I5ba3ad87cf79ca10705a96b98855164a27fee021
2020-11-10 11:56:11 -07:00
Jeff Sharkey
162f86ddce More efficient alternatives to ByteBuffer.
Some upcoming binary XML work needs to efficiently read and write
raw bytes, and we initially started using ByteBuffer.  However, that
design had additional overhead since we were performing bounds checks
twice (once to fill/drain buffers, then again to parse data).  In
addition, the upstream ByteBuffer makes per-byte method invocations
internally, instead of going directly the the buffer.

This change introduces FastDataInput/Output as local implementations
of DataInput/Output which are focused on performance.  They also
handle fill/drain from an underlying Input/OutputStream, and the
included benchmarks show reading 3x faster and writing 2x faster:

    timeRead_Upstream_mean: 5543730
    timeRead_Local_mean: 1698602

    timeWrite_Upstream_mean: 3731119
    timeWrite_Local_mean: 1885983

We also use the new CharsetUtils methods to write UTF-8 values
directly without additional allocations whenever possible.  This
requires using a non-movable buffer to avoid JNI overhead to gain
the 30% benchmarked performance wins.

Bug: 171832118
Test: atest CorePerfTests:com.android.internal.util.FastDataPerfTest
Test: atest FrameworksCoreTests:com.android.internal.util.FastDataTest
Change-Id: If28ee381adb528d03cc9851d78236d985b6ede16
2020-11-10 11:56:06 -07:00
Fiona Campbell
d7bfe1f310 Clean up BrightnessSynchronizer
Create a startSynchronizing() method rather than having this code in the
constructor. This makes it cleaner and its actions more explicit.

Bug: none
Test: manual
Change-Id: I6b84274639ad719ed877f1d04e6621717f860677
2020-11-10 11:21:33 +00:00
Wilson Wu
fd64b28073 Make IInputMethodManager to oneway (1/N)
Isolate the Completable class from the CancellationGroup
class because not all Completable objects could be cancelled.
So we don’t need to always hold a final CancellationGroup in
Completable class. If the Completable object could be cancelled,
pass it as parameter when doing await.

Bug: 163453493
Test: Manual test with keyboard
Test: atest CtsInputMethodTestCases
Change-Id: If79810d5acc36b5a8c6a2c7cfcabeb4d0ebed197
2020-11-10 18:02:10 +08:00
Chiachang Wang
e8f12d1c01 Move BasicShellCommandHandler to frameworks/lib/modules-utils
BasicShellCommandHandler is used by mainline modules and the
framwork. There is a new repo that was created for putting
this kind of utility class. Move BasicShellCommandHandler for
the incoming ConnectivityService mainline and updating the
related usage.

Bug: 170598012
Test: m ; verify with adb shell cmd
Change-Id: I8a2873df6e7d8342b7a8b466bda155f74c807ee3
2020-11-10 09:54:14 +08:00
Adam Bookatz
db71cc02a2 Remove some unused methods in BSI
BatteryStatsImpl has some recently added methods where formerly we used
A()
now we use
A(int elapsedTime)

Often those old A() calls are now unused and can be removed.

Test: compiles
Test: FrameworksCoreTests
Test: FrameworksServicesTests
Change-Id: I4cac7879db47811ed92455470a660a675db6a4c7
2020-11-09 16:03:49 -08:00
Mathew Inwood
f8abe13db4 Merge "Add maxTargetSdk restriction to unused APIs." 2020-11-09 14:41:20 +00:00
Alison Cichowlas
4f4d34cce6 Merge "Revert "Flip off use of old Chooser targets by default."" 2020-11-09 14:09:05 +00:00
Michael Sun
dfe0fe8583 Merge "Update to use new android.system.suspend.control AIDL interface" am: e40aa2d118 am: b726bcfd65 am: a9b465c8d8 am: f9fd07e735
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1480304

Change-Id: I45693209b358a1b1f9691d3729743688b3229172
2020-11-06 19:40:26 +00:00
Michael Sun
f9fd07e735 Merge "Update to use new android.system.suspend.control AIDL interface" am: e40aa2d118 am: b726bcfd65 am: a9b465c8d8
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1480304

Change-Id: I1aea5a7ddd2b6b30854683f5133906fa33aab78d
2020-11-06 19:20:04 +00:00
TreeHugger Robot
bf94c12f9d Merge "Reduce the latency between the selection span is adjusted and the toolbar is shown" 2020-11-06 16:56:51 +00:00
Tony Mak
af501bcaf9 Reduce the latency between the selection span is adjusted and the toolbar is shown
Results:
We measure the latency between Editor.startActionModeInternal is called
and FloatingToolbar.show() is called.

When there is only smart action (url)
Before: ~150ms
After ~30ms

When there are 5 smart actions (phone number)
Before: ~400ms
After: ~100ms

Before and after videos:
https://recall.googleplex.com/projects/ea8c4705-96bd-46f0-9f37-786708050727

Fixed a few issues:
1. updateAssistMenuItems() gets the Icons from TextClassification
   object, calls loadDrawable on them and creates the MenuItem
   objects loadDrawable() is slow, especially if we have a lot of
   smart action icons to load. Even worse, we are calling this
   function 4 times in a row when selecting something! 1 time from
   onCreateActionMode and 3 times from onPrepareActionMode.
   The fix here is to avoid reloading the drawable if it is the same
   text classification object.

2. From SelectionActionModeHelper, we call startActionModeInternal
before SelectionModifierCursorController.show()
Internally, SelectionModifierCursorController.show()
show the two selection handles  by calling startHandle.show() and
endHandle.show(). Apparently, each handle.show() call invalidates the
action model right after it is just created! This explains two of the
unnecessary onPrepareActionModel calls.

The fix is to call SelectionModifierCursorController.show()
before startActionModeInternal() is called.

3. Editor.startActionModeInternal() does not invoke
FloatingToolbar.show() right away.
There are two issues here.
a) Editor.startActionModeInternal() ends up calling
FloatingActionModel.repositionToolbar() which hopefully calls
FloatingToolbar.show(). Sadly, it is not the case
because mViewRectOnScreen is not set at that time. mViewRectOnScreen
is set in next onPreDrawCall() call.

b) When mViewRectOnScreen is finally set and calls repositionToolbar()
again , it still won't call FloatingToolbar.show() immediately
because we think that the toolbar is moving by comparing the previous
content rect and the current content rect. They are different because
the previous one is empty(it wasn't shown before). Becoz we think it is
moving, we schedule the FloatingToolbar.show() call after 50ms.

To fix a, we now update mViewRectOnScreen() right away wihout waiting
for the next onPreDraw call().
To fix b, when the previous content rect is moving, we don't consider
the toolbar as moving anymore.

Bug: 169043706

Test: atest android.widget.TextViewActivityTest
Test: atest
cts/tests/tests/textclassifier/src/android/view/textclassifier/cts/TextViewIntegrationTest.java
Test: atest
cts/tests/tests/widget/src/android/widget/cts/TextViewTest.java
Test: Smart select a phone number and then smart select a link.
      Make sure the smart actions menuitems are updated.
Test: Click on a smart linkify link. Then dismiss it by tapping outside.

Change-Id: I634b21ac7ed66a14883dc17e03ef006df5b3f223
2020-11-06 14:36:12 +00:00
Michael Sun
d523796ec5 Update to use new android.system.suspend.control AIDL interface
The suspend_control_aidl_interface is updated, renamed, and splitted
into android.system.suspend.control and
android.system.suspend.control.internal. Update to use the correct
interfaces.

Test: atest FrameworksCoreTests:KernelWakelockReaderTest
Bug: 171598743
Change-Id: I32aa339b27f3d9680a61b7338b1bdb531a1a43f7
2020-11-06 03:44:01 +00:00
Alison Cichowlas
94c73953e4 Revert "Flip off use of old Chooser targets by default."
This reverts commit fb4a768c97.

Reason for revert: PM request

Change-Id: I9f367e2de44618d9e4d5f1787403b2d1e653cb14
2020-11-05 20:18:43 +00:00
Lucas Dupin
377d1337a3 Support tinting blur drawable
In order to achieve the look and feel of colored surfaces, the blur
drawable should be able to receive a color and draw it on top of the
blur region.

Test: manual
Fixes: 172372852
Change-Id: I4cab21e337ca18f617780531368ba70154027b72
2020-11-05 02:29:43 +00:00
Mathew Inwood
5d123b6775 Add maxTargetSdk restriction to unused APIs.
These are APIs that have @UnsupportedAppUsage but for which we don't
have any evidence of them currently being used, so should be safe to
remove from the unsupported list.

Bug: 170729553
Test: Treehugger
Merged-In: I626caf7c1fe46c5ab1f39c2895b42a34319f771a
Change-Id: I54e5ecd11e76ca1de3c5893e3a98b0108e735413
2020-11-04 09:45:53 +00:00
Tony Huang
ae7e2fb0bb Merge "Migrate Bubbles to wm-shell (5/n)" 2020-11-04 07:31:30 +00:00
TreeHugger Robot
35615f9bc3 Merge "Instrument CUJ for HUN and App launch from notification" 2020-11-04 06:00:04 +00:00
Tony Huang
eb01a25c87 Migrate Bubbles to wm-shell (5/n)
Move bubbles package and related resources to shell package,
also copied some used codes and resources.

Bug: 161980186
Test: atest SystemUITests
Test: atest WMShellUnitTests
Change-Id: Ia108bd4149b3c3bf86631ba1a7a6bce0e76af78f
2020-11-04 11:01:56 +08:00
TreeHugger Robot
143108846a Merge "Use different perfetto trigger names for each CUJ" 2020-11-03 19:33:58 +00:00
TreeHugger Robot
0824c257af Merge "Flip off use of old Chooser targets by default." 2020-11-03 01:27:08 +00:00