Jesse Maddox All projects

Spoiler Alert for Android

Skip the commercials.
Not the suspense.

I usually start games late, fast-forward the commercials, and catch up near the end. Spoiler Alert keeps texts and alerts from telling me what happened before I get there.

Download for Android Free · Android 8+ · Version 3.13.0 Get the source & make it yours
Spoiler Alert holding two notifications for an invented soccer match
Playful paper illustration: choose a game, hide the spoilers, and catch up when you are ready
Watch on your time. Artwork made with ChatGPT. App screenshots below use invented demonstration data.

Why I made it

Starting late is the good part.

I built this for my own late starts. If I start a recording an hour or two behind, I can skip the commercials and catch up around the end. It is a lovely arrangement until my phone gets ahead of me.

That arrangement is excellent until ESPN, another app, or a friend tells me what happened before I get there. Do Not Disturb can make the phone quieter. It cannot make an incoming message less specific.

What it does

It handles three things.

Messages held in Spoiler Alert while protection is active

Hide spoilers

Let the group chat talk.

Matching alerts and messages are held on your phone until you choose to reveal them. Captured notification text stays on your phone. Ending a timer does not reveal it. Revealed history is removed after one year, and you can clear it sooner.

Game page with a catch-up summary and soccer goal-count, goal-minute, and resume questions

Check the game

Ask, but not too much.

Open a game for a catch-up summary or ask one question at a time. Soccer can give you total goals, goal minutes, and a place to resume with some buildup. Fixed rules generate the answers, with no AI involved.

Revealed messages grouped by game after protection has stopped

Catch up

Read everything when you are ready.

Reveal one message if you must, or open everything after you finish watching. The app groups the missed conversation by game and keeps it in order.

A few notes from making it

The simple version worked quickly.

The careful version took longer.

Things that were surprisingly difficult

  • Answering useful questions about a game without answering the important one
  • Handling delays, overtime, shifting schedules, and protection that needs to run long
  • Letting a timer stop protection without revealing anything automatically
  • Dealing with a notification that matches more than one active team or event
  • Asking for Android notification access without sounding like a minor criminal
  • Keeping public game lookups completely separate from private message content

Things I think it gets right

  • Hidden notification content stays on the phone
  • Nothing is revealed until the person using it makes that choice
  • Game-status answers are deterministic and deliberately limited
  • The app makes it obvious when protection is running
  • The whole loop works, from choosing a game to reading everything afterward
  • The interface feels calm even when the Android plumbing is not

How it protects you

Your messages are nobody's business.

Spoiler Alert works by reading notifications, which is exactly the kind of permission that deserves an explanation. Everything that permission touches stays on the phone: matching alerts are held locally, revealed locally, and never uploaded anywhere. There is no account, and no server somewhere holding your messages.

Public sports providers supply schedules and game status. Those requests expose your IP address and the teams or events requested to the provider. They do not include your notification text. There are no accounts, ads, or analytics in the app.

Android download

Try it on a game you have not watched yet.

Free for Android 8 or newer. No account, computer, or coding needed. The download is an APK, Android's app installer.

Download for Android Free · Android 8+ · Version 3.13.0

From download to your first game

  1. Open this page on your Android phone and tap Download for Android.
  2. Open the downloaded APK from your browser or the phone's Files → Downloads folder.
  3. If Android asks, allow this browser or Files app to install unknown apps. Return to the download and tap Install. You can turn that permission off afterward.
  4. Open Spoiler Alert, choose a team, and follow the notification-access explanation. This permission lets the app hold matching alerts on your phone. Also allow Spoiler Alert to send its own notifications when Android asks, so it can show protection status and reminders.
  5. Try the built-in demonstration. Hide the example alert, then reveal it. The demo uses invented notification text.
  6. Pick a game and start protection before watching. Reveal your held notifications when you catch up.

If notification access is blocked by a Restricted setting message, follow Google's instructions for allowing restricted settings on an app you trust.

What's new in 3.13.0

The full app is now open source. This release adds stronger protection for overlapping games and conversation updates, more careful answers when sports data is incomplete, and setup that remembers your choices if the screen rotates.

Already using it? Download this file, open it, and tap Update. The standard installer uses the existing developer signing lineage to preserve your followed teams and saved notifications. See the Android 8 exception below if an old build rejects the update. Future standard updates are also linked from Settings → App updates → Download latest update.

Protection is best effort: it cannot erase a notification you already saw, cover messages inside another app, or filter a watch or TV. Try the demonstration and check that protection is active before relying on it for a game.

Update conflicts, Android 8 compatibility, and checksums

If Android says the update conflicts: do not uninstall your old app. Uninstalling removes its local data. On Android 9 or newer, the standard installer supports the verified early and current signing identities. The early test-build update link now serves this same clean installer.

Android 8 or 8.1 with an old production-signed build, such as 3.9.0: use the Android 8 compatibility installer if the standard update conflicts. It is the same app code, signed for those historical installs. Android 8 cannot change signing identities, so the standard installer cannot fix that mismatch.

Compatibility users should return here for future compatibility updates. In the app, choose Settings → App updates → What's new to reach this page; the direct Download latest update button serves the standard installer.

Android 8 compatibility APK SHA-256
a003b09c440b8fa1deeb8b0b94b4cea9dbbfef53f0fb5b5c77a825efe2e75030

The GitHub release includes this installer, the source, checksums, and a build record tying the APK to the reviewed source.

APK SHA-256
475bcf83ec07170ee0a22a509e7b1c63aee7efc7d6f6f28b553aae5202e6a991

Built for me. Yours to improve.

Make it your own.

I built Spoiler Alert for my own use and preferences. The complete app code, design notes, and tests are available under the MIT license. Use them, change them, share them, or build something else from them. Fonts keep their own open licenses; the artwork notes explain the rights offered for the generated images.

If you improve it, feel free to send those improvements back. Hopefully it gives you a useful starting point, or at least a few ideas. Cheers!

Explore the project on GitHub · Read how it works