A focus-first Android app to reduce short-form video distractions
Features, behavior, and implementation details may change as experimentation continues.
Short-form video feeds like YouTube Shorts and Instagram Reels are engineered for endless engagement.
ReFocus is built for users who want to consume long-form content intentionally and reduce distraction โ without rooting, patching, or modifying third-party apps.
This project explores what is realistically possible within official Android and Google Play Store boundaries.
โ
Play Store compliant
๐ No root access
๐งฉ No patched or modified apps
๐ซ No sign-in or sign-up
๐ต No data collection
๐ No analytics or tracking
๐ฆ Local-only processing
๐ Transparent use of system APIs
ReFocus experiments with focus-oriented behavioral control using official Android system APIs.
Main components used:
๐งฉ Android AccessibilityService
๐พ Jetpack DataStore for local preferences
Deliberately NOT used:
โ Text labels
โ Content descriptions
โ View IDs
โ URLs
โ Network inspection
Multiple approaches were tested and discarded after real-device testing.
This repository documents learning and experimentation, not a guaranteed solution.
ReFocus cannot:
โ Reliably remove Shorts from YouTube feeds
โ Block ads inside YouTube
โ Inspect video URLs or IDs inside the YouTube app
โ Guarantee complete suppression of short-form content
These are intentional platform limitations, not implementation bugs.
๐ต Improved focus-based prevention of YouTube Shorts
๐ธ Support for Instagram Reels
๐๏ธ Per-app focus and restriction rules
๐จ UX improvements and clearer user education
๐ Intent-based or launcher-assisted flows
๐งฉ Jetpack Compose UI migration
๐งช Continued real-device experimentation
๐ฅ๏ธ Android Studio (latest stable)
๐ฑ Android SDK 24+
๐ฌ Kotlin
๐ฒ A real Android device (Accessibility is unreliable on emulators)
-
Clone the repository
git clone https://github.com/vivekjutture/ReFocus.git
-
Open the cloned folder in Android Studio
-
Sync Gradle : Allow Android Studio to complete Gradle sync
-
Run the app : Connect a real device and click Run โถ
All dependencies are added in app/build.gradle
-
Jetpack DataStore (Preferences)
implementation("androidx.datastore:datastore-preferences:1.0.0")
๐ซ No analytics, ads, or networking libraries are used.
Permissions are declared in AndroidManifest.xml
<uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" /><service
android:name=".RefocusAccessibilityService"
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
android:exported="false">android:resource="@xml/accessibility_service_config"
Accessibility is used only to:
๐ Observe app navigation events
๐ Enforce focus-related behavior
๐ต Prevent entry into short-form video experiences
Important guarantees:
๐ No content is read or stored
๐ No data leaves the device
๐ Usage is disclosed and Play Store compliant
app/
โโโ src/main/
โ โโโ java/com/example/refocus/
โ โ โโโ MainActivity.kt # App entry point
โ โ โโโ RefocusAccessibilityService.kt # Accessibility logic
โ โ โโโ RefocusDataStore.kt # Preference storage
โ โโโ res/
โ โ โโโ layout/
โ โ โ โโโ activity_main.xml # Main UI layout
โ โ โโโ xml/
โ โ โ โโโ accessibility_service_config.xml # Accessibility service config
โ โ โโโ values/
โ โ โ โโโ strings.xml # App strings
โ โ โ โโโ themes.xml # App theme
โ โ โโโ values-night/
โ โ โ โโโ themes.xml # Dark theme
โ โโโ AndroidManifest.xml # Permissions & services
โโโ build.gradle # App-level dependenciesContributions are welcome and encouraged.
- Fork the project
- Create your Feature Branch
git checkout -b feature/NewFeature - Commit your changes
git commit -m "Add New Feature" - Push to the branch
git push origin feature/NewFeature - Open a Pull Request
Please read the full contribution guidelines here: ๐ CONTRIBUTING.md
ReFocus does not collect, store, or transmit any personal data.
Read the full privacy policy here: ๐ PRIVACY_POLICY.md
This project is licensed under the Apache License 2.0. ๐ LICENSE
โ Root-only solutions
โ Patched or modified third-party apps
โ DRM or ad-bypass techniques
โ Hidden or deceptive behavior
๐ No user data collection
๐ No network calls
๐ No analytics
๐ต๏ธ No background surveillance
Accessibility usage exists only to support focus-related behavior.
ReFocus is:
โ Not affiliated with Google, YouTube, Meta, or any other platform
โ Not a YouTube mod or ad blocker
โ Not guaranteed to block all short-form content
If your goal is complete removal of Shorts and ads, patched clients or alternative front-ends may be more effective โ but those are out of scope by design.
๐ง Explore the real limits of Android system APIs
๐ Document what works and what doesnโt
๐ ๏ธ Share honest engineering lessons
๐ฑ Encourage healthier, more intentional content consumption
ReFocus prioritizes legality, transparency, and sustainability over hacks or shortcuts.