4 Commits

Author SHA1 Message Date
amir 6f3c5e6ea1 v1.10: all widget text white and bold
Make every TextView in both widget layouts fully white (#FFFFFF) with
textStyle=bold — SESSION/WEEKLY labels, session/weekly sub-labels,
status line, and last-updated timestamp.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 21:16:24 +00:00
amir 895a4ff3cd releases/latest: add v1.9 source zip
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 20:43:57 +00:00
amir e2747597e2 releases/latest: add v1.9 APK
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 20:40:14 +00:00
amir 6934017519 security: restrict network to system CAs, tighten WebView capabilities; v1.9
- AndroidManifest: add networkSecurityConfig to explicitly trust only system
  CAs, preventing user-installed CA cert MITM attacks on claude.ai sessions
- LoginActivity: set javaScriptCanOpenWindowsAutomatically=false (not needed
  for claude.ai login) and databaseEnabled=false (deprecated WebSQL)
- build.gradle.kts: enable buildConfig generation (required for
  BuildConfig.DEBUG guards already used in UsageRepository)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 20:00:01 +00:00
8 changed files with 37 additions and 20 deletions
+3 -2
View File
@@ -11,8 +11,8 @@ android {
applicationId = "me.khodak.claudeusage" applicationId = "me.khodak.claudeusage"
minSdk = 26 minSdk = 26
targetSdk = 34 targetSdk = 34
versionCode = 9 versionCode = 11
versionName = "1.8" versionName = "1.10"
} }
signingConfigs { signingConfigs {
@@ -44,6 +44,7 @@ android {
buildFeatures { buildFeatures {
viewBinding = true viewBinding = true
buildConfig = true
} }
} }
+1
View File
@@ -11,6 +11,7 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.ClaudeUsage" android:theme="@style/Theme.ClaudeUsage"
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="false"> android:usesCleartextTraffic="false">
<activity <activity
@@ -72,8 +72,8 @@ class LoginActivity : AppCompatActivity() {
settings.apply { settings.apply {
javaScriptEnabled = true javaScriptEnabled = true
domStorageEnabled = true domStorageEnabled = true
databaseEnabled = true databaseEnabled = false
javaScriptCanOpenWindowsAutomatically = true javaScriptCanOpenWindowsAutomatically = false
setSupportMultipleWindows(false) setSupportMultipleWindows(false)
// Standard Android Chrome UA — less suspicious than desktop // Standard Android Chrome UA — less suspicious than desktop
userAgentString = "Mozilla/5.0 (Linux; Android 13; Pixel 7) " + userAgentString = "Mozilla/5.0 (Linux; Android 13; Pixel 7) " +
+13 -9
View File
@@ -54,7 +54,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:text="SESSION" android:text="SESSION"
android:textColor="#555555" android:textColor="#FFFFFF"
android:textSize="9sp" android:textSize="9sp"
android:textStyle="bold" /> android:textStyle="bold" />
@@ -86,8 +86,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:text="" android:text=""
android:textColor="#666666" android:textColor="#FFFFFF"
android:textSize="11sp" /> android:textSize="11sp"
android:textStyle="bold" />
<!-- 7-day window bar --> <!-- 7-day window bar -->
<LinearLayout <LinearLayout
@@ -102,7 +103,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:text="WEEKLY" android:text="WEEKLY"
android:textColor="#555555" android:textColor="#FFFFFF"
android:textSize="9sp" android:textSize="9sp"
android:textStyle="bold" /> android:textStyle="bold" />
@@ -134,8 +135,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:text="" android:text=""
android:textColor="#666666" android:textColor="#FFFFFF"
android:textSize="11sp" /> android:textSize="11sp"
android:textStyle="bold" />
<!-- Footer --> <!-- Footer -->
<LinearLayout <LinearLayout
@@ -151,8 +153,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:text="" android:text=""
android:textColor="#CC785C" android:textColor="#FFFFFF"
android:textSize="9sp" android:textSize="9sp"
android:textStyle="bold"
android:singleLine="true" android:singleLine="true"
android:ellipsize="end" /> android:ellipsize="end" />
@@ -161,8 +164,9 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="" android:text=""
android:textColor="#444444" android:textColor="#FFFFFF"
android:textSize="9sp" /> android:textSize="9sp"
android:textStyle="bold" />
</LinearLayout> </LinearLayout>
@@ -46,7 +46,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:text="SESSION" android:text="SESSION"
android:textColor="#555555" android:textColor="#FFFFFF"
android:textSize="8sp" android:textSize="8sp"
android:textStyle="bold" /> android:textStyle="bold" />
@@ -65,8 +65,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="6dp" android:layout_marginStart="6dp"
android:text="" android:text=""
android:textColor="#555555" android:textColor="#FFFFFF"
android:textSize="10sp" /> android:textSize="10sp"
android:textStyle="bold" />
</LinearLayout> </LinearLayout>
@@ -94,7 +95,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:text="WEEKLY" android:text="WEEKLY"
android:textColor="#555555" android:textColor="#FFFFFF"
android:textSize="8sp" android:textSize="8sp"
android:textStyle="bold" /> android:textStyle="bold" />
@@ -113,8 +114,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="6dp" android:layout_marginStart="6dp"
android:text="" android:text=""
android:textColor="#555555" android:textColor="#FFFFFF"
android:textSize="10sp" /> android:textSize="10sp"
android:textStyle="bold" />
</LinearLayout> </LinearLayout>
@@ -135,8 +137,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:text="" android:text=""
android:textColor="#CC785C" android:textColor="#FFFFFF"
android:textSize="8sp" android:textSize="8sp"
android:textStyle="bold"
android:maxLines="1" /> android:maxLines="1" />
</LinearLayout> </LinearLayout>
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
Binary file not shown.
Binary file not shown.