
The main demo app was still targeting API 29 to avoid scoped storage restrictions. It is now updated to 34 (like the rest of the demo apps) and handles scoped storage as it should handle it. More specifically: - We need to request READ_MEDIA_... permissions instead of READ_EXTERNAL_STORAGE from API33. - The legacy scoped storage opt-out can be removed - READ_MEDIA_... permissions don't allow arbitrary file access if the file doesn't end in a typical media file extension, so this change adds a remark on the guide page to place samples in the app-specific directory. - We also don't have to request permissions for the app-specific directories. - Custom json files can't be placed in arbitray local locations because they don't end in a media file extension, as there is no way we can request a permission to load them. This means we can remove the storage request logic in SampleChooserActivity. Issue: google/ExoPlayer#6045 PiperOrigin-RevId: 549252474
65 lines
2.6 KiB
Groovy
65 lines
2.6 KiB
Groovy
// Copyright 2017 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
project.ext {
|
|
releaseVersion = '1.1.0'
|
|
releaseVersionCode = 1_001_000_3_00
|
|
minSdkVersion = 16
|
|
appTargetSdkVersion = 34
|
|
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some
|
|
// additional robolectric config.
|
|
targetSdkVersion = 30
|
|
compileSdkVersion = 34
|
|
dexmakerVersion = '2.28.3'
|
|
junitVersion = '4.13.2'
|
|
// Use the same Guava version as the Android repo:
|
|
// https://cs.android.com/android/platform/superproject/+/master:external/guava/METADATA
|
|
guavaVersion = '31.1-android'
|
|
mockitoVersion = '3.12.4'
|
|
robolectricVersion = '4.10.3'
|
|
// Keep this in sync with Google's internal Checker Framework version.
|
|
checkerframeworkVersion = '3.13.0'
|
|
errorProneVersion = '2.18.0'
|
|
jsr305Version = '3.0.2'
|
|
kotlinAnnotationsVersion = '1.8.20'
|
|
// Updating this to 1.4.0+ will import Kotlin stdlib [internal ref: b/277891049].
|
|
androidxAnnotationVersion = '1.3.0'
|
|
// Updating this to 1.3.0+ will import Kotlin stdlib [internal ref: b/277891049].
|
|
androidxAnnotationExperimentalVersion = '1.2.0'
|
|
androidxAppCompatVersion = '1.6.1'
|
|
androidxCollectionVersion = '1.2.0'
|
|
androidxConstraintLayoutVersion = '2.1.4'
|
|
// Updating this to 1.9.0+ will import Kotlin stdlib [internal ref: b/277891049].
|
|
androidxCoreVersion = '1.8.0'
|
|
androidxExifInterfaceVersion = '1.3.6'
|
|
androidxFuturesVersion = '1.1.0'
|
|
androidxMediaVersion = '1.6.0'
|
|
androidxMedia2Version = '1.2.1'
|
|
androidxMultidexVersion = '2.0.1'
|
|
androidxRecyclerViewVersion = '1.3.0'
|
|
androidxMaterialVersion = '1.8.0'
|
|
androidxTestCoreVersion = '1.5.0'
|
|
androidxTestEspressoVersion = '3.5.1'
|
|
androidxTestJUnitVersion = '1.1.5'
|
|
androidxTestRunnerVersion = '1.5.2'
|
|
androidxTestRulesVersion = '1.5.0'
|
|
androidxTestServicesStorageVersion = '1.4.2'
|
|
androidxTestTruthVersion = '1.5.0'
|
|
truthVersion = '1.1.3'
|
|
okhttpVersion = '4.11.0'
|
|
modulePrefix = ':'
|
|
if (gradle.ext.has('androidxMediaModulePrefix')) {
|
|
modulePrefix += gradle.ext.androidxMediaModulePrefix
|
|
}
|
|
}
|