ScrollIt is a Kotlin Android app for internal use on Samsung phones. It provides:
- Main app screen for permission setup and advanced tuning.
- Floating overlay for runtime control of downward auto-scroll in other apps.
- Shows permission status (overlay + accessibility).
- Opens the exact Android settings screens needed to enable permissions.
- Starts a floating, draggable overlay above other apps.
- Performs repeated downward-page scrolling using
AccessibilityService+dispatchGesture(). - Supports two behavior modes from the main app:
- Stable (more conservative and reliable)
- Smooth (smaller/faster gesture cycle)
- Uses 10 speed levels in overlay, controlled only by + / - buttons.
- Collapses into a small edge bubble and expands back on tap.
- Draw over other apps (
SYSTEM_ALERT_WINDOW) - Accessibility service (ScrollIt Accessibility)
- Foreground service (overlay runs as foreground service)
Note: this repository uses text-only launcher scripts (
gradlew,gradlew.bat) that call a local Gradle installation.
cd C:\Users\teply\Documents\scrollit
.\gradlew.bat testDebugUnitTest assembleDebug lintDebugcd /workspace/scrollit
./gradlew testDebugUnitTest assembleDebug lintDebug- Relative:
app/build/outputs/apk/debug/app-debug.apk - Example absolute (Linux in this repo):
/workspace/scrollit/app/build/outputs/apk/debug/app-debug.apk - Example absolute (Windows):
C:\Users\teply\Documents\scrollit\app\build\outputs\apk\debug\app-debug.apk
adb devices
adb install -r C:\Users\teply\Documents\scrollit\app\build\outputs\apk\debug\app-debug.apkSettings→About phone→Software information- Tap Build number 7 times
Settings→Developer options- Enable USB debugging
- Connect USB and confirm RSA key prompt
- Open ScrollIt
- Tap Open overlay permission settings
- Enable Appear on top for ScrollIt
- Open ScrollIt
- Tap Open accessibility settings
Accessibility→Installed apps→ ScrollIt Accessibility- Enable service and confirm warning dialogs
- Open ScrollIt and check both status rows are Enabled.
- In Advanced tuning, set:
- mode (Stable / Smooth)
- distance
- interval
- gesture duration
- Tap Launch floating overlay.
- Drag overlay to desired place.
- Tap Start on long page (Samsung Internet / Chrome).
- Verify page scrolls downward repeatedly.
- Tap + and -:
- speed number updates
1..10 - change applies while scrolling is already running
- speed number updates
- Tap Stop and verify scrolling stops immediately.
- Tap Hide and verify bubble appears on screen edge.
- Tap bubble and verify overlay expands back.
- Tap Exit and verify overlay closes and foreground notification disappears.
- Disable accessibility and tap Start again:
- verify visible error message, not silent failure.
- Some apps/screens ignore injected accessibility gestures.
- Gesture behavior differs slightly across One UI versions.
- Exact smoothness depends on app rendering and refresh timing.
connectedDebugAndroidTestneeds emulator or physical device.
app/src/main/java/cz/teply/scrollit/
MainActivity.kt
OverlayService.kt
ScrollAccessibilityService.kt
ScrollMode.kt
ScrollSettings.kt
ScrollSettingsStore.kt
ScrollSpeed.kt
app/src/main/res/layout/
activity_main.xml
overlay_controls.xml
overlay_bubble.xml
app/src/main/res/xml/
scroll_accessibility_service.xml
MIT. See LICENSE.


