|
12 | 12 | <p align="center"> |
13 | 13 | <a href="https://github.com/SysAdminDoc/CallShield/releases/latest"><img src="https://img.shields.io/github/v/release/SysAdminDoc/CallShield?style=flat-square&color=a6e3a1" alt="Release"></a> |
14 | 14 | <img src="https://img.shields.io/badge/Spam%20Numbers-51%2C363-f38ba8?style=flat-square" alt="51,363 Numbers"> |
15 | | - <img src="https://img.shields.io/badge/JVM%20unit%20tests-1646-94e2d5?style=flat-square" alt="1646 JVM unit tests"> |
| 15 | + <img src="https://img.shields.io/badge/JVM%20unit%20tests-1652-94e2d5?style=flat-square" alt="1652 JVM unit tests"> |
16 | 16 | <img src="https://img.shields.io/badge/Android-10%2B-89b4fa?style=flat-square" alt="Android 10+"> |
17 | 17 | <img src="https://img.shields.io/badge/License-MIT-cba6f7?style=flat-square" alt="MIT License"> |
18 | 18 | <img src="https://img.shields.io/badge/API%20Keys-None-fab387?style=flat-square" alt="No required API keys"> |
@@ -82,7 +82,7 @@ Version highlights for each release are in [CHANGELOG.md](CHANGELOG.md). |
82 | 82 |
|
83 | 83 | Let unknown callers ring when you're waiting for a call, and a fix that keeps the spam database blocking between updates. |
84 | 84 |
|
85 | | -- **Expecting a call.** From Home or its own Quick Settings tile, unknown callers ring for an hour, three hours or until midnight. Your blocked numbers, wildcard rules and a failed caller ID check still block, and a countdown notification offers End now. |
| 85 | +- **Expecting a call.** From Home or its own Quick Settings tile, unknown and hidden callers ring for an hour, three hours or until midnight. Your blocked numbers, wildcard rules and a failed caller ID check still block, and a countdown notification offers End now. On a locked phone the tile asks you to unlock first. |
86 | 86 | - **The database keeps working.** Every number's evidence was due to expire in October, and a phone stops matching a number once that happens. Complaint evidence now lasts a year, and the weekly data check warns a month ahead. Phones on 1.9.0 get this with their next sync. |
87 | 87 | - **Reviewed numbers.** A number the maintainer checks by hand can join the database when no imported source covers it, starting with a Munich number reported on GitHub. |
88 | 88 | - **Easier to use.** The caller ID popup works with TalkBack, the Blocked log and Blocklist fit small screens with large text, and a blocked-call alert offers Not spam for a day. |
@@ -116,7 +116,7 @@ All detection layers implement a shared `IChecker` interface and run in priority |
116 | 116 | | 6900 | **System Block List** (A4) | Block | Read-only bridge to Android's `BlockedNumberContract`. Respects stock Phone/Messages blocks | |
117 | 117 | | 5500 | **Wildcard / Regex** | Block | Custom patterns like `+1832555*` or full regex, now with optional schedule | |
118 | 118 | | 5400 | **Range Patterns** (A5) | Block | Length-locked `#` patterns like `+33162######`, with schedule + coverage safety rail | |
119 | | -| 5360 | **Expecting a Call** | Allow | Opt-in window (1 hour, 3 hours or until midnight) from Home or a Quick Settings tile. Unknown callers ring, and contacts-only mode steps aside. Your own blocks, wildcard and range rules and a failed caller ID check still win | |
| 119 | +| 5360 | **Expecting a Call** | Allow | Opt-in window (1 hour, 3 hours or until midnight) from Home or a Quick Settings tile. Unknown and hidden callers ring, and contacts-only mode and meeting mode step aside. Your own blocks, wildcard and range rules and a failed caller ID check still win | |
120 | 120 | | 5350 | **Temporary Allow** | Allow | One-off false-positive recovery from the Blocked Log. Beats all downloaded data, never your own rules | |
121 | 121 | | 5320 | **Prefix Rules** | Block | Downloaded wangiri country codes, US premium rate (+1900), international premium | |
122 | 122 | | 5310 | **Regulatory Prefix** | Block | Opt-in (Settings > Telemarketing ranges) blocks for ranges regulators set aside for sales calls: Spain 400 (from 17 October 2026), India 140 (TRAI), Brazil 0303 (ANATEL). Matches the number with its country code, and without it on a phone from that country | |
@@ -509,12 +509,12 @@ RELEASE_KEY_PASSWORD=... |
509 | 509 | ## Testing |
510 | 510 |
|
511 | 511 | ```bash |
512 | | -./gradlew testDebugUnitTest # 1646 tests |
| 512 | +./gradlew testDebugUnitTest # 1652 tests |
513 | 513 | ./gradlew connectedDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.sysadmindoc.callshield.platform.TargetSdkBehaviorSmokeTest |
514 | 514 | ./gradlew verifyPipelineTests # Cloudflare Worker (node) + data-pipeline and translation checks (python) |
515 | 515 | ``` |
516 | 516 |
|
517 | | -The suite is **1646 total JVM unit tests**, run with Robolectric wherever a screen, a service or the database is involved. |
| 517 | +The suite is **1652 total JVM unit tests**, run with Robolectric wherever a screen, a service or the database is involved. |
518 | 518 |
|
519 | 519 | Two GitHub workflows run without building the app. **Validation** runs the Worker and |
520 | 520 | pipeline suites on every push except report-only ones (`run-pipeline-tests.ps1 -CorrectnessOnly`), |
@@ -551,7 +551,7 @@ language in [issue #7](https://github.com/SysAdminDoc/CallShield/issues/7). |
551 | 551 | | Community API | Cloudflare Workers | |
552 | 552 | | URL Safety | Local spam-domain data, with optional PhishTank and OpenPhish | |
553 | 553 | | Verification | Local Gradle, lint, and release-artifact checks | |
554 | | -| Tests | 1646 JVM unit tests (JUnit) | |
| 554 | +| Tests | 1652 JVM unit tests (JUnit) | |
555 | 555 | | Strings | 1708 string resources and 38 plural groups (translation-ready) | |
556 | 556 | | Accessibility | 100+ content descriptions, 48dp touch targets | |
557 | 557 | | Min SDK | 29 (Android 10) | |
|
0 commit comments