https://github.com/developeranaz/timertorch
A fully open-source, lightweight (<50 KB) timer-based torch app for Android.
https://github.com/developeranaz/timertorch
Last synced: 14 days ago
JSON representation
A fully open-source, lightweight (<50 KB) timer-based torch app for Android.
- Host: GitHub
- URL: https://github.com/developeranaz/timertorch
- Owner: developeranaz
- Created: 2026-06-18T05:30:08.000Z (17 days ago)
- Default Branch: main
- Last Pushed: 2026-06-18T05:44:06.000Z (17 days ago)
- Last Synced: 2026-06-18T07:26:37.052Z (17 days ago)
- Language: HTML
- Size: 1.38 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TimerTorch (Ultra-Minimalist Android Flashlight)
TimerTorch is an ultra-minimalist, low-level, and highly optimized Android flashlight (torch) application featuring an automatic **Timer Off** controller.
To prioritize minimal file size and zero bloat, the application:
1. Is written in **Pure Java** (no Kotlin standard library overhead).
2. Builds the **UI programmatically in Java** (no Jetpack Compose or XML layout files).
3. Declares **zero external dependencies** in Gradle (compiles directly against the native Android SDK).
4. Enables full ProGuard/R8 code minification and resource shrinking for the release build.
The resulting release APK is only **19.21 KB (19,215 bytes)**!
---
## Features
- **Flashlight Toggle**: Turn the flashlight ON and OFF using native `CameraManager.setTorchMode()` (does not require the camera permission on API 21+).
- **Time Adjusters**: Increment or decrement minutes using dedicated `[-]` and `[+]` buttons, or type in a precise decimal value directly.
- **Smart Steps**: Increments/decrements change by `0.1` minutes (6 seconds) when the value is below `1.0` minute, and by `1.0` minute when it is above `1.0`.
- **Validation**: Enforces a minimum timer limit of **5 seconds** up to unlimited.
- **Precise Countdown**: Shows remaining time in `mm:ss` format, and automatically transitions to high-precision tenths-of-a-second (e.g. `05.4 s`) once the timer drops below 1 minute.
- **Auto-Close App**: A checkbox allows configuring the app to automatically close (`finishAndRemoveTask()`) once the countdown finishes, clearing itself from the task tray.
- **Simulator Fallback**: If run on an emulator (or a device without a physical flash unit), the app enters **Simulator Mode**, allowing you to test the complete button toggling and countdown timer logic with clear Toast status messages.
---
## Privacy, Safety & Minimal Footprint
TimerTorch is engineered on a strict "least privilege" philosophy, guaranteeing complete transparency and respect for your device:
- **100% Safe & Auditable**: Zero third-party SDKs, analytics, trackers, or hidden background services. The entire application logic resides in a single, easily readable `MainActivity.java` file.
- **No Internet Connection Required**: The app never requests the `INTERNET` permission and operates entirely offline. Your data never leaves your device.
- **Ultra-Low Storage & RAM Usage**: The fully optimized release APK weighs in at just **~19 KB**. It runs efficiently with negligible memory overhead, making it ideal for older or storage-constrained devices.
- **Zero Unwanted Permissions**: Adheres strictly to the principle of least privilege. Only declares optional hardware features (`android.hardware.camera.flash`) in the manifest. No location, storage, contacts, microphone, or identity access is ever requested.
- **Clean Lifecycle Management**: Follows Android best practices. The optional auto-exit feature ensures no background tasks or services linger after the timer completes.
---
## Project Structure
```text
timertorch/
├── build.gradle # Root build configuration
├── settings.gradle # Project module definition
├── gradle.properties # Gradle JVM variables
├── gradlew / gradlew.bat # Gradle wrappers for building
├── build.bat # Windows automatic build shortcut
├── app/
│ ├── build.gradle # App configuration (Minifies & shrinks code)
│ ├── proguard-rules.pro # Proguard entry-point preservation rules
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml # Uses lightweight native platform theme
│ └── java/
│ └── com/developeranaz/timertorch/
│ └── MainActivity.java # Contains layout and controller logic
```
---
## Build Instructions
Ensure you have a JDK (preferably JDK 17) and the Android SDK path configured in your environment.
### 1. Build Debug APK (Signed with default debug key)
Ideal for testing on emulators or developer devices:
```powershell
# Windows
.\gradlew.bat assembleDebug
# Linux/macOS
./gradlew assembleDebug
```
The compiled debug APK will be generated at:
`app/build/outputs/apk/debug/app-debug.apk`
### 2. Build Release APK (Unsigned)
Optimized and minified release build:
```powershell
# Windows
.\gradlew.bat assembleRelease
# Linux/macOS
./gradlew assembleRelease
```
The optimized release APK will be generated at:
`app/build/outputs/apk/release/app-release-unsigned.apk`
---
## Install and Run
Make sure your emulator or physical Android device is connected to the computer.
1. **Verify Connection**:
```bash
adb devices
```
2. **Install to Connected Device**:
```bash
adb install -r app/build/outputs/apk/debug/app-debug.apk
```
3. **Launch the Application**:
```bash
adb shell am start -S -n com.developeranaz.timertorch/com.developeranaz.timertorch.MainActivity
```