From 02632503da6f22a658bc7a069cfa485a5dc4419a Mon Sep 17 00:00:00 2001 From: Joshua Trask Date: Tue, 20 Sep 2022 13:58:08 -0400 Subject: Fork framework chooser code to IntentResolver path This copies Chooser classes and (as needed) their transitive dependencies, while making minor mechanical changes to fix up references for the new package. This is a large CL, especially since we don't track the history of these files across projects (framework vs. "unbundled"), and the meaningful changes could easily get lost in the noise; reviewers should see accompanying notes at go/chooser-fork-cl. Test: locally re-enabled and ran UnbundledChooserActivityTest (as updated in this CL to match the framework version), then re-disabled before uploading. See notes for more info. Change-Id: I6708e3563d18a9e31894dd36dcd65e9a5815abcf --- java/res/drawable/bottomsheet_background.xml | 22 + java/res/drawable/chooser_action_button_bg.xml | 33 + java/res/drawable/chooser_dialog_background.xml | 21 + .../chooser_direct_share_icon_placeholder.xml | 84 + .../chooser_direct_share_label_placeholder.xml | 37 + java/res/drawable/chooser_file_generic.xml | 24 + java/res/drawable/chooser_group_background.xml | 25 + java/res/drawable/chooser_pinned_background.xml | 26 + java/res/drawable/chooser_row_layer_list.xml | 28 + java/res/drawable/ic_chooser_group_arrow.xml | 26 + java/res/drawable/ic_chooser_pin.xml | 26 + java/res/drawable/ic_chooser_pin_dialog.xml | 25 + java/res/drawable/ic_drag_handle.xml | 21 + java/res/drawable/ic_file_copy.xml | 25 + .../iconfactory_adaptive_icon_drawable_wrapper.xml | 24 + java/res/drawable/resolver_button_bg.xml | 40 + java/res/drawable/resolver_icon_placeholder.xml | 19 + java/res/drawable/resolver_outlined_button_bg.xml | 33 + java/res/drawable/resolver_profile_tab_bg.xml | 45 + java/res/layout/chooser_action_button.xml | 31 + java/res/layout/chooser_action_row.xml | 26 + java/res/layout/chooser_az_label_row.xml | 26 + java/res/layout/chooser_dialog.xml | 61 + java/res/layout/chooser_dialog_item.xml | 46 + java/res/layout/chooser_grid.xml | 97 + java/res/layout/chooser_grid_preview_file.xml | 80 + java/res/layout/chooser_grid_preview_image.xml | 93 + java/res/layout/chooser_grid_preview_text.xml | 102 + java/res/layout/chooser_list_per_profile.xml | 33 + java/res/layout/chooser_profile_row.xml | 33 + java/res/layout/chooser_row.xml | 33 + java/res/layout/chooser_row_direct_share.xml | 26 + java/res/layout/miniresolver.xml | 115 + java/res/layout/resolve_grid_item.xml | 65 + java/res/layout/resolve_list_item.xml | 74 + java/res/layout/resolver_different_item_header.xml | 34 + java/res/layout/resolver_empty_states.xml | 91 + java/res/layout/resolver_list.xml | 172 + java/res/layout/resolver_list_per_profile.xml | 38 + java/res/layout/resolver_list_with_default.xml | 206 + java/res/layout/resolver_profile_tab_button.xml | 30 + java/res/values-h480dp/bools.xml | 20 + java/res/values-h480dp/dimens.xml | 23 + java/res/values-land/dimens.xml | 23 + java/res/values-night/colors.xml | 24 + java/res/values-sw600dp/dimens.xml | 24 + java/res/values/attrs.xml | 38 + java/res/values/bools.xml | 19 + java/res/values/colors.xml | 23 + java/res/values/config.xml | 43 + java/res/values/dimens.xml | 34 +- java/res/values/strings.xml | 82 + java/res/values/styles.xml | 8 +- .../AbstractMultiProfilePagerAdapter.java | 632 +++ .../intentresolver/AbstractResolverComparator.java | 296 ++ .../AppPredictionServiceResolverComparator.java | 276 ++ .../android/intentresolver/ChooserActivity.java | 4127 +++++++++++++++++++- .../intentresolver/ChooserActivityLogger.java | 246 ++ .../intentresolver/ChooserActivityLoggerImpl.java | 84 + .../com/android/intentresolver/ChooserFlags.java | 33 + .../intentresolver/ChooserGridLayoutManager.java | 81 + .../android/intentresolver/ChooserListAdapter.java | 845 ++++ .../ChooserMultiProfilePagerAdapter.java | 321 ++ .../ChooserRecyclerViewAccessibilityDelegate.java | 92 + .../ChooserStackedAppDialogFragment.java | 77 + .../ChooserTargetActionsDialogFragment.java | 297 ++ .../intentresolver/IntentForwarderActivity.java | 436 +++ .../android/intentresolver/ResolverActivity.java | 2301 +++++++++++ .../intentresolver/ResolverComparatorModel.java | 57 + .../intentresolver/ResolverListAdapter.java | 1163 ++++++ .../intentresolver/ResolverListController.java | 413 ++ .../ResolverMultiProfilePagerAdapter.java | 279 ++ .../ResolverRankerServiceResolverComparator.java | 599 +++ .../android/intentresolver/ResolverViewPager.java | 89 + .../android/intentresolver/SimpleIconFactory.java | 752 ++++ .../intentresolver/chooser/ChooserTargetInfo.java | 53 + .../intentresolver/chooser/DisplayResolveInfo.java | 243 ++ .../chooser/MultiDisplayResolveInfo.java | 100 + .../chooser/NotSelectableTargetInfo.java | 92 + .../chooser/SelectableTargetInfo.java | 339 ++ .../android/intentresolver/chooser/TargetInfo.java | 133 + java/tests/AndroidManifest.xml | 1 - .../intentresolver/ChooserActivityLoggerFake.java | 134 + .../ChooserActivityOverrideData.java | 115 + .../intentresolver/ChooserWrapperActivity.java | 20 +- .../android/intentresolver/IChooserWrapper.java | 44 + .../com/android/intentresolver/MatcherUtils.java | 51 + .../intentresolver/ResolverDataProvider.java | 169 + .../UnbundledChooserActivityTest.java | 3191 ++++++++++++++- 89 files changed, 20576 insertions(+), 62 deletions(-) create mode 100644 java/res/drawable/bottomsheet_background.xml create mode 100644 java/res/drawable/chooser_action_button_bg.xml create mode 100644 java/res/drawable/chooser_dialog_background.xml create mode 100644 java/res/drawable/chooser_direct_share_icon_placeholder.xml create mode 100644 java/res/drawable/chooser_direct_share_label_placeholder.xml create mode 100644 java/res/drawable/chooser_file_generic.xml create mode 100644 java/res/drawable/chooser_group_background.xml create mode 100644 java/res/drawable/chooser_pinned_background.xml create mode 100644 java/res/drawable/chooser_row_layer_list.xml create mode 100644 java/res/drawable/ic_chooser_group_arrow.xml create mode 100644 java/res/drawable/ic_chooser_pin.xml create mode 100644 java/res/drawable/ic_chooser_pin_dialog.xml create mode 100644 java/res/drawable/ic_drag_handle.xml create mode 100644 java/res/drawable/ic_file_copy.xml create mode 100644 java/res/drawable/iconfactory_adaptive_icon_drawable_wrapper.xml create mode 100644 java/res/drawable/resolver_button_bg.xml create mode 100644 java/res/drawable/resolver_icon_placeholder.xml create mode 100644 java/res/drawable/resolver_outlined_button_bg.xml create mode 100644 java/res/drawable/resolver_profile_tab_bg.xml create mode 100644 java/res/layout/chooser_action_button.xml create mode 100644 java/res/layout/chooser_action_row.xml create mode 100644 java/res/layout/chooser_az_label_row.xml create mode 100644 java/res/layout/chooser_dialog.xml create mode 100644 java/res/layout/chooser_dialog_item.xml create mode 100644 java/res/layout/chooser_grid.xml create mode 100644 java/res/layout/chooser_grid_preview_file.xml create mode 100644 java/res/layout/chooser_grid_preview_image.xml create mode 100644 java/res/layout/chooser_grid_preview_text.xml create mode 100644 java/res/layout/chooser_list_per_profile.xml create mode 100644 java/res/layout/chooser_profile_row.xml create mode 100644 java/res/layout/chooser_row.xml create mode 100644 java/res/layout/chooser_row_direct_share.xml create mode 100644 java/res/layout/miniresolver.xml create mode 100644 java/res/layout/resolve_grid_item.xml create mode 100644 java/res/layout/resolve_list_item.xml create mode 100644 java/res/layout/resolver_different_item_header.xml create mode 100644 java/res/layout/resolver_empty_states.xml create mode 100644 java/res/layout/resolver_list.xml create mode 100644 java/res/layout/resolver_list_per_profile.xml create mode 100644 java/res/layout/resolver_list_with_default.xml create mode 100644 java/res/layout/resolver_profile_tab_button.xml create mode 100644 java/res/values-h480dp/bools.xml create mode 100644 java/res/values-h480dp/dimens.xml create mode 100644 java/res/values-land/dimens.xml create mode 100644 java/res/values-night/colors.xml create mode 100644 java/res/values-sw600dp/dimens.xml create mode 100644 java/res/values/attrs.xml create mode 100644 java/res/values/bools.xml create mode 100644 java/res/values/colors.xml create mode 100644 java/res/values/config.xml create mode 100644 java/src/com/android/intentresolver/AbstractMultiProfilePagerAdapter.java create mode 100644 java/src/com/android/intentresolver/AbstractResolverComparator.java create mode 100644 java/src/com/android/intentresolver/AppPredictionServiceResolverComparator.java create mode 100644 java/src/com/android/intentresolver/ChooserActivityLogger.java create mode 100644 java/src/com/android/intentresolver/ChooserActivityLoggerImpl.java create mode 100644 java/src/com/android/intentresolver/ChooserFlags.java create mode 100644 java/src/com/android/intentresolver/ChooserGridLayoutManager.java create mode 100644 java/src/com/android/intentresolver/ChooserListAdapter.java create mode 100644 java/src/com/android/intentresolver/ChooserMultiProfilePagerAdapter.java create mode 100644 java/src/com/android/intentresolver/ChooserRecyclerViewAccessibilityDelegate.java create mode 100644 java/src/com/android/intentresolver/ChooserStackedAppDialogFragment.java create mode 100644 java/src/com/android/intentresolver/ChooserTargetActionsDialogFragment.java create mode 100644 java/src/com/android/intentresolver/IntentForwarderActivity.java create mode 100644 java/src/com/android/intentresolver/ResolverActivity.java create mode 100644 java/src/com/android/intentresolver/ResolverComparatorModel.java create mode 100644 java/src/com/android/intentresolver/ResolverListAdapter.java create mode 100644 java/src/com/android/intentresolver/ResolverListController.java create mode 100644 java/src/com/android/intentresolver/ResolverMultiProfilePagerAdapter.java create mode 100644 java/src/com/android/intentresolver/ResolverRankerServiceResolverComparator.java create mode 100644 java/src/com/android/intentresolver/ResolverViewPager.java create mode 100644 java/src/com/android/intentresolver/SimpleIconFactory.java create mode 100644 java/src/com/android/intentresolver/chooser/ChooserTargetInfo.java create mode 100644 java/src/com/android/intentresolver/chooser/DisplayResolveInfo.java create mode 100644 java/src/com/android/intentresolver/chooser/MultiDisplayResolveInfo.java create mode 100644 java/src/com/android/intentresolver/chooser/NotSelectableTargetInfo.java create mode 100644 java/src/com/android/intentresolver/chooser/SelectableTargetInfo.java create mode 100644 java/src/com/android/intentresolver/chooser/TargetInfo.java create mode 100644 java/tests/src/com/android/intentresolver/ChooserActivityLoggerFake.java create mode 100644 java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java create mode 100644 java/tests/src/com/android/intentresolver/IChooserWrapper.java create mode 100644 java/tests/src/com/android/intentresolver/MatcherUtils.java create mode 100644 java/tests/src/com/android/intentresolver/ResolverDataProvider.java (limited to 'java') diff --git a/java/res/drawable/bottomsheet_background.xml b/java/res/drawable/bottomsheet_background.xml new file mode 100644 index 00000000..60fd7e21 --- /dev/null +++ b/java/res/drawable/bottomsheet_background.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/java/res/drawable/chooser_action_button_bg.xml b/java/res/drawable/chooser_action_button_bg.xml new file mode 100644 index 00000000..b984a067 --- /dev/null +++ b/java/res/drawable/chooser_action_button_bg.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + diff --git a/java/res/drawable/chooser_dialog_background.xml b/java/res/drawable/chooser_dialog_background.xml new file mode 100644 index 00000000..9c38cb37 --- /dev/null +++ b/java/res/drawable/chooser_dialog_background.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/java/res/drawable/chooser_direct_share_icon_placeholder.xml b/java/res/drawable/chooser_direct_share_icon_placeholder.xml new file mode 100644 index 00000000..9642a0d5 --- /dev/null +++ b/java/res/drawable/chooser_direct_share_icon_placeholder.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/res/drawable/chooser_direct_share_label_placeholder.xml b/java/res/drawable/chooser_direct_share_label_placeholder.xml new file mode 100644 index 00000000..b21444bf --- /dev/null +++ b/java/res/drawable/chooser_direct_share_label_placeholder.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java/res/drawable/chooser_file_generic.xml b/java/res/drawable/chooser_file_generic.xml new file mode 100644 index 00000000..006dfba4 --- /dev/null +++ b/java/res/drawable/chooser_file_generic.xml @@ -0,0 +1,24 @@ + + + + diff --git a/java/res/drawable/chooser_group_background.xml b/java/res/drawable/chooser_group_background.xml new file mode 100644 index 00000000..036028de --- /dev/null +++ b/java/res/drawable/chooser_group_background.xml @@ -0,0 +1,25 @@ + + + + + + diff --git a/java/res/drawable/chooser_pinned_background.xml b/java/res/drawable/chooser_pinned_background.xml new file mode 100644 index 00000000..e8c9910e --- /dev/null +++ b/java/res/drawable/chooser_pinned_background.xml @@ -0,0 +1,26 @@ + + + + + + \ No newline at end of file diff --git a/java/res/drawable/chooser_row_layer_list.xml b/java/res/drawable/chooser_row_layer_list.xml new file mode 100644 index 00000000..43f0cf6f --- /dev/null +++ b/java/res/drawable/chooser_row_layer_list.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/java/res/drawable/ic_chooser_group_arrow.xml b/java/res/drawable/ic_chooser_group_arrow.xml new file mode 100644 index 00000000..057c3e76 --- /dev/null +++ b/java/res/drawable/ic_chooser_group_arrow.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/java/res/drawable/ic_chooser_pin.xml b/java/res/drawable/ic_chooser_pin.xml new file mode 100644 index 00000000..c6877963 --- /dev/null +++ b/java/res/drawable/ic_chooser_pin.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/java/res/drawable/ic_chooser_pin_dialog.xml b/java/res/drawable/ic_chooser_pin_dialog.xml new file mode 100644 index 00000000..2ac01c79 --- /dev/null +++ b/java/res/drawable/ic_chooser_pin_dialog.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/java/res/drawable/ic_drag_handle.xml b/java/res/drawable/ic_drag_handle.xml new file mode 100644 index 00000000..9b0e2046 --- /dev/null +++ b/java/res/drawable/ic_drag_handle.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/java/res/drawable/ic_file_copy.xml b/java/res/drawable/ic_file_copy.xml new file mode 100644 index 00000000..d05b55f1 --- /dev/null +++ b/java/res/drawable/ic_file_copy.xml @@ -0,0 +1,25 @@ + + + + diff --git a/java/res/drawable/iconfactory_adaptive_icon_drawable_wrapper.xml b/java/res/drawable/iconfactory_adaptive_icon_drawable_wrapper.xml new file mode 100644 index 00000000..7d6677a9 --- /dev/null +++ b/java/res/drawable/iconfactory_adaptive_icon_drawable_wrapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/java/res/drawable/resolver_button_bg.xml b/java/res/drawable/resolver_button_bg.xml new file mode 100644 index 00000000..0ab15e82 --- /dev/null +++ b/java/res/drawable/resolver_button_bg.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/java/res/drawable/resolver_icon_placeholder.xml b/java/res/drawable/resolver_icon_placeholder.xml new file mode 100644 index 00000000..7236fbe8 --- /dev/null +++ b/java/res/drawable/resolver_icon_placeholder.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/java/res/drawable/resolver_outlined_button_bg.xml b/java/res/drawable/resolver_outlined_button_bg.xml new file mode 100644 index 00000000..da569e72 --- /dev/null +++ b/java/res/drawable/resolver_outlined_button_bg.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + diff --git a/java/res/drawable/resolver_profile_tab_bg.xml b/java/res/drawable/resolver_profile_tab_bg.xml new file mode 100644 index 00000000..66cd6d88 --- /dev/null +++ b/java/res/drawable/resolver_profile_tab_bg.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java/res/layout/chooser_action_button.xml b/java/res/layout/chooser_action_button.xml new file mode 100644 index 00000000..2b68ccca --- /dev/null +++ b/java/res/layout/chooser_action_button.xml @@ -0,0 +1,31 @@ + + +