Skip to content

Add NFC QR Presenter#1107

Open
RogerF5-Security wants to merge 4 commits into
flipperdevices:mainfrom
RogerF5-Security:RogerF5-Security/nfc_qr_presenter_1.0
Open

Add NFC QR Presenter#1107
RogerF5-Security wants to merge 4 commits into
flipperdevices:mainfrom
RogerF5-Security:RogerF5-Security/nfc_qr_presenter_1.0

Conversation

@RogerF5-Security

@RogerF5-Security RogerF5-Security commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Application Submission

  • Adds NFC QR Presenter as a Tools application for Flipper Zero / Momentum firmware.
  • The app presents user-created local SD payloads as both an on-screen QR code and an NFC NDEF tag using the Flipper NFC stack.
  • It includes local payload management from the device, catalog description, changelog, icon, and screenshots.
  • It does not ship with bundled personal or demo payloads.
  • Source repository: https://github.com/RogerF5-Security/NFC_QR_Presenter
  • Source commit: 9fcb868460dd20fd7f9af4ea318af891715f16d2

Extra Requirements

  • No extra hardware or software is required beyond a Flipper Zero with SD card storage.
  • NFC sharing can be tested with an NFC-capable phone or reader.
  • Payload files are created and managed by the user on the Flipper SD card under /ext/apps_data/nfc_presenter/.

Author Checklist (Fill this out)

  • I've read the contribution guidelines and my PR follows them
  • I own the code I'm submitting or have code owner's permission to submit it
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have validated the manifest file(s) with python3 tools/bundle.py --nolint applications/CATEGORY/APPID/manifest.yml bundle.zip

Validation performed:

  • ufbt format
  • ufbt lint
  • ufbt build / APPCHK Target 7, API 87.1
  • python tools/bundle.py --nolint applications/Tools/nfc_qr_presenter/manifest.yml bundle_nfc_qr_presenter.zip
  • Screenshot palette check: screenshots/ss0.png..ss2.png are 512x256 RGB PNG files with exactly two colors: #000000 and #fe8a2c (qFlipper Theme.color.lightorange2)

AI usage disclosure (Fill this out):

  • Partially AI assisted (clarify below which code was AI assisted and briefly explain what it does).
  • Fully AI generated (explain what all the generated code does in moderate detail).

AI assistance was used during implementation and release cleanup. The assisted areas include:

  • src/nfc_qr_presenter.c: menu flow, payload selection, QR share view, input handling, empty-state handling, and lifecycle fixes to avoid crashes when opening or leaving the share view.
  • src/nfc_qr_storage.c: SD-card payload scanning, text/.ndef file read/write helpers, slug generation, vCard newline handling, and NDEF message generation for URL, vCard, and text payloads.
  • src/nfc_qr_nfc.c: NFC worker structure for exposing the selected NDEF payload as an NTAG-style tag through the Flipper NFC stack.
  • Documentation and catalog metadata: README, changelog, catalog description, and release notes.

The author provided the requirements, hardware testing feedback, final behavioral decisions, source review, and owns the final submission.

Reviewer Checklist (Don't fill this out!)

  • Bundle is valid
  • There are no obvious issues with the source code
  • I've ran this application and verified its functionality

@xMasterX

Copy link
Copy Markdown
Collaborator

Hello, why did you remove the AI usage disclosure & Reviewer Checklist from the PR description template?
Restore removed parts to the PR description and fill "for PR author" ones.

@xMasterX xMasterX added the on hold For PRs that cannot be merged right now as is label Jun 30, 2026
@RogerF5-Security RogerF5-Security force-pushed the RogerF5-Security/nfc_qr_presenter_1.0 branch from 5ec4afd to e195065 Compare June 30, 2026 16:03
@xMasterX xMasterX removed the on hold For PRs that cannot be merged right now as is label Jul 1, 2026
@xMasterX

Copy link
Copy Markdown
Collaborator

Hello, the screenshots looks edited / re-encoded - they have ~240 colors and the orange is off
(255,130,0). A real qFlipper screenshot is just 2 colors, orange + black, 512x256. Please recapture
them from the qFlipper screenshot button, no edits. Thanks!

@xMasterX xMasterX added the fixes needed Unresolved issues with the app requiring maintainer's attention label Jul 12, 2026

@xMasterX xMasterX left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See previous comment

@RogerF5-Security RogerF5-Security force-pushed the RogerF5-Security/nfc_qr_presenter_1.0 branch from e195065 to bbfec08 Compare July 13, 2026 22:36
@RogerF5-Security

Copy link
Copy Markdown
Contributor Author

Addressed the screenshot review feedback.

Changes made:

  • Replaced screenshots/ss0.png, screenshots/ss1.png, and screenshots/ss2.png in the source repository.
  • Each screenshot is now 512x256 and contains exactly two RGB colors: #000000 and #fe8a2c, matching qFlipper's black foreground and Theme.color.lightorange2 screen background.
  • Updated the catalog manifest to point to the new source commit: 9fcb868460dd20fd7f9af4ea318af891715f16d2.
  • Rebasing was done against latest upstream/main.

Validation performed:

  • ufbt / APPCHK Target 7, API 87.1
  • python tools/bundle.py --nolint applications/Tools/nfc_qr_presenter/manifest.yml bundle_nfc_qr_presenter.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app (new) fixes needed Unresolved issues with the app requiring maintainer's attention

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants