
Order Pause: Curbing Impulsive Food Orders
A Behavioral Approach to Mindful Spending & Health
The Goal: Beyond Just Blocking
Order Pause isn't just another app blocker. It's a native Android application designed as a behavioral intervention tool specifically targeting impulsive ordering from food delivery apps (like Zomato, Swiggy, Uber Eats, etc.). The aim is to empower users to regain conscious control over their ordering habits, ultimately leading to better health choices, significant financial savings, and increased mindfulness about consumption patterns.
Instead of merely tracking spending after the fact, Order Pause introduces a deliberate 'pause'—a layer of beneficial friction—at the critical moment of impulse when opening a targeted app.
Leveraging Behavioral Science
The app's effectiveness is rooted in established psychological principles:
- Pattern Interrupt: An immediate, high-contrast overlay breaks the user's automatic app-opening habit, forcing a moment of conscious thought.
- Cognitive Priming: Rotating messages (e.g., 'Think of your savings goal!') prime the user to consider consequences *before* seeing tempting food images.
- Loss Aversion: A limited number of consumable 'skips' are needed to bypass the overlay. Using a scarce resource feels like a loss, discouraging impulsive bypasses.
- Friction & Delay: A mandatory cooldown timer before a skip can be used allows the initial craving intensity to diminish naturally.
- Stimulus Control: An optional grayscale filter applied *after* using a skip makes the food app's normally enticing visuals less appealing, reducing its psychological pull during the temporary unlock period.
- Feedback Loop: The statistics screen provides positive reinforcement by showing app closures vs. skips and estimated savings, helping users visualize their progress.
How It Looks




System Flow Overview
Here’s a simplified look at the app's interaction flow:
- Setup: Grant necessary permissions (Accessibility, Overlay) and select target food delivery apps.
- Detection: The
AccessibilityService
detects when a monitored app is launched. - Intervention: If not globally unlocked, the
OverlayService
(running as a Foreground Service) uses theWindowManager
to display the full-screen intervention overlay. - User Choice: The user must consciously choose to 'Close App' (logs closure, returns home) or 'Use Skip'.
- Skip Process: Using a skip involves a cooldown timer, selecting an unlock duration, and consuming a skip token (persisted via
Proto DataStore
). - Post-Skip Filter (Optional): A non-interactive grayscale filter can be shown over the target app during the unlock duration.
- Unlock Expiry: Once the timer expires, the filter is removed, and blocking resumes for the next app launch.
- Analytics: Key events (launch attempts, skips, closures) are logged locally using
Room DB
for the user's private statistics screen.
Technology Stack
- Language/UI: Kotlin, Coroutines, Flow, Jetpack Compose (Material 3)
- Architecture: MVVM, Clean Architecture principles, UDF
- DI: Hilt
- Persistence: Proto DataStore (Settings/State), Room DB (Local Analytics)
- Core Android: AccessibilityService, LifecycleService (Foreground), WindowManager, BroadcastReceiver, PackageManager, UsageStatsManager
- Billing: Google Play Billing Library (for optional skip purchases)
Take Control of Your Cravings
Ready to build more mindful habits and save money? Download Order Pause from the Google Play Store.
