Skip to content

Develop - animate stroke width in island, improved balancing, battery icons, fix battery colors, fix freeze settigns button overflow, missing search, backdrop blur availability info - #1774

Merged
sameerasw merged 22 commits into
mainfrom
develop
Nov 12, 2026

Conversation

@sameerasw

Copy link
Copy Markdown
Owner

Type of change

  • Bug fix
  • New feature
  • Translations
  • Documentation
  • Build / CI tooling

sameerasw and others added 21 commits November 8, 2026 10:57
…te_outline_from_expanded

# Conflicts:
#	app/src/main/java/com/sameerasw/essentials/data/repository/SettingsRepository.kt
#	app/src/main/java/com/sameerasw/essentials/island/service/IslandCoordinator.kt
#	app/src/main/java/com/sameerasw/essentials/island/state/CompactCellWidths.kt
#	app/src/main/java/com/sameerasw/essentials/island/state/CompactLayoutEngine.kt
#	app/src/main/java/com/sameerasw/essentials/island/state/IslandController.kt
#	app/src/main/res/values-fr/strings.xml
#	app/src/main/res/values-ru/strings.xml
#	app/src/main/res/values-si/strings.xml
#	app/src/main/res/values-uk/strings.xml
#	app/src/main/res/values-vi/strings.xml
…te_outline_from_expanded

# Conflicts:
#	app/src/main/java/com/sameerasw/essentials/island/ui/IslandRoot.kt
…igation (#1767)

<!--
New features need an issue labeled `approved` and assigned to you before
you open a PR.
Feature PRs without one will be closed. See CONTRIBUTING.md.
-->

## Linked issue
Closes #1765 

## Description
<!-- What does this PR change and why? -->
Fixes the reported issue of navigation and music playing loop on island
to not show any content itself.

The error was that the island was measuring the navigation rendering as
a whole chip, while the music or any live notification using width since
the new options to double it's width.


**Root cause**
`CompactTemplate` measures a chip as one unit.
`CompactCellWidths.record()` stored that unit's whole width under its
first cell key. Which cell comes first depends on the arrangement:
- On the left side of the camera the cell order is reversed, so the
width jumped between the `icon` and `value` keys whenever the chip
changed sides. This caused phantom width changes, or double counting
when the old value was kept.
- Content animating out in `AnimatedContent` kept measuring with its old
grouping. It overwrote the widths the incoming content had just
reported, and each write triggered another relayout.

Because the measured widths depended on the arrangement, and the
arrangement depended on the widths, the balancer never settled.

**Fix**
- `CompactCellWidths.record()` splits a unit's width evenly across its
cells, in sorted key order. An item's total width now stays the same on
either side of the camera and whether it's grouped or split. `onChange`
fires only when a cell's width changes by more than the jitter
threshold.
- `CompactTemplate` only records widths from the content a slot is
animating to (`k == target`), so outgoing content can't overwrite
current measurements.

## Type of change
- [x] Bug fix
- [ ] New feature
- [ ] Translations
- [ ] Documentation
- [ ] Build / CI tooling

## UI changes
<!-- Required if this PR changes or adds UI. Please attach screenshots
or a screen recording. -->

_Sorry if the video is really laggy, for some reason it lags on logcat
recordings and didn't have a better way to demostrate using the
emulator_


[Screen_recording_20261112_030033.webm](https://github.com/user-attachments/assets/4d26fa76-3e18-4dde-8861-d9eacb9cb860)

## Checklist
- [x] For new features: the linked issue is labeled `approved` and
assigned to me.
- [x] This PR covers a single feature or fix and is under ~1,000 changed
lines (or the size was agreed in the issue).
- [x] The base branch is `develop`.
- [x] `./gradlew assembleDebug` and `./gradlew testDebugUnitTest` pass.
- [x] I tested the changes on a device or emulator (including Shizuku or
Root if applicable).
- [x] I understand every line of this change and can explain it in
review, including any AI-assisted code.
- [x] The code follows the [Development
Guide](https://github.com/sameerasw/essentials/blob/develop/docs/DEVELOPMENT_GUIDE.md).
)

<!--
New features need an issue labeled `approved` and assigned to you before
you open a PR.
Feature PRs without one will be closed. See CONTRIBUTING.md.
-->

## Linked issue
N/A

## Description
<!-- What does this PR change and why? -->
Small enhancement and follow up of current android battery icon with
indicators.

This PR adds the missing lightning icon and + glyph on the battery icon
on island.

Also fixes and implements current text color contrast.


## Type of change
- [x] Bug fix
- [ ] New feature
- [ ] Translations
- [ ] Documentation
- [ ] Build / CI tooling

## UI changes
<!-- Required if this PR changes or adds UI. Please attach screenshots
or a screen recording. -->

<img width="1344" height="352" alt="Screenshot_20261110-010938"
src="https://github.com/user-attachments/assets/e9a8732b-1162-4250-baa8-20f60e823307"
/>
<img width="1344" height="352" alt="Screenshot_20261110-010954"
src="https://github.com/user-attachments/assets/d5da46a0-2c4b-44de-802c-250057631a27"
/>
<img width="1344" height="352" alt="Screenshot_20261110-011004"
src="https://github.com/user-attachments/assets/3ae9be67-0ad6-4fd0-a760-e323ed60dca3"
/>
<img width="1343" height="352" alt="Screenshot_20261110-011031"
src="https://github.com/user-attachments/assets/72a6b90f-7eaa-4e6a-9f63-9bdb52b6bcfe"
/>

<img width="824" height="162" alt="Image"
src="https://github.com/user-attachments/assets/bc558e7d-f99a-46d5-89dd-33ecdd8b4f07"
/>

## Checklist
- [x] For new features: the linked issue is labeled `approved` and
assigned to me.
- [x] This PR covers a single feature or fix and is under ~1,000 changed
lines (or the size was agreed in the issue).
- [x] The base branch is `develop`.
- [x] `./gradlew assembleDebug` and `./gradlew testDebugUnitTest` pass.
- [x] I tested the changes on a device or emulator (including Shizuku or
Root if applicable).
- [x] I understand every line of this change and can explain it in
review, including any AI-assisted code.
- [x] The code follows the [Development
Guide](https://github.com/sameerasw/essentials/blob/develop/docs/DEVELOPMENT_GUIDE.md).
## Description
<!-- Describe what this PR changes and why. If it resolves an issue,
link it here: e.g. Closes #123 -->
Small quick fix, current outline doesnt animate when the transition of
expanded and outline off is enabled leaving to a pop of the outline
render.

This PR just adds a quick animation/transition to it.

## Type of change
- [x] Bug fix
- [ ] New feature
- [ ] UI / visual update
- [ ] Performance improvement
- [ ] Refactoring / cleanup
- [ ] Translations
- [ ] Build / CI tooling

## UI changes
<!-- Required if this PR changes or adds UI. Please attach screenshots
or a screen recording. -->

slow and manual expanded/collapsed transition leaving how the outline
changes opacity given the transition between states.

<img width="586" height="280" alt="outline"
src="https://github.com/user-attachments/assets/9399c9b5-8c00-4033-b690-fa616075dd27"
/>


## Checklist
Before submitting, please make sure:
- [x] The base branch is set to `develop` (not `main`).
- [x] The app builds cleanly locally with `./gradlew assembleDebug`.
- [x] Unit tests pass with `./gradlew testDebugUnitTest`.
- [x] You tested the changes on a device or emulator (including Shizuku
or Root if applicable).
- [ ] New preferences use `SettingsRepository` for keys and
getter/setter methods.
- [ ] New user-facing settings are registered in `FeatureRegistry.kt`
for search indexing.
- [x] New UI follows the design system in `ui/core/`
(`RoundedCardContainer`, `IconToggleItem`, etc.).
- [ ] Strings are added to `res/values/strings.xml` and drawables use
rounded variants (`R.drawable.rounded_*`).
@sameerasw sameerasw self-assigned this Nov 12, 2026
@sameerasw sameerasw added the bug Something isn't working label Nov 12, 2026
@sameerasw
sameerasw merged commit b39a53f into main Nov 12, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Essentials Progress Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants