Skip to content

Nightbell 3.0.0 — new name, new icon, new package

Choose a tag to compare

@riveerxd riveerxd released this 08 Aug 21:49
· 11 commits to master since this release

Pulse is now Nightbell, and the icon finally matches the name: a bell with the heartbeat trace knocked out of it. The trace is the same six points the old mark was drawn from, scaled and centred inside the bell rather than redrawn, so the old identity is still in there.

Read this before you install

3.0.0 does not update a 2.x install. The application id moved with the name, from me.river.pulse to me.river.nightbell. Android identifies an app by that id, so 3.0.0 installs beside Pulse with an empty data directory. No signing key or manifest setting changes that.

To carry your monitors across:

  1. In Pulse 2.4.3, Settings → Export. It writes one JSON file.
  2. Install Nightbell 3.0.0.
  3. In Nightbell, Settings → Import, and pick that file.
  4. Check the monitors arrived, then uninstall Pulse.

Two things do not come across. Placed widgets need removing and re-placing, because a launcher stores a widget provider as a fully-qualified ComponentName. Notification channel settings and the four grants belong to the old package, so Nightbell asks for them again on first launch.

Backups written by any 2.x build import fine. The reader validates the JSON envelope, never the filename, so a file still called pulse-backup-….json is read exactly as it always was.

Full detail: docs/MIGRATION_3.0.0.md

Why the name changed

Pulse was unwinnable as a search term. Pulse Pager and Pulse UpTime both ship uptime monitoring under the same word, with two more products alongside them, so searching for this app returned four competitors first. Nightbell collides with nothing in software.

The mark

The cutout is a real hole rather than a dark line painted over the bell, which matters in the two places Android tints the icon flat from its alpha channel: the themed launcher icon and the status-bar glyph. A painted-on hole would vanish there and leave a solid bell. At 18dp the slot is under two pixels, so the widget header and the notification icon use the solid bell on purpose.

Also in this release

  • Persisted identifiers moved to nightbell.* alongside the package: DataStore names, notification channel ids, WorkManager unique names, the backup filename prefix, and the nightbell:// deep links. Safe to do here precisely because a new package has no live install to orphan.
  • The baseline profile was renaming-sensitive in a way that fails silently: 105 of its rules still named the old package, which does not break a build, it just stops matching and takes startup speed with it. Fixed.
  • MainActivity was still checking for the pulse URI scheme after the manifest and widget had moved to nightbell://, which would have broken every widget row tap. Fixed.
  • The thirty Pulse-era logo directions are archived unchanged under docs/brand/archive/pulse-directions/.

Verified

359 JVM tests and 105 on-device tests green on the new package. minSdk 26 (Android 8.0), targetSdk 36.

Nightbell-3.0.0-release.apk · 2,157,468 bytes
sha256 4b9005869c2f7a05c609aed12555c0b63c4766fd4270d89a0ceb20a2764bcadf

Signed with the same key as every release since 2.0.0:
SHA-256 c4:c1:19:2f:06:10:be:6b:cc:8f:22:33:f7:a9:4b:06:4a:fa:40:19:7c:3b:60:8c:ca:4d:25:dc:09:66:6a:96

The certificate subject still reads CN=Pulse Monitor. A DN cannot be edited without issuing a new certificate, and a new certificate would break updates, so it stays.