This CL starts a journey to discover a brave new inset world. The
path to get us there may be rocky, but it's going to be rocky.
One of the main pledges of the new API is that an app can retrieve
what is causing a certain inset easily. For that, we need to
dispatch metadata who is causing what inset, such that we can query
it from the client side.
Furthermore, the client will be able to manipulate insets directly,
but also listen to animation changes. We don't want to go through
window manager for that, thus, there needs to be a local codepath
from (global window state -> WindowInsets).
Because we have these two requirements, we dispatch the relevant
global window state for insets, represented by InsetsState, and
dispatch it to the client. On the client side we take the frame
and the InsetsState and generate WindowInsets out of it.
Bug: 118118435
Test: InsetsSourceTest, InsetsStateTest, InsetsSourceProviderTest,
InsetsStateControllerTest
Change-Id: I2bfe9dda376512916261823fc2ee35cbedeb6731
This is added to report clicks on actions buttons to NAS.
BUG: 119010281
Test: atest SystemUITests
Test: atest RemoteViewsTest
Test: atest NotificationManagerServiceTest
Test: Manual. Tapped on the action (both normal and contextual) and
observed the log.
Change-Id: I381994737d8c3185d3fabf9b6c481fd01a89a634
Previously we were modifying the extras of a shared notification
during the notification creation, which breaks if multiple builders
are accessing the same notification. We're now passing these options
as parameters into the various functions.
Test: create low priority group / notification / observe normal behavior
Change-Id: I2aaa5632cff55a87937a2bb3f947f15555d2e897
Fixes: 117150727
A toggle will be added in Settings -> Work profile settings for user
to control this setting.
Bug: 118445542
Test: .manual
Change-Id: If8b882dd101688f35fb117d83a801b5c80aab367
and basic rules for enforcement
The setting is on by default. It can be switched off with
a developer option (see accompanying commit) or
"adb shell settings put global background_activity_starts_enabled 0".
The setting is wired into ActivityStarter. When it's switched
off, all unsupported background activity starts are aborted and
it's currently manifested with a toast for quick feedback.
Only basic policy rules are added for now:
0) is it one of the most important UIDs?
1) does the calling app have any foreground activity?
2) is the calling process important enough to always be able
to start an activity?
3) does the calling uid have any visible window?
The policy rules will be extended to allow for more use cases
in forthcoming CLs.
Most notable use cases not currently covered:
1) Notifications
2) Widgets
3) Shortcuts
4) Some of the most important system apps (e.g. com.android.vending)
5) Accessibility services and similar (IMEs covered thanks to
visible window exemption)
6) Recents button double tap to open the previous app
See bluedoc for some more.
Bug: 110956953
Test: atest WmTests:ActivityStarterTests
Manual test:
(on) observe all activities are started as they used to be
(off) starts not satisfying one of the above rules are aborted,
a toast specifying callingPackage is shown instead
Change-Id: I1a3e14828c96f005d975ef6998f3bda678ccab29
add native_flags_health_check_enabled to Settings.Global. It is used
to receive the corresponding experiment flag from P/H.
Bug: 119627143
Test: manual on device
Change-Id: I980f73925818a5cb6f756d78bad324bafefc3784
This change removes remaining ASEC-related logic from the framework in
preparation for install refactoring.
Bug: 109941548
Test: install still works
Change-Id: Ic7322038e45c026bcc59800a5a9fafdbb461021f
We will classify the word as "dictionary" if we think user may want to look
it up. A "Dictionary" option will be shown in the floating toolbar
if users select words of this entity type.
A new Intent action is introduced to bring up the dictionary app.
The model that supports this entity type is not checked-in yet.
So no behavior change can be seen for now.
Test: Check-in the WIP model and try to select a "dictionary word".
Test: atest frameworks/base/core/tests/coretests/src/android/view/textclassifier/IntentFactoryTest.java
BUG: 68238822
Change-Id: Ib318d5b2abf79d61e55b33e397065a0714573121
Also don't show smart actions for selections in text with unsupported
characters.
Bug: 116321860
Test: atest android.view.textclassifier.TextClassifierTest \
android.text.util.cts.LinkifyTest \
android.text.util.LinkifyTest \
android.widget.TextViewActivityTest
Change-Id: Id271cab8aef6b9b13ef17f1a8654c7616f75cf13
This helps us build a fake context where we can configure things like
what activity can handle an intent or whether no activity can handle
an intent.
The hope is that we can fake several aspects of the context used for
testing here. If our configuration requirements become too complex
in the future, we should probably consider creating more focused
fake context builders.
The immediate use case for this builder is for configuring what actions
are returned by the text classifier as activities that can handle a
specified text classifier query.
Test: atest android.view.textclassifier.TextClassificationManagerTest
Bug: 34780395
Change-Id: Ifd3d6cff928cc2f11b69206660b6d7c4791f1c0f
If dns resolver on a network get consecutively timeout then it
is a strong signal that the network is no longer usable.
Reevaluate the network once it's data stall suspected
Test: 1. runtest frameworks-net
2. SettingsBackupTest passes
2. Run on wifi w/o internet capability
Bug: 112653893, 113916551
Change-Id: I74287b174d933f97a91fa1529b1809856ac3b38d
Augmented Autofill is a mechanism that will let a system-provided service
provide autofill suggestions when the stardand autofill can't.
Because the Augmented Autofill service is a system app, it has less restrictions
than the standard service; in particular, this service will be responsible for
drawing the autofill UI, although the framework will provide a mechanism to host
the window. Right now, it's creating a TYPE_APPLICATION_OVERLAY window in the
service process roughly below the focused view, but in the long-term it will
use the IME suggestion window to display it.
This CL provides the initial APIs and end-to-end workflow for the simplest
scenario, but it's still full of TODO's.
Test: atest CtsAutoFillServiceTestCases # to make sure it doesn't break it
Test: atest FrameworksCoreTests:SettingsBackupTest
Test: mmm -j150 packages/experimental/FillService &&\
adb install -r ${OUT}/data/app/FillService/FillService.apk &&\
adb shell settings put secure intel_service foo.bar.fill/.AiaiService &&\
adb shell settings put global autofill_smart_suggestion_emulation_flags 2 &&\
adb shell pm grant foo.bar.fill android.permission.SYSTEM_ALERT_WINDOW
Bug: 119638877
Change-Id: I8d59b4eab3e530cd89b81456681a72fdab532756
1. Introduce Message.USER_LOCAL to allow caller to specify which
message is from the local user.
2. TextClassifierImpl will now encode the Person object to a user
id.
3. Fixed a bug in Person.equals check
BUG: 111437455
BUG: 111406942
Test: atest frameworks/base/core/tests/coretests/src/android/view/textclassifier/ActionsSuggestionsHelperTest.java
Change-Id: I6629f42244a402fa210f87afa88a629c2ca4a510
By default, the UIDs collected are all system users, i.e. UIDs in the range
[1000, 2000).
Bug: 119089294
Test: KernelCpuThreadReaderTest#testReader_byUids
Change-Id: I162916f2238aad975b657c9299cb9035718768bb
This way when laying out the child views, each view can specify that
they don't want to grow past a certain height.
Bug: 73819520
Test: atest com.android.internal.app.ResolverActivityTest#setMaxHeight
Change-Id: Ibff3609746b4b6ec7b4debd8433487c7fc9ce0fa
This means that instead of returning all frequencies, we return
KernelCpuReader#NUM_BUCKETS frequencies.
Test: Unit tests for bucket creation and usage in KernelCpuThreadReaderTest
Change-Id: Iea0996f642deecae8ce66e5122045a0694fac03b