summaryrefslogtreecommitdiff
path: root/aconfig
AgeCommit message (Collapse)Author
2025-03-12Avoid drawer offset calculation if app targets are not yet processed. Andrey Yepin
Fix: 338229069 Test: manual testing Flag: com.android.intentresolver.delay_drawer_offset_calculation Change-Id: Ie18ccfa044f5067e769219359e6507615566be78
2025-03-03Improve tap to scroll support to be ready for rollout Govinda Wasserman
- Moves tap to scroll detection to the scrollable container instead of the children of the container, reducing the amount of jank from calculations required for each tap, as well as the code complexity. - Encapsulates the behavior in a single Modifier extension for ease of code readability and usability. - Generifies the solution to work with any arbitrary scrollable container. Test: Manual test with Share Test BUG: 384656926 Flag: com.android.intentresolver.shareousel_tap_to_scroll_support Change-Id: Ic40e040068b2a8ce6038d2e9d7d2bca6f0a88670
2025-02-13Add tap to scroll support to Shareousel Govinda Wasserman
Taps on the left or right edge of the scroll region will scroll in that direction. Test: manual test using ShareTest BUG: 384656926 Flag: com.android.intentresolver.shareousel_tap_to_scroll Change-Id: Ie0ebec58303577f56be8b28b4869c0ef9df3e3b8
2025-02-10Shareousel: add item position to item content description. Andrey Yepin
Add known item cursor position to the item content description annotation when showing more than one item. This works well when the data provided by the app is consistent (the expected majority of the cases). The position annotation will be ommited in cases when we show the initially shared items before the cursor is loaded and for the initially shared items that were missing in the cursor. Fix: 379032721 Test: manual testing Flag: com.android.intentresolver.announce_shareousel_item_list_position Change-Id: Ie669db3897961d2cf09a30ef229e10badb501566
2025-01-28Merge "Clear cached direct targets." into main Treehugger Robot
2025-01-27Merge "Present target grid as hierarchical for a11y purposes." into main Treehugger Robot
2025-01-23Clear cached direct targets. Andrey Yepin
This change re-introduce a fix for direct targets "blinking" after a payload change is mande in the Shareousel under a new flag. It also fixes the critical issue that caused the previus flag's reversal by a proper cache cleaning. Fix: 343300158 Test: test Shareousel payload changing and sharing to a shortcut. Flag: com.android.intentresolver.fix_shortcuts_flashing_fixed Change-Id: If7ade45bda4a2b42f9b5838cbb315ec00546489c
2025-01-14Present target grid as hierarchical for a11y purposes. Andrey Yepin
Present target grid as hierarchical for a11y purposes. This makes TalkBack to announce sub-groups of targets. Fix: 379208685 Test: Manual test for the following cases: (i) all group present (shortcuts, suggested, all-apps), (ii) shortcuts are missing -- the no-target message is shown, (iii) no suggested targets. Flag: com.android.intentresolver.announce_shortcuts_and_suggested_apps Change-Id: If08e9bcccab9db423c5b67c759bc0854d290e880
2025-01-07Merge "Remove released preview_image_loader feature flag." into main Treehugger Robot
2024-12-20Merge "A feature flag removal" into main Treehugger Robot
2024-12-20Add select/unselect visual cue to Shareousel Govinda Wasserman
When an item is selected it will shrink and when it is unselected it will grow back to the standard size. This provides improved visual confirmation of the selected state of items. Test: Manual test using Photos or ShareTest BUG: 361792274 Flag: com.android.intentresolver.shareousel_selection_shrink Change-Id: I7f5ca60d584900fc5e2ba0d479ecc0f2e624b367
2024-12-13An experimental interactive Chooser session implementation Andrey Yepin
Bug: 378493324 Test: manual testing with a test app Test: atest IntentResolver-tests-unit Test: atest IntentResolver-tests-activity Flag: com.android.intentresolver.interactive_session Change-Id: I15b303dd3912c63538930d39b7743e290adb480c
2024-12-13Remove released preview_image_loader feature flag. Andrey Yepin
The flag was released with 24Q4. Unused ImageLoader implementations, CachingImagePreviewImageLoader and ImagePreviewImageLoader, are deleted. Bug: 348665058 Bug: 343819590 Test: atest IntentResolver-tests-unit Test: atest IntentResolver-tests-activity Flag: EXEMPT flag removal Change-Id: Ie6a090b724bfae9355f6c2dace5d6952140c92f3
2024-12-12A feature flag removal Andrey Yepin
Remove 24Q4-released 'fix_shortcut_loader_job_leak' feature flag. Bug: 358135601 Test: presubmits Flag: EXEMPT flag removal Change-Id: I04242737b6269322231527b2110e6a5a07b31777
2024-12-12A feature flag removal Andrey Yepin
Remove 24Q4-released 'fix_missing_drawer_offset_calculation' feature flag. Bug: 347316548 Test: presubmits Flag: EXEMPT flag removal Change-Id: Id03271034a81015d77b6bd4164073671feb50e9b
2024-12-12A feature flag removal Andrey Yepin
fix_drawer_offset_on_config_change was released in 24Q4; removed. Bug: 344057117 Test: presubmits Flag: EXEMPT flag removal Change-Id: I20c2488e3a8d08fa349af9a05299745d32f8c9c2
2024-12-12Remove flag 'fix_empty_state_padding_bug' Mark Renouf
And the other original (unused) flag without the '_bug' suffix. Bug: 377522331 Flag: NONE released flag removal Test: NONE no functional change Change-Id: I6109a91a87c95681951cd254c0e470047c5b1741
2024-12-12Removes the flag 'fix_private_space_locked_on_restart' Mark Renouf
Bug: 377521592 Flag: NONE released flag removal Test: NONE no functional change Change-Id: Ic21fa9975e58d0ae35d60cda5a2975ab028eac69
2024-12-12Removes the flag 'enable_private_profile' Mark Renouf
Bug: 377522329L Flag: NONE released flag removal Test: NONE no functional change Change-Id: I347f415d461c942b454e7141143f0351bddf375a
2024-12-12Remove flag 'modular_framework' Mark Renouf
Bug: 377522152 Flag: NONE flag removal Test: NONE removing released flag Change-Id: I690082b7b98f2fe3cf1bcc390613eaa31f105e23
2024-11-06Reload targets by recreating adapters in response to target pinning. Andrey Yepin
Use Shareousel's target list updating logic in response to target pinning and application changed broadcasts. Create new adapters and attach them to the views after data is loaded, resulting in a cleaner visual update. Fix: 230703572 Test: manual testing Test: atest IntentResolver-tests-unit Flag: com.android.intentresolver.rebuild_adapters_on_target_pinning Change-Id: I1e7e2fd820195134ec4940f2e76bf7b3eac9e086
2024-10-16Save Shareousel state. Andrey Yepin
Fix: 362347212 Test: manual testing with injected debug logging Flag: com.android.intentresolver.save_shareousel_state Change-Id: Ibe393e84c0d7884fb1b7611e72df0c7779afce34
2024-10-09Add Launcher hover effect Andrey Yepin
Use Launcher iconlib's FastBitmapDrawable for chooser item icons to enable the Launcher pointer hover effect. Add a custom ChooserTargetItemView to dispatch hover events. Modify the chooser item layout to use the new view and replace image view margins with paddings to accommodate scaled-up icons on hover. Bug: 295175912 Test: atest IntentResolver-tests-unit Test: manual testing for icons hover effect including the case of disabled icons when no selections is made in Shareousel Flag: com.android.intentresolver.target_hover_and_keyboard_focus_states Change-Id: I9bc468895b72dc6770b8c4c7eeac7673b4d6a8b4
2024-10-01Retrieve URI title metadata through separate query calls Andrey Epin
As a file name accessed independently from preview-related metadata and also asynchronously, make it be retrieved through a separate provider calls. This way an error during preview metadata call won't affect the file name reading. Bug: 365748223 Test: atest IntentResolver-tests-unit Test: manual testing with a test app that shares a MediaProvider video Flag: com.android.intentresolver.individual_metadata_title_read Change-Id: I2e87913149e679fee22e4371d2b42f485c8b04e4
2024-09-25Fix keyboard naviagation for the nested preview scrolling Andrey Epin
NestedScrollView is copied into the project from the prebuilt sources and trivially refactored (the differerence is saved in NestedScrollView.java.patch file). ChooserNestedScrollView extends the copied NestedScrollView and disabled scolling to the child that requests focus. Bug: 325259478 Test: attach keboard and test that keyboard navigation is working Flag: com.android.intentresolver.keyboard_navigation_fix Change-Id: I759f3a21aad9197148df31c55ed1534021072bd9
2024-08-22Scroll partially offscreen items to be fully onscreen when toggled Govinda Wasserman
Test: manual test using ShareTest BUG: 351883537 FIX: 351883537 Flag: com.android.intentresolver.shareousel_scroll_offscreen_selections Change-Id: Id9c7e31169bce11b722868338f87228c9450c9aa
2024-08-15Allow toggling of final shareousel item Andrey Yepin
When no items selected the UI will: * change the chooser headline; * make the custom action row invisible; * make all targets disabled and all target icons greyscale. Fix: 349468879 Test: atest IntentResolver-tests-unit Test: manual functionality testing Flag: com.android.intentresolver.unselect_final_item Change-Id: I53b9c908943b1f1003cb0131a6dec8abc26ec782
2024-08-14Fix direct share row flashing upon Shareousel selection change. Andrey Yepin
Upon payload selection change, copy direct share targets into the new adapters but keep the items disabled until the new set of shortcuts is loaded. To have all targets updated at once, publish the caller-provided targets together with the remaining direct shares. Fix: 343300158 Test: manual testing: using the ShareTest app, launch the Shareousel with a caller-provided targets and make the payload selection. Flag: com.android.intentresolver.fix_shortcuts_flashing Change-Id: Iff5ea6c892708daa9cca968a56a03aaaf80196f6
2024-08-13Use nested scope for ShortcutLoader Andrey Yepin
Use a nested coroutine scope for each ShortcutLoader instance and close it when the instance is stopped being used. Fix: 358135601 Test: atest IntentResolver-tests-unit Test: manual testing checking the logs Flag: com.android.intentresolver.fix_shortcut_loader_job_leak Change-Id: I84bbca75612f153193b03e24bfc0cb8842a8d3e2
2024-08-12Merge "Update excluded components from payload selection callback" into main Treehugger Robot
2024-08-06Remove obsolete flag definition Andrey Yepin
Bug: 285314844 Test: presubmits Flag: EXEMPT flag removal Change-Id: I82c0fea0b208cf40a5c509ca7e8e25e1de999030
2024-08-05Update excluded components from payload selection callback Andrey Yepin
Bug: 352496527 Test: atest IntentResolver-tests-unit Test: manual testing using ShareTest app Flag: com.android.intentresolver.shareousel_update_exclude_components_extra Change-Id: I610edf2c11a5beb114185c8724347b0eb0487ef1
2024-07-25Merge "Unified preview image loader." into main Treehugger Robot
2024-07-25Unified preview image loader. Andrey Epin
Replace ImagePreviewImageLoader and CachingPreviewImageLoader with the new class, PreviewImageLoader. Fix: 348665058 Fix: 343819590 Test: atest IntentResolver-tests-unit Test: atest IntentResolver-tests-activity Test: inject debugging logs for image requests, loadings, and cancellations and verify common scenarios. Flag: com.android.intentresolver.preview_image_loader Change-Id: Ib54ea0d538cd2cbaef6041f09eeb2b9eb6ada4cf
2024-07-22Fix drawer offset calculation when rotating from a non-initial profile Andrey Yepin
Fix: 344057117 Test: manual testing Flag: com.android.intentresolver.fix_drawer_offset_on_config_change Change-Id: I0fb633b02299c0a4845bfa09bbbb234915ccb487
2024-07-10Remove fix_partial_image_edit_transition Andrey Yepin
Launched. Bug: 339583191 Test: presubmits Flag: EXEMPT removing com.android.intentresolver.fix_partial_image_edit_transition Change-Id: I8e826f05690dcfdf4bed1cfcdf036218fe3b708e
2024-07-10Remove bespoke_label_view Andrey Yepin
Launched. Bug: 302188527 Test: presubmits Flag: EXEMPT removing com.android.intentresolver.bespoke_label_view Change-Id: Ia3f3b80b6e854f4ecd569936e144815e5ab592d7
2024-07-10Remove fix_target_list_footer Andrey Yepin
Launched. Bug: 324011248 Test: presubmits Flag: EXEMPT removing com.android.intentresolver.fix_target_list_footer Change-Id: Id18ee5168b9adbb6b8c383312dbaef0603fc31a2
2024-06-17Reclalculate drawer offset even when the targets list has not changed Andrey Epin
Shareousel has a variable-sized preview that affects the overall drawer offset. Therefore, we cannot early return from the offset calcualtion based solely on the condition that the targets list has not changed. Empirically, this introduces a minor overhead of the offset recalculation when the drawor is snapped to/from the top. Fix: 347316548 Test: manual testing with injected debug logging Flag: com.android.intentresolver.fix_missing_drawer_offset_calculation Change-Id: I69ec7a5e05fad0d6607e3614208b30910a3a17ba
2024-05-29Fix shared element animation for partially visible image Andrey Epin
When launching an image editor, do not run the shared element transition animation for a paritally visible image. Fix: 339583191 Test: atest IntentResolver-tests-unit Test: atest IntentResolver-tests-activity Test: manual testing Flag: com.android.intentresolver.fix_partial_image_edit_transition Change-Id: Idbcf3712d4d13966e656387b803d56486fa8e1a2
2024-05-07Correct flag type Mark Renouf
Change-Id: I6416928fe2bd5531b67e53b4403f1213d832282d
2024-05-06Dismiss if restarting after private space is locked Mark Renouf
Share sheet only dismisses when it is moved to the background. When private space is set to lock automatically, the private space profile tab may remain visible, leading to disclosure risk. When restarting ChooserActivity, if the private tab was visible but the private profile has since become locked, the activity will be finished instead. Bug: 338125945 Flag: com.android.intentresolver.fix_private_space_locked_on_restart Test: manual; see description, screencast in bug Change-Id: I294bf62f0a73f6c1b73f598109814701215cdeb5
2024-05-02Clean up onApplyWindowInsets and apply in all cases Mark Renouf
Profile pager empty state inset padding was only applied when 'hasWorkProfile' was true. This seems to have been an alias for "are tabs shown", however this is no longer correct. Instead the "empty content" padding should include system bar insets unconditionally. For a test case, enable 3-button nav, add a private profile and test sharing content which has no matching apps (ShareTest with no text). The empty state view is shown partially beneath the nav bar. Bug: 338447666 Test: manually; see change description Flag: com.android.intentresolver.fix_empty_state_padding Change-Id: I8a65214095de3517330d75e20da9bf0d35a82bac
2024-04-29Merge "System action refinement." into main Joshua Trask
2024-04-25System action refinement. Joshua Trask
This is an important bugfix since Android API docs imply that app developers may start a share session with an "incomplete" payload and rely on refinement to replace the content post-selection. System actions will similarly want to use "complete" (i.e., potentially-refined) payloads. The approach is based on the observation that our existing refinement flow, despite historically operating in terms of `TargetInfo` objects, is really a function (async) from a list of one or more matching intents to a refined intent filter-matching at least one of the sources, and we can use the same mechanism to request a refinement of the "target intent" we originally used to derive the system actions and then simply re-derive them by applying the same logic to the refined intent. Per feedback on the earlier prototypes (ag/26681688 and ag/26765080), this implementation explicitly tracks the requested "type" of selection when we initiate a refinement flow so that we can handle the result by-cases when we later `consume()` the result. Bug: 331206205 Flag: com.android.intentresolver.refine_system_actions DEVELOPMENT Test: existing refinement tests + manually exercised w/ShareTest app Change-Id: I83e5a2e088387c495dec7e41fee0e311a82644f1
2024-04-22Remove scrollable preview flag Andrey Epin
Bug: 287102904 Test: atest IntentResolver-tests-unit Test: atest IntentResolver-tests-activity Change-Id: I028a246907a076680e26acdb816b3f32020fa772
2024-03-05Update bug value for private space flag Matt Casey
Bug: 328029692 Test: None Change-Id: I5f7e0342545edcdb18f8b6e3bb183e03c020a862
2024-02-26Fix app target list footer Andrey Epin
Fix: 324011248 Test: manual testing (launching chooser while a keyboard is shown) Flag: ACONFIG com.android.intentresolver.fix_target_list_footer DEVELOPMENT Change-Id: I6bbadde2535cd9a6a43563021b37658fc566d19f
2024-02-12Merge "Set the container field of aconfig flags" into main Oriol Prieto Gascó
2024-02-08Adds aconfig 'enable_private_profile' to aconfig Mark Renouf
This flag will gate enabling new functionality in IntentResolver for the private space feature. Bug: 311348033 Test: n/a Change-Id: Ia7cab9548c0aa2816256f74ba018bf2afcde8668