As part of the new privacy work in Q, apps no longer have access to
raw filesystem paths, since they may live outside of the current
sandbox. Instead, we need to use CR.openFileDescriptor().
Bug: 111960973
Test: builds, boots
Change-Id: I6e52a7dcb39850d9835183c44f5f638a5bf77202
This enables a way for client to open ringtone cache from DE storage
area before user is unlocked.
Test: RingtoneManagerTest and MediaPlayer2Test
Bug: 112767549
Change-Id: Ica929f079dbc14f8541d92b5c9b9a0db502d3d64
For packages:
android.media.tv
android.media.soundtrigger
android.media.session
android.media.projection
android.media.midi
android.media.effect.effects
android.media.effect
android.media.browse
android.media.audiopolicy
android.media.audiofx
android.media
This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.
Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@
Bug: 110868826
Test: m
Change-Id: I3bd40136d7fc948f66eca6b2d139c15e39c5a248
If the title of the music file includes "/", it's recognized
as a directory separator.
Use correct filename to select the file properly.
Bug: 80202253
Test: Add mp3 which title includes "/" to ringtone
Change-Id: I9bb05f6fe2d7d4dbbdf4f67db7ac6fde04707979
There are several places across the OS where Java code is simply
copying data between two points, which requires bringing that data
out into userspace before going back into the kernel. (That's pretty
lame.) The patches for the recent Meltdown/Spectre security issues
have made this overhead even worse, so it's finally time to move this
copying directly into the kernel.
This change adds a couple new FileUtils.copy() methods which inspect
the given streams/FDs, and attempt to do as much optimization as
possible before falling back to a slower userspace-based copy.
Benchmarks are showing typical improvements of 44% for 32KB files,
50% for 32MB files, and 35% for 32MB pipes.
Plenty of tests are included, and there's a simple kill-switch that
can be used to enable/disable the feature if it starts causing any
trouble. (A future CL will enable the optimizations.)
Test: bit FrameworksCoreTests:android.os.FileUtilsTest
Test: vogar --mode app_process --benchmark frameworks/base/core/tests/benchmarks/src/android/os/FileUtilsBenchmark.java
Bug: 71932978
Change-Id: I52518d529da5d961610998b9f61399064d8025cd
Bug: 37891455
Test: manual - open custom phone ringtone picker in settings, navigate
to an .ogg file, and it should be selectable; select it and it should
add itself to the list of available ringtones, and play its sample
correctly.
Change-Id: I33b1ff07d0b43646c807ba0994efa4f6d8d95cae
Experimentally, it makes more sense to more people to have the parent
setting as an overlay not a concrete thing.
Test: make cts -j30 && cts-tradefed run cts --module CtsDevicePolicyManagerTestCases --test 'com.android.cts.devicepolicy.ManagedProfileTest#testRingtoneSyncAutoDisableRingtone' </dev/null 2>&1
Bug: 34730524
Change-Id: I5f804713def9e54921b90e4f5cea742ba8aaa685
Disable the SYNC_PARENT_SOUNDS setting if a work profile ringtone is set
Test: cts-tradefed --test com.android.cts.devicepolicy.ManagedProfileTest
Bug: 30658854
Change-Id: I172f5396b47f03ac8afa365db0ec90f3a2dd0e29
Modify RingtoneManager.getCursor so that the cursor returned also
retrieves the parent profile's ringtones, adding the parent's id to
those ringtones
Test: manual (use ringtone picker in associated CL)
Bug: 30658854
Change-Id: I3b52b0dc41a5a3ff1a71a89fd8a0d33023021aba
Given a Uri, if it is a media file in one of the external ringtone
storages, this API deletes its file and database entry.
Test: manual - associated CL
Bug: 30658854
Change-Id: I987bd18577960f9a2b02ce37a4a2d5d033d7a969
So far, the only way for users to add custom ringtones was to either use
a 3rd party app or copy files to a specific directory in the storage,
and there was no API to make it easier to add custom ringtones.
This CL creates a hidden API in RingtoneManager that allows adding any
audio file as a custom ringtone, by copying that file into the ringtone
storage and asking MediaScanner to scan that file.
This API is not intended to be used by existing apps, but an associated CL
uses it in RingtonePickerActivity
Test: make && vendor/google/tools/flashall, plus manual testing with associated CL
Bug: 30658854
Change-Id: I2b291847c5430e1fc2c3fc6a351b6111a49fcbf3
Deprecate methods where stream types are not used for
volume control operations.
Add a warning in the logs about the use of stream
types to encourage migration to audio attributes.
Since STREAM_ACCESSIBILITY is added in O for the
volume of a11y audio, throw an exception when
trying to use it for playback.
Test: make offline-sdk-docs
Bug: 30955183
Change-Id: I7fcf79f1de68f217a9b19561aa1325ade169dfcf
Otherwise we'll miss a trick and not take the settings provider
shortcut for playing work ringtones.
Bug: 30658854
Change-Id: I378cabe0ba426a2c91919b3df33a525d41fe3d0d
Separate the default system ringtone settings for managed profiles,
which previously used the same default ringtones as the personal profile
they belong to
Bug: 30658854
Change-Id: I22c69c7b8d31c7c424f5e00a3d9febac98b93d74
The Context passed in has already been tied strongly to a specific
user, so resolve Settings based on that user.
Bug: 27568161
Change-Id: I1365c25f97c4177afe592d7c9f410eab777110e7
When setting default ringtones, RingtoneManager now caches the
selected media for playback before the device is unlocked. However,
this API hasn't historically required the caller to hold storage
permissions.
To keep this working, we attempt to delegate ringtone access over
through RingtonePlayer, which is what we do for playback. However,
because we're caching the real ringtone bits now, we need to be much
more careful about the PFDs we're willing to return. This change
requires that they be in external storage, and that they have the
ringtone/alarm/notification bit set.
Bug: 27366059
Change-Id: I59c2adc1d1250a3eac281f190f35a7cb3119967b
Ringtones often live on shared media, which is now encrypted with CE
keys and not available until after the user is unlocked. To improve
the user experience while locked, cache the default ringtone,
notification sound, and alarm sound in a DE storage area.
Bug: 26730753
Change-Id: Ie6ad7790af4c87dd25759df3ed017e3b91a2fb87
When querying for ringtones, only look for ringtones on external
storage when the caller has READ_EXTERNAL_STORAGE.
Document this behavior in the javadoc of the affected methods.
Bug 22545684
Change-Id: Iae9c9a4ccaf635da8af2ac289b6b4df1b16c5d11
Add EXTRA_RINGTONE_AUDIO_ATTRIBUTES_FLAGS to allow specifying
AudioAttributes flags that will be used when playing the
Ringtone.
Bug 19407114
Change-Id: I56a77d7308b21afc0766356e1b6a2d76dca21221
Introduce IRingtonePlayer, which handles playback for both Ringtone
objects and Notifications. SystemUI now hosts this player, which it
registers with AudioService. It also keeps MediaPlayer instances
warm, and cleans them up after stop() or Binder death.
Move both Ringtone and NotificationManagerService to play back audio
through this new interface.
Bug: 6376128, 6350773
Change-Id: I1dcb86d16ee3c4f07cdb2248d33dcff4ead3609a
To give RINGTONE_PICKER external storage access, move it from system
to MediaProvider. Fix OOBE when getRingtoneUri() kicked requery().
Bug: 6346701
Change-Id: I837002eef0580b8cdd8920a27b068c745995a8a3
- Add one more column in MediaStore to indicate whether a
media file is drm-protected.
- Remove old DRM code from Ringtone
- Use the new DRM code in RingtoneManager
Change-Id: I1311fd1c04841c2cd47df6c901589966cf55a692
framework classes to deal with the new property. Also update various
documentation that mentions the default ringtones.
Use the build property as the default alert when the user has not chosen
an alert for an alarm. This is also used if the alarm alert is null when
the alarm fires.
BUG=1723684
Automated import of CL 145870