Skip to content
Merged

v057 #3081

Show file tree
Hide file tree
Changes from 125 commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
a6d64c4
build: bump agp version
hussainmohd-a Aug 21, 2026
9592a07
ui: fix #3029, realign configure fragment
hussainmohd-a Aug 21, 2026
b2ec0fb
ui: fix: #3029, more spacing in about fragment
hussainmohd-a Aug 21, 2026
190b7fb
Merge branch 'celzero:main' into dev-v055y
hussainmohd-a Aug 21, 2026
8f74c52
ui: rmv dependency of use available nw on loopback, fix#1758
hussainmohd-a Aug 22, 2026
24d7db2
ui: fix #3029, attempt to fix ui clipping
hussainmohd-a Aug 22, 2026
27c446a
ui: fix:#3029, remove clip children from layout explicitly
hussainmohd-a Aug 24, 2026
0b8d95d
blocklists: fix##1152, improve handling of local blocklist download
hussainmohd-a Aug 27, 2026
62a4280
ui: impl: #3015, new field to add ips to DoH
hussainmohd-a Aug 27, 2026
d8e1643
tests: more tests for proxy, local blocklist download
hussainmohd-a Aug 27, 2026
2f43678
ui: complete revamp of home screen fragment
hussainmohd-a Aug 28, 2026
d9fb59b
vpn: minor changes in bind for logging
hussainmohd-a Aug 28, 2026
696c4ef
ui: revamp rpn screens
hussainmohd-a Aug 28, 2026
766534a
ui: new drawables, fix styles, add dimens, colors
hussainmohd-a Aug 28, 2026
0276ed2
manifest: add newly added activity in manifest
hussainmohd-a Aug 28, 2026
e37baba
module-provider: add coroutine context
hussainmohd-a Aug 28, 2026
17f1d02
wg: do not throw ex on unknown params in wg conf
hussainmohd-a Aug 28, 2026
5b1dffe
module: add log activity agregator
hussainmohd-a Aug 28, 2026
3d8201a
local-blocklist: improvements in download of local blocklists
hussainmohd-a Aug 28, 2026
46c7da0
ui: log aggregator missing changes
hussainmohd-a Aug 28, 2026
ae7db00
vpn-controller: rmv unnecessary .toString()
hussainmohd-a Aug 28, 2026
99ecc4e
fix: #1167 add system components by default
hussainmohd-a Aug 28, 2026
35045c3
pxm: improve handling of apps in proxy mapping
hussainmohd-a Aug 28, 2026
7f58499
do not block sys components on add
hussainmohd-a Aug 28, 2026
99eec5f
tun: fix#3013 handle univ trusted domains in onQuery
hussainmohd-a Aug 28, 2026
0a27553
fix: #3000, handle all uiCtx with guard
hussainmohd-a Aug 28, 2026
dd47df3
fix: #3000, handle all uiCtx with guard
hussainmohd-a Aug 28, 2026
881d9fd
ui: fix title upper case issue
hussainmohd-a Aug 28, 2026
f4e9948
fix: #3062, handle appInfo crash from pkgMgr
hussainmohd-a Aug 28, 2026
6d0b9ae
build: move firestack fetch to dependencyResolutionManagement
hussainmohd-a Aug 28, 2026
57588fc
ui: rmv pkg-name from app list
hussainmohd-a Aug 28, 2026
cbf8fb0
vpn: fix: #3063, post notification in main thread
hussainmohd-a Aug 28, 2026
39d659a
fix: #3060, ip2cidr handle invalid cidr
hussainmohd-a Aug 28, 2026
2064462
fix: #3066, handle app bar collapses with listener
hussainmohd-a Aug 28, 2026
7370124
ui: fix location filter text, bg colors
hussainmohd-a Aug 28, 2026
392d645
fix:#3064, skip global pinned proxy from okhttp
hussainmohd-a Aug 28, 2026
1396c6e
ui: fix filter dialog border color
hussainmohd-a Aug 28, 2026
b42c353
fix: #3070, add guards in places where updates return from diff ctx t…
hussainmohd-a Aug 28, 2026
d3460de
ui: rpn, add more filter for the locations
hussainmohd-a Aug 28, 2026
46496a1
fix: #3019, do not resolve wg-endpoint in kotlin layer
hussainmohd-a Aug 28, 2026
dc111d8
Merge branch 'celzero:main' into dev-v055y
hussainmohd-a Sep 3, 2026
7c5d17e
ui: minor improvements in home screen
hussainmohd-a Aug 31, 2026
0ecc107
ui: rmv unused drawables
hussainmohd-a Aug 31, 2026
05127b6
ui: rename email in console log screen
hussainmohd-a Aug 31, 2026
d8afd76
apps: fix sys components addition during refresh
hussainmohd-a Aug 31, 2026
0b5f6e3
bkup: rmv unwanted tables during restore
hussainmohd-a Aug 31, 2026
1d84676
ui: minor ui, string changes in log btm sht
hussainmohd-a Aug 31, 2026
feb41cb
tests: fix rpn test failures
hussainmohd-a Aug 31, 2026
203d4fd
rpn: multiple ui improvements in rpn related screens
hussainmohd-a Aug 31, 2026
32e3389
ui: drawable for grid in home screen
hussainmohd-a Aug 31, 2026
0477aa6
fix: #2988, best effort exception parser
hussainmohd-a Aug 31, 2026
4cdf492
tun: set default smart dns options
hussainmohd-a Aug 31, 2026
2092a49
impl: new smart dns options
hussainmohd-a Aug 31, 2026
f8b7cce
ui: restore defaults in dns and network settings
hussainmohd-a Aug 31, 2026
228f835
ui: new activity smartdns added in tv version
hussainmohd-a Aug 31, 2026
d328873
fix: #3078, wrap custom dialogs into scrollview
hussainmohd-a Sep 1, 2026
70e2d0c
ui: use default color for domains/ips with no rules
hussainmohd-a Sep 2, 2026
40a0a2e
ui: proxy title change, grid touch listener
hussainmohd-a Sep 2, 2026
2abdfaf
ui: log summary btm sheet improvements
hussainmohd-a Sep 2, 2026
edfe7a4
ui: rpn screns, revamp, new screens, stats and other improvements
hussainmohd-a Sep 2, 2026
60e4b5d
add user-agent to the header of okhttp requests
hussainmohd-a Sep 2, 2026
5c42c59
db: dao/repo new or changes for log aggrgator
hussainmohd-a Sep 2, 2026
69cf91b
manifest: add newly added activity to manifest
hussainmohd-a Sep 2, 2026
9374483
tv: new ui changes for rpn in tv flavor
hussainmohd-a Sep 2, 2026
b35ff33
fix: smart dns selection fix
hussainmohd-a Sep 2, 2026
438560a
fix: show correct app count in home screen
hussainmohd-a Sep 2, 2026
7c5e4c9
ip/dom: show right count in home screen, handle ip-cidr errs everywhere
hussainmohd-a Sep 2, 2026
e7e3fce
ui: add bottom padding/margin for nav view bar
hussainmohd-a Sep 2, 2026
aab87aa
logs: add proc/mem/thread info in logs, user selection
hussainmohd-a Sep 2, 2026
f443f60
daemons: release the executor worker thread once done
hussainmohd-a Sep 2, 2026
294fcad
stats: new togglable ui for stats screen
hussainmohd-a Sep 2, 2026
a488869
logs: add proc/mem/thread info in logs, user selection
hussainmohd-a Sep 2, 2026
fc17b2a
ui: rpn config screen apps, logs btn ui color
hussainmohd-a Sep 2, 2026
9ca19bf
tests: more tests on rpn and log aggregator
hussainmohd-a Sep 3, 2026
e9b6817
build: rmv firebase from website builds
hussainmohd-a Sep 3, 2026
e10b9da
ui: home screen ui improvements, fixes
hussainmohd-a Sep 3, 2026
9646b47
ui: make ui consistent on all screens for foldable
hussainmohd-a Sep 3, 2026
3d0577c
build: agp 9.3 optimization changes
hussainmohd-a Sep 5, 2026
aeb15fa
proguard: move to app.keep as per agp 9.3
hussainmohd-a Sep 5, 2026
79736d2
stat: log aggreator improvements
hussainmohd-a Sep 5, 2026
6c7f6e8
ui: fix ip/domain add dialog for small screens
hussainmohd-a Sep 5, 2026
c09a4fc
ui: show rpn/wg badge in dns logs
hussainmohd-a Sep 5, 2026
4a01223
ui: show rpn/wg badge in dns logs
hussainmohd-a Sep 5, 2026
bdc0e15
ui: stats screen font size fix
hussainmohd-a Sep 5, 2026
5ec893f
ui: do not show notification on android def components
hussainmohd-a Sep 5, 2026
616d19e
download: handle error states on download failure
hussainmohd-a Sep 5, 2026
adcd638
fix: initialize possible disk, db operations in IO on init
hussainmohd-a Sep 5, 2026
ea803b1
rpn: more improvements in rpn-ui
hussainmohd-a Sep 5, 2026
cb4c1e1
rdns: fix rdns plus stamp potential err
hussainmohd-a Sep 5, 2026
5e7e3cc
vpn:skip applying rules for system components (DNS and ANDROID) on An…
hussainmohd-a Sep 5, 2026
e5c0618
ui: fix multiple adapter ui issues
hussainmohd-a Sep 5, 2026
b80a989
ui: rpn related logs retrieval from connection tracker
hussainmohd-a Sep 5, 2026
02a0876
ui: proper ui update with scope after io
hussainmohd-a Sep 5, 2026
3ea118d
ui: log aggregator btm sheet shows icons instead of initials
hussainmohd-a Sep 5, 2026
8dfef8e
ui: fix country flag issue, adjust layout orientation
hussainmohd-a Sep 5, 2026
cdc0e5c
ui: show blocklists count in home screen for rdns
hussainmohd-a Sep 5, 2026
e34ac15
ui: hide firebase ui from website flavour
hussainmohd-a Sep 5, 2026
656f7d7
ui: stability program available only for play version
hussainmohd-a Sep 5, 2026
834ac01
ui: about fragmet handle progress dialog dismis gracefully
hussainmohd-a Sep 5, 2026
ca8224d
ui: fix dialog overflows on smaller and foldable screens
hussainmohd-a Sep 5, 2026
72490d8
fix: #2976, disable HTTP/SOCKS5 proxy if proxy fwdr apps added on pro…
hussainmohd-a Sep 5, 2026
33b4466
ui: sponsor ui minor btn fix
hussainmohd-a Sep 5, 2026
9d362df
ui: adjust about screen from btm nav view
hussainmohd-a Sep 5, 2026
dc06741
Merge branch 'main' into dev-v055y
hussainmohd-a Sep 5, 2026
97c83ff
Merge branch 'celzero:main' into dev-v055y
hussainmohd-a Sep 5, 2026
c9fafee
fix: #3005, initialize bubble from IO instead of main
hussainmohd-a Sep 5, 2026
7cd8424
fix: #2975, remove tooltip for bypass dns & firewall
hussainmohd-a Sep 5, 2026
f42919e
ui: replace glide with already available AppIconCache #3007
hussainmohd-a Sep 5, 2026
2e9390f
improved enhanced bug report and add tests
hussainmohd-a Sep 5, 2026
aa1bb52
rpn: auto in lockdown and always-on
hussainmohd-a Sep 5, 2026
4aa4e90
log: use trySend instead of send, fix: #2794
hussainmohd-a Sep 5, 2026
91d14ad
ip: add nul safety check before string op
hussainmohd-a Sep 5, 2026
f3a0dc3
strings: rmv/replace/reuse strings
hussainmohd-a Sep 5, 2026
e1b304f
fix: #3037, handle unknown app with proper uid
hussainmohd-a Sep 5, 2026
8e9d5dd
strings: rmv/replace/reuse strings
hussainmohd-a Sep 5, 2026
8b8471e
ui: use db name for display
hussainmohd-a Sep 6, 2026
314cc14
db: show default dns in the top
hussainmohd-a Sep 6, 2026
9174132
migration: smart dns migration from persistent to d
hussainmohd-a Sep 6, 2026
e26c897
ui: minor ui corrections and improvements
hussainmohd-a Sep 6, 2026
11fee66
rpn: fix stats not showing for all rpn ids
hussainmohd-a Sep 6, 2026
6b22358
ui: rpn drawable for hop
hussainmohd-a Sep 6, 2026
bbfe103
ui: show insights view as default for stats
hussainmohd-a Sep 6, 2026
3ec3542
db: migration; replace mullvad with controlD, update quad9 stamps, fi…
hussainmohd-a Sep 6, 2026
4ce81ba
string: v057 string literals
hussainmohd-a Sep 6, 2026
76dc226
gradle: bump firestack version
hussainmohd-a Sep 6, 2026
4a0aa2b
fix:#2971, add more padding in recycler btm to skip fab
hussainmohd-a Sep 6, 2026
48f0e41
vpn: handle bubble cancellation exception
hussainmohd-a Sep 6, 2026
8077503
fix: remove api which doesnt support in android 23
hussainmohd-a Sep 6, 2026
0d176f3
ui: skip resetting the same icon
hussainmohd-a Sep 6, 2026
3e3e048
#2977: disallow DNS53 with proxy app
hussainmohd-a Sep 6, 2026
e992ce7
db: fix migration id and name typo
hussainmohd-a Sep 6, 2026
b31f2f9
ui: impl rpn onboarding hover
hussainmohd-a Sep 8, 2026
ad2e955
fix: handle exception during VpnService.prepare(); #2984
hussainmohd-a Sep 8, 2026
bf52dc7
ui: replace dns selection ui from check box to custom
hussainmohd-a Sep 8, 2026
25a6d2a
ui: more ui improvements for rpn screens
hussainmohd-a Sep 8, 2026
9c15eb4
ui: add closeAll option for insights view in stats screen
hussainmohd-a Sep 8, 2026
9611384
ui: show illustrator on no data in log activity btmsht
hussainmohd-a Sep 8, 2026
ee72a40
download: improve blocklist downloads, inform errs to users
hussainmohd-a Sep 8, 2026
ea12658
bk/restore: handle db failures during restore, cap the WAL file size …
hussainmohd-a Sep 9, 2026
c514044
ui: rpn; gate against automation/relay options
hussainmohd-a Sep 9, 2026
a4f6856
tv: handle vpn lockdown illegal state exception
hussainmohd-a Sep 9, 2026
668c093
ui: home screen fragment ui fixes/improvements
hussainmohd-a Sep 9, 2026
4e899c4
bk/res: handle the restore process on restart
hussainmohd-a Sep 9, 2026
542250b
ui: swap text and sponsor icons in about screen
hussainmohd-a Sep 9, 2026
ae856be
ui: rpn, always Auto on top, cc is always white
hussainmohd-a Sep 9, 2026
c203ac7
ui: home screen logs count change
hussainmohd-a Sep 9, 2026
69a8e57
strings: more string literals for v057
hussainmohd-a Sep 9, 2026
60f168a
bump firestack version
hussainmohd-a Sep 9, 2026
b445d1a
lint: tile update api, lint fix
hussainmohd-a Sep 9, 2026
dd60087
ui: home screen logs count font size change
hussainmohd-a Sep 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
68 changes: 33 additions & 35 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,28 @@ plugins {
}

// apply Google Services and Firebase Crashlytics plugins conditionally
// strategy: For command-line builds, check task names. For IDE, always apply plugins
// but they'll only process play/website variants (Firebase deps are scoped to those variants)
// firebase (google-services + crashlytics) is scoped to the play flavour only.
// website and fdroid builds are de-googled w.r.t. Firebase (the Google Play Developer
// API model classes remain available to website as plain dependencies).
def taskNames = gradle.startParameter.taskNames.join(',').toLowerCase()
def apkBuild = taskNames.contains("full")
def playBuild = taskNames.contains("play")
def fdroidBuild = taskNames.contains("fdroid")
// for alpha builds generate universal apk only
def alphaBuild = taskNames.contains("alpha")

// check for fdroidserver value is set in system env
def fdroidBuildServer = System.getenv("fdroidserver")
def isFdroidBuildServer = fdroidBuildServer != null && !fdroidBuildServer.isEmpty() && fdroidBuildServer != "null"
def deGoogled = !apkBuild || fdroidBuild || isFdroidBuildServer || alphaBuild
// firebase tooling applies only to play builds; everything else is de-googled
def deGoogled = !playBuild || fdroidBuild || isFdroidBuildServer || alphaBuild
def shouldSplit = !alphaBuild

// Pass -PwebsiteDegoogled=true when building the fdroid flavor with our own keys.
// Official F-Droid builds omit this flag and will be labeled as "fdroid".
def isWebsiteDegoogled = project.hasProperty("websiteDegoogled") &&
project.property("websiteDegoogled").toString().toBoolean()

// add google-services.json only for play/website builds.
// add google-services.json only for play builds.
// local dev : copy from the sibling ../firebase/{debug,release} dir (gitignored, outside repo).
// CI : secret is written to app/src/google-services.json
// by the GitHub Actions; so no local copy is needed there.
Expand Down Expand Up @@ -75,20 +77,20 @@ if (!deGoogled) {
}
}
} else {
logger.info("skipping google-services.json for de-googled/F-Droid build")
logger.info("skipping google-services.json for de-googled build (website/fdroid have no Firebase)")
}

println("app-task names: '$taskNames'")
println("gradle deGoogled? $deGoogled (fdroidBuild: $fdroidBuild, fdroidBuildServer: $isFdroidBuildServer, apkBuild: $apkBuild)")
println("gradle deGoogled? $deGoogled (playBuild: $playBuild, fdroidBuild: $fdroidBuild, fdroidBuildServer: $isFdroidBuildServer)")
println("gradle alphaBuild? $alphaBuild, should split? $shouldSplit")

// don't apply firebase plugins for fdroid CLI builds
// don't apply firebase plugins for non-play builds (website/fdroid are de-googled)
if (!deGoogled) {
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
println("app firebase plugins applied")
println("app firebase plugins applied (play build)")
} else {
println("app firebase plugins SKIPPED")
println("app firebase plugins SKIPPED (non-play build)")
}

def keystorePropertiesFile = rootProject.file("keystore.properties")
Expand Down Expand Up @@ -228,11 +230,15 @@ android {

buildTypes {
release {
// modified as part of #352, now webview is removed from app, flipping back
// the setting to true
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
// AGP 9.3 DSL: enables both code and resource optimization and
// includes the default Android keep rules (equivalent to
// proguard-android-optimize.txt, which the webview removal in #352
// allowed flipping back on). Project keep rules live in
// src/main/keepRules/*.keep (see developer.android.com/topic/
// performance/app-optimization/enable-app-optimization).
optimization {
enable = true // Enables code and resource optimizations.
}
ndk {
// Use SYMBOL_TABLE to reduce symbol file size significantly
debugSymbolLevel 'SYMBOL_TABLE'
Expand Down Expand Up @@ -261,19 +267,20 @@ android {
alpha {
// archive.is/y8uCB
applicationIdSuffix ".alpha"
minifyEnabled true
shrinkResources true
optimization {
enable = true // Enables code and resource optimizations (AGP 9.3 DSL).
}
signingConfig signingConfigs.alpha
resValue "string", "app_name", "Rethink(α)"
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
releaseDebug {
// for testing release build with debug signing config
initWith buildTypes.release
minifyEnabled true
shrinkResources true
// set explicitly; initWith may not copy the optimization block
optimization {
enable = true // Enables code and resource optimizations (AGP 9.3 DSL).
}
signingConfig signingConfigs.debug
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
ndk {
// Use SYMBOL_TABLE to reduce symbol file size significantly
debugSymbolLevel 'SYMBOL_TABLE'
Expand All @@ -291,7 +298,7 @@ android {
}

// fix: injectCrashlyticsBuildIds task has a buffer overflow bug
// apply crashlytics configuration to firebase builds only
// apply crashlytics configuration to play (firebase) builds only
if (!deGoogled) {
// workaround for crashlytics gradle plugin bug with large native symbols
afterEvaluate {
Expand Down Expand Up @@ -339,12 +346,6 @@ android {
targetCompatibility JavaVersion.VERSION_17
}

packagingOptions {
jniLibs {
keepDebugSymbols += ['**/*.so']
}
}

// required for google play developer api model classes
packaging {
resources.excludes += "META-INF/INDEX.LIST"
Expand Down Expand Up @@ -740,6 +741,8 @@ dependencies {
// The version v3-rev20240301-2.0.0 cited in the API docs does not exist on Maven Central;
// v3-rev20260318-2.0.0 is the closest available release with the same model classes.
// ref: github.com/googleapis/google-api-java-client-services/tree/main/clients/google-api-services-androidpublisher/v3
// scoped to play + website only (server order-history / billing backend).
// Not included in fdroid (and hence Izzy) builds;
playImplementation('com.google.apis:google-api-services-androidpublisher:v3-rev20260318-2.0.0') {
// Exclude Apache HTTP transport, conflicts with Android's built-in HTTP stack
exclude group: 'com.google.http-client', module: 'google-http-client-apache-v2'
Expand All @@ -753,18 +756,13 @@ dependencies {
exclude group: 'com.google.oauth-client'
}


lintChecks 'com.android.security.lint:lint:1.0.4'

// battery optimization permission helper
implementation 'com.waseemsabir:betterypermissionhelper:1.0.3'

// Firebase dependencies for error reporting (website and play variants only)
websiteImplementation platform('com.google.firebase:firebase-bom:34.17.0')
websiteImplementation 'com.google.firebase:firebase-crashlytics'
websiteImplementation 'com.google.firebase:firebase-crashlytics-ndk'

playImplementation platform('com.google.firebase:firebase-bom:34.17.0')
// Firebase dependencies for error reporting (play flavour only)
playImplementation platform('com.google.firebase:firebase-bom:34.18.0')
playImplementation 'com.google.firebase:firebase-crashlytics'
playImplementation 'com.google.firebase:firebase-crashlytics-ndk'
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@ package com.celzero.bravedns.iab.stripe

import com.celzero.bravedns.customdownloader.RetrofitManager
import okhttp3.OkHttpClient
import java.net.Proxy
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

object RetrofitInstance {
private const val BASE_URL = "https://api.stripe.com/"

private val client = OkHttpClient.Builder().build()
// NO_PROXY: never consult ProxySelector.getDefault(), which throws
// IllegalArgumentException("port out of range:-1") when the device has a global
// HTTP proxy configured without a port (http(s).proxyPort system property is -1).
private val client = OkHttpClient.Builder().proxy(Proxy.NO_PROXY).build()

/*val api: StripeApiService by lazy {
RetrofitManager.getStripeBaseBuilder(0)
Expand Down
9 changes: 9 additions & 0 deletions app/src/full/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -127,12 +127,21 @@
<activity
android:name=".ui.activity.TcpProxyMainActivity"
android:finishOnTaskLaunch="true" />
<activity
android:name=".ui.activity.WgIncludeAppsActivity"
android:finishOnTaskLaunch="true" />
<activity
android:name=".ui.activity.RpnBypassAppsActivity"
android:finishOnTaskLaunch="true" />
<activity
android:name=".ui.activity.UniversalFirewallSettingsActivity"
android:finishOnTaskLaunch="true" />
<activity
android:name=".ui.activity.ConfigureOtherDnsActivity"
android:finishOnTaskLaunch="true" />
<activity
android:name=".ui.activity.SmartDnsListActivity"
android:finishOnTaskLaunch="true" />
<activity
android:name=".ui.activity.BlockFreeDnsActivity"
android:finishOnTaskLaunch="true" />
Expand Down
8 changes: 8 additions & 0 deletions app/src/full/res/color/chip_toggle_stroke.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Toggle-chip outline (Allowed/Blocked on the home logs card): a quiet
grey border (theme outline color) marks the selected chip; unselected
chips have no stroke so the border alone reads as the selection state. -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="?attr/colorOutline" />
<item android:color="@android:color/transparent" />
</selector>
8 changes: 8 additions & 0 deletions app/src/full/res/color/chip_toggle_text.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Toggle-chip text (Allowed/Blocked on the home logs card): selection is
conveyed by full-contrast text on the selected chip and a dimmed label
on the unselected one; no green/red tinting. -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="?attr/primaryTextColor" />
<item android:color="?attr/primaryLightColorText" />
</selector>
6 changes: 6 additions & 0 deletions app/src/full/res/color/time_segment_fill.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- segment fill: filled primary pill when checked, invisible otherwise -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="?attr/colorPrimary" />
<item android:color="@android:color/transparent" />
</selector>
6 changes: 6 additions & 0 deletions app/src/full/res/color/time_segment_stroke.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- segment stroke: matches the fill on the checked pill, invisible otherwise -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="?attr/colorPrimary" />
<item android:color="@android:color/transparent" />
</selector>
6 changes: 6 additions & 0 deletions app/src/full/res/color/time_segment_text_color.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- segment label colors: filled primary on the checked pill, muted otherwise -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="?attr/colorOnPrimary" />
<item android:color="?attr/primaryLightColorText" />
</selector>
7 changes: 7 additions & 0 deletions app/src/full/res/drawable/bg_activity_avatar.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- circular avatar background used by the per-app activity list;
tinted at bind time with the theme's colorPrimary (low alpha) -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@android:color/transparent" />
</shape>
9 changes: 9 additions & 0 deletions app/src/full/res/drawable/bg_status_dot.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- small status dot used by connection rows in the activity detail sheet -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size
android:width="8dp"
android:height="8dp" />
<solid android:color="#FF4081" />
</shape>
Loading
Loading