1//
2// Copyright (C) 2024 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17package {
18    default_applicable_licenses: ["Android-Apache-2.0"],
19}
20
21// Local modifications:
22// * removed com.google.android.geo.API_KEY key. This should be added to
23//      the manifest files in java/com/android/incallui/calllocation/impl/
24//      and /java/com/android/incallui/maps/impl/
25// * b/62417801 modify translation string naming convention:
26//      $ find . -type d | grep 262 | rename    ",s/(values)\-([a-zA-Z\+\-]+)\-(mcc262-mnc01)/$1-$3-$2/'
27// * b/37077388 temporarily disable proguard with javac
28// * b/62875795 include manually generated GRPC service class:
29//      $ protoc --plugin=protoc-gen-grpc-java=prebuilts/tools/common/m2/repository/io/grpc/protoc-gen-grpc-java/1.0.3/protoc-gen-grpc-java-1.0.3-linux-x86_64.exe
30//               --grpc-java_out=lite:"packages/apps/Dialer/java/com/android/voicemail/impl/"
31//               --proto_path="packages/apps/Dialer/java/com/android/voicemail/impl/transcribe/grpc/" "packages/apps/Dialer/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto"
32
33// Extracted from previous packages.mk and subtracted EXCLUDE_EXTRA_PACKAGES.
34EXTRA_PACKAGE_FLAGS = [
35    "--auto-add-overlay",
36    "--extra-packages com.android.assets.product",
37    "--extra-packages com.android.assets.quantum",
38    "--extra-packages com.android.bubble",
39    "--extra-packages com.android.contacts.common",
40    "--extra-packages com.android.dialer.about",
41    "--extra-packages com.android.dialer.app",
42    "--extra-packages com.android.dialer.app.manifests.activities",
43    "--extra-packages com.android.dialer.assisteddialing",
44    "--extra-packages com.android.dialer.assisteddialing.ui",
45    "--extra-packages com.android.dialer.backup",
46    "--extra-packages com.android.dialer.blocking",
47    "--extra-packages com.android.dialer.blockreportspam",
48    "--extra-packages com.android.dialer.callcomposer",
49    "--extra-packages com.android.dialer.callcomposer.camera",
50    "--extra-packages com.android.dialer.callcomposer.camera.camerafocus",
51    "--extra-packages com.android.dialer.callcomposer.cameraui",
52    "--extra-packages com.android.dialer.calldetails",
53    "--extra-packages com.android.dialer.calllog.config",
54    "--extra-packages com.android.dialer.calllog.database",
55    "--extra-packages com.android.dialer.calllog.ui",
56    "--extra-packages com.android.dialer.calllog.ui.menu",
57    "--extra-packages com.android.dialer.calllogutils",
58    "--extra-packages com.android.dialer.clipboard",
59    "--extra-packages com.android.dialer.commandline",
60    "--extra-packages com.android.dialer.common",
61    "--extra-packages com.android.dialer.common.concurrent.testing",
62    "--extra-packages com.android.dialer.common.preference",
63    "--extra-packages com.android.dialer.configprovider",
64    "--extra-packages com.android.dialer.contacts.displaypreference",
65    "--extra-packages com.android.dialer.contacts.resources",
66    "--extra-packages com.android.dialer.contactphoto",
67    "--extra-packages com.android.dialer.contactsfragment",
68    "--extra-packages com.android.dialer.databasepopulator",
69    "--extra-packages com.android.dialer.dialpadview",
70    "--extra-packages com.android.dialer.dialpadview.theme",
71    "--extra-packages com.android.dialer.enrichedcall.simulator",
72    "--extra-packages com.android.dialer.feedback",
73    "--extra-packages com.android.dialer.glidephotomanager.impl",
74    "--extra-packages com.android.dialer.historyitemactions",
75    "--extra-packages com.android.dialer.interactions",
76    "--extra-packages com.android.dialer.lettertile",
77    "--extra-packages com.android.dialer.location",
78    "--extra-packages com.android.dialer.main.impl",
79    "--extra-packages com.android.dialer.main.impl.toolbar",
80    "--extra-packages com.android.dialer.main.impl.bottomnav",
81    "--extra-packages com.android.dialer.notification",
82    "--extra-packages com.android.dialer.oem",
83    "--extra-packages com.android.dialer.phonelookup.database",
84    "--extra-packages com.android.dialer.phonenumberutil",
85    "--extra-packages com.android.dialer.postcall",
86    "--extra-packages com.android.dialer.precall.impl",
87    "--extra-packages com.android.dialer.precall.externalreceiver",
88    "--extra-packages com.android.dialer.preferredsim.impl",
89    "--extra-packages com.android.dialer.preferredsim.suggestion",
90    "--extra-packages com.android.dialer.promotion.impl",
91    "--extra-packages com.android.dialer.rtt",
92    "--extra-packages com.android.dialer.searchfragment.common",
93    "--extra-packages com.android.dialer.searchfragment.cp2",
94    "--extra-packages com.android.dialer.searchfragment.directories",
95    "--extra-packages com.android.dialer.searchfragment.list",
96    "--extra-packages com.android.dialer.searchfragment.nearbyplaces",
97    "--extra-packages com.android.dialer.searchfragment.remote",
98    "--extra-packages com.android.dialer.shortcuts",
99    "--extra-packages com.android.dialer.simulator.impl",
100    "--extra-packages com.android.dialer.simulator.service",
101    "--extra-packages com.android.dialer.spam.promo",
102    "--extra-packages com.android.dialer.speeddial",
103    "--extra-packages com.android.dialer.spannable",
104    "--extra-packages com.android.dialer.theme",
105    "--extra-packages com.android.dialer.theme.base",
106    "--extra-packages com.android.dialer.theme.base.impl",
107    "--extra-packages com.android.dialer.theme.common",
108    "--extra-packages com.android.dialer.theme.hidden",
109    "--extra-packages com.android.dialer.util",
110    "--extra-packages com.android.dialer.voicemail.listui",
111    "--extra-packages com.android.dialer.voicemail.listui.error",
112    "--extra-packages com.android.dialer.voicemail.listui.menu",
113    "--extra-packages com.android.dialer.voicemail.settings",
114    "--extra-packages com.android.dialer.voicemailstatus",
115    "--extra-packages com.android.dialer.widget",
116    "--extra-packages com.android.incallui",
117    "--extra-packages com.android.incallui.answer.impl.affordance",
118    "--extra-packages com.android.incallui.answer.impl",
119    "--extra-packages com.android.incallui.answer.impl.answermethod",
120    "--extra-packages com.android.incallui.answer.impl.hint",
121    "--extra-packages com.android.incallui.audioroute",
122    "--extra-packages com.android.incallui.autoresizetext",
123    "--extra-packages com.android.incallui.callpending",
124    "--extra-packages com.android.incallui.commontheme",
125    "--extra-packages com.android.incallui.contactgrid",
126    "--extra-packages com.android.incallui.disconnectdialog",
127    "--extra-packages com.android.incallui.hold",
128    "--extra-packages com.android.incallui.incall.impl",
129    "--extra-packages com.android.incallui.rtt.impl",
130    "--extra-packages com.android.incallui.rtt.protocol",
131    "--extra-packages com.android.incallui.speakeasy",
132    "--extra-packages com.android.incallui.sessiondata",
133    "--extra-packages com.android.incallui.spam",
134    "--extra-packages com.android.incallui.speakerbuttonlogic",
135    "--extra-packages com.android.incallui.telecomeventui",
136    "--extra-packages com.android.incallui.video.impl",
137    "--extra-packages com.android.incallui.video.protocol",
138    "--extra-packages com.android.phoneapphelper",
139    "--extra-packages com.android.voicemail",
140    "--extra-packages com.android.voicemail.impl",
141    "--extra-packages com.android.voicemail.impl.configui",
142    "--extra-packages me.leolin.shortcutbadger",
143]
144
145filegroup {
146    name: "dialer_manifests",
147    srcs: ["**/AndroidManifest.xml"],
148    exclude_srcs: [
149        "java/com/android/dialer/binary/aosp/testing/AndroidManifest.xml",
150        "java/com/android/dialer/binary/google/AndroidManifest.xml",
151        "java/com/android/incallui/calllocation/impl/AndroidManifest.xml",
152        "java/com/android/incallui/maps/impl/AndroidManifest.xml",
153    ],
154}
155
156// Subtraction(RES_DIRS - EXCLUDE_RESOURCE_DIRECTORIES).
157RES_DIRS = [
158    "assets/product/res",
159    "assets/quantum/res",
160    "java/com/android/contacts/common/res",
161    "java/com/android/dialer/about/res",
162    "java/com/android/dialer/app/res",
163    "java/com/android/dialer/app/voicemail/error/res",
164    "java/com/android/dialer/assisteddialing/res",
165    "java/com/android/dialer/assisteddialing/ui/res",
166    "java/com/android/dialer/blocking/res",
167    "java/com/android/dialer/blockreportspam/res",
168    "java/com/android/dialer/callcomposer/camera/camerafocus/res",
169    "java/com/android/dialer/callcomposer/cameraui/res",
170    "java/com/android/dialer/callcomposer/res",
171    "java/com/android/dialer/calldetails/res",
172    "java/com/android/dialer/calllog/ui/menu/res",
173    "java/com/android/dialer/calllog/ui/res",
174    "java/com/android/dialer/calllogutils/res",
175    "java/com/android/dialer/clipboard/res",
176    "java/com/android/dialer/common/preference/res",
177    "java/com/android/dialer/common/res",
178    "java/com/android/dialer/contactphoto/res",
179    "java/com/android/dialer/contacts/displaypreference/res",
180    "java/com/android/dialer/contacts/resources/res",
181    "java/com/android/dialer/contactsfragment/res",
182    "java/com/android/dialer/dialpadview/res",
183    "java/com/android/dialer/dialpadview/theme/res",
184    "java/com/android/dialer/enrichedcall/simulator/res",
185    "java/com/android/dialer/glidephotomanager/impl/res",
186    "java/com/android/dialer/historyitemactions/res",
187    "java/com/android/dialer/interactions/res",
188    "java/com/android/dialer/lettertile/res",
189    "java/com/android/dialer/main/impl/bottomnav/res",
190    "java/com/android/dialer/main/impl/res",
191    "java/com/android/dialer/main/impl/toolbar/res",
192    "java/com/android/dialer/notification/res",
193    "java/com/android/dialer/oem/res",
194    "java/com/android/dialer/phonenumberutil/res",
195    "java/com/android/dialer/postcall/res",
196    "java/com/android/dialer/precall/impl/res",
197    "java/com/android/dialer/preferredsim/impl/res",
198    "java/com/android/dialer/preferredsim/suggestion/res",
199    "java/com/android/dialer/promotion/impl/res",
200    "java/com/android/dialer/rtt/res",
201    "java/com/android/dialer/searchfragment/common/res",
202    "java/com/android/dialer/searchfragment/cp2/res",
203    "java/com/android/dialer/searchfragment/directories/res",
204    "java/com/android/dialer/searchfragment/list/res",
205    "java/com/android/dialer/searchfragment/nearbyplaces/res",
206    "java/com/android/dialer/searchfragment/remote/res",
207    "java/com/android/dialer/shortcuts/res",
208    "java/com/android/dialer/spam/promo/res",
209    "java/com/android/dialer/spannable/res",
210    "java/com/android/dialer/speeddial/res",
211    "java/com/android/dialer/theme/base/res",
212    "java/com/android/dialer/theme/common/res",
213    "java/com/android/dialer/theme/hidden/res",
214    "java/com/android/dialer/theme/res",
215    "java/com/android/dialer/util/res",
216    "java/com/android/dialer/voicemail/listui/error/res",
217    "java/com/android/dialer/voicemail/listui/res",
218    "java/com/android/dialer/voicemail/settings/res",
219    "java/com/android/dialer/widget/res",
220    "java/com/android/incallui/answer/impl/affordance/res",
221    "java/com/android/incallui/answer/impl/answermethod/res",
222    "java/com/android/incallui/answer/impl/hint/res",
223    "java/com/android/incallui/answer/impl/res",
224    "java/com/android/incallui/audioroute/res",
225    "java/com/android/incallui/autoresizetext/res",
226    "java/com/android/incallui/calllocation/impl/res",
227    "java/com/android/incallui/callpending/res",
228    "java/com/android/incallui/commontheme/res",
229    "java/com/android/incallui/contactgrid/res",
230    "java/com/android/incallui/disconnectdialog/res",
231    "java/com/android/incallui/hold/res",
232    "java/com/android/incallui/incall/impl/res",
233    "java/com/android/incallui/res",
234    "java/com/android/incallui/rtt/impl/res",
235    "java/com/android/incallui/sessiondata/res",
236    "java/com/android/incallui/spam/res",
237    "java/com/android/incallui/speakerbuttonlogic/res",
238    "java/com/android/incallui/telecomeventui/res",
239    "java/com/android/incallui/theme/res",
240    "java/com/android/incallui/video/impl/res",
241    "java/com/android/incallui/video/protocol/res",
242    "java/com/android/voicemail/impl/configui/res",
243    "java/com/android/voicemail/impl/res",
244]
245
246android_app {
247    name: "Dialer",
248    use_resource_processor: false,
249    srcs: [
250        "java/com/android/**/*.java",
251        "java/com/android/**/*.proto",
252        "java/com/android/**/*.aidl",
253    ],
254    exclude_srcs: [
255        // Exclude files incompatible with AOSP.
256        "java/com/android/incallui/calllocation/impl/AuthException.java",
257        "java/com/android/incallui/calllocation/impl/CallLocationImpl.java",
258        "java/com/android/incallui/calllocation/impl/CallLocationModule.java",
259        "java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java",
260        "java/com/android/incallui/calllocation/impl/GoogleLocationSettingHelper.java",
261        "java/com/android/incallui/calllocation/impl/HttpFetcher.java",
262        "java/com/android/incallui/calllocation/impl/LocationFragment.java",
263        "java/com/android/incallui/calllocation/impl/LocationHelper.java",
264        "java/com/android/incallui/calllocation/impl/LocationPresenter.java",
265        "java/com/android/incallui/calllocation/impl/LocationUrlBuilder.java",
266        "java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java",
267        "java/com/android/incallui/calllocation/impl/TrafficStatsTags.java",
268        "java/com/android/incallui/maps/impl/MapsImpl.java",
269        "java/com/android/incallui/maps/impl/MapsModule.java",
270        "java/com/android/incallui/maps/impl/StaticMapFragment.java",
271        // Exclude testing only class, not used anywhere here
272        "java/com/android/contacts/common/format/testing/SpannedTestUtils.java",
273        // Exclude rootcomponentgenerator
274        "java/com/android/dialer/rootcomponentgenerator/**/*.java",
275        "java/com/android/dialer/inject/demo/**/*.java",
276        //  Exclude build variants for now
277        "java/com/android/dialer/constants/googledialer/ConstantsImpl.java",
278        "java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java",
279        "java/com/android/dialer/binary/google/GoogleStubDialerApplication.java",
280        // b/62875795
281        "java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java",
282    ],
283    additional_manifests: [":dialer_manifests"],
284    aidl: {
285        local_include_dirs: ["java"],
286    },
287    proto: {
288        local_include_dirs: ["."],
289    },
290    resource_dirs: RES_DIRS,
291
292    aaptflags: EXTRA_PACKAGE_FLAGS,
293
294    // LOCAL_STATIC_JAVA_LIBRARIES + LOCAL_STATIC_ANDROID_LIBRARIES
295    static_libs: [
296        "android-common",
297        "android-support-core-ui",
298        "android-support-design",
299        "android-support-transition",
300        "android-support-v13",
301        "android-support-v4",
302        "android-support-v7-appcompat",
303        "android-support-v7-cardview",
304        "android-support-v7-recyclerview",
305        "android-support-dynamic-animation",
306        "com.android.vcard",
307        "dialer-common-m2-target-deps",
308        "dialer-glide-target-deps",
309        "error_prone_annotations",
310        "jsr305",
311        "libbackup",
312        "libphonenumber",
313        "volley",
314        "zxing-core-1.7",
315    ],
316    libs: [
317        "auto_value_annotations",
318        "org.apache.http.legacy.stubs.system",
319    ],
320    // LOCAL_ANNOTATION_PROCESSORS
321    plugins: [
322        "auto_value_plugin",
323        "dialer-dagger2-compiler",
324        "dialer-glide-annotation-processor",
325        "dialer_rootcomponentprocessor_plugin",
326    ],
327    // Forcibly uses the same jdk version used in dialer-rootcomponentprocessor.
328    java_version: "1.8",
329    optimize: {
330        proguard_flags_files: ["**/proguard.flags"],
331        // LOCAL_PROGUARD_ENABLED := custom
332        no_aapt_flags: true,
333        enabled: true,
334        optimize: true,
335    },
336    sdk_version: "system_current",
337    certificate: "shared",
338    privileged: true,
339    product_specific: true,
340    required: [
341        "privapp_whitelist_com.android.dialer",
342    ],
343    uses_libs: ["org.apache.http.legacy"],
344}
345
346java_library_host {
347    name: "dialer-rootcomponentprocessor",
348    srcs: [
349        "java/com/android/dialer/rootcomponentgenerator/**/*.java",
350        "java/com/android/dialer/inject/DialerRootComponent.java",
351        "java/com/android/dialer/inject/DialerVariant.java",
352        "java/com/android/dialer/inject/HasRootComponent.java",
353        "java/com/android/dialer/inject/IncludeInDialerRoot.java",
354        "java/com/android/dialer/inject/InstallIn.java",
355        "java/com/android/dialer/inject/RootComponentGeneratorMetadata.java",
356    ],
357    static_libs: [
358        "auto_service_annotations",
359        "auto_common",
360        "dialer-common-m2-host-deps",
361        "error_prone_annotations",
362        "javapoet",
363    ],
364    java_version: "1.8",
365}
366
367java_plugin {
368    name: "dialer_rootcomponentprocessor_plugin",
369    static_libs: ["dialer-rootcomponentprocessor"],
370    processor_class: "com.android.dialer.rootcomponentgenerator.RootComponentProcessor",
371    visibility: ["//packages/apps/Dialer"],
372}
373