Skip to content

Commit b9f98aa

Browse files
committed
chore: bump to v1.12.0 (72)
1 parent f684516 commit b9f98aa

6 files changed

Lines changed: 42 additions & 14 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ All notable changes to CallShield will be documented in this file.
44

55
## Unreleased
66

7+
## v1.12.0 (2026-10-09)
8+
79
- Numbers that other CallShield users reported, but that haven't been
810
confirmed enough to block, now get a label. When two people on different
911
networks report the same number on the same day and nobody marks it as

‎README.md‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,17 @@ Version highlights for each release are in [CHANGELOG.md](CHANGELOG.md).
7878
5. **Callback-aware.** It won't block a number you recently called or keep answering, a callback after a local emergency call, or a caller who tries twice in five minutes.
7979
6. **Community-driven.** One-tap anonymous reports go through a Cloudflare Worker, and the maintainer merges them into the database.
8080

81+
## v1.12.0 Highlights
82+
83+
Reports from other users now show before a number is confirmed, and Report on a number's screen finally reaches the database.
84+
85+
- **Reported by other users.** A number that people on two different networks reported on the same day, and nobody marked as not spam, reads "Reported by 2 CallShield users, not confirmed" in the caller ID popup and the after-call notice. It never blocks a call by itself.
86+
- **Faked support lines.** Real calls from 50 published support lines that scammers like to fake (Apple, the IRS, Social Security, Medicare and the big banks) ring when your carrier verified them. A faked one is still blocked, and the reason says whose number it was.
87+
- **Report counts.** Report on a number's screen sends the anonymous community report and says when the number is already listed or you reported it before. My reports in More lists what you sent in the last 90 days, with Send not spam to take one back.
88+
- **Lookup checks a message.** Paste a text you're unsure about and it gets the same content rules and link checks as an incoming one, on the phone.
89+
- **Smarter suggestions.** Home spots a campaign that calls from a new number in one exchange every day or so and offers to block that exchange. A number's screen offers its area code outside North America too, like +33 1 for Paris.
90+
- **Around the app.** Permission buttons open App info once Android stops asking, backups carry your subscribed blocklists, a call from abroad is labeled with its country, and times read the way your language says them.
91+
8192
## v1.11.0 Highlights
8293

8394
Better at the calls and texts scams lead to, and your own lists survive a damaged database.
@@ -111,7 +122,7 @@ A new look for every screen, protection levels you can switch in one tap, and a
111122

112123
Earlier releases are in [CHANGELOG.md](CHANGELOG.md).
113124

114-
## Detection Pipeline (v1.11.0)
125+
## Detection Pipeline (v1.12.0)
115126

116127
All detection layers implement a shared `IChecker` interface and run in priority order through `CheckerPipeline.run`. The first layer with a verdict wins, and each layer is tested on its own. Priorities are stable numbers, and the ladder below is the live order.
117128

‎app/build.gradle.kts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ android {
5050
applicationId = "com.sysadmindoc.callshield"
5151
minSdk = 29
5252
targetSdk = 36
53-
versionCode = 71
54-
versionName = "1.11.0"
53+
versionCode = 72
54+
versionName = "1.12.0"
5555
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
5656
manifestPlaceholders["appLabel"] = "@string/app_name"
5757
}

‎app/src/main/java/com/sysadmindoc/callshield/ui/screens/more/ChangelogScreen.kt‎

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,18 @@ fun ChangelogScreen() {
5555
SectionHeader(stringResource(R.string.changelog_latest_release), CatGreen)
5656
Spacer(Modifier.height(12.dp))
5757
VersionEntry(
58-
"1.11.0",
59-
"Scam callbacks, codes during calls and safer lists",
58+
"1.12.0",
59+
"Community labels and reports that count",
6060
isLatest = true,
61-
date = "September 30, 2026",
62-
summary = "Holds a call back to a scam text, warns before you read a code to a stranger, and keeps your own lists through a damaged database.",
61+
date = "October 9, 2026",
62+
summary = "Numbers other users reported get a label before they're confirmed, and Report on a number's screen now goes straight to the database.",
6363
changes =
6464
listOf(
65-
"Calling a number from a text flagged as spam in the last 30 days is held first",
66-
"A one-time code that arrives during a call from someone who isn't a contact brings up a warning",
67-
"Text checks catch \"new number\" reply bait and see through look-alike letters",
68-
"Your blocks, allow list and rules survive a damaged database",
69-
"A trusted number can allow its whole number block, and Home shows a card when a new release is out",
65+
"A number two users on different networks reported gets a \"not confirmed\" label, and it never blocks by itself",
66+
"Real calls from support lines scammers fake, like the IRS or your bank, ring when your carrier verified them",
67+
"Report on a number's screen sends the anonymous report, and My reports lists what you sent",
68+
"Lookup can check a pasted text with the same rules as an incoming one",
69+
"Home suggests blocking an exchange a slow campaign keeps calling from, and area code blocks work outside North America",
7070
),
7171
)
7272
Spacer(Modifier.height(14.dp))
@@ -108,6 +108,20 @@ fun ChangelogScreen() {
108108
}
109109
AnimatedVisibility(visible = showHistory) {
110110
Column(modifier = Modifier.padding(top = 14.dp)) {
111+
VersionEntry(
112+
"1.11.0",
113+
"Scam callbacks, codes during calls and safer lists",
114+
date = "September 30, 2026",
115+
summary = "Holds a call back to a scam text, warns before you read a code to a stranger, and keeps your own lists through a damaged database.",
116+
changes =
117+
listOf(
118+
"Calling a number from a text flagged as spam in the last 30 days is held first",
119+
"A one-time code that arrives during a call from someone who isn't a contact brings up a warning",
120+
"Text checks catch \"new number\" reply bait and see through look-alike letters",
121+
"Your blocks, allow list and rules survive a damaged database",
122+
"A trusted number can allow its whole number block, and Home shows a card when a new release is out",
123+
),
124+
)
111125
VersionEntry(
112126
"1.10.0",
113127
"Expecting a call, and a database that keeps blocking",
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Numbers other CallShield users reported get a "not confirmed" label that never blocks by itself. Real calls from support lines scammers fake, like the IRS or a bank, ring when your carrier verified them. Report on a number's screen now sends the anonymous report, and My reports lists what you sent. Lookup can check a pasted text, and Home suggests blocking an exchange a slow campaign keeps calling from.

‎scripts/test_release_drift.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ def test_checkout_is_synchronized(self) -> None:
3535
snapshot_path=snapshot_path,
3636
)
3737
self.assertEqual([], report["issues"], report)
38-
self.assertEqual("1.11.0", report["version_name"])
39-
self.assertEqual(71, report["version_code"])
38+
self.assertEqual("1.12.0", report["version_name"])
39+
self.assertEqual(72, report["version_code"])
4040
self.assertEqual(9, report["sources"]["source_count"])
4141
self.assertEqual(3, len(report["advisories"]))
4242

0 commit comments

Comments
 (0)