package { // See: http://go/android-license-faq default_applicable_licenses: ["Android-Apache-2.0"], } android_app { name: "MediaProvider", manifest: "AndroidManifest.xml", static_libs: [ "modules-utils-backgroundthread", "androidx.appcompat_appcompat", "androidx.core_core", "androidx.legacy_legacy-support-core-ui", "androidx.lifecycle_lifecycle-extensions", "androidx.recyclerview_recyclerview", "com.google.android.material_material", "guava", "modules-utils-build", "modules-utils-uieventlogger-interface", "glide-prebuilt", "glide-gifdecoder-prebuilt", "glide-disklrucache-prebuilt", "glide-annotation-and-compiler-prebuilt", "androidx.fragment_fragment", "androidx.vectordrawable_vectordrawable-animated", "androidx.exifinterface_exifinterface", "exoplayer-mediaprovider-ui", ], libs: [ "unsupportedappusage", "app-compat-annotations", "framework-annotations-lib", "framework-mediaprovider.impl", "framework-media.stubs.module_lib", "framework-statsd", ], jni_libs: [ "libfuse_jni", "libfuse", ], resource_dirs: [ "res", ], srcs: [ ":mediaprovider-sources", ], optimize: { shrink: true, optimize: false, obfuscate: false, proguard_flags_files: ["proguard.flags"], }, plugins: [ "java_api_finder", "error_prone_mediaprovider", "glide-annotation-processor", ], jarjar_rules: "jarjar-rules.txt", sdk_version: "module_current", min_sdk_version: "30", certificate: "media", privileged: true, aaptflags: ["--custom-package com.android.providers.media"], errorprone: { javacflags: [ "-Xep:FallThrough:ERROR", "-Xep:GuardedBy:ERROR", "-Xep:StreamResourceLeak:ERROR", // Local checkers specific to this module "-Xep:MediaProviderLocaleRoot:ERROR", "-Xep:MediaProviderMimeType:ERROR", ], }, required: [ "preinstalled-packages-com.android.providers.media.module.xml", "privapp_allowlist_com.android.providers.media.module.xml", ], lint: { strict_updatability_linting: true, }, } // Used by MediaProvider and MediaProviderTests filegroup { name: "mediaprovider-sources", srcs: [ "src/**/*.aidl", "src/**/*.java", ":statslog-mediaprovider-java-gen", ], } // This is defined to give LegacyMediaProvider the bare minimum it needs // to keep the legacy database schema working while also building // against "system_current" java_library { name: "mediaprovider-database", srcs: [ "src/com/android/providers/media/DatabaseHelper.java", "src/com/android/providers/media/util/DatabaseUtils.java", "src/com/android/providers/media/util/FileUtils.java", "src/com/android/providers/media/util/ForegroundThread.java", "src/com/android/providers/media/util/Logging.java", "src/com/android/providers/media/util/MimeUtils.java", "src/com/android/providers/media/util/StringUtils.java", "src/com/android/providers/media/playlist/*.java", "src/com/android/providers/media/dao/*.java", ], sdk_version: "module_current", min_sdk_version: "30", static_libs: [ "modules-utils-backgroundthread", "modules-utils-build", "guava", ], libs: [ "androidx.annotation_annotation", "framework-annotations-lib", "framework-mediaprovider", ], } platform_compat_config { name: "media-provider-platform-compat-config", src: ":MediaProvider", } genrule { name: "statslog-mediaprovider-java-gen", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --java $(out) --module mediaprovider" + " --javaPackage com.android.providers.media --javaClass MediaProviderStatsLog" + " --minApiLevel 30", out: ["com/android/providers/media/MediaProviderStatsLog.java"], } prebuilt_etc { name: "preinstalled-packages-com.android.providers.media.module.xml", src: "preinstalled-packages-com.android.providers.media.module.xml", sub_dir: "sysconfig", }