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.14.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.14.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 tap Hide notifications, as early as you like. Hiding starts just before the game begins and runs until it should be over. 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.14.0

Protection now follows the game's own clock. Tap Hide notifications in the morning, or days ahead, and hiding still starts just before kickoff and runs until the game should be over. Turn on Hide during every game for a followed team and each of its games is covered automatically.

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
bd07b6c44f16f59e6f61d78832b4e1b10738cb96bfb58778ad96042ff431fba9

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

APK SHA-256
78108223eaa449402df681c2e658b9f784433f99649318528a8da9c7407d117d

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