Skip to content

Conversation

@yet300
Copy link
Contributor

@yet300 yet300 commented Jan 15, 2026

Screen_recording_20260115_122047.mp4

Checklist

  • I have mentioned the corresponding issue and t

he relevant keyword (e.g., "Closes: #xy") in the description (see https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)

  • If it is a core feature, I have added automated tests

actions-user and others added 26 commits September 21, 2025 06:21
# Conflicts:
#	app/src/main/assets/nostr_relays.csv
# Conflicts:
#	app/src/main/assets/nostr_relays.csv
# Conflicts:
#	app/src/main/assets/nostr_relays.csv
Introduces a new `spoiler` Composable `Modifier` to hide content.

The effect includes:
- A blur animation.
- An animated noise overlay with a dim background.
- A ripple effect on reveal, triggered by a user tap.
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5e5c42d50e

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines 114 to 117
val currentIndex = imagePaths.indexOf(path)
onImageClick?.invoke(path, imagePaths, currentIndex)
}
.spoiler(isOn = isSpoilerVisible) { isSpoilerVisible = false }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Disable click before spoiler reveal in sending branch

When the sender’s image is still uploading (progressFraction < 1), this branch keeps clickable always enabled even while isSpoilerVisible defaults to true, so a single tap both dismisses the spoiler and opens the full‑screen viewer, bypassing the blur. In the fully‑revealed branch you explicitly disable clicks while the spoiler is on, so this inconsistency means spoilered images can be opened immediately for partially delivered messages.

Useful? React with 👍 / 👎.

Comment on lines 58 to 62
if (isOn != lastIsOn) {
if (!isOn) {
revealState = RevealState.Revealing(System.currentTimeMillis(), touchPosition)
} else {
revealState = RevealState.Hidden

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stop spoiler animation once reveal completes

After isOn flips to false, the state is set to RevealState.Revealing but is never transitioned to RevealState.Revealed, so the modifier keeps running the infinite transition and draw pass indefinitely even when the content is fully revealed. On chats with many images this keeps recompositions and shader updates active long after reveal, which is a performance drain that won’t self‑terminate.

Useful? React with 👍 / 👎.

@yet300
Copy link
Contributor Author

yet300 commented Jan 15, 2026

uses the general blur radius blurRadius (as in the S+ branch),
quantizes it for pre‑S (0…8 steps)

fewer recalculations,
caches a small copy of the bitmap (64px) and blurs only it.

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.

3 participants