Skip to content

Releases: PATILYASHH/NFCC

v1.5.5 — APK build fix

10 May 05:21

Choose a tag to compare

v1.5.4's Android build failed in CI on a misnamed framework constant. Same feature set as v1.5.4 (YouTube progress, browser URL accuracy, WhatsApp search prefill); just the build fix on top.

v1.5.4 — YouTube progress + WhatsApp search prefill

10 May 05:08

Choose a tag to compare

Three fidelity issues fixed:

YouTube progress now actually carries over

PlaybackState.position only records where playback was at the last state update. YouTube sets state once on play, then again on transitions — so a video playing for 30s with no transitions reports position=0. We were faithfully shipping &t=0s. Now we live-correct by adding (now - lastPositionUpdateTime) × playbackSpeed, so the URL we send the PC always reflects the actual current frame.

The capture path also now tries METADATA_KEY_MEDIA_URIMEDIA_IDDISPLAY_DESCRIPTION in order, since ReVanced and YT Music sometimes leave MEDIA_URI empty but populate the others. The URL normalizer accepts bare 11-char video IDs too.

Browser handoff captures the right URL

Chrome's omnibox shows just the host while not focused, but the full URL is in the node's contentDescription for screen readers. Capture now reads both .text and .contentDescription on every browser-bar node and ranks candidates: https:// > http:// > domain+path > host-only. Tree-wide fallback uses the same scoring, so we pick the actual full URL even when several variants are visible on screen.

WhatsApp name-based chats now pre-fill search

Phone-number chats already opened directly via whatsapp://send?phone=N. For chat names like "Mom" or "Office Group" — which WhatsApp has no public deep link for — Smart Switch now opens WhatsApp Desktop, focuses search via Ctrl+F, and pastes the chat name. One Enter press lands you in that conversation. Drafts continue to auto-paste once you're inside.

v1.5.3 — App Scanner accuracy

10 May 04:20

Choose a tag to compare

Audit pass over v1.5.2 caught two paper-cuts:

  • App Scanner false positives: payloads with generic last-segment package names (com.unknown.app) were substring-matching apps like Xbox PC App via the candidate 'app'. The scanner now filters out a deny-list of generic Android-package segments (app, main, client, service, helper, mobile, …) before they reach the lookup, requires ≥4 chars, and still resolves real candidates like anydesk cleanly.
  • Unhelpful fallback errors: when no PC app could be resolved for a Smart Switch payload, the error said 'No PC equivalent' with no path forward. The handoff now points users directly at the App Scanner dashboard panel:

    No PC app mapped for 'anydesk' (Android pkg: com.anydesk.anydeskandroid). Open the dashboard → App Scanner → search and click Map.

Both phone APK and PC EXE rebuilt by CI.

v1.5.2 — App Scanner + WhatsApp Desktop

09 May 11:38

Choose a tag to compare

Two real production failures fixed, plus the user-requested App Scanner.

PC App Scanner (new)

Open the dashboard (http://localhost:8877) → scroll to the new App Scanner card.

  • Scans Start Menu shortcuts, App Paths registry, Scoop, Chocolatey, per-user Programs, Microsoft Store shims. Found ~150 apps on a dev machine in under a second.
  • Search as you type. Each row shows the source (StartMenu / Scoop / AppPaths / …).
  • Map any app to a phone Android package — pins it to that package via Smart Switch's mapping table, persists to ~/.nfcc/mappings.json. Next tap on a tag while that app is foregrounded → PC launches the right binary directly.
  • Add manually for portable / unlisted .exes the scanner can't see.
  • Smart Switch now consults the scanner automatically when the static alias table doesn't cover a phone app — fixes No PC equivalent for 'anydesk'-style failures.

WhatsApp → Desktop, not Web

smartSwitch to a WhatsApp tag now opens WhatsApp Desktop via the whatsapp: protocol handler when Windows has it registered. Detection covers HKCR / HKCU / HKLM registry roots and AssocQueryString — handles Microsoft Store / UWP installs that hide the protocol from the legacy paths. If our probes can't see the install, set force_desktop: true in the WhatsApp mapping (Mappings panel) to skip detection. Web is the silent fallback.

Update

Pull the new APK + EXE from the assets below once CI finishes (~8 min APK, ~1 min EXE).

v1.5.1 — Smart Switch + audio fixes

09 May 11:08

Choose a tag to compare

Bug-fix release. Three real failures spotted in the production action log are now fixed:

Fixed

  • toggleMute crashed with 'AudioDevice' object has no attribute 'Activate'. Replaced with the OS volume-mute keypress so it works on every pycaw version, including the wheels where AudioUtilities.GetSpeakers() returns a wrapper instead of the raw COM device. setVolume got a similar cross-version helper plus a key-nudge fallback.
  • Smart Switch — Browser handoff missing URL. When Chrome's omnibox was scrolled off-screen at tap time, the accessibility cache was being wiped to null. The cache now preserves the last good URL for the same package, plus a fresh on-demand scrape and a tree-wide URL-shaped-text scan as a last-resort fallback. PC side also degrades gracefully — opens the default browser instead of erroring when no URL was captured.
  • Smart Switch — No PC equivalent for 'rvx music'. ReVanced YT Music packages (app.revanced.android.apps.youtube.music, app.rvx.android.apps.youtube.music) now route through the YouTube media pipeline. URLs are kept on music.youtube.com so the desktop YT Music PWA picks them up.

Update

Pull the latest APK and Windows EXE from the assets below. CI builds attach in a couple of minutes.

v1.5.0 — Smart Switch

09 May 09:26

Choose a tag to compare

Smart Switch — phone-to-PC handoff

Tap a Smart Switch tag and your PC picks up exactly what your phone was doing.

What gets handed off

On phone On PC
YouTube / YT Music / ReVanced YouTube at 2:42 Same video at 2:42, regular youtube.com
Spotify track Same track in Spotify Desktop (or Web), Spotify Connect handles position
Browser tab Same URL in your default browser
WhatsApp chat with a typed draft WhatsApp Web, focused on chat, draft auto-pastes
Telegram / Discord / Teams / Slack / Steam Native desktop app launches
Instagram / X / TikTok / Netflix / Twitch / Reddit / LinkedIn / Gmail / Drive / Calendar / Keep Web counterpart
Anything else Best-effort: URL if available, else launch a PC app with the same name

Foreground-first: WhatsApp on screen with Spotify playing in the background → WhatsApp wins.

Configurable on the PC

The PC dashboard (http://localhost:8877) gets a new Smart Switch Mappings panel — a JSON editor seeded with the defaults so you can override any phone-app-to-PC-action rule. Saved overrides live at ~/.nfcc/mappings.json.

Permissions (Android, one-time)

Smart Switch needs three: Accessibility, Usage Stats, Notification Listener. The first time you add a Smart Switch tag the app opens the matching system Settings pages; nothing else is gated, and Smart Switch falls back gracefully when a permission is missing.

Also in 1.5.0

  • Edit-existing-routine no longer freezes: enabled SQLite foreign keys (sqflite ships them off, so ON DELETE CASCADE was a no-op), wrapped automation updates in transactions, stripped child PKs on re-insert so the same row never collides with a stale orphan. Save errors now surface as a SnackBar instead of a silent hang.
  • New automations start with an empty IF branch instead of an "Otherwise" branch that hid the condition picker.

CI builds the APK and Windows EXE and attaches them to this release in a couple of minutes — refresh the page.

NFCC 1.2.0

18 Apr 07:24

Choose a tag to compare

Pair once, stay paired. MIT licensed. No analytics, no ads, no tracking.

Highlights

Mobile

  • Auto-reconnect to the last paired PC on every launch — no re-pairing after reboot, WiFi hop, or DHCP renewal. Pair once, then just open the app; the tray goes green within a couple of seconds.

PC Companion

  • Multi-NIC discovery fix — if your PC has both Ethernet and Wi-Fi up, discovery now replies with the IP of the interface the phone's packet arrived on, not a random guess. No more "found but unreachable" pairings.
  • Bulletproof service detach — closing the terminal, the browser tab, or the dashboard no longer kills the service. Windows CREATE_BREAKAWAY_FROM_JOB means the tray survives its spawner.
  • NFCC-PC typed in any terminal opens the dashboard. If no service is running, one is spawned detached first.
  • NFCC-PC health — tick-box diagnostic that verifies service, WebSocket, and autostart are all up in one command.
  • Silent Windows autostart via pythonw.exe — no cmd window flash on login.

Web + F-Droid

  • Landing page at https://nfcc-patilyashh.netlify.app refreshed with the v1.2 feature set + a GitHub Sponsors block.
  • F-Droid RFP compliance: Fastlane metadata at repo root, Gradle 8.14 SHA-256 pinned, lock files committed, 4 real phone screenshots shipped.

Install

  • Android: download `app-release.apk` below (attached by CI once the release build finishes).
  • Windows companion: download `NFCC-Companion.exe` below.
  • F-Droid: auto-update recipe picks this up automatically — see docs/FDROID.md.

Full changelog: v1.1.0...v1.2.0

NFCC 1.1.0

18 Apr 04:41

Choose a tag to compare

Feature release. MIT licensed. No analytics, no ads, no tracking.

Highlights

Mobile

  • Rich Launch PC App picker — 22 presets (VS Code, Cursor, Chrome, Terminal, Explorer, Office, Discord, Telegram, Tally, …). Apps that accept an argument get a target field — one tap can open a specific folder in VS Code or a URL in Chrome.
  • Write NFC tags from Tracker + TODO cards — stamps NFCC_T:<id> / NFCC_D:<id> as NDEF so a tag re-pairs automatically on a fresh install.
  • Auto-reconnect survives WiFi hops and DHCP renewals — every third reconnect broadcasts UDP discovery and updates the stored PC IP/port.
  • Samsung-Reminder-style time field on daily TODOs.
  • New app icon + favicons across every surface; fixes icon rendering on the web preview.
  • Branded UPI payment sheet with PhonePe / GPay / Paytm / BHIM / Amazon Pay logos.

PC Companion

  • NFCC-PC terminal commandserve, status, pair, dashboard, reconnect, forward, unforward, autostart, action.
  • Background-first lifecycle — tray is the only thing that keeps the process alive. Dashboard is opt-in; closing the browser tab never stops the service.
  • Port fallback 9876–9886 if the primary port is busy.
  • UPnP port forwarding via NFCC-PC forward for cross-network access.
  • Windows autostartNFCC-PC autostart enable or the Start with Windows tray checkbox.
  • Reconnect from CLI or tray restarts network services in place.

Install

  • Android: download app-release.apk below.
  • Windows companion: download NFCC-Companion.exe below.
  • F-Droid: auto-update recipe picks this up — see docs/FDROID.md.

Full changelog: v1.0.0...v1.1.0

NFCC 1.0.0

17 Apr 14:21

Choose a tag to compare

First public release. MIT licensed. No analytics, no ads, no tracking.

Downloads (APK + Windows EXE) are attached below once the release-triggered builds finish — see the Actions tab.

  • Android APK: app-release.apk
  • Windows companion: NFCC-Companion.exe
  • F-Droid submission: see docs/FDROID.md