We have public APIs to set "primary" and "secondary" directory names
when contributing new media, but we don't have a way to read out that
information once an app targets Q. So define columns to provide API
symmetry.
Also, since these are called "primary" and "secondary", it's
confusing to have a "secondary bucket ID" defined, so rename that to
be a "group ID" instead.
Since this is a major schema change, recalculate all columns that
are derived from file paths.
Fix bugs where we tried dropping SQLite internals when wiping the
schema of a database, which would have always failed.
Bug: 115377970
Test: atest MediaProviderTests
Test: atest cts/tests/tests/media/src/android/media/cts/MediaScanner*
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: I7b7b7e03bfdae6f94a1d70ac1d9e80776a2171b8
Introduce a parameter for simple sampling of app compaction
metrics as they go into statsd. Rate is confirgurable with
DeviceConfig.
Test: atest FrameworksServicesTests:AppCompactorTest
Bug: 123574961
Change-Id: Iebfd815dc4f7c6db7b849259d8b0b031e7de8621
Right now, DownloadProvider only uses the COLUMN_MEDIA_SCANNED
value if it is coming from addCompletedDownload and for the rest
of the requests, it ignores the incoming COLUMN_MEDIA_SCANNED value
and always invokes mediascanner. This is not what the documentation
says. For e.g., if the caller uses DownloadManager.setDestinationUri()
API, then unless otherwise specified, the download doesn't need to be
mediascanned.
Also, since we are inserting user visible downloads to MediaProvider,
use that info to populate the COLUMN_MEDIAPROVIDER_URI column as well
and update DownloadProvider to not invoke MediaScanner.
Bug: 123440050
Test: atest DownloadProviderTests
Test: atest cts/tests/app/src/android/app/cts/DownloadManagerTest.java
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: I65ccae672eabe2efd5132d4b105c18bb591379fc
1. Replaced ACTION_VIEW_WORK_CALENDAR_EVENT with
ACTION_VIEW_MANAGED_PROFILE_CALENDAR_EVENT
2. Improved the javadoc for EXTRA_EVENT_ID
3. Improved the javadoc for startMs and endMs
Bug: 122899642
Bug: 122898273
Bug: 122900059
Test: atest ManagedProfileTest#testCrossProfileCalendar
Change-Id: Ida84cd0d7d941e18acb9140c8fffc27b1ebd0a6c
During the discussion in cl/229444950, we decide to rename the namespace.
Test: make
Bug: 120793002
Change-Id: I3ff2024912cc0df19b7c92a33f68476242158301
Create a namespace for runtime native properties, java language
properties will be added in a later CL.
Bug: 111397239
Bug: 120794191
Bug: 123524494
Test: adb shell device_config put runtime_native gctype CC,preverify
Test: verify the property is set correctly
Exempt-From-Owner-Approval: Previously approved
Change-Id: I84ec84f0befdbf778b9cef43991b63fbab3b0943
This reverts commit 0a20eda58d.
Reason for revert: Enabling feature by default. Global flag moved to OEM configurable overlay instead
Bug: 123408542
Test: unit tests
Test: Manually verify developer option is gone
Change-Id: I34bfedba786e53426a941ad12ea7c7b119987420
We here add an experiment flag to limit the number of smart actions
shown per notification (including turning all small actions off) from
the System UI.
Bug: 122506860
Test: atest SystemUITests
Test: call "adb shell settings put global
smart_replies_in_notifications_flags enabled=true,max_num_actions=X" for
different values of X and ensure the behaviour is correct.
Change-Id: I2759f4bc297386d20f3a6d1cb2975165e5c87c38
To adhere to new API guidelines we here update the
notification_assistant namespace in DeviceConfig.
Bug: 120792826
Test: make ExtServices
&& adb install -r $OUT/system/priv-app/ExtServices/ExtServices.apk
&& atest ExtServicesUnitTests
Change-Id: I85f714931c28c7a35c64b1394992afcd7aa68490
Add an API for Settings search to associate Uris to Keys,
to enable support for Slices in search.
We add a separate API rather than updating IndexableData because:
- Apps will need to support a method of collecting all slices for the
Slices API, and that method can be shared between the Slices API and
this one.
- To update search indexableresource, we would need to establish a
contract on how to declare a slice Uri in each xml. Even if we did that,
the providing app would need their own logic to parse the Xml for
the Slices api, so we can't save them work.
Bug: 62807132
Test: contract files
Change-Id: Ie8853ac57643231794afdbb2f7ce1cc0f77619a2
When an app takes a long time to handle broadcasts, we start deferring
further broadcasts to it to make sure that other broadcast traffic in
the system can continue to make progress. Global delivery order is
technically rearranged, but delivery order from the point of view of any
given app remains consistent with issuance order.
When alarm broadcasts are issued, we prioritize delivery of deferred
alarms to the alarm recipients (i.e. we suspend the deferral policy and
catch up as promptly as possible) in order to minimize wake time spent
waiting for the alarm broadcast to be delivered. Once an app with a
deferred broadcast backlog is no longer the target of an in-flight
alarm, we re-impose deferral policy on it.
This policy intentionally trades off increased broadcast delivery
latency to apps that take a "long" time to handle broadcasts, in
exchange for lowering delivery latency to all other apps in the system
that would previously have had to wait behind the slow app.
In addition, broadcast dispatch policy parameters can now be overlaid
via the usual global Settings mechanism. In particular, configuring the
"bcast_slow_time" parameter to a value in milliseconds higher than the
queue's broadcast timeout period will disable the new slow-receiver
policies.
Bug: 111404343
Test: device boots & runs
Test: tests/ActivityTests
Change-Id: I76ac79bdf41ca3cfcc48515bca779ea0f5744c0b
objects that are returned by the model
1. TemplateIntentFactory is the intent generator. It reads from the
templates that are returned from the model, and construct the
intents accordingly. If template is missing, we fallback to use
LegacyIntentFactory.
2. LegacyIntentFactory is the old(existing) intent generator.
3. Added a flag to allow us to switch between them.
Test: atest TemplateIntentFactoryTest.java
Test: atest LegacyIntentFactoryTest.java
Change-Id: I7bdcc73321f5a0160c5ff0edf1a2095119f4dcb1
Required for feature tuning and experiments
Also
- Updates Javadoc as per API review request
- Updates TextClassificationConstants test
Bug: 120794314
Bug: 118296637
Bug: 34780395
Test: atest core/tests/coretests/src/android/view/textclassifier/TextClassificationConstantsTest.java
Test: (MANUAL)
1. Install an app that handles Intent.ACTION_TRANSLATE
2. Run adb shell settings put global text_classifier_constants system_textclassifier_enabled=false,lang_id_threshold_override=0
3. Select foreign text
4. Observe that a "Translate" option is shown in the selection toolbar
1. Install an app that handles Intent.ACTION_TRANSLATE
2. Run adb shell settings put global text_classifier_constants system_textclassifier_enabled=false,lang_id_threshold_override=2
3. Select foreign text
4. Observe that a "Translate" option is not shown in the selection toolbar
Change-Id: I02b6ca48669e66a24150b04bba2ebfcf9ebe6bfd
With this CL, SHOW_IME_WITH_HARD_KEYBOARD will be shared within the
same profile group.
Since AccessibilityManagerService always reads
SHOW_IME_WITH_HARD_KEYBOARD from the profile parent user [1], in
practice sharing SHOW_IME_WITH_HARD_KEYBOARD within the same profile
group would be the easiest and safest way for now to avoid breaking
SHOW_IME_WITH_HARD_KEYBOARD.
Note that with my previous CL [2], InputMethodSettings already adjust
the target user ID by checking CLONE_TO_MANAGED_PROFILE when writing
secure settings. Hence no change in the InputMethodManagerService
side is necessary.
When work profile is not enabled, there should be no behavior change.
[1]: I530481e102ac376a4506b662862ee1ee74815b40
03a65b04d8
[2]: Ieefefb8630ddef3b247ebb865a604e5c72dfb49c
15be5e6f1c
Fix: 123379418
Test: manually verified as follows.
1. Build aosp_taimen-userdebug and flash it.
2. adb root
3. adb shell setprop persist.debug.per_profile_ime 1
4. Install Test DPC.
5. Enable managed profile with Test DPC.
6. Attach a Bluetooth hardware keyboard.
7. make -j EditTextVariations
8. adb install -r \
$ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk
9. adb shell am start --user 10 -n \
com.android.inputmethod.tools.edittextvariations/.EditTextVariations
10. Focus in the top edit field on the EditTextVariations.
11. Tap the IME switcher icon on the navigation bar.
12. adb shell settings get secure --user 0 show_ime_with_hard_keyboard
-> 0
13. adb shell settings get secure --user 10 show_ime_with_hard_keyboard
-> 0
14. Toggle "Show virtual keyboard" button to enable it.
15. adb shell settings get secure --user 0 show_ime_with_hard_keyboard
-> 1
16. adb shell settings get secure --user 10 show_ime_with_hard_keyboard
-> 1
Change-Id: Iacb79b24d6bd97495ac81a58c1df651cf594a8c2
To help confirm that we're actually testing developer-visible
behaviors, we need to build against public APIs, since there have
been plenty of examples in this suite of "testing" hidden API
behaviors, which are then misleading to developers.
Bug: 120429729
Test: atest cts/tests/tests/provider/
Exempt-From-Owner-Approval: Trivial API annotations
Change-Id: I07fe33e54f611a6060217f0706fb99b809961f4d