Skip to content

Conversation

@eymar
Copy link
Member

@eymar eymar commented Apr 1, 2021

No description provided.

Change-Id: I92761dd44513db85a1a7a7ebf7b8435932829bff
@eymar eymar merged commit 91e237e into compose-web-main Apr 6, 2021
eymar pushed a commit that referenced this pull request Apr 7, 2021
The saveBackStack() API is responsible for a number of
things:
1) Popping the saved FragmentTransactions off the back
stack - this was done in previous CLs.
2) Saving the actual FragmentTransactions themselves
so that they can later to restored
3) Save the state of each Fragment included in
those FragmentTransactions

This change seeks to address the core points of #2
and #3. Now, when saveBackStack() is called, all
Fragments will go through onSaveInstanceState(), either
immediately after onStop() (mirroring the behavior of
the activity being torn down due to a configuration
change, etc.) or immediately before onDestroy() (in
cases where the Fragment is already stopped - such as
when it is on the back stack).

The FragmentTransactions themselves are also
collapsed (i.e., replacing the expanded set of
REMOVE+ADD operations with the original REPLACE operation)
and have their state saved, readying them for later
restoration.

Note that this change does *not* handle nonconfig state
(ViewModels). That will be done in a follow up CL.

Test: saveBackStack test passes
BUG: 80029773
Change-Id: I37327ab6a7deab0d72d5be1a251c0d5e3a280362
eymar pushed a commit that referenced this pull request May 26, 2021
Due to internal implementation of androidx.compose.material.Text using androidx.compose.material.LocalContentColor and androidx.compose.material.LocalContentAlpha the original approach of wrapping the andrdoix.compose.material.Text components is not viable.

This patch instead makes a copy of the androidx.compose.material version replacing the LocalContent providers with the correct Wear specific versions.

The patch also moves the LocalTextStyle and ProvideTextStyle functionality from the MaterialTheme.kt file into Text.kt.

Finally the existing ChipTest class has been updated to use the new Text composables.

Test: ./gradlew :wear:compose:compose-material:connectedCheck --info --daemon
Bug: 188666289
Change-Id: I8e590e2ff1d12561cd9cda04e30764bf9aba7adf
eymar pushed a commit that referenced this pull request May 26, 2021
eymar pushed a commit that referenced this pull request Jun 3, 2021
When using the setupActionBarWithNavController()
method, just setting the up indicator to null
isn't enough to remove the Up icon - we need
to specifically call setDisplayHomeAsUpEnabled(false).

This fixes a regression when this class
was moved to Kotlin.

As part of this, moved to checkNotNull() around
nullable properties to better match the
expectations that these should never be null.

Test: tested in NavigationAdvancedSample
BUG: 189868637
Relnote: "Fixed a regression introduced in
[Navigation `2.4.0-alpha01`](#2.4.0-alpha01) where
`setupActionBarWithNavController()` would not
properly remove the Up icon when you are on a
top level destination."

Change-Id: I5d4439021161f544d664a822e1c422ff60c91e1b
@eymar eymar deleted the karpovich/compose-web-events branch June 4, 2021 13:40
olonho pushed a commit that referenced this pull request Sep 27, 2021
While in many cases query parameters are in the
form of myarg={myarg}, this should never be a hard
requirement. Instead, only the value within braces
(what is actually used as the argument name) should
be used when validating that all required
arguments are present in the NavDeepLink.

Relnote: "Fixed a regression introduced in
[Navigation `2.4.0-alpha09`](#2.4.0-alpha09) when using
deep links with query parameters where Navigation would
incorrectly validate argument names using the query
parameter name (i.e., the `id` of `?id={userId}`) rather
than using the actual argument names present in the value
(the `userId` in the example above)."
Test: new NavDestinationAndroidTest tests pass
BUG: 200845660

Change-Id: Id2f399a5e19e593f34e02fc811f1cc28ec0689b8
alexander-gorshenev pushed a commit that referenced this pull request Feb 9, 2022
Now with toml fixes!

Test: ./gradlew bOS --dry-run
Change-Id: I888372d181532ff55cf51475bf04ab039be2c773
alexander-gorshenev pushed a commit that referenced this pull request Feb 9, 2022
This reverts commit d25c04a.

Reason for revert: b/216514062; breaks local runs on osx

Change-Id: Iab86601df3f7603c10a90e235d0b3239ca5ae452
alexander-gorshenev pushed a commit that referenced this pull request Feb 9, 2022
igordmn pushed a commit that referenced this pull request May 25, 2023
Bug: 269390098
Test: build
Test: """Test manually for two device connection. Install the app
    on 2 devices. On device #1, run the app and on Advertiser page
    enable flag Device Name (for easier finding) and connectable.
    Start advertising and start Gatt Server. On device #2, scan for
    devices and find device #1. Press `Connect` to connect and
    automatically discover services of device #1 on device #2
    """
Change-Id: Ib61bbb32eb42ef11d544046abbc4284aa7928c32
eymar pushed a commit that referenced this pull request Jul 19, 2023
…ry. (#2)

* Keeps the file channel locks given they are OS wide.
* Removes the check for `position` which only works in APPEND mode.

Test: ./gradlew :profileinstaller:in-te:p-v:cAT
Fixes: b/281227404
Change-Id: I407940503d08b7be5994c6076c6b52682851c1f6
eymar pushed a commit that referenced this pull request Jul 19, 2023
igordmn pushed a commit that referenced this pull request Jan 30, 2024
This CL adds a hoisted ScrollState to BasicTextField2 to enable horizontal and vertical scroll. Like the existing `BasicTextField`, BTF2 only supports single orientated scrolling. Single line configuration disables `softWrap` and enables horizontal scroll. Multi-line configuration does the exact opposite to enable vertical scroll.

Cursor is kept in visible area only when it's shown (focused, editable).

There is also a fix to clip test for `BasicTextField`. The previous test only looked at the area #4, but in fact it needs to check #2, #3, #4 for any spill from BasicTextField.

// BasicTextField is #1
// Wrapping box is all the area visible below
-----
|1|2|
-----
|3|4|
-----

Relnote: N/A
Test: :compose:foundation:foundation:cAT
Change-Id: Iccac198dec2d2908c4c51ddfaf40dcb05515ce70
shishkin-pavel pushed a commit that referenced this pull request May 7, 2024
Attempt #2. Previous approach was still flaking.

Bug: b/332582418
Test: updating
Change-Id: I29bd3a3924a647b6577ae6c1c92bef2ccdb958d2
Schahen added a commit that referenced this pull request Oct 25, 2024
Schahen added a commit that referenced this pull request Oct 25, 2024
MatkovIvan pushed a commit that referenced this pull request Dec 9, 2024
State is restored at one of two points:
1) onRestoreInstanceState, if we have a PdfDocument set at that point
2) onDocumentSet, if we didn't have a PdfDocument set during onRestoreInstanceState

In case #2, we were failing to instantiate a PageLayoutManager if we exited early from trying to restore a state pertaining to a different document.

This ensures PageLayoutManager is always instantiated, and includes a regression test for the bug.

Test: ./gradlew :pdf:pdf-viewer:cAT, manual
Change-Id: Idb33e36cb6b88bdbcadf329cc37611b7153c5f75
MatkovIvan pushed a commit that referenced this pull request Dec 9, 2024
- Upstream manual fixes made in ag/30558640

Test: Presubmit
Change-Id: Ie3ec24b8c8abc8be0107557dc9b7cc15ac0bce79
MatkovIvan pushed a commit that referenced this pull request Jan 27, 2025
…review #2).

Test: Adjusted manual and device tests.
Relnote: Renamed SecurityStateManager to SecurityStateManagerCompat, added additional documentation for public properties and functions, and made getComponentSecurityPatchLevel and getVulnerabilityReportUrl static methods
Bug: 355669433
Change-Id: I44a0c76d7c91dc3a60f44758ce0d27e0432a1203
MatkovIvan pushed a commit that referenced this pull request Jan 27, 2025
MatkovIvan pushed a commit that referenced this pull request Jul 31, 2025
This CL adds the refresh() for SDKs where the refresh system API
is unavailable, ensuring the underlying window is always valid and
updated when accessed. This is important for preventing stale window
accesss and reducing test flakes often caused by window closures or
updates during testing.

Design: go/uiautomator-window-design
Bug: 425372420
Test: ./gradlew :test:uiautomator:i:t:connectedAndroidTest (UiWindowTest)
Relnote: New APIs for desktop multi-window
Merged-In: I40528316751814034580696f01ab78eb696e83bf
Change-Id: I40528316751814034580696f01ab78eb696e83bf
MatkovIvan pushed a commit that referenced this pull request Sep 15, 2025
Turns out inspection-testing is not building snapshots, so we need to
keep it, instead swap just inspection:inspection

Test: None
Change-Id: Idd9d11fe21d3f915494eaf5ee1fb2afd7387f389
MatkovIvan pushed a commit that referenced this pull request Sep 30, 2025
Deciding TalkBack whether it should intercept RSB movtion events to
navigate a11y focus is based on the input focus. If the scrollable node
fail to acquire input focus, TalkBack would treat it that RSB motion
events could be used by the input focused node and then it doesn't
intercept RSB movetion events.

Therefore, if we want to navigate a11y focus by RSB, we need to request
input focus to the scrollable node which has CollectionInfo.

Node #1 at (l=0.0, t=0.0, r=119.0, b=456.0)px
 |-Node #2 at (l=0.0, t=0.0, r=119.0, b=456.0)px, Tag: 'scalingLazyColumn'
    |-Node #4 at (l=0.0, t=-22.0, r=119.0, b=478.0)px
      CollectionInfo = 'androidx.compose.ui.semantics.CollectionInfo@8d7827'
      Focused = 'true'
      ...

Bug: b/445332360
Test: Run wear.compose.integration-tests.demos
Change-Id: I6be3cd527a60eb95679889e4c86e8240530894b0
MatkovIvan pushed a commit that referenced this pull request Nov 19, 2025
When re-filling the cache window we were using old data, so we sometimes avoided re-caching items that have changed. When the dataset has changed and we need to re-fill the window, we need to clean-up the cached information (prefetched and item sizes) so the algorithm for prefetching will run for all new items. We're also now using the fact that there was a change in the visible item's keys to indicate the need to refill the window.

Test: Updated existing test.
Fixes: 454439658
Change-Id: I716ec2adbb230d6292743034e1ea1a2d9d36a766
MatkovIvan pushed a commit that referenced this pull request Nov 19, 2025
This reverts commit fdc614d.

Reason for revert: broke g3

Change-Id: I932d0f0d2ff42cb8ae7342a3d3d65ada1891681d
rock3r added a commit to rock3r/compose-multiplatform-core that referenced this pull request Nov 26, 2025
This fixes two issues with text context menus:

### 1. The menu should not show if it's empty
If the context menu has no items, it should not show.
This is easily achieved by only popping up the menu if
the items list is not empty.

### 2. The menu should not pop up "after the fact"
Once 1 is fixed, there is another issue that crops up:
the menu which was not popped up initially, becomes
visible as soon as there would be items in it. For
example, if no menu pops up in a `SelectionContainer`
if the user right-clicks an empty spot, but then does
a selection. Same for BTF, if the user types any text
in an initially-empty BTF after right clicking it.

This is done by explicitly closing the menu session if
it contains no items.

Note: JPopupContextMenuRepresentation works differently
and this only explicitly fixes JetBrains#1 for it. Due to it
being a completely different implementation, this does
not really suffer from JetBrains#2
rock3r added a commit to rock3r/compose-multiplatform-core that referenced this pull request Nov 26, 2025
This fixes two issues with text context menus:

### 1. The menu should not show if it's empty
If the context menu has no items, it should not show.
This is easily achieved by only popping up the menu if
the items list is not empty.

### 2. The menu should not pop up "after the fact"
Once 1 is fixed, there is another issue that crops up:
the menu which was not popped up initially, becomes
visible as soon as there would be items in it. For
example, if no menu pops up in a `SelectionContainer`
if the user right-clicks an empty spot, but then does
a selection. Same for BTF, if the user types any text
in an initially-empty BTF after right clicking it.

This is done by explicitly closing the menu session if
it contains no items.

Note: JPopupContextMenuRepresentation works differently
and this only explicitly fixes JetBrains#1 for it. Due to it
being a completely different implementation, this does
not really suffer from JetBrains#2
eymar pushed a commit that referenced this pull request Dec 3, 2025
When re-filling the cache window we were using old data, so we sometimes avoided re-caching items that have changed. When the dataset has changed and we need to re-fill the window, we need to clean-up the cached information (prefetched and item sizes) so the algorithm for prefetching will run for all new items. We're also now using the fact that there was a change in the visible item's keys to indicate the need to refill the window.

Test: Updated existing test.
Fixes: 454439658
Relnote: Introduce isCacheWindowRefillFixEnabled to control the roll out of the cache window refill fix.

Change-Id: I4e52baefd57b178834444a60cf43a016ec193e52
eymar pushed a commit that referenced this pull request Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants