ShizuStore

SleepTimer

Xitee1

1.3.0 · GitHub

Download APK
Power management Android 8.0+ 12 minutes ago GPL-3.0
19 ShizuStore
4.1k GitHub
63 Stars
1 MB Size

More about this app

Sleep timer that can pause media, and turn off WIFI/Bluetooth/Display

SleepTimer

Warning

Because Google decided to lock down Android as of September 2026, this app will stop working soon (without a setting that could be removed at any time). If you want to avoid that, sign the petition and hope for the best. For more details read here: https://keepandroidopen.org/

Update: Google made some changes to the date and affected app stores. This luckily means that it's likely this app will continue to work for now.

A fancy sleep timer for Android. Starts a countdown that stops media playback, fades audio out, and optionally locks the screen when it ends — so you can fall asleep without your phone draining the battery or blaring podcasts at 3 AM.

No accounts, no ads, no trackers, no network access.

Features

  • Simple countdown timer with +step, −step and cancel actions directly from the notification (step is configurable, defaults to 5 min)
  • Shows the exact wall-clock time at which the timer will end
  • Stops audio and video playback across apps at the end of the timer
  • Configurable fade-out duration before playback stops
  • Optional screen lock when the timer ends — choose between Device Admin (standard Android lock, credential required to unlock) or Shizuku soft lock (simulates the power button, biometric unlock keeps working)
  • Optional Wi-Fi, Bluetooth, and mobile data off when the timer ends (via Shizuku, since modern Android blocks apps from toggling these directly)
  • Six built-in themes (Midnight, Ocean, Ember, Light, Basic, AMOLED) with an optional drifting starfield behind the dial
  • Haptic feedback for timer controls (can be disabled)
  • Foreground service keeps the timer reliable even when the app is in the background
  • English and German translations

Screenshots

Timer running Settings Themes
Timer running with notification actions Settings screen Theme picker

Permissions

Permission Why it is needed
FOREGROUND_SERVICE + FOREGROUND_SERVICE_MEDIA_PLAYBACK Keeps the countdown running reliably in the background so it fires on time
POST_NOTIFICATIONS Shows the running timer with quick actions (+/− step, cancel)
BIND_DEVICE_ADMIN (optional, force-lock only) Required by Android to lock the screen when the timer ends — only requested if you pick the Device Admin lock method

The app declares a ShizukuProvider so it can talk to Shizuku when you enable the Wi-Fi off, Bluetooth off, mobile data off, or soft-lock features. Shizuku is optional — the core timer works without it, and the provider is dormant until you opt in.

The app does not request the INTERNET permission. It cannot connect to any network.

Privacy

  • No analytics, crash reporting, or telemetry
  • No third-party SDKs (no Firebase, no Google Play Services, no ads)
  • All settings are stored locally on your device using Jetpack DataStore
  • No data leaves your device

Installation

F-Droid

SleepTimer is available on F-Droid:

Get it on F-Droid

GitHub Releases

Signed APKs are published on the Releases page.

Building from source

Requirements:

  • JDK 17
  • Android SDK with platform 36 (compileSdk)
  • minSdk is 26 (Android 8.0)
./gradlew assembleRelease

The build is fully reproducible from this repository using a 100% FLOSS toolchain — no proprietary dependencies, no binary blobs.

Project structure

  • app/ — Android application module, entry points, DI wiring
  • core/data/ — settings and timer state (DataStore + repository pattern)
  • core/service/ — foreground service managing the countdown and playback control
  • feature/timer/ — Jetpack Compose UI for the timer and settings screens

Written in Kotlin with Jetpack Compose, Hilt (DI) and kotlinx.serialization.

Contributing

Issues and pull requests are welcome at https://github.com/Xitee1/sleep-timer.

License

SleepTimer is free software licensed under the GNU General Public License, version 3 or later. See LICENSE for the full text.

Copyright (C) 2026 Xitee

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Close

How Shizuku is used

Can turn off Wi-Fi, Bluetooth, mobile data and the display when the sleep timer ends via `svc` and `input` commands through Shizuku.

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

Shizuku is used to perform extra switch off actions when the sleep timer expires, after media is paused.

  • Turn off Wi-Fi: when the timer ends and the option is enabled, Wi-Fi is switched off with the svc wifi disable shell command through Shizuku.
  • Turn off Bluetooth: when the timer ends and the option is enabled, Bluetooth is switched off with the svc bluetooth disable shell command through Shizuku.
  • Turn off mobile data: when the timer ends and the option is enabled, mobile data is switched off with the svc data disable shell command through Shizuku.
  • Turn off display: when the timer ends and soft screen off is selected, the screen is turned off by simulating a power button press with the input keyevent 26 shell command through Shizuku.

Android APIs or commands used

  • svc wifi disable
  • svc bluetooth disable
  • svc data disable
  • input keyevent 26

Notable details

Shizuku is optional and only used for the Wi-Fi off, Bluetooth off, mobile data off and soft screen off options. If Shizuku is unavailable or the soft screen off command fails, screen locking falls back to the normal system lock, while pausing media and the core timer work without Shizuku.

Close

Changelog

What's new for version 1.3.0

Features

Fixes

What's Changed

Full Changelog: https://github.com/Xitee1/sleep-timer/compare/v1.2.0...v1.3.0

Close

Permissions

5 permissions requested

  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK
  • android.permission.POST_NOTIFICATIONS
  • dev.xitee.sleeptimer.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close

Sources

2 sources

1.3.0 Universal GitHub · dev.xitee.sleeptimer
Selected Download
1.2.0 arm64-v8a,armeabi-v7a,x86,x86_64 F-Droid · dev.xitee.sleeptimer · dev.xitee.sleeptimer
Download