<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Android Notifications on ErrorZap</title><link>https://errorzap.com/tags/android-notifications/</link><description>Recent content in Android Notifications on ErrorZap</description><image><title>ErrorZap</title><url>https://errorzap.com/og.png</url><link>https://errorzap.com/og.png</link></image><generator>Hugo</generator><language>en-US</language><copyright>ErrorZap</copyright><lastBuildDate>Fri, 02 Oct 2026 23:36:00 -0600</lastBuildDate><atom:link href="https://errorzap.com/tags/android-notifications/index.xml" rel="self" type="application/rss+xml"/><item><title>Making It Mine</title><link>https://errorzap.com/texting/making-it-mine/</link><pubDate>Fri, 02 Oct 2026 23:36:00 -0600</pubDate><guid>https://errorzap.com/texting/making-it-mine/</guid><description>Version 0.3 of the KCCS Text app added the things no off-the-shelf texting app would give me: per-contact sounds, nagging reminders, quiet hours, VIPs, a desktop page and business voicemail.</description><content:encoded><![CDATA[<div class="ez-dossier-lede"><span>MY OWN TEXTING · MESSAGE 06 · THE GOOD PART</span><p>Once it's your app, "I wish it could…" stops being a complaint and turns into a to-do item.</p></div>
<h2 id="version-03-the-same-night">Version 0.3, the same night</h2>
<p>Version 0.2 went live at 6:27 PM on September 23. Version 0.3 went live at 7:38 PM.
That hour was mostly testing, because the features had been built that afternoon
alongside everything else. Here&rsquo;s what I got.</p>
<p><strong>A sound for every person.</strong> Each contact can have its own notification sound and
vibration. Under the hood, the app makes a separate Android notification channel
for each person, since that&rsquo;s the only way Android lets an app give different
alerts different sounds. Now I know who&rsquo;s texting before I look.</p>
<p><strong>Priorities and VIPs.</strong> Every contact is Standard, Priority or Silent, and anyone
can be a VIP. VIPs sit at the top of my People list and always count as priority.</p>
<p><strong>Reminders that don&rsquo;t quit.</strong> If a priority text sits unread, the app reminds me
again, on a schedule I set per person (every 10 minutes, up to twice, for
example). Reading it or replying cancels the reminders. They survive the phone
rebooting, too.</p>
<p><strong>Quiet hours and snooze,</strong> so all of the above leaves me alone at night unless it
really matters.</p>
<p><strong>A setup checklist.</strong> Android has a handful of settings that silently wreck
alerts: battery optimization, exact alarms, Do Not Disturb access. The settings
screen checks each one and gives you a <strong>Fix</strong> button that jumps straight to the
right system page.</p>
<div class="tx-shots">
<figure><img src="shot-conversation.webp" alt="A conversation in the KCCS Text app with a made-up contact, chat bubbles with sent and delivered marks, and quick-reply buttons like On my way above the text box." loading="lazy" width="390" height="844"><figcaption>A conversation, with quick replies above the keyboard. (Made-up contact from the test harness.)</figcaption></figure>
<figure><img src="shot-contact.webp" alt="Contact settings in the KCCS Text app showing priority, a VIP checkbox and a list of sounds: KCCS Chime, KCCS Priority, KCCS Urgent, phone default, silent." loading="lazy" width="390" height="844"><figcaption>Every contact gets a priority, a VIP switch and its own sound.</figcaption></figure>
<figure><img src="shot-people.webp" alt="Settings screen showing Fix needed buttons for exact alarms, battery optimization and Do Not Disturb access, then a People and priorities list with Standard, Priority and Silent contacts." loading="lazy" width="390" height="844"><figcaption>The checklist that finds alert-killing settings, then People &amp; priorities.</figcaption></figure>
</div>
<h2 id="the-upgrade-trick">The upgrade trick</h2>
<p>Here&rsquo;s a small detail I love. The first rebuilt app had been installed under a
test package name. Instead of switching to a &ldquo;proper&rdquo; name and making me log in
again and redo every contact&rsquo;s sound, the real release <strong>kept that package name
and signing key</strong>. Android treated each new version as an update, so my login and
all my per-contact sounds carried over every time. Not pretty, but it worked
every time.</p>
<h2 id="goodbye-to-the-old-app">Goodbye to the old app</h2>
<p>For about a day I had <strong>two</strong> apps on my phone with the same name: the old
React Native one and the new one. Same name, different insides. I asked Leo to get
rid of the old one, and it came off both phones. Its 7-second polling stopped for
good on September 24.</p>
<h2 id="the-desk-page">The desk page</h2>
<p>Most of my day is at a PC, so on September 24 the same server got a desktop page:
texts <strong>and</strong> calls in one list, call and voicemail cards right inside each
conversation, keyboard shortcuts for everything, and a Ctrl+K search box for
jumping to anyone. It went through 31 automated checks before going live that
night.</p>
<div class="tx-shots">
<figure><img src="shot-desk.webp" alt="The KCCS Text desk page: a dark list of made-up conversations and calls on the left, and a welcome panel with unread counts and keyboard shortcuts on the right." loading="lazy" width="1600" height="950"><figcaption>The desk page: everything in one list, with keyboard shortcuts. (Test data.)</figcaption></figure>
</div>
<h2 id="voicemail-moves-in">Voicemail moves in</h2>
<p>My office phone system already turned voicemails into emails and transcripts. On
September 26 the app got a <strong>Voicemail</strong> button with a badge. Tap it to play a
message, read the transcript, call back or mark it heard. There&rsquo;s a second tab for
&ldquo;AI took a message,&rdquo; which you&rsquo;ll understand after the next message.</p>
<p>The same weekend the app learned to <strong>open on my main line by default.</strong> My server
sends from more than one number, and the app had been guessing.</p>
<h2 id="the-full-test">The full test</h2>
<p>On September 26 we test-called <strong>every line</strong> I own and sent test texts across all
of them: 22 calls and 9 texts. It found one problem I never would have guessed.
One of my phones had been sitting on manual Do Not Disturb since the 22nd, so
calls rang silently and showed up as missed. No app bug. Just a setting. That&rsquo;s
exactly why the setup checklist exists.</p>
]]></content:encoded></item></channel></rss>