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/DualControlLayout.java",
15    "java/src/org/chromium/components/browser_ui/widget/FadingEdgeScrollView.java",
16    "java/src/org/chromium/components/browser_ui/widget/FadingShadow.java",
17    "java/src/org/chromium/components/browser_ui/widget/FadingShadowView.java",
18    "java/src/org/chromium/components/browser_ui/widget/FeatureHighlightProvider.java",
19    "java/src/org/chromium/components/browser_ui/widget/InsetObserverView.java",
20    "java/src/org/chromium/components/browser_ui/widget/LoadingView.java",
21    "java/src/org/chromium/components/browser_ui/widget/MaterialProgressBar.java",
22    "java/src/org/chromium/components/browser_ui/widget/MenuOrKeyboardActionController.java",
23    "java/src/org/chromium/components/browser_ui/widget/MoreProgressButton.java",
24    "java/src/org/chromium/components/browser_ui/widget/NumberRollView.java",
25    "java/src/org/chromium/components/browser_ui/widget/PaddedFrameLayout.java",
26    "java/src/org/chromium/components/browser_ui/widget/PromoDialog.java",
27    "java/src/org/chromium/components/browser_ui/widget/PromoDialogLayout.java",
28    "java/src/org/chromium/components/browser_ui/widget/RadioButtonLayout.java",
29    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescription.java",
30    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionLayout.java",
31    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java",
32    "java/src/org/chromium/components/browser_ui/widget/RoundedCornerImageView.java",
33    "java/src/org/chromium/components/browser_ui/widget/TintedDrawable.java",
34    "java/src/org/chromium/components/browser_ui/widget/ViewResourceFrameLayout.java",
35    "java/src/org/chromium/components/browser_ui/widget/WrappingLayout.java",
36    "java/src/org/chromium/components/browser_ui/widget/animation/CancelAwareAnimatorListener.java",
37    "java/src/org/chromium/components/browser_ui/widget/animation/FocusAnimator.java",
38    "java/src/org/chromium/components/browser_ui/widget/animation/Interpolators.java",
39    "java/src/org/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserver.java",
40    "java/src/org/chromium/components/browser_ui/widget/displaystyle/DisplayStyleObserverAdapter.java",
41    "java/src/org/chromium/components/browser_ui/widget/displaystyle/HorizontalDisplayStyle.java",
42    "java/src/org/chromium/components/browser_ui/widget/displaystyle/UiConfig.java",
43    "java/src/org/chromium/components/browser_ui/widget/displaystyle/VerticalDisplayStyle.java",
44    "java/src/org/chromium/components/browser_ui/widget/displaystyle/ViewResizer.java",
45    "java/src/org/chromium/components/browser_ui/widget/dragreorder/DragReorderableListAdapter.java",
46    "java/src/org/chromium/components/browser_ui/widget/dragreorder/DragStateDelegate.java",
47    "java/src/org/chromium/components/browser_ui/widget/highlight/PulseDrawable.java",
48    "java/src/org/chromium/components/browser_ui/widget/highlight/PulseInterpolator.java",
49    "java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighter.java",
50    "java/src/org/chromium/components/browser_ui/widget/listmenu/BasicListMenu.java",
51    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenu.java",
52    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuButton.java",
53    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuButtonDelegate.java",
54    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuItemAdapter.java",
55    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuItemProperties.java",
56    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuItemViewBinder.java",
57    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimCoordinator.java",
58    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimMediator.java",
59    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimProperties.java",
60    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimView.java",
61    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimViewBinder.java",
62    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableItemView.java",
63    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableItemViewBase.java",
64    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableItemViewHolder.java",
65    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableListLayout.java",
66    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectableListToolbar.java",
67    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectionDelegate.java",
68    "java/src/org/chromium/components/browser_ui/widget/text/AccessibleTextView.java",
69    "java/src/org/chromium/components/browser_ui/widget/text/AlertDialogEditText.java",
70    "java/src/org/chromium/components/browser_ui/widget/text/ChromeTextInputLayout.java",
71    "java/src/org/chromium/components/browser_ui/widget/text/TemplatePreservingTextView.java",
72    "java/src/org/chromium/components/browser_ui/widget/text/TextViewWithCompoundDrawables.java",
73    "java/src/org/chromium/components/browser_ui/widget/text/VerticallyFixedEditText.java",
74    "java/src/org/chromium/components/browser_ui/widget/textbubble/ArrowBubbleDrawable.java",
75    "java/src/org/chromium/components/browser_ui/widget/textbubble/ImageTextBubble.java",
76    "java/src/org/chromium/components/browser_ui/widget/textbubble/TextBubble.java",
77  ]
78
79  deps = [
80    ":java_resources",
81    "//base:base_java",
82    "//third_party/android_deps:android_support_v4_java",
83    "//third_party/android_deps:android_support_v7_appcompat_java",
84    "//third_party/android_deps:androidx_recyclerview_recyclerview_java",
85    "//third_party/android_deps:com_android_support_interpolator_java",
86    "//third_party/android_deps:com_google_android_material_material_java",
87    "//ui/android:ui_java",
88  ]
89}
90
91android_resources("java_resources") {
92  custom_package = "org.chromium.components.browser_ui.widget"
93  sources = [
94    "java/res/anim/menu_enter.xml",
95    "java/res/anim/menu_enter_from_bottom.xml",
96    "java/res/anim/menu_exit.xml",
97    "java/res/anim/menu_exit_from_bottom.xml",
98    "java/res/anim/textbubble_in.xml",
99    "java/res/anim/textbubble_out.xml",
100    "java/res/drawable-hdpi/btn_close.png",
101    "java/res/drawable-hdpi/btn_delete_24dp.png",
102    "java/res/drawable-hdpi/btn_info.png",
103    "java/res/drawable-hdpi/ic_arrow_back_white_24dp.png",
104    "java/res/drawable-hdpi/ic_check_googblue_24dp.png",
105    "java/res/drawable-hdpi/ic_more_vert_24dp_on_dark_bg.png",
106    "java/res/drawable-hdpi/ic_more_vert_24dp_on_light_bg.png",
107    "java/res/drawable-mdpi/btn_close.png",
108    "java/res/drawable-mdpi/btn_delete_24dp.png",
109    "java/res/drawable-mdpi/btn_info.png",
110    "java/res/drawable-mdpi/ic_arrow_back_white_24dp.png",
111    "java/res/drawable-mdpi/ic_check_googblue_24dp.png",
112    "java/res/drawable-mdpi/ic_more_vert_24dp_on_dark_bg.png",
113    "java/res/drawable-mdpi/ic_more_vert_24dp_on_light_bg.png",
114    "java/res/drawable-xhdpi/btn_close.png",
115    "java/res/drawable-xhdpi/btn_delete_24dp.png",
116    "java/res/drawable-xhdpi/btn_info.png",
117    "java/res/drawable-xhdpi/ic_arrow_back_white_24dp.png",
118    "java/res/drawable-xhdpi/ic_check_googblue_24dp.png",
119    "java/res/drawable-xhdpi/ic_more_vert_24dp_on_dark_bg.png",
120    "java/res/drawable-xhdpi/ic_more_vert_24dp_on_light_bg.png",
121    "java/res/drawable-xxhdpi/btn_close.png",
122    "java/res/drawable-xxhdpi/btn_delete_24dp.png",
123    "java/res/drawable-xxhdpi/btn_info.png",
124    "java/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png",
125    "java/res/drawable-xxhdpi/ic_check_googblue_24dp.png",
126    "java/res/drawable-xxhdpi/ic_more_vert_24dp_on_dark_bg.png",
127    "java/res/drawable-xxhdpi/ic_more_vert_24dp_on_light_bg.png",
128    "java/res/drawable-xxxhdpi/btn_close.png",
129    "java/res/drawable-xxxhdpi/btn_delete_24dp.png",
130    "java/res/drawable-xxxhdpi/btn_info.png",
131    "java/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.png",
132    "java/res/drawable-xxxhdpi/ic_check_googblue_24dp.png",
133    "java/res/drawable-xxxhdpi/ic_more_vert_24dp_on_dark_bg.png",
134    "java/res/drawable-xxxhdpi/ic_more_vert_24dp_on_light_bg.png",
135    "java/res/drawable/hairline_border_card_background.xml",
136    "java/res/drawable/hairline_border_card_dark_transparent_bg.xml",
137    "java/res/drawable/ic_check_googblue_24dp_animated.xml",
138    "java/res/drawable/list_item_icon_modern_bg.xml",
139    "java/res/drawable/modern_toolbar_text_box_background.xml",
140    "java/res/drawable/search_toolbar_modern_bg.xml",
141    "java/res/layout/app_menu_divider.xml",
142    "java/res/layout/app_menu_layout.xml",
143    "java/res/layout/dialog_control_description.xml",
144    "java/res/layout/divider_preference.xml",
145    "java/res/layout/indeterminate_progress_view.xml",
146    "java/res/layout/list_menu_item.xml",
147    "java/res/layout/modern_list_item_view.xml",
148    "java/res/layout/more_progress_button.xml",
149    "java/res/layout/number_roll_view.xml",
150    "java/res/layout/promo_dialog_layout.xml",
151    "java/res/layout/radio_button_layout_element.xml",
152    "java/res/layout/radio_button_with_description.xml",
153    "java/res/layout/radio_button_with_edit_text.xml",
154    "java/res/layout/search_toolbar.xml",
155    "java/res/layout/selectable_list_layout.xml",
156    "java/res/layout/textbubble_text.xml",
157    "java/res/layout/textbubble_text_with_image.xml",
158    "java/res/values-ldrtl/values.xml",
159    "java/res/values-night/colors.xml",
160    "java/res/values-night/drawables.xml",
161    "java/res/values-sw600dp/dimens.xml",
162    "java/res/values/attrs.xml",
163    "java/res/values/colors.xml",
164    "java/res/values/dimens.xml",
165    "java/res/values/drawables.xml",
166    "java/res/values/ids.xml",
167    "java/res/values/styles.xml",
168    "java/res/values/values.xml",
169  ]
170  deps = [
171    "//components/browser_ui/strings/android:browser_ui_strings_grd",
172    "//components/browser_ui/styles/android:java_resources",
173    "//third_party/android_deps:com_google_android_material_material_java",
174    "//ui/android:ui_java_resources",
175  ]
176}
177
178android_library("test_support_java") {
179  testonly = true
180
181  sources = [ "test/java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighterTestUtils.java" ]
182  deps = [
183    ":java",
184    "//content/public/test/android:content_java_test_support",
185  ]
186}
187
188android_library("javatests") {
189  testonly = true
190
191  sources = [
192    "java/src/org/chromium/components/browser_ui/widget/DualControlLayoutTest.java",
193    "java/src/org/chromium/components/browser_ui/widget/MoreProgressButtonTest.java",
194    "java/src/org/chromium/components/browser_ui/widget/PromoDialogTest.java",
195    "java/src/org/chromium/components/browser_ui/widget/RadioButtonLayoutTest.java",
196    "java/src/org/chromium/components/browser_ui/widget/RadioButtonRenderTest.java",
197    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionLayoutTest.java",
198    "java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditTextTest.java",
199    "java/src/org/chromium/components/browser_ui/widget/WrappingLayoutTest.java",
200    "java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighterTest.java",
201    "java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuRenderTest.java",
202    "java/src/org/chromium/components/browser_ui/widget/scrim/ScrimTest.java",
203    "java/src/org/chromium/components/browser_ui/widget/text/ChromeTextInputLayoutRenderTest.java",
204  ]
205  deps = [
206    ":java",
207    ":java_resources",
208    ":java_test_resources",
209    ":test_support_java",
210    "//base:base_java",
211    "//base:base_java_test_support",
212    "//content/public/test/android:content_java_test_support",
213    "//third_party/android_deps:androidx_core_core_java",
214    "//third_party/android_deps:com_android_support_appcompat_v7_java",
215    "//third_party/android_support_test_runner:rules_java",
216    "//third_party/android_support_test_runner:runner_java",
217    "//third_party/junit",
218    "//ui/android:ui_java",
219    "//ui/android:ui_java_test_support",
220  ]
221}
222
223android_resources("java_test_resources") {
224  testonly = true
225
226  custom_package = "org.chromium.components.browser_ui.widget.test"
227  sources = [
228    "test/java/res/drawable-hdpi/promo_dialog_test_drawable.png",
229    "test/java/res/drawable-mdpi/promo_dialog_test_drawable.png",
230    "test/java/res/drawable-xhdpi/promo_dialog_test_drawable.png",
231    "test/java/res/drawable-xxhdpi/promo_dialog_test_drawable.png",
232    "test/java/res/drawable-xxxhdpi/promo_dialog_test_drawable.png",
233    "test/java/res/drawable/promo_dialog_test_vector.xml",
234    "test/java/res/layout/dual_control_test_layout.xml",
235    "test/java/res/layout/radio_button_render_test.xml",
236    "test/java/res/layout/radio_button_with_description_layout_test.xml",
237    "test/java/res/layout/radio_button_with_edit_text_test.xml",
238    "test/java/res/values/strings.xml",
239    "test/java/res/values/styles.xml",
240  ]
241  deps = [
242    ":java_resources",
243    "//ui/android:ui_java_resources",
244  ]
245}
246
247java_library("junit") {
248  # Skip platform checks since Robolectric depends on requires_android targets.
249  bypass_platform_checks = true
250  testonly = true
251  sources = [
252    "java/src/org/chromium/components/browser_ui/widget/CompositeTouchDelegateUnitTest.java",
253    "java/src/org/chromium/components/browser_ui/widget/InsetObserverViewTest.java",
254    "java/src/org/chromium/components/browser_ui/widget/selectable_list/SelectionDelegateTest.java",
255  ]
256  deps = [
257    ":java",
258    "//base:base_java",
259    "//base:base_java_test_support",
260    "//base:base_junit_test_support",
261    "//base/test:test_support_java",
262  ]
263}
264