Screen Timeout Tile is a small Android app that adds a Quick Settings tile for switching the device screen timeout between 30 seconds and 10 minutes.
It is built for the common Android workflow where you want the screen to stay awake while reading, debugging, cooking, presenting, or using your phone as a reference display, but you still want a quick way back to a short timeout afterward.
Download the signed APK from the latest GitHub release. Android 7.0 or newer is required.
Because this app is distributed outside Google Play, Android may ask you to allow installs from the browser or file manager you used to download it. That permission can be turned off again immediately after installation.
- Adds a Screen Timeout Tile to Android Quick Settings.
- Toggles
Settings.System.SCREEN_OFF_TIMEOUTbetween 30 seconds and 10 minutes. - Shows the active timeout in the tile subtitle.
- Opens the Android Modify system settings permission screen when access is missing.
- Includes a setup screen for permission status, current timeout, and tile placement.
- Supports Android 13+ direct tile placement through the system prompt.
- Keeps Android 7-12 manual Quick Settings edit instructions available.
- Explains the hourglass, clock/bolt, and permission icons in the setup screen.
- Hourglass, highlighted: 10-minute timeout.
- Clock with bolt, dim: 30-second timeout.
- Lock: Modify system settings permission is still needed.
The tile is never “off.” Each tap switches between the two timeout presets.
Android has the screen timeout setting buried in system settings. This project makes that setting available as a single Quick Settings tap without adding accounts, analytics, networking, or background services.
- Android 7.0 or newer, API 24+
- Android Studio Narwhal 4 Feature Drop or newer recommended
- Android Gradle Plugin 8.13.0
- Kotlin 2.0.21
- JDK 17
./gradlew assembleDebug
./gradlew installDebugIf your shell cannot find the Android SDK, set the SDK path for the command:
ANDROID_HOME="$HOME/Library/Android/sdk" ANDROID_SDK_ROOT="$HOME/Library/Android/sdk" ./gradlew installDebugDebug builds use the isolated package com.stonecode.screentimeouttile.debug, so a dogfood install cannot block a later production-signed update.
- Launch Screen Timeout Tile.
- Tap Open system settings.
- Grant Modify system settings access for the app.
- Add the Quick Settings tile:
- Android 13+: tap Add tile and accept the system prompt.
- Android 7-12: open Quick Settings edit mode and drag the tile into an active slot.
- Tap the tile to switch between 30 seconds and 10 minutes.
The app requests only:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />That permission is required because Android protects writes to Settings.System.SCREEN_OFF_TIMEOUT. The user must grant it manually from Android system settings.
This app does not declare internet access, does not create accounts, does not run analytics, and does not collect personal data.
See the full privacy policy.
Run focused JVM tests:
./gradlew :app:testDebugUnitTestRun the broader local build:
./gradlew buildRun instrumentation tests with a connected device or emulator:
./gradlew connectedAndroidTestBefore publishing a release build, also run:
./gradlew :app:lintRelease
./gradlew :app:bundleReleaseRelease signing can use either the ignored release-signing.properties file or Keychain-backed environment variables. See release signing. Without signing inputs, Gradle intentionally produces an unsigned release artifact for validation only.
app/src/main/java/com/stonecode/screentimeouttile/
MainActivity.kt Setup screen and tile placement flow
TimeoutTileService.kt Quick Settings tile implementation
ScreenTimeoutController.kt Reads and writes the Android timeout setting
ScreenTimeoutSettingsStore.kt Settings.System abstraction
TimeoutTogglePolicy.kt 30-second / 10-minute toggle policy
TimeoutLabelFormatter.kt Human-readable timeout labels
app/src/main/res/
layout/activity_main.xml Setup screen layout
drawable/ Quick Settings and launcher icon assets
values/strings.xml User-facing strings
xml/ Backup and data extraction rules
app/src/test/java/ JVM unit tests
app/src/androidTest/java/ Instrumentation smoke tests
Version 1.1.0 is the first signed GitHub release. Play Store publishing remains a separate future distribution path.
Issues and pull requests are welcome. Useful contributions include:
- Testing tile behavior on different Android versions and OEM skins.
- Improving accessibility and large-font layout behavior.
- Testing signed releases across additional Android devices and OEM skins.
- Tightening the privacy policy and store listing docs.
For code changes, keep behavior covered by JVM tests where possible and use instrumentation tests for device-specific setup or tile-placement flows.
No license has been selected yet. Until a license is added, this public repository is available for reading and contribution, but reuse rights are not formally granted.