Skip to content

Conversation

@yet300
Copy link
Contributor

@yet300 yet300 commented Dec 31, 2025

Summary

  • Add QR-based verification flow with deep link handling and system notifications.
  • Add security verification sheet with fingerprints, session state, and verify/unverify actions.
  • Persist fingerprint/identity metadata for offline display and sidebar verified badges.

Changes

  • VerificationService + mesh handling for verify challenge/response.
  • UI: VerificationSheet, SecurityVerificationSheet, verified icons in header/sidebar.
  • Identity caching for peer fingerprints and nicknames to support offline views.

Video

FILE.2025-12-31.20.24.30.mp4

Notes

  • Deep link handling implemented in app/src/main/java/com/bitchat/android/MainActivity.kt and app/src/main/AndroidManifest.xml.

Checklist

actions-user and others added 30 commits September 21, 2025 06:21
# Conflicts:
#	app/src/main/assets/nostr_relays.csv
# Conflicts:
#	app/src/main/assets/nostr_relays.csv
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +186 to +189
val icon = when {
isVerified -> Icons.Filled.Verified
sessionState == "handshaking" -> Icons.Outlined.Sync
sessionState == "failed" -> Icons.Outlined.OutlinedWarning

Choose a reason for hiding this comment

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

P1 Badge Fix unresolved OutlinedWarning icon reference

SecurityVerificationSheet won’t compile: the buildStatusInfo branch for failed sessions references Icons.Outlined.OutlinedWarning, but the only available symbol is the aliased OutlinedWarning/Icons.Outlined.Warning. With the current name, the code does not resolve and the module fails to build, blocking the new verification UI.

Useful? React with 👍 / 👎.

@yet300 yet300 changed the title QR feature QR and Verification feature Jan 2, 2026
@callebtc
Copy link
Collaborator

callebtc commented Jan 4, 2026

very nice!

@callebtc
Copy link
Collaborator

callebtc commented Jan 4, 2026

I have reviewed the implementation and applied the following improvements for robustness and code quality:

Refactoring & Code Quality

  • Extracted VerificationHandler: Moved all QR verification logic and state from ChatViewModel into a dedicated VerificationHandler class. This significantly reduces the size of the ViewModel and separates concerns.
  • Dependency Injection: The handler is instantiated with necessary dependencies, keeping the architecture clean.

Security & Concurrency

  • Thread-Safe Identity Storage: Added synchronized blocks in SecureIdentityStateManager to prevent race conditions during read-modify-write operations on SharedPreferences. This ensures verification state isn't lost if multiple updates happen simultaneously.
  • Safe State Management: Switched to ConcurrentHashMap for tracking pending verifications and nonces, ensuring thread safety when handling network callbacks on background threads.

These changes make the feature production-ready and stable.

@callebtc
Copy link
Collaborator

callebtc commented Jan 4, 2026

Build errors fixed:

  • XML Parsing: Escaped all unescaped ampersands in the translated string resources.
  • Compilation: Restored missing helper methods and variables in ChatViewModel that were accidentally removed during refactoring.

The app now builds successfully.

@callebtc callebtc merged commit c663e8e into permissionlesstech:main Jan 4, 2026
1 check passed
@callebtc callebtc mentioned this pull request Jan 9, 2026
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants