Conversation
Install global FlutterError/PlatformDispatcher handlers that record uncaught errors on device, sanitized of passwords, tokens, SASL/PASS/AUTHENTICATE arguments, PEM blocks and long opaque tokens. A new Crash reports screen in Settings lists the retained reports and lets the user email one to contact@androidircx.com through their own mail client — nothing is sent automatically and no analytics SDK is used.
The test polled only ~10ms for the session to reach closed, which was too short on slow CI runners and failed intermittently. Wait up to ~3s for the real completion condition (closed status, 4 bytes transferred, finished log).
Long-pressing a channel tab opens a note dialog whose free-text memo is stored on device, keyed by network and channel (mirrors the RN channelNotes store). The dialog owns its text controller so it is disposed safely after the exit animation.
Add a note action to the channel user-actions sheet: a free-text memo per nick stored on device, keyed by network and lowercased nick, shown as the sheet subtitle when present. The actions sheet now scrolls so it never overflows on short screens.
Persisted mask rules (nick or nick!user@host wildcards, optional channel and network scope) grant a channel mode to matching users when they join a channel where we hold the needed privilege. Rules can be toggled per nick from the channel user-actions sheet and managed on a new Auto-mode lists screen in the drawer.
Tapping a video/audio attachment (or a media URL) now opens an in-app player built on video_player instead of leaving the app, with play/pause, a scrubber and position. Audio hides the video surface. The tap routing is extracted into a testable attachmentTapAction().
Enabling app lock now prompts for fingerprint/PIN first and only turns on after it succeeds, so a device without a working screen lock can never lock the user out. Enabling it while the app is open no longer immediately locks the screen — the lock engages on the next background/resume.
/autovoice, /autoop, /autohalfop (and un- variants) add or remove mask rules for the current network, /autolist prints the configured rules. Registered in the command service for autocomplete and help.
Add an "Import from file" action to the client-certificate section of the network form. It reads a PEM file via the document picker, splits combined certificate/key bundles into the cert and key fields, and points users to the openssl conversion command for binary .p12/.pfx files.
Move Connections (server directory, identity profiles) to the top and Help to the very bottom, with consistent spacing between all sections. Make the settings widget tests scroll to each control by key instead of using fixed drag offsets so they are robust to section order.
Carry a base64 PKCS#12 bundle (plus its password) through the network form, secret storage and ClientCertificate to the TLS SecurityContext, which parses PKCS#12 natively for SASL EXTERNAL/CertFP. Importing a binary .p12/.pfx now loads it directly instead of asking the user to convert to PEM; PEM files still split into the certificate and key fields.
Register the video_player macOS plugin and pick up the Flutter migrator's android.builtInKotlin/newDsl gradle flags added during the build.
Move to the AGP 9 DSL: migrate kotlinOptions to the Kotlin compilerOptions DSL (jvmTarget 17) and drop the migrator's newDsl compatibility flag. Ignore the Kotlin build session directory. Release appbundle builds and all tests pass on the new toolchain.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Summary
Checklist