{"id":51011523,"url":"https://github.com/developeranaz/timertorch","last_synced_at":"2026-06-21T03:03:53.227Z","repository":{"id":365623757,"uuid":"1272981254","full_name":"developeranaz/timertorch","owner":"developeranaz","description":"A fully open-source, lightweight (\u003c50 KB) timer-based torch app for Android.","archived":false,"fork":false,"pushed_at":"2026-06-18T05:44:06.000Z","size":1451,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T07:26:37.052Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/developeranaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-18T05:30:08.000Z","updated_at":"2026-06-18T05:49:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/developeranaz/timertorch","commit_stats":null,"previous_names":["developeranaz/timertorch"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/developeranaz/timertorch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeranaz%2Ftimertorch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeranaz%2Ftimertorch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeranaz%2Ftimertorch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeranaz%2Ftimertorch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developeranaz","download_url":"https://codeload.github.com/developeranaz/timertorch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developeranaz%2Ftimertorch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34592059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-21T03:03:52.397Z","updated_at":"2026-06-21T03:03:53.218Z","avatar_url":"https://github.com/developeranaz.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TimerTorch (Ultra-Minimalist Android Flashlight)\n\nTimerTorch is an ultra-minimalist, low-level, and highly optimized Android flashlight (torch) application featuring an automatic **Timer Off** controller. \n\nTo prioritize minimal file size and zero bloat, the application:\n1. Is written in **Pure Java** (no Kotlin standard library overhead).\n2. Builds the **UI programmatically in Java** (no Jetpack Compose or XML layout files).\n3. Declares **zero external dependencies** in Gradle (compiles directly against the native Android SDK).\n4. Enables full ProGuard/R8 code minification and resource shrinking for the release build.\n\nThe resulting release APK is only **19.21 KB (19,215 bytes)**!\n\n---\n\n## Features\n- **Flashlight Toggle**: Turn the flashlight ON and OFF using native `CameraManager.setTorchMode()` (does not require the camera permission on API 21+).\n- **Time Adjusters**: Increment or decrement minutes using dedicated `[-]` and `[+]` buttons, or type in a precise decimal value directly.\n- **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`.\n- **Validation**: Enforces a minimum timer limit of **5 seconds** up to unlimited.\n- **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.\n- **Auto-Close App**: A checkbox allows configuring the app to automatically close (`finishAndRemoveTask()`) once the countdown finishes, clearing itself from the task tray.\n- **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.\n\n---\n\n## Privacy, Safety \u0026 Minimal Footprint\nTimerTorch is engineered on a strict \"least privilege\" philosophy, guaranteeing complete transparency and respect for your device:\n- **100% Safe \u0026 Auditable**: Zero third-party SDKs, analytics, trackers, or hidden background services. The entire application logic resides in a single, easily readable `MainActivity.java` file.\n- **No Internet Connection Required**: The app never requests the `INTERNET` permission and operates entirely offline. Your data never leaves your device.\n- **Ultra-Low Storage \u0026 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.\n- **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.\n- **Clean Lifecycle Management**: Follows Android best practices. The optional auto-exit feature ensures no background tasks or services linger after the timer completes.\n\n---\n\n## Project Structure\n```text\ntimertorch/\n├── build.gradle            # Root build configuration\n├── settings.gradle         # Project module definition\n├── gradle.properties       # Gradle JVM variables\n├── gradlew / gradlew.bat   # Gradle wrappers for building\n├── build.bat               # Windows automatic build shortcut\n├── app/\n│   ├── build.gradle        # App configuration (Minifies \u0026 shrinks code)\n│   ├── proguard-rules.pro  # Proguard entry-point preservation rules\n│   └── src/\n│       └── main/\n│           ├── AndroidManifest.xml  # Uses lightweight native platform theme\n│           └── java/\n│               └── com/developeranaz/timertorch/\n│                   └── MainActivity.java   # Contains layout and controller logic\n```\n\n---\n\n## Build Instructions\n\nEnsure you have a JDK (preferably JDK 17) and the Android SDK path configured in your environment.\n\n### 1. Build Debug APK (Signed with default debug key)\nIdeal for testing on emulators or developer devices:\n```powershell\n# Windows\n.\\gradlew.bat assembleDebug\n\n# Linux/macOS\n./gradlew assembleDebug\n```\nThe compiled debug APK will be generated at:\n`app/build/outputs/apk/debug/app-debug.apk`\n\n### 2. Build Release APK (Unsigned)\nOptimized and minified release build:\n```powershell\n# Windows\n.\\gradlew.bat assembleRelease\n\n# Linux/macOS\n./gradlew assembleRelease\n```\nThe optimized release APK will be generated at:\n`app/build/outputs/apk/release/app-release-unsigned.apk`\n\n---\n\n## Install and Run\n\nMake sure your emulator or physical Android device is connected to the computer.\n\n1. **Verify Connection**:\n   ```bash\n   adb devices\n   ```\n\n2. **Install to Connected Device**:\n   ```bash\n   adb install -r app/build/outputs/apk/debug/app-debug.apk\n   ```\n\n3. **Launch the Application**:\n   ```bash\n   adb shell am start -S -n com.developeranaz.timertorch/com.developeranaz.timertorch.MainActivity\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloperanaz%2Ftimertorch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeveloperanaz%2Ftimertorch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeveloperanaz%2Ftimertorch/lists"}