Conversation
Add keep.xml to preserve tx_auto_* string resources accessed via getIdentifier() at runtime (invisible to static shrinker analysis). Add locale_config.xml for Android 13+ per-app language support.
Product IDs use underscores (remove_ads_lifetime, pro_features_lifetime), not dashes which are offer IDs. offerToken is optional for INAPP products so treat null as empty string instead of aborting the purchase flow.
BiometricKeyStore now accepts configurable prefs name and keystore alias so a separate decoy biometric store can coexist with the main one. AppPreferences and UiState track decoy biometric enabled state. MainActivity wires enrollment and unlock for the decoy key, deriving the decoy master key from the decoy PIN via VaultKeyManager. In UnlockScreen the fingerprint button uses long press for decoy unlock and normal tap for the real vault. Settings shows a decoy biometric section when the decoy vault is enabled. Decoy settings are hidden by default and revealed by tapping the NULVEX logo six times. Each tap fires one lightning bolt emoji in a random direction; on the sixth tap all bolts explode outward and the section becomes visible.
Register MIME types for .nulvex, .nulvxbk and .nulvxkeys files so the app appears as a handler in file managers. Include file:// fallbacks for legacy file managers and an autoVerify deep link for androidircx.com media URLs. Also wire localeConfig for Android 13+ per-app language.
Add missing imports for VaultProfile and Compose offset to resolve unresolved references that were breaking assembleDebug.
Align billing tests with updated product IDs and one-time purchase token handling, and add coverage for single-note share imports, decoy biometric state toggles, and manifest intent filters for encrypted files/deep links.
Allow creating labels without assigning them to a note by persisting custom labels in app settings and surfacing them in the labels menu/filter list. Also extend note-detail editing to update expiry alongside text and cover both flows with updated instrumentation tests.
Extend note detail editing to support adding/removing labels and attaching new images in the same save flow as text and expiry updates. Wire the new save callback through MainScreen and MainActivity, and keep instrumentation coverage stable by removing a flaky async assertion.
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.
Summary
Brief description of what this PR changes and why.
Type of change
Security impact
Does this PR touch any of the following? If yes, describe the impact:
Security impact description: (fill in if any box above is checked)
Testing
./gradlew test)Device tested on: (model + Android version)
Checklist
main