PersonalOngoingPublic2026

SYPAU

SYPAU (Silence Zones & Smart Phone Rules) lets you draw Zones on a map — circles, polygons, or freehand shapes — and attach a reusable Profile to each one: ringer mode, per-stream volumes, Do Not Disturb, vibration, brightness, and screen timeout. Cross into a zone and SYPAU applies its profile automatically; leave it and only the settings that zone actually changed get released, restored from a snapshot rather than guessed. Alarms are always handled separately from other audio so a silenced ringer never means a missed morning.

SYPAU

About This Project

Manually toggling ringer, DND, and volume every time you enter a library, classroom, or gym is easy to forget, and most automation apps either overreach on permissions or clumsily overwrite settings they never touched.

Built a priority-resolved geofencing engine that only ever touches the device controls a profile explicitly configures, snapshotting and restoring the rest so overlapping or nested zones behave predictably (highest priority wins, ties go to the smaller zone).

An Android app that reliably applies the right phone profile the moment you cross a drawn boundary, transparently reporting which controls it can and can't touch under Android's permission model instead of silently failing.

Role

Mobile Developer

Year

2026

Status

Public

Type

Personal

Technology Stack

React NativeExpoTypeScriptMapLibreSQLite

Project Story

The Challenge

Manually toggling ringer, DND, and volume every time you enter a library, classroom, or gym is easy to forget, and most automation apps either overreach on permissions or clumsily overwrite settings they never touched.

The Approach

Built a priority-resolved geofencing engine that only ever touches the device controls a profile explicitly configures, snapshotting and restoring the rest so overlapping or nested zones behave predictably (highest priority wins, ties go to the smaller zone).

The Outcome

An Android app that reliably applies the right phone profile the moment you cross a drawn boundary, transparently reporting which controls it can and can't touch under Android's permission model instead of silently failing.

Insights & Takeaways

Highlights

  • Zone engine resolves overlapping/nested zones by priority and area, applying the incoming profile before releasing only what the outgoing one held.
  • Every device control declares its real Android capability tier (direct, permission-gated, settings-panel-only, or unsupported) instead of pretending everything just works.
  • Alarms are tracked independently from ringer/media volume so silencing a zone can never silence an alarm unintentionally.

Challenges

  • Getting profile transitions right at zone boundaries — applying the new profile first, then diffing against the old one's snapshot instead of a naive on-exit/on-enter toggle.
  • Mapping Android's fragmented, version-dependent permission model (Notification Policy access, Modify System Settings, per-OEM quirks) into an honest per-control status the UI can show.

Lessons Learned

  • Snapshot-and-diff beats blind toggle-on-exit for any automation that can nest or overlap — it's the only way restoring state doesn't clobber what was already there before the app touched it.

Related Work