feat(android): make battery optimization permission optional

Remove battery exemption from required permissions gate in onboarding
and permission status bar — it is now informational only and does not
block "Get Started" or the all-permissions indicator.

Bump download links to v0.3.2.
This commit is contained in:
Somasundaram Mahesh
2026-02-19 00:34:12 +05:30
parent 0b5a447c4d
commit 795e0299fa
4 changed files with 6 additions and 7 deletions

View File

@@ -2,7 +2,7 @@
> an ai agent that controls your android phone. give it a goal in plain english — it figures out what to tap, type, and swipe. > an ai agent that controls your android phone. give it a goal in plain english — it figures out what to tap, type, and swipe.
**[Download Android APK (v0.3.1)](https://github.com/unitedbyai/droidclaw/releases/download/v0.3.1/app-debug.apk)** | **[Dashboard](https://app.droidclaw.ai)** | **[Discord](https://discord.gg/nRHKQ29j)** **[Download Android APK (v0.3.2)](https://github.com/unitedbyai/droidclaw/releases/download/v0.3.2/app-debug.apk)** | **[Dashboard](https://app.droidclaw.ai)** | **[Discord](https://discord.gg/nRHKQ29j)**
i wanted to turn my old android devices into ai agents. after a few hours reverse engineering accessibility trees and playing with tailscale.. it worked. i wanted to turn my old android devices into ai agents. after a few hours reverse engineering accessibility trees and playing with tailscale.. it worked.

View File

@@ -75,7 +75,7 @@ fun PermissionStatusBar(onNavigateToSettings: () -> Unit) {
} }
val allOk = apiKey.isNotBlank() && isAccessibilityEnabled && hasCaptureConsent val allOk = apiKey.isNotBlank() && isAccessibilityEnabled && hasCaptureConsent
&& isBatteryExempt && hasOverlayPermission && hasOverlayPermission
if (allOk) { if (allOk) {
Icon( Icon(
@@ -95,7 +95,6 @@ fun PermissionStatusBar(onNavigateToSettings: () -> Unit) {
if (apiKey.isBlank()) StatusDot(StatusRed) if (apiKey.isBlank()) StatusDot(StatusRed)
if (!isAccessibilityEnabled) StatusDot(StatusRed) if (!isAccessibilityEnabled) StatusDot(StatusRed)
if (!hasCaptureConsent) StatusDot(StatusRed) if (!hasCaptureConsent) StatusDot(StatusRed)
if (!isBatteryExempt) StatusDot(StatusRed)
if (!hasOverlayPermission) StatusDot(StatusRed) if (!hasOverlayPermission) StatusDot(StatusRed)
} }
} }

View File

@@ -233,7 +233,7 @@ private fun OnboardingStepTwo(onGetStarted: () -> Unit) {
} }
} }
val allGranted = isAccessibilityEnabled && hasCaptureConsent && isBatteryExempt && hasOverlayPermission val allGranted = isAccessibilityEnabled && hasCaptureConsent && hasOverlayPermission
Column( Column(
modifier = Modifier modifier = Modifier

View File

@@ -429,7 +429,7 @@
taps and types via adb, and repeats until the job is done. taps and types via adb, and repeats until the job is done.
</p> </p>
<div class="hero-actions"> <div class="hero-actions">
<a href="https://github.com/unitedbyai/droidclaw/releases/download/v0.3.1/app-debug.apk" class="btn-primary"> <a href="https://github.com/unitedbyai/droidclaw/releases/download/v0.3.2/app-debug.apk" class="btn-primary">
<iconify-icon icon="ph:android-logo-duotone" width="16" height="16"></iconify-icon> download apk <iconify-icon icon="ph:android-logo-duotone" width="16" height="16"></iconify-icon> download apk
</a> </a>
<a href="https://app.droidclaw.ai" class="btn-secondary"> <a href="https://app.droidclaw.ai" class="btn-secondary">
@@ -822,8 +822,8 @@ GROQ_API_KEY=gsk_your_key_here
<h3>install the android app</h3> <h3>install the android app</h3>
<p>download and install the companion app on your android device.</p> <p>download and install the companion app on your android device.</p>
<div style="margin-top: 12px;"> <div style="margin-top: 12px;">
<a href="https://github.com/unitedbyai/droidclaw/releases/download/v0.3.1/app-debug.apk" class="btn-primary" style="display: inline-flex;"> <a href="https://github.com/unitedbyai/droidclaw/releases/download/v0.3.2/app-debug.apk" class="btn-primary" style="display: inline-flex;">
<iconify-icon icon="ph:android-logo-duotone" width="16" height="16"></iconify-icon> download apk (v0.3.1) <iconify-icon icon="ph:android-logo-duotone" width="16" height="16"></iconify-icon> download apk (v0.3.2)
</a> </a>
</div> </div>
</div> </div>