lin
2025-08-14 dae8bad597b6607a449b32bf76c523423f7720ed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
java_library {
    name: "updatable-media",
 
    srcs: [
        ":updatable-media-srcs",
    ],
 
    aidl: {
        export_include_dirs: [
            "apex/java",
        ],
 
        // It would be great if we don't need to add include_dirs for public
        // parcelable classes. Find a better way.
        include_dirs: [
            // To refer:
            // android.os.Bundle
            // android.os.ResultReceiver
            "frameworks/base/core/java",
        ],
    },
 
    permitted_packages: [
        "android.media",
    ],
 
    installable: true,
 
    // Make sure that the implementaion only relies on SDK or system APIs.
    no_framework_libs: true,
    libs: [
        // The order matters. android_system_* library should come later.
        "framework_media_annotation",
        "android_system_stubs_current",
    ],
}
 
filegroup {
    name: "updatable-media-srcs",
    srcs: [
        ":mediasession2-srcs",
    ],
}
 
filegroup {
    name: "updatable-media-srcs-without-aidls",
    srcs : [
        ":mediasession2-srcs-without-aidls",
    ],
}
 
filegroup {
    name: "mediasession2-srcs",
    srcs: [
        "apex/java/android/media/Controller2Link.java",
        "apex/java/android/media/IMediaController2.aidl",
        "apex/java/android/media/IMediaSession2.aidl",
        "apex/java/android/media/IMediaSession2Service.aidl",
        "apex/java/android/media/MediaConstants.java",
        "apex/java/android/media/MediaController2.java",
        "apex/java/android/media/MediaSession2.java",
        "apex/java/android/media/MediaSession2Service.java",
        "apex/java/android/media/Session2Command.java",
        "apex/java/android/media/Session2CommandGroup.java",
        "apex/java/android/media/Session2Link.java",
        "apex/java/android/media/Session2Token.java",
    ],
}
 
filegroup {
    name: "mediasession2-srcs-without-aidls",
    srcs: [
        ":mediasession2-srcs",
    ],
    exclude_srcs: [
        "apex/java/android/media/IMediaController2.aidl",
        "apex/java/android/media/IMediaSession2.aidl",
        "apex/java/android/media/IMediaSession2Service.aidl",
    ],
}
 
filegroup {
    name: "mediaplayer2-srcs",
    srcs: [
        "apex/java/android/media/CloseGuard.java",
        "apex/java/android/media/DataSourceCallback.java",
        "apex/java/android/media/DataSourceDesc.java",
        "apex/java/android/media/UriDataSourceDesc.java",
        "apex/java/android/media/FileDataSourceDesc.java",
        "apex/java/android/media/Media2Utils.java",
        "apex/java/android/media/MediaPlayer2Utils.java",
        "apex/java/android/media/MediaPlayer2.java",
        "apex/java/android/media/Media2HTTPService.java",
        "apex/java/android/media/Media2HTTPConnection.java",
        "apex/java/android/media/RoutingDelegate.java",
        "apex/java/android/media/BufferingParams.java",
        "apex/java/android/media/ProxyDataSourceCallback.java",
    ],
}
 
metalava_updatable_media_args = " --error UnhiddenSystemApi " +
    "--hide RequiresPermission " +
    "--hide MissingPermission --hide BroadcastBehavior " +
    "--hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol " +
    "--hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo " +
    "--hide HiddenTypedefConstant --show-annotation android.annotation.SystemApi "
 
droidstubs {
    name: "updatable-media-stubs",
    srcs: [
        ":updatable-media-srcs-without-aidls",
        ":framework-media-annotation-srcs",
    ],
    args: metalava_updatable_media_args,
    // Ideally, sdk_version here should be "current_system", but "current - 1" is used
    // to avoid dependency cycle with framework.
    sdk_version: "28",
}
 
java_library {
    name: "updatable_media_stubs",
    srcs: [":updatable-media-stubs"],
    // Ideally, sdk_version here should be "current_system", but "current - 1" is used
    // to avoid dependency cycle with framework.
    sdk_version: "28",
}
 
java_library {
    name: "framework_media_annotation",
    srcs: [":framework-media-annotation-srcs"],
    installable: false,
}