Skip to content

feat: screenshots page with auto-clean - #1385

Merged
sameerasw merged 6 commits into
sameerasw:developfrom
jawzf:claude/screenshots-page
Oct 18, 2026
Merged

sameerasw merged 6 commits into
sameerasw:developfrom
jawzf:claude/screenshots-page

Conversation

@jawzf

@jawzf jawzf commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Joe · project thread

Description

Follow-up to #1380 (merged).

Before: screenshot cleanup was a single "Delete shared screenshots" toggle that trashed a screenshot right after you shared it.

After: a dedicated Screenshots page under Security with:

  • After sharing: the existing toggle, plus a delay of Immediately, 1 hour or 1 day before the shared screenshot is trashed.
  • Auto-clean: trashes every new screenshot after 1, 7 or 30 days. Each new screenshot gets a quiet, grouped notification with a preview and Keep / Trash now actions, which times out after an hour. Screenshots starred in Photos are always kept.
  • Cleaned so far: how many screenshots were cleaned and the storage saved.

How: a MediaStore ContentObserver in the accessibility service picks up newly saved screenshots (only ones added in the last minute, with the last seen id stored so restarts don't re-notify). Each one gets a unique per-screenshot WorkManager job; Keep cancels it, and Trash now runs it immediately. Trashing still uses the IS_TRASHED update from #1380, so screenshots stay restorable for 30 days, and starred ones are skipped by the automatic cleanup. No new permissions.

Type of change

  • Bug fix
  • New feature
  • UI / visual update
  • Performance improvement
  • Refactoring / cleanup
  • Translations
  • Build / CI tooling

UI changes

1_screenshots_page

The new Screenshots page.

2_auto_clean_notification

The auto-clean notification with Keep and Trash now.

3_share_delay_toast

The message shown when a shared screenshot is scheduled for later.

4_grouped_notifications

Several screenshot notifications grouped together.

Checklist

Before submitting, please make sure:

  • The base branch is set to develop (not main).
  • The app builds cleanly locally with ./gradlew assembleDebug.
  • Unit tests pass with ./gradlew testDebugUnitTest.
  • 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.
  • 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_*).

🤖 Generated with Claude Code

https://claude.ai/code/session_01CVTvKLdph38zfD5D45PjJh

@jawzf
jawzf requested a review from sameerasw as a code owner October 15, 2026 04:46
@sameerasw
sameerasw marked this pull request as draft October 15, 2026 12:24
@jawzf
jawzf force-pushed the claude/screenshots-page branch from 97b4d5f to b3c0508 Compare October 15, 2026 15:56
@jawzf
jawzf marked this pull request as ready for review October 15, 2026 15:58
@sameerasw
sameerasw marked this pull request as draft October 15, 2026 17:18
@jawzf
jawzf force-pushed the claude/screenshots-page branch from 9162b6c to a7b38bf Compare October 15, 2026 17:30
@jawzf
jawzf marked this pull request as ready for review October 15, 2026 17:30
Moves "Delete shared screenshots" onto a new Screenshots page under Security
and adds:
- a delay after sharing (immediately, 1 hour, 1 day)
- auto-clean: every new screenshot is trashed after 1, 7 or 30 days, with a
  quiet notification offering Keep and Trash now; starred screenshots are kept
- a count of cleaned screenshots and the storage saved

New screenshots are picked up with a MediaStore ContentObserver and each
cleanup is a unique WorkManager job keyed by the media id.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@jawzf
jawzf force-pushed the claude/screenshots-page branch from 8b824a5 to 44caae0 Compare October 15, 2026 18:41
@sameerasw
sameerasw merged commit d8bb0cf into sameerasw:develop Oct 18, 2026
2 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Essentials Progress Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants