Age | Commit message (Collapse) | Author |
|
1cf477558f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/3483054
Change-Id: I64dc3efb71c892a54b84b5367464cfa7e72db13f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
1cf6ee362f
Original change: https://android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/3481356
Change-Id: Id7f2620b6cb0ee696a71669af5c61bd72041af94
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
1f1bc01d9f5bf27d36065dabf1f7ec134e1e3290
Change-Id: Idc01d43893e3d982d7fb3a028ba109cc54a8d1aa
|
|
Revert submission 3477737-move_apex_shortcut
Reason for revert: Likely culprit for b/394990888 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.
Reverted changes: /q/submissionid:3477737-move_apex_shortcut
Change-Id: I1501b4a26a4fc20a9b2bc8bad92c54ad697c7d9c
|
|
Original change: https://android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/3478039
Change-Id: Ie2665e2c5c6743ff454127a48b083cd3e8b0ecfe
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
com.android.intentresolver doesn't exist, but the value wasn't being
checked because no apexes depended on the module, triggering a shortcut
that skipped the apex_available check.
Bug: 394664568
Test: builds
Change-Id: I2eff312d13e11574c2e755ce5d02b4092196f7ed
|
|
Criteria will need to be refined in a follow-up CL, but getting the
parts in place behind a flag here.
Preview UI change is minimal. Test has some duplicated boilerplate but
choosing not to refactor that because the UI itself is a better refactor
candidate but outside the scope of this CL.
Bug: 242791070
Test: atest ChooserRequestTest
Test: atest FilesPlusTExtContentPreviewUiTest
Test: manual end-to-end test with feature flag on.
Flag: com.android.systemui.shared.screenshot_context_url
Change-Id: I6eaca454a88e8b8c8a196d825c7ac3daee437109
|
|
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
|
|
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
|
|
Bug: 333602171
Change-Id: I9f9261ba823c08ba0f624c4daf35fcd4db911c45
|
|
Flag: NONE
Bug: 334172345
Test: m out/soong/.intermediates/packages/modules/IntentResolver/IntentResolver-core/android_common/<hash>/lint/lint-baseline.xml
Change-Id: I855f057120c771bf9fa0e926f811632067405e21
|
|
See: go/new-android-ownership-model
Bug: 304529413
Test: N/A
Change-Id: Ib5a952d8e6896056e32e751bcd2f76c5557322e7
|
|
These are going to become errors in a future Dagger release.
Bug: 26028269
Test: compile
Flag: NA
Change-Id: I8ccb34832249cb7f5fa7c683d998af4a8ff43281
|
|
Bug: 302691505
Flag: ACONFIG android.service.chooser.chooser_payload_toggling DEVELOPMENT
Test: N/A - code isn't live
Change-Id: Ibf197591b238a286b12290ccc33d69ab3efd56d8
|
|
This splits the monolithic 'tests' target into multiple types
based on classification. See the corresponding README.md for
descriptions.
The target 'IntentResolverUnitTests' is replaced by:
IntentResolver-tests-unit
IntentResolver-tests-activity
IntentResolver-tests-integration
IntentResolver-tests-shared
To run everything, use:
atest IntentResolver-tests-*
To run TreeHugger presubmits:
atest --test-mapping pacakges/modules/IntentResolver
Equivalently for postsubmit:
atest --test-mapping pacakges/modules/IntentResolver:postsubmit
Bug: 300157408
Test: atest IntentResolver-tests-*
Change-Id: I9d499284f070a4bfa3e7c1b7c3bbfaa8adb3379b
|
|
Adds a SecureSettings fake
Adds test coverage for new modules
Removes another overload from ChooserActivityWrapper
Uses @BindValue in tests to alter the configured editor component
Test: atest --test-mapping packages/modules/IntentResolver
Bug: 300157408
Bug: 302113519
Change-Id: Ie7d5fe12ad0d8e7fd074154641de35fe89d50ce6
|
|
Bug: 296633726
Test: atest IntentResolverUnitTests
Change-Id: I523c9af094da30307904003c417dc50c6cb4a44b
|
|
This includes modifications to initialization of ChooserActivity
to avoid violating scoping and order of initialization.
Bug: 299610743
Test: atest IntentResolverUnitTests
Test: atest CtsSharesheetDeviceTest
Change-Id: I6570bda272eff44b3a64eab9df38049beb9c9fcc
|
|
Enable optimization, bytecode and resource shrinking.
This reduces installed file size by nearly 1MB (30%).
Bug: 299156789
Test: Full build and manual test
Test: atest IntentResolverUnittests
Test: atest CtsSharesheetTestCases
Change-Id: I55c39c8643831e198dc818e466f68c12de74ec36
|
|
Build:
Inlcudes Some general build hygeine and simplification
Creates an aconfig flag declaration and java library
Add java_defaults rules for library and app for common settings
Tests:
Added direct dep on JUnit (was indirectly pulled in)
Remove source dependency (on main code) from the test app target
Remove optimization and dexopt from the debug app target
Test: All existing tests pass;
atest IntentResolverUnitTests
Test: Setup using ASfP (Android studio for platform)
Bug: 296633726
Change-Id: I8046f76aa20957342ddddabc8861c0a8fe25e0fb
|
|
This reverts commit 114b886b4aaf3341b4072f184c96cc71d4763f76.
and dependent commit 35a34bcaf236597703208cf0472cb268b42abb1c.
Change-Id: Ied8c43ed7c596624e045cb8e7b4e7f1c9ba66c58
|
|
Dependencies may now be bound to ViewModelScope which survives
across Activity configuration restarts. ChooserViewModel is
available in ChooserActivity. ViewModel components should
be provided by ViewModelComponent to wire up the core parts
of the app.
A @ViewModel CoroutineScope is also available to inject from
within ViewModelScope.
* Injects [Resolver|Chooser](Wrapper)Activity in tests
* Injects Intent args (Bundle) into ViewModel
* Injects Referrer (Uri) into ViewModel
Adjusts module structure slightly to accomodate the current
state. Further restructuring will be done to simplify the
test modules & components required.
Test: atest IntentResolverUnitTests
Change-Id: Ia249cf07796a9993f2cd021930c52faadb046ca8
|
|
- Creates "lib" AndroidManifest.xml containing the required permissions
- Adds proguard configuration file
Bug: 265905535
Change-Id: Ie24cd32c1816d349a3ba59ff206d9fc210f54a21
|
|
Provides Activities and BroadcastReceivers with the ability to use
injection in their constructors. Adds ChooserActivity, ResolverActivity,
IntentForwarderActivity, and ChooserActivityReEnabler to the dagger
graph.
Test: Existing tests still pass
BUG: 242615621
Change-Id: I0ce3bb225ceab59243833535c3776d9d64672d7d
|
|
Content preview preserves previews apspect raio (limiting between 0.4
and 2.5).
ScrollableImagePreviewView now makes an initial pass over provided URIs
to determine preview aspect ratio; previews that successfully loaded are
progressively added to the dislay list. Previews that failed to load
counted in the "+N" item at the list end.
Previews are displayed in the order they are loaded (concurrently) to
facilitate the fastest preview display.
Preivew item height and spacings are change accroding to the latest specs.
Bug: 271613784
Test: manual testing
Change-Id: I430f1e7fb39c97da91bdc25914a0cb804a2b6ffa
|
|
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/21144679
Change-Id: I75bb6f539318d23a2abc169b3e4865019f6feb45
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
A minimalistic replica of the SysUI feature flag infrastructure so the
app could both reuse some of the existing flag infrastructure (local
flag flipping) and have features controlled remotely (through
DeviceConfig).
A re-introduction of reverted ag/20796272 with the fixed
release build variant.
Bug: 262578843
Test: Manual tests with some injected debug code and local flag flipping
Test: Smoke tests both build variants
Change-Id: Ie536172020bcb7e6cd96f44c228a6941004858f8
|
|
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/21141059
Change-Id: I0633236fcc385da7488fae41642f4d3dd38ea52e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
This reverts commit 33bb96bf4da9ad037d1184c644fd9c26db569ded.
Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=git_master&target=bramble-user&lkgb=9536619&lkbb=9537444&fkbb=9536627 , bug b/267135531
BUG: b/267135531
Change-Id: I73f5b6c66e27dd0e5a628034604e80523f2acf99
|
|
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/20796272
Change-Id: Iaf5b26f302206fd9b8333617dc70d32e970efb26
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
A minimalistic replica of the SysUI feature flag infrastructure so the
app could both reuse some of the existing flag infrastructure (local
flag flipping) and have features controlled remotely (through
DeviceConfig).
Bug: 262578843
Test: Manual tests with some injected debug code and local flag flipping
Change-Id: If4be0cfce17e98b978966ea5172f85c5d406f833
|
|
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/20822634
Change-Id: I9c10ffd7c9983a0352b6a730ec82789e049b6f27
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
A preparation step for image preview UI update.
A new view, ImagePreviewView, that encapsulates image preview
grid UI is created. The view has a generalized interface for image
loading: it accepts a list of image URIs and a suspend function that
would perform actual image loading.
The image loading is still delegated to
ChooserContentPreviewCoordinator class that has the following collateral
changes:
- all UI logic is moved out of the class either into the new view or
into ChooserContentPreviewUI;
- mOnSingleImageSuccessCallback is removed and replaced with a
separate callback (see description below).
ChooserActivity used
ChooserContentPreviewCoordinator#mOnSingleImageSuccess as a signal to
start lisneting for the shared element transition animation (SETA) target
readiness. With all image preview UI logic now being encapsulated in the
new ImagePreviewView view, the new view triggers a SETA target readiness
callback instead, if configured. As ChooserActivity explicitely resumes
SETA for a non-image preview, ChooserContentPreviewCoordinator always
triggers image callback and the new view always notify about SETA target
readiness, we should be fine with remplacing the after-image-loaded
callback.
Flag: IntentResolver package entirely behind the CHOOSER_UNBUNDLED which is in teamfood
Bug: 262280076
Test: manual tests for all previe types, multi- and single profile and
SETA (share a shcreenshot) tests.
Test: delay image loading and test that in all cases SETA is not get
stuck.
Test: atest IntentResolverUnitTests
Change-Id: I081ab98c2bcb24cd2ad96b508ab559d7775aeaf4
|
|
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/20643189
Change-Id: I3aa5f28792718b4c60e7f05824aeaa716f1dbc53
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
This errorprone checker is no longer used.
Bug: 260268418
Test: Presubmits
Change-Id: Iff11442aa375bf466b9acdcac4d398927f72ad19
(cherry picked from commit 5d0ac03699756fd8b0bbeda7701ed4af625b8c4d)
|
|
This is *not* an obviously-safe "pure" refactor; there are a few
notable logic changes(*), but they should cause no observable
behavior changes in practice.
The simplified lifecycle (deferred assignment -> pre-initialization)
shows that this component has essential responsibilities to
`ChooserActivity` in ensuring that asynchronous tasks are shut down
when the activity is destroyed. Minor refactoring in this CL shows
that the component is otherwise injectable as a delegate in our
preview-loading "factories," to be extracted in another upcoming
cleanup CL; a new (temporarily-homed) interface in this CL makes
that delegation API explicit. I extracted the implementation to
an outer class to chip away at the `ChooserActivity` monolith; to
draw attention to the coordinator's business-logic responsibilities
in defining success/failure conditions (in addition to the UI
responsibilities that ayepin@ suggests could be separated from the
rest of the coordinator component); and to provide a clearer line
to cut away if we (hopefully) eventually decide to move off of this
particular processing model altogether. For more discussion see
comments on ag/20390247, summarized below.
* [Logic changes]
1. We now guarantee at most one `ContentPreviewCoordinator` instance.
This is unlikely to differ from the earlier behavior, but we
would've had no checks before a potential re-assignment. If one
were to occur, we would've lost track of any pending tasks that
the previous instance(s) were responsible for cancelling. (By
comparison, after this CL, multiple instances would instead
queue their requests in a shared coordinator and influence each
other's "batch" timeout logic -- it's debatable whether that's
correct, but it's ultimately insignificant either way).
2. Even if we never re-assigned any extra coordinator instances,
the model prior to this CL was effectively "lazy initialization"
of the coordinator, but we now initialize a coordinator "eagerly"
to simplify the lifecycle. While the earlier model was technically
"lazy," it was still computed during the `onCreate()` flow, so
this doesn't make much difference -- except notably, we'll now
initialize a coordinator for every Sharesheet session, even if we
don't end up building a preview UI. The coordinator class is
lightweight if it's never used, so this doesn't seem like a
problem.
3. The `findViewById()` queries in `ContentPreviewCoordinator` now
have a broader root for their search so that they can work for
both kinds of previews ("sticky" and "list item"), and we can
share the one eagerly-initialized instance. We can always change
the API if we need more specificity later, but for now it seems
like we can make this change with no repercussions for our app
behavior. For more detail see ag/20390247, but essentially:
a. The IDs of the views we search for are explicitly named for
the purpose of content previews and won't plausibly be used
for anything else. Thus,
b. The broadened queries could only be ambiguous if we were to
display more than one content preview in our hierarchy. But:
c. We show at most one content preview: either the "sticky"
preview in the `ChooserActivity` root layout, or the "list
item" preview that's built into the list *when we have only
one profile to show*, and never both (gated on the result
of `shouldShowTabs()`).
Test: atest IntentResolverUnitTests
Bug: 202167050
Change-Id: I0dd6e48ee92845ce68d6dcf8e84e272b11caf496
|
|
A scaffolding chnage that delegates AppPredictor instance creation to a
new factory class.
As we always create an AppPredictor instance for each available
profile, the creation logic is changed from lazy to eager.
As a collateral change, remvoe some obsolete flags.
Test: manual test
Test: atest IntentResolverUnitTests
Change-Id: I0cce89bce1fb39d39792263a3a490a074304afe3
|
|
The previous "un-kept symbol" problem (with ChooserGridLayoutAdapter)
was inadvertently fixed by ag/20120577 (confirmed by going back to
check `apkdiffstats` before-and-after to note that the old crash is
due to a method that was only "un-kept" in the old version that still
shared framework RecyclerView). Manual review of other un-kept
symbols under `com.android.intentresolver.*` all seemed reasonable in
this new CL. For more info, see discussion on b/249159065.
Bug: 249159065, 249081140
Test: manual, and `atest IntentResolverUnitTests`
Change-Id: Ia6cf5dd80ba3ec16038225ccdac5203782c3db1f
|
|
Change ResolverActivity's base class to FragmentMnager to make lifecycle
and view model related functionality available.
Only a few Activity's methods used by either ResolverActivity or
ChooserActivity are changed in the FragmentActivity hierarchy (except
for lifecycle methods e.g. onCreate):
- setContentView: adds support for view lifecycle;
- setEnterSharedElemenCallabck: adds support for older SDK
versions, no-op in our case;
- getFragmentManager(): deprecated by FragmetnActivity, switched over
to getSupportFragmentManager().
Test: manual general functinality test, pinning
(ChooserTargetActionDialogFragment)
Test: atest IntentResolverUnitTests
Change-Id: If3b80c63facb9de04343409cf64db758700ec147
|
|
This forks the ResolverDrawerLayout, which appears to be custom and
specific to our app. Any other dependencies from the framework package
com.android.internal.widget were old copies of androidx libraries,
and the "unbundled" IntentResolver is able to take dependencies on the
real versions instead. No dependencies into that framework package
remain after this CL.
These changes were excluded from ag/20001357 (as described in
go/chooser-fork-cl) in order to isolate any possible regressions (and
also to split up the review burden for the original fork CL).
There are no behavior changes *expected* from this CL, but any
edge-case discrepancies are hopefully improvements due to bugfixes or
other refinements that were put into the androidx libraries after the
framework copy was cut. The APIs themselves are supposed to be drop-in
compatible.
Test: atest IntentResolverUnitTests
Bug: 248566504
Change-Id: I8e02fd580d395446066fc2bb239a9bef833ef059
|
|
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
|
|
This restores the semitransparent background and entrance/exit
animations. A bunch of the style stuff is private so it couldn't be
referenced, subsequent CLs will resolve these (left them commented out
for now).
Bug: 202165481
Test: Visual verification
Change-Id: Icd75afde8e0ab3afa2e238c49c526100da86febb
|
|
This is a shortcut to bootstrap the unbundling work by
providing an architectural equivalent to the next "phase"
of unbundling while we continue investigating (i.e., in
in this version, the unbundled ChooserActivity is
responsible for showing the Sharesheet UI, and then it
launches the user's selection via the startActivityAsCaller
API).
For more information about:
* The "unbundling" project: go/sharesheet-unbundling
* The architecture of this next (third) unbundling phase:
go/sharesheet-unbundling-phases
* The motivation for starting with this temporary
inheritance-based implementation: b/202165481
Test: Manually tested (in combination with system-side
change ag/16285975). I had to disable the auto-selection
logic to see any UI (b/206831012), but I was able to get a
sharesheet activity from userspace, where I selected a
target that then got launched. This is *not* at parity,
but it's a baseline we can use when we investigate
the remaining issues.
Bug: 202165481
Change-Id: Ia2b89cc0e2735c8be7ad4cfc46c626a93e7fdee3
|
|
Migrate the "delegate chooser" activity from SysUI to the
new Sharesheet (IntentResolver) package. Set up basic
project structure, tests, etc.
This CL involves a lot of unfamiliar boilerplate that I've
tried to copy from neighboring projects. Please feel free to
recommend additional reviewers for any complexities I may
have overlooked.
The rest of this CL description will detail:
1. Unbundling/"delegate chooser" background
2. Scope: what's included in this change
3. Scope: what's not included in this change
4. Key considerations for code reviewers
[1. Unbundling/"delegate chooser" background]
The "delegate chooser" activity will eventually replace
the system `ChooserActivity` as the new "unbundled"
Sharesheet implementation. In order to validate the new
architecture, an earlier exploration added a "trampoline"
chooser implementation in SysUI. This implementation
presents no UI of its own, but instead handles the
fulfillment of the user's selection from the system
Sharesheet. In upcoming experiments, we expect to have
the unbundled implementation replicate the original UI of
the system `ChooserActivity` so that the new version can
take over earlier in the flow, and ultimately replace the
system implementation altogether. For more information,
see go/sharesheet-unbundling.
[2. Scope: what's included in this change]
This CL replicates SysUI's "trampoline" delegate
implementation into the newly-created directory for the
unbundled module. The main purpose of this CL is to
set up the basic boilerplate in that directory (owners,
etc). I stopped at the first meaningful milestone that I
could confirm worked correctly -- the unbundled unit
tests pass with atest. Note that (other than the package
names) the Java code itself is unchanged from the
earlier SysUI implementation.
[3. Scope: what's not included in this change]
Before the longer-term improvements outlined in
go/sharesheet-unbundling, there are a few fundamental
unbundling steps that are remaining after this CL. They
were omitted in this first pass since we already have a
working milestone and intend to focus the current review
on project/directory boilerplate.
Specifically:
A. There is no experiment that would cause users to
exercise the new delegation path (b/202166034).
If there are any issues with the implementation at this
point, we wouldn't expect them to be visible to users.
B. There may(?) be other steps required to integrate the
new "unbundled" module into the Android build (e.g.
makepush?). This CL is sufficient to run the unit tests
in the new unbundled directory, but no manual testing
was done to confirm the end-user behavior.
C. This doesn't include any APEX boilerplate (manifests,
keys). That may not be important yet since we don't
have any immediate plans to launch as a mainline
module, or it may come up as part of doing the
integration work for (B).
D. The old SysUI delegate implementation is left in tact,
but should be cleaned up as we switch over to the new
architecture.
[4. Key considerations for code reviewers]
This change is mostly boilerplate cribbed from neighboring
projects. Following is a short list of decisions I made
that could deserve a second look:
A. The package name: com.android.intentresolver
B. (omitted for lint, but this was resolved in a
discussion with OSPO)
C. The versioning scheme. I used a YYYY-MM versionName
as in ExtServices, but for now just have
versionCode="0" until we have a numeric scheme.
D. AndroidManifest attributes, mostly copied from SysUI.
E. SDK versions / "platform_apis" attribute. I had to try
a few things to get this working. It seems OK now, but
there may be a better/more elegant approach. If we do
need to support specific earlier versions, we should
confirm that those versions had the
startActivityAsCaller API available. Either way,
there's some cruft in this CL that should be cleaned
up once we confirm the approach.
Bug: 202164690, 202165476
Test: `atest IntentResolverUnitTests`
Change-Id: If53eee98ac92685810bbb84feb9cb1030a161502
|