1# Copyright 2019 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/config/android/rules.gni")
6
7android_library("java") {
8  sources = [
9    "java/src/org/chromium/components/browser_ui/widget/AlwaysDismissedDialog.java",
10    "java/src/org/chromium/components/browser_ui/widget/BoundedLinearLayout.java",
11    "java/src/org/chromium/components/browser_ui/widget/ClipDrawableProgressBar.java",
12    "java/src/org/chromium/components/browser_ui/widget/CompositeTouchDelegate.java",
13    "java/src/org/chromium/components/browser_ui/widget/ContextMenuDialog.java",
14    "java/src/org/chromium/components/browser_ui/widget/CoordinatorLayoutForPointer.java",
15    "java/src/org/chromium/components/browser_ui/widget/DateDividedAdapter.java",
16    "java/src/org/chromium/components/browser_ui/widget/DualControlLayout.java",
17    "java/src/org/chromium/components/browser_ui/widget/FadingEdgeScrollView.java",
18    "java/src/org/chromium/components/browser_ui/widget/FadingShadow.java",
19    "java/src/org/chromium/components/browser_ui/widget/FadingShadowView.java",
20    "java/src/org/chromium/components/browser_ui/widget/FeatureHighlightProvider.java",
21    "java/src/org/chromium/components/browser_ui/widget/InsetObserverView.java",
22    "java/src/org/chromium/components/browser_ui/widget/LoadingView.java",
23    "java/src/org/chromium/components/browser_ui/widget/MaterialProgressBar.java",
24    "java/src/org/chromium/components/browser_ui/widget/MenuOrKeyboardActionController.java",
25    "java/src/org/chromium/components/browser_ui/widget/MoreProgressButton.java",
26    "java/src/org/chromium/components/browser_ui/widget/NumberRollView.java",
27    "java/src/org/chromium/components/browser_ui/widget/PaddedFrameLayout.java",
28    "java/src/org/chromium/components/browser_ui/widget/PromoDialog.java",
29    "java/src/org/chromium/components/browser_ui/widget/PromoDialogLayout.java",
30    "java/src/org/chromium/components/browser_ui/widget/RadioButtonLayout.java",
31    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescription.java",
32    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionAndAuxButton.java",
33    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionLayout.java",
34    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java",
35    "java/src/org/chromium/components/browser_ui/widget/RoundedCornerImageView.java",
36    "java/src/org/chromium/components/browser_ui/widget/RoundedIconGenerator.java",
37    "java/src/org/chromium/components/browser_ui/widget/TintedDrawable.java",
38    "java/src/org/chromium/components/browser_ui/widget/ViewResourceFrameLayout.java",
39    "java/src/org/chromium/components/browser_ui/widget/WrappingLayout.java",
40    "java/src/org/chromium/components/browser_ui/widget/animation/CancelAwareAnimatorListener.java",
41    "java/src/org/chromium/components/browser_ui/widget/animation/FocusAnimator.java",
42    "java/src/org/chromium/components/browser_ui/widget/animation/Interpolators.java",
43    "java/src/org/chromium/components/browser_ui/widget/async_image/AsyncImageView.java",
44    "java/src/org/chromium/components/browser_ui/widget/async_image/AutoAnimatorDrawable.java",
45    "java/src/org/chromium/components/browser_ui/widget/async_image/ForegroundDrawableCompat.java",
46    "java/src/org/chromium/components/browser_ui/widget/async_image/ForegroundRoundedCornerImageView.java",
47    "java/src/org/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserver.java",
48    "java/src/org/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserverAdapter.java",
49    "java/src/org/chromium/components/browser_ui/widget/displaystyle/HorizontalDisplayStyle.java",
50    "java/src/org/chromium/components/browser_ui/widget/displaystyle/UiConfig.java",
51    "java/src/org/chromium/components/browser_ui/widget/displaystyle/VerticalDisplayStyle.java",
52    "java/src/org/chromium/components/browser_ui/widget/displaystyle/ViewResizer.java",
53    "java/src/org/chromium/components/browser_ui/widget/dragreorder/DragReorderableListAdapter.java",
54    "java/src/org/chromium/components/browser_ui/widget/dragreorder/DragStateDelegate.java",
55    "java/src/org/chromium/components/browser_ui/widget/gesture/SwipeGestureListener.java",
56    "java/src/org/chromium/components/browser_ui/widget/highlight/PulseDrawable.java",
57    "java/src/org/chromium/components/browser_ui/widget/highlight/PulseInterpolator.java",
58    "java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighter.java",
59    "java/src/org/chromium/components/browser_ui/widget/image_tiles/ImageTile.java",
60    "java/src/org/chromium/components/browser_ui/widget/image_tiles/ImageTileCoordinator.java",
61    "java/src/org/chromium/components/browser_ui/widget/image_tiles/ImageTileCoordinatorFactory.java",
62    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileConfig.java",
63    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileCoordinatorImpl.java",
64    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileListModel.java",
65    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileListProperties.java",
66    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileListPropertyViewBinder.java",
67    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileListView.java",
68    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileMediator.java",
69    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileSizeSupplier.java",
70    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileViewHolder.java",
71    "java/src/org/chromium/components/browser_ui/widget/image_tiles/TileViewHolderFactory.java",
72    "java/src/org/chromium/components/browser_ui/widget/impression/ImpressionTracker.java",
73    "java/src/org/chromium/components/browser_ui/widget/impression/OneShotImpressionListener.java",
74    "java/src/org/chromium/components/browser_ui/widget/listmenu/BasicListMenu.java",
75    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenu.java",
76    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuButton.java",
77    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuButtonDelegate.java",
78    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuItemAdapter.java",
79    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuItemProperties.java",
80    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuItemViewBinder.java",
81    "java/src/org/chromium/components/browser_ui/widget/promo/PromoCardCoordinator.java",
82    "java/src/org/chromium/components/browser_ui/widget/promo/PromoCardProperties.java",
83    "java/src/org/chromium/components/browser_ui/widget/promo/PromoCardView.java",
84    "java/src/org/chromium/components/browser_ui/widget/promo/PromoCardViewBinder.java",
85    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimCoordinator.java",
86    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimMediator.java",
87    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimProperties.java",
88    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimView.java",
89    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimViewBinder.java",
90    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableItemView.java",
91    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableItemViewBase.java",
92    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableItemViewHolder.java",
93    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableListLayout.java",
94    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableListToolbar.java",
95    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectionDelegate.java",
96    "java/src/org/chromium/components/browser_ui/widget/text/AccessibleTextView.java",
97    "java/src/org/chromium/components/browser_ui/widget/text/AlertDialogEditText.java",
98    "java/src/org/chromium/components/browser_ui/widget/text/TemplatePreservingTextView.java",
99    "java/src/org/chromium/components/browser_ui/widget/text/TextViewWithCompoundDrawables.java",
100    "java/src/org/chromium/components/browser_ui/widget/text/VerticallyFixedEditText.java",
101    "java/src/org/chromium/components/browser_ui/widget/textbubble/ArrowBubbleDrawable.java",
102    "java/src/org/chromium/components/browser_ui/widget/textbubble/ImageTextBubble.java",
103    "java/src/org/chromium/components/browser_ui/widget/textbubble/TextBubble.java",
104  ]
105
106  deps = [
107    ":java_resources",
108    "//base:base_java",
109    "//components/browser_ui/util/android:java",
110    "//components/embedder_support/android:util_java",
111    "//third_party/android_deps:android_support_v4_java",
112    "//third_party/android_deps:android_support_v7_appcompat_java",
113    "//third_party/android_deps:androidx_annotation_annotation_java",
114    "//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
115    "//third_party/android_deps:androidx_coordinatorlayout_coordinatorlayout_java",
116    "//third_party/android_deps:androidx_interpolator_interpolator_java",
117    "//third_party/android_deps:androidx_recyclerview_recyclerview_java",
118    "//ui/android:ui_java",
119    "//url:gurl_java",
120  ]
121  resources_package = "org.chromium.components.browser_ui.widget"
122}
123
124android_resources("java_resources") {
125  sources = [
126    "java/res/anim/chip_in.xml",
127    "java/res/anim/chip_out.xml",
128    "java/res/anim/image_grid_enter.xml",
129    "java/res/anim/image_tile_enter.xml",
130    "java/res/anim/menu_enter.xml",
131    "java/res/anim/menu_enter_from_bottom.xml",
132    "java/res/anim/menu_exit.xml",
133    "java/res/anim/menu_exit_from_bottom.xml",
134    "java/res/anim/textbubble_in.xml",
135    "java/res/anim/textbubble_out.xml",
136    "java/res/drawable-hdpi/btn_delete_24dp.png",
137    "java/res/drawable-hdpi/btn_info.png",
138    "java/res/drawable-hdpi/ic_arrow_back_white_24dp.png",
139    "java/res/drawable-hdpi/ic_check_googblue_24dp.png",
140    "java/res/drawable-hdpi/ic_more_vert_24dp_on_dark_bg.png",
141    "java/res/drawable-hdpi/ic_more_vert_24dp_on_light_bg.png",
142    "java/res/drawable-mdpi/btn_delete_24dp.png",
143    "java/res/drawable-mdpi/btn_info.png",
144    "java/res/drawable-mdpi/ic_arrow_back_white_24dp.png",
145    "java/res/drawable-mdpi/ic_check_googblue_24dp.png",
146    "java/res/drawable-mdpi/ic_more_vert_24dp_on_dark_bg.png",
147    "java/res/drawable-mdpi/ic_more_vert_24dp_on_light_bg.png",
148    "java/res/drawable-xhdpi/btn_delete_24dp.png",
149    "java/res/drawable-xhdpi/btn_info.png",
150    "java/res/drawable-xhdpi/ic_arrow_back_white_24dp.png",
151    "java/res/drawable-xhdpi/ic_check_googblue_24dp.png",
152    "java/res/drawable-xhdpi/ic_more_vert_24dp_on_dark_bg.png",
153    "java/res/drawable-xhdpi/ic_more_vert_24dp_on_light_bg.png",
154    "java/res/drawable-xxhdpi/btn_delete_24dp.png",
155    "java/res/drawable-xxhdpi/btn_info.png",
156    "java/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png",
157    "java/res/drawable-xxhdpi/ic_check_googblue_24dp.png",
158    "java/res/drawable-xxhdpi/ic_more_vert_24dp_on_dark_bg.png",
159    "java/res/drawable-xxhdpi/ic_more_vert_24dp_on_light_bg.png",
160    "java/res/drawable-xxxhdpi/btn_delete_24dp.png",
161    "java/res/drawable-xxxhdpi/btn_info.png",
162    "java/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.png",
163    "java/res/drawable-xxxhdpi/ic_check_googblue_24dp.png",
164    "java/res/drawable-xxxhdpi/ic_more_vert_24dp_on_dark_bg.png",
165    "java/res/drawable-xxxhdpi/ic_more_vert_24dp_on_light_bg.png",
166    "java/res/drawable/async_image_view_unavailable.xml",
167    "java/res/drawable/async_image_view_waiting.xml",
168    "java/res/drawable/hairline_border_card_background.xml",
169    "java/res/drawable/hairline_border_card_dark_transparent_bg.xml",
170    "java/res/drawable/ic_check_googblue_24dp_animated.xml",
171    "java/res/drawable/ic_settings_gear_24dp.xml",
172    "java/res/drawable/list_item_icon_modern_bg.xml",
173    "java/res/drawable/modern_toolbar_text_box_background.xml",
174    "java/res/drawable/query_tile_overlay.xml",
175    "java/res/drawable/search_toolbar_modern_bg.xml",
176    "java/res/layout/app_menu_divider.xml",
177    "java/res/layout/app_menu_layout.xml",
178    "java/res/layout/date_divided_adapter_header_view_holder.xml",
179    "java/res/layout/dialog_control_description.xml",
180    "java/res/layout/divider_preference.xml",
181    "java/res/layout/expand_arrow_with_separator.xml",
182    "java/res/layout/indeterminate_progress_view.xml",
183    "java/res/layout/list_menu_item.xml",
184    "java/res/layout/modern_list_item_view.xml",
185    "java/res/layout/more_progress_button.xml",
186    "java/res/layout/number_roll_view.xml",
187    "java/res/layout/promo_card_view_compact.xml",
188    "java/res/layout/promo_card_view_large.xml",
189    "java/res/layout/promo_card_view_slim.xml",
190    "java/res/layout/promo_dialog_layout.xml",
191    "java/res/layout/query_tile_view.xml",
192    "java/res/layout/radio_button_layout_element.xml",
193    "java/res/layout/radio_button_with_description.xml",
194    "java/res/layout/radio_button_with_edit_text.xml",
195    "java/res/layout/search_toolbar.xml",
196    "java/res/layout/selectable_list_layout.xml",
197    "java/res/layout/textbubble_text.xml",
198    "java/res/layout/textbubble_text_with_image.xml",
199    "java/res/values-ldrtl/values.xml",
200    "java/res/values-night/colors.xml",
201    "java/res/values-night/drawables.xml",
202    "java/res/values-sw600dp/dimens.xml",
203    "java/res/values/attrs.xml",
204    "java/res/values/colors.xml",
205    "java/res/values/dimens.xml",
206    "java/res/values/drawables.xml",
207    "java/res/values/ids.xml",
208    "java/res/values/styles.xml",
209    "java/res/values/values.xml",
210  ]
211  deps = [
212    "//components/browser_ui/strings/android:browser_ui_strings_grd",
213    "//components/browser_ui/styles/android:java_resources",
214    "//ui/android:ui_java_resources",
215  ]
216}
217
218android_library("test_support_java") {
219  testonly = true
220
221  sources = [
222    "test/java/src/org/chromium/components/browser_ui/widget/RecyclerViewTestUtils.java",
223    "test/java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighterTestUtils.java",
224  ]
225  deps = [
226    ":java",
227    "//base:base_java_test_support",
228    "//content/public/test/android:content_java_test_support",
229    "//third_party/android_deps:androidx_recyclerview_recyclerview_java",
230    "//third_party/hamcrest:hamcrest_library_java",
231  ]
232}
233
234android_library("javatests") {
235  testonly = true
236
237  sources = [
238    "java/src/org/chromium/components/browser_ui/widget/DualControlLayoutTest.java",
239    "java/src/org/chromium/components/browser_ui/widget/MoreProgressButtonTest.java",
240    "java/src/org/chromium/components/browser_ui/widget/PromoDialogRenderTest.java",
241    "java/src/org/chromium/components/browser_ui/widget/PromoDialogTest.java",
242    "java/src/org/chromium/components/browser_ui/widget/RadioButtonLayoutTest.java",
243    "java/src/org/chromium/components/browser_ui/widget/RadioButtonRenderTest.java",
244    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionAndAuxButtonTest.java",
245    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionLayoutTest.java",
246    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditTextTest.java",
247    "java/src/org/chromium/components/browser_ui/widget/RoundedIconGeneratorTest.java",
248    "java/src/org/chromium/components/browser_ui/widget/WrappingLayoutTest.java",
249    "java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighterTest.java",
250    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuRenderTest.java",
251    "java/src/org/chromium/components/browser_ui/widget/promo/PromoCardCoordinatorTest.java",
252    "java/src/org/chromium/components/browser_ui/widget/promo/PromoCardImpressionTest.java",
253    "java/src/org/chromium/components/browser_ui/widget/promo/PromoCardViewRenderTest.java",
254    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimTest.java",
255  ]
256  deps = [
257    ":java",
258    ":java_resources",
259    ":java_test_resources",
260    ":test_support_java",
261    "//base:base_java",
262    "//base:base_java_test_support",
263    "//content/public/test/android:content_java_test_support",
264    "//third_party/android_deps:androidx_annotation_annotation_java",
265    "//third_party/android_deps:androidx_appcompat_appcompat_java",
266    "//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
267    "//third_party/android_deps:androidx_core_core_java",
268    "//third_party/android_deps:androidx_test_runner_java",
269    "//third_party/android_support_test_runner:rules_java",
270    "//third_party/android_support_test_runner:runner_java",
271    "//third_party/hamcrest:hamcrest_java",
272    "//third_party/junit",
273    "//third_party/mockito:mockito_java",
274    "//ui/android:ui_java",
275    "//ui/android:ui_java_test_support",
276  ]
277  resources_package = "org.chromium.components.browser_ui.widget.test"
278}
279
280android_resources("java_test_resources") {
281  testonly = true
282
283  sources = [
284    "test/java/res/drawable-hdpi/promo_dialog_test_drawable.png",
285    "test/java/res/drawable-mdpi/promo_dialog_test_drawable.png",
286    "test/java/res/drawable-xhdpi/promo_dialog_test_drawable.png",
287    "test/java/res/drawable-xxhdpi/promo_dialog_test_drawable.png",
288    "test/java/res/drawable-xxxhdpi/promo_dialog_test_drawable.png",
289    "test/java/res/drawable/promo_dialog_test_vector.xml",
290    "test/java/res/drawable/test_illustration.xml",
291    "test/java/res/drawable/test_logo_avatar_anonymous.xml",
292    "test/java/res/layout/dual_control_test_layout.xml",
293    "test/java/res/layout/radio_button_render_test.xml",
294    "test/java/res/layout/radio_button_with_description_and_aux_button_test.xml",
295    "test/java/res/layout/radio_button_with_description_layout_test.xml",
296    "test/java/res/layout/radio_button_with_edit_text_test.xml",
297    "test/java/res/values/strings.xml",
298  ]
299  deps = [
300    ":java_resources",
301    "//ui/android:ui_java_resources",
302  ]
303}
304
305java_library("junit") {
306  # Skip platform checks since Robolectric depends on requires_android targets.
307  bypass_platform_checks = true
308  testonly = true
309  sources = [
310    "java/src/org/chromium/components/browser_ui/widget/CompositeTouchDelegateUnitTest.java",
311    "java/src/org/chromium/components/browser_ui/widget/InsetObserverViewTest.java",
312    "java/src/org/chromium/components/browser_ui/widget/LoadingViewTest.java",
313    "java/src/org/chromium/components/browser_ui/widget/gesture/SwipeGestureListenerTest.java",
314    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectionDelegateTest.java",
315  ]
316  deps = [
317    ":java",
318    "//base:base_java",
319    "//base:base_java_test_support",
320    "//base:base_junit_test_support",
321    "//base/test:test_support_java",
322    "//third_party/android_deps:androidx_test_runner_java",
323    "//third_party/android_deps:robolectric_all_java",
324    "//third_party/junit",
325    "//third_party/mockito:mockito_java",
326  ]
327}
328