aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/res/values/strings.xml
AgeCommit message (Collapse)AuthorFilesLines
3 hoursrefactor(app): remove the legacy editor, generators and folder pickerDanilo M.1-8/+0
The Compose editor, generator sheet, OTP dialog and folder picker replace PasswordCreationActivity, the generator and manual OTP dialog fragments, SelectFolderActivity with its fragment and adapter, their layouts and menus, and upstream's unused EditPasswordScreen with the PasswordField it used. flowbinding and swiperefreshlayout had no other users. BasePGPActivity keeps what autofill decryption still needs. Also drops two stale SshKey baseline entries, the snackbar FAB anchor whose view is gone, and resources only the deleted files used. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 hoursfeat(app): add the Compose editor screen and generator sheetDanilo M.1-0/+12
Stateless editor: name, folder breadcrumbs with Change, password with reveal and generator, username, extra content and the OTP actions. The generator sheet has random and diceware tabs with the old options; the manual OTP dialog and the sheet are FLAG_SECURE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 hoursfix(app): harden the editor save path and the pickerDanilo M.1-0/+1
- Run the save's write, original delete, autofill and history updates under NonCancellable so a recreated activity cannot leave a half done rename. - fsync the temporary file before the atomic move. - Move dialog: refuse targets outside the store (symlinks) and moving a folder into itself or a descendant, with a toast. - Folder picker: do not navigate into a new folder whose mkdirs failed; show a toast (new string, en and it). - Normalize entryFile so "./" and "a/../b" give the same keys as the list; covered in EditorModelTest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3 hoursfeat(app): add the Compose folder picker for movesDanilo M.1-0/+4
A dialog with breadcrumbs, subfolder rows and New folder replaces the legacy folder picker activity for the list's move action; the editor will share it. New folder reuses the list's name dialog and checks. A second tap on Select no longer moves twice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 hoursfeat(app): add the Compose entry screenDanilo M.1-0/+6
Header with avatar, name and folder; password, username and one-time code with a countdown bar in the first group; extra fields in the second. FieldRow can start revealed (the "Show the password" setting) and shows masked values in JetBrains Mono, as the old screen did. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
14 hoursrefactor(app): remove the legacy PasswordStore listDanilo M.1-5/+0
The Compose list replaces it. The autofill inline suggestion's attribution intent now opens LaunchActivity, behind the biometric gate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
14 hoursfeat(app): add the Compose password list screenDanilo M.1-0/+6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
16 hoursfix(strings): name HardenedPass in autofill and biometric textsDanilo M.1-4/+4
The autofill setup dialog, the publisher-changed warning and the biometric setting still told users to look for "Password Store", which is not what the app is called in the autofill service list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
16 hoursfix(i18n): revise the Italian translationDanilo M.1-1/+1
The Italian strings were largely machine-translated: "commit" became "conferma" (confirm), pull and push became "trascina" and "spingi" or "premi" (drag, push a button), rebase became "ricollocare", the store became "negozio" (a shop), "pretend" became "pretendere" (a false friend), and one string showed "/0" instead of "/". Autofill had five different spellings. Rewrite those, keep Git terms in English (remote, branch, push, pull, rebase, merge, commit, detached HEAD, fast-forward), use "compilazione automatica" as Android's Italian settings do, make "repository" masculine throughout, replace the "Sei pregato di" calque with plain imperatives, name the app HardenedPass, and translate the 52 strings that fell back to English. Also drop the "TODO: Add a recovery method" that the merge-failure message showed users, in English and every locale. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
16 hoursrefactor(autofill): remove the fill-OTP-from-SMS pathsDanilo M.1-1/+0
Filling OTPs from SMS used Play Services' SMS User Consent API, removed with the nonFree flavor; since then AutofillSmsActivity was a stub that never offered the dataset. Delete it, its manifest entry, the dataset builders in both response builders, its drawable and string. AutofillAction.FillOtpFromSms stays in autofill-parser: it is public, metalava-checked API and harmless for a client that never fills it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
17 hoursfix(crypto): refuse to encrypt when a .gpg-id recipient key is missingDanilo M.1-2/+3
CryptoRepository.encrypt looked up every .gpg-id recipient and dropped the ones it could not find, so an entry saved on a device that lacked one recipient's key was encrypted to the others only. With a store shared between a phone key and a smartcard key, entries created on the phone could no longer be decrypted with the smartcard alone. Fail with the lookup error instead (KeyNotFoundException names the key), so the user imports the missing public key and saves again. PasswordCreationActivity also ignored the Result of encrypt and wrote the output buffer regardless: on any encryption failure it wrote an empty .gpg file, overwriting the entry when editing, and committed it. Show the error and leave the file untouched. CryptoRepositoryTest covers both the missing-recipient failure and the all-present success path, with keys generated by PGPainless (added as an app test dependency). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 hoursfeat: rename the app to HardenedPass (xyz.danix.hardenedpass)Danilo M.1-1/+1
The fork gets its own application ID and name, so it installs next to upstream's app.passwordstore instead of replacing it, and could be submitted to F-Droid. Debug builds keep the .debug suffix and are labelled "HardenedPass Debug". The Kotlin package stays app.passwordstore: renaming it would be churn with no visible effect. "GrapheneOS" is kept out of the name because it is that project's trademark; "Hardened" nods to its vocabulary. README and AGENTS.md describe the fork's GrapheneOS goal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 hoursbuild(deps): update Bouncy Castle to 1.86 and PGPainless to 1.7.8Danilo M.1-2/+0
Bouncy Castle 1.78.1 is affected by GHSA-574f-3g2m-x479, GHSA-9pwp-9qqc-pr26, GHSA-c3fc-8qff-9hwx and GHSA-qp49-qgx5-5m26, all fixed by 1.85. PGPainless 1.7.8 is the newest 1.x release. A root resolution rule keeps every Bouncy Castle module on the catalog version; before, bcpg 1.77 shipped next to bcprov 1.78.1. The new stack decrypts the OCB (LibrePGP) packets GnuPG 2.3+ emits by default, which the old one rejected as "non-standard AEAD". Drop the NonStandardAEAD error, its bottom sheet and strings, and replace the mislabelled aead_* fixtures (SHA-1 self-signed keys plus a message encrypted to an unrelated key) with a real GnuPG 2.5 key and OCB message that the tests now decrypt. The new fixture is a throwaway test key, so it is allowlisted in .gitleaksignore by fingerprint. Fix KeyUtils.isKeyUsable, which compared a Boolean to null and so accepted every key that parsed, including keys with no encryption subkey. A signing-only key fixture now covers the rejection path. Also: migrate the removed SelectUserId.firstMatch and deprecated addDecryptionPassphrase APIs, keep one copy of the Bouncy Castle META-INF/LICENSE.md in the APK, and move the existing InvalidPackage lint baseline entries to the bcpkix 1.86 jar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2024-08-14directory structure setting moved to general settings (#3166)Alexander Grahn1-1/+1
* directory structure setting moved to general settings * Update app/src/main/java/app/passwordstore/util/settings/PreferenceKeys.kt Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: Alexander Grahn <agrahn@users.noreply.github.com> --------- Signed-off-by: Alexander Grahn <agrahn@users.noreply.github.com> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2024-08-14chore: add missing copyright headers and update existing onesHarsh Shandilya1-1/+1
2024-08-11add user ID input field (password creation/edit), may fix #1458 (#3161)Alexander Grahn1-0/+2
* add user ID input field (password creation/edit), may fix #1458 * fix: revert change to username label * refactor: rework FieldItem to drop hard-coded strings * refactor: drop unnecessary `.apply` --------- Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2024-08-04more robust switch actions in pgp settings (#3148)agrahn1-0/+1
* more robust switch actions in pgp settings * Update app/src/main/java/app/passwordstore/ui/settings/PGPSettings.kt Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: agrahn <agrahn@users.noreply.github.com> * Update app/src/main/java/app/passwordstore/ui/settings/PGPSettings.kt Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: agrahn <agrahn@users.noreply.github.com> * Update app/src/main/java/app/passwordstore/ui/settings/PGPSettings.kt Co-authored-by: Harsh Shandilya <me@msfjarvis.dev> Signed-off-by: agrahn <agrahn@users.noreply.github.com> * formatting fixed (ktfmtFormat) --------- Signed-off-by: agrahn <agrahn@users.noreply.github.com> Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2024-07-30fix: re-enable biometric lock featureHarsh Shandilya1-0/+1
Fixes #2802
2024-07-25Fix application crash when disabling cache auto-clear option and potential ↵agrahn1-0/+1
attack vector (#3136) prevent app crash upon passphrase cache clearing
2024-07-22add checkbox in passphrase dialog to clear cache (#3127)agrahn1-0/+1
* add checkbox in passphrase dialog to clear cache * instantiating PasswordDialog via newInstance, passing args as Bundle * refactor: put checkbox directly in the layout --------- Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2024-07-20enabling pgp passphrase cache with authentication (#3124)agrahn1-1/+1
* enabling pgp passphrase cache with authentication * clear passphrase cache on first autofill decrypt after screen off --------- Co-authored-by: Alexander Grahn <me@null.org>
2024-05-26feat: add option to auto clear passphrase cacheHarsh Shandilya1-0/+2
Fixes #3053
2024-04-14fix: special-case AEAD failureHarsh Shandilya1-0/+2
Fixes #2974 Fixes #2963 Fixes #2921 Fixes #2924 Fixes #2653 Fixes #2461 Fixes #2586 Fixes #2179
2024-03-12fix: clear passphrase cache when disablingHarsh Shandilya1-0/+1
2023-12-16Add snackbar error message when .gpg-id contains a short hex id (#2819)Mathias Rav1-0/+1
2023-11-29fix: gate passphrase cache behind authenticator availabilityHarsh Shandilya1-1/+1
Fixes #2783
2023-07-05feat(ui): add a dedicated Compose screen for editing passwordsHarsh Shandilya1-0/+1
2023-06-04feat: add custom dialog title for passphrase cacheHarsh Shandilya1-0/+1
2023-05-09fix: add warning to passphrase cache featureHarsh Shandilya1-1/+2
2023-05-08feat: wire up passphrase cacheHarsh Shandilya1-0/+1
Currently has horrible UX and is behind an experimental feature flag
2023-04-06feat: wire up key import functionalityHarsh Shandilya1-2/+2
2023-03-25feat: offer to import a PGP key when none are presentHarsh Shandilya1-0/+2
2023-03-25chore: rename import button label string resourceHarsh Shandilya1-1/+1
2023-03-24fix: extract hard-coded stringHarsh Shandilya1-0/+1
2023-02-23fix: clarify OTP import failure stringsHarsh Shandilya1-3/+2
2023-01-26fix(app): address UI inconsistencies in proxy configuration screenHarsh Shandilya1-0/+1
2022-12-08chore: fix issues flagged by LintHarsh Shandilya1-1/+0
2022-11-27refactor: make `ResetToRemoteOperation` actually work and use its own ↵Harsh Shandilya1-0/+1
`remoteBranch` input
2022-11-18feat: add a confirmation dialog for key deletionHarsh Shandilya1-1/+1
Fixes #2257
2022-10-29chore: extract hard-coded preference stringsHarsh Shandilya1-0/+3
2022-08-24Implement support for `.gpg-id` (#2080)Harsh Shandilya1-0/+1
2022-07-20Compile against SDK 33 (#2023)Harsh Shandilya1-2/+0
* Compile against SDK 33 * autofill-parser: fix warnings for SDK 33 upgrade * app: fix warnings for SDK 33 upgrade * Mark all clipboard content as sensitive from crypto activities * Skip Snackbar on Android 13 and above * detekt: raise `TooManyFunctions` limit to 15
2022-07-18Misc cleanups and bugfixes (#2019)Harsh Shandilya1-14/+0
* Fix decrypt activity items being editable * Remove unused resources and re-roll lint baseline * Make lint mark all warnings as errors
2022-07-18Add key manager UIHarsh Shandilya1-0/+1
2022-07-17Refactor key import flow and implement support for replacingHarsh Shandilya1-0/+1
2022-05-24Allow disabling pull-to-sync operation (#1922)Harsh Shandilya1-0/+2
2022-04-24app: address SetTextI18n lintHarsh Shandilya1-0/+1
2022-04-24app: address UnusedResources lintHarsh Shandilya1-19/+0
2022-01-25Add the ability to run garbage collection on the internal Git repository (#1683)Harsh Shandilya1-0/+1
2022-01-13Refactor randomized password generator into a separate module (#1663)Aditya Wasan1-0/+1