Commit graph

1717 commits

Author SHA1 Message Date
renovate[bot]
47d65d0740
fix(deps): update dependency com.slack.lint:slack-lint-checks to v0.6.0 (#2697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-09-27 18:45:59 +00:00
renovate[bot]
da17f0b4fb
fix(deps): update dependency com.android.tools.build:gradle to v8.3.0-alpha05 (#2692)
* fix(deps): update dependency com.android.tools.build:gradle to v8.3.0-alpha05

* refactor(autofill): workaround `RequiresApi` Lint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-09-22 09:56:07 +05:30
renovate[bot]
9329710178
fix(deps): update dependency com.facebook:ktfmt to v0.45 (#2687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-09-18 18:15:11 +00:00
renovate[bot]
1da4c42220
fix(deps): update dependency com.hierynomus:sshj to v0.36.0 (#2670)
* fix(deps): update dependency com.hierynomus:sshj to v0.36.0

* refactor(build): drop unnecessary explicit dependency

* chore(idea): cruft

* fix(app): ensure SLF4J v1 is used

* fix(build): disable illegal BindsCanBeExtensionFunction lint

* chore: refresh Lint baselines

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-09-04 18:50:19 +00:00
renovate[bot]
2c2a0b1a53
chore(deps): update hilt to v2.48 (#2668)
* chore(deps): update hilt to v2.48

* fix: remove unsupported extension syntax

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-08-31 05:51:20 +00:00
renovate[bot]
8f950fb83e
fix(deps): update dependency org.pgpainless:pgpainless-core to v1.6.2 (#2667)
* fix(deps): update dependency org.pgpainless:pgpainless-core to v1.6.2

* fix(deps): use `-jdk18on` artifacts for BouncyCastle

* chore: re-roll Lint baseline

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-08-30 13:13:18 +00:00
renovate[bot]
7a9d7095f7
fix(deps): update dependency me.zhanghai.android.fastscroll:library to v1.3.0 (#2643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 06:52:27 +00:00
Harsh Shandilya
959a56d7ff
refactor: un-flatten module structure 2023-08-10 03:31:08 +05:30
renovate[bot]
222ff5b052
fix(deps): update bouncycastle to v1.76 (#2632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-07-31 05:49:05 +00:00
Harsh Shandilya
04a143126b
fix: adjust Git log formatter to fix crash
Fixes: d37fdfdbaa ("fix(app): fully migrate to `java.time`")
2023-07-26 17:18:58 +05:30
Harsh Shandilya
fa50628719
fix: address new IntentWithNullActionLaunch lint 2023-07-26 16:22:06 +05:30
Harsh Shandilya
5a12eff24e
chore: remove unnecessary suppressions 2023-07-26 16:02:03 +05:30
Harsh Shandilya
26950dbbd0
Sync localisations from Crowdin (#2616)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-07-23 00:37:09 +00:00
Harsh Shandilya
cd6c0a2d78
chore: refresh Lint baseline 2023-07-23 00:51:24 +05:30
Harsh Shandilya
d37fdfdbaa fix(app): fully migrate to java.time 2023-07-22 15:54:11 +05:30
Harsh Shandilya
ce650c6f62 chore: remove useless OptIn annotations 2023-07-19 17:38:20 +05:30
Harsh Shandilya
8855190d7c
fix(build): properly resolve JavaPoet version resolution issue 2023-07-12 16:22:27 +05:30
Harsh Shandilya
bfd51efca4
feat(build): target API 34 2023-07-12 16:22:27 +05:30
Harsh Shandilya
26abbbef97
refactor: rework password dialog to avoid memory leak 2023-07-09 18:49:28 +05:30
Harsh Shandilya
7435842bd9
refactor: extract prompt authentication callback creation 2023-07-09 18:03:41 +05:30
Harsh Shandilya
fe7aee24d4
fix: correctly use biometrics result in passphrase cache flow 2023-07-09 17:59:33 +05:30
Harsh Shandilya
dfe4b14b4c
refactor: eliminate one level of nesting from BiometricAuthenticator 2023-07-09 17:59:33 +05:30
Harsh Shandilya
6f3f7e4b4c
refactor: adopt Kotlin 1.9's data objects 2023-07-09 16:48:34 +05:30
Harsh Shandilya
378ce98cd0
Sync localisations from Crowdin (#2595)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-07-09 00:38:36 +00:00
Harsh Shandilya
f583939635
fix(build): adjust ktfmt path filtering to allow formatting build.gradle.kts files 2023-07-06 13:02:17 +05:30
Harsh Shandilya
fa03ca0ad7
feat(ui): add a dedicated Compose screen for editing passwords 2023-07-05 14:24:35 +05:30
Harsh Shandilya
4c28098cbb
fix(ui): adjust width of items in PasswordEntryScreen 2023-07-05 13:57:21 +05:30
Harsh Shandilya
a4d615b861
fix: remove use of unnecessary Object#clone 2023-06-27 18:07:29 +05:30
Harsh Shandilya
6a18c04e38
fix: remove unused feature flag 2023-06-27 18:07:29 +05:30
Harsh Shandilya
b3be9bad26
fix: replace hard-coded strings 2023-06-27 18:07:29 +05:30
Harsh Shandilya
ee6895b2e8
chore: cleanup IDE warnings 2023-06-27 18:07:29 +05:30
renovate[bot]
a644bccba7
fix(deps): update bouncycastle to v1.75 (#2557)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 07:27:10 +00:00
Harsh Shandilya
e875047899
feat: adopt Kotlin 1.9 Enum entries feature 2023-06-15 16:53:21 +05:30
Harsh Shandilya
5dac84c3c8
refactor: consistently adopt PGP over GPG for naming
PGP is the standard, GPG is an implementation of it. We're adhering to PGP, and not using GPG.
2023-06-15 16:17:59 +05:30
renovate[bot]
c168ce2e86
fix(deps): update bouncycastle to v1.74 2023-06-15 14:23:13 +05:30
Harsh Shandilya
26a7298978
fix: address ComposeUnstableCollections lint 2023-06-15 14:21:49 +05:30
Harsh Shandilya
a00bd046b6
chore: rename TOML keys for coroutines deps 2023-06-15 13:58:31 +05:30
Harsh Shandilya
be6583f987
chore: update PGP key list previews 2023-06-15 13:48:37 +05:30
Harsh Shandilya
bfa27750d3
fix: ensure PGP key list item works with longer user IDs 2023-06-15 13:48:21 +05:30
Harsh Shandilya
e7982f1f0c
fix: allow gpg-id to be the first line of a .gpg-id file 2023-06-13 00:44:50 +05:30
Harsh Shandilya
0669f8a062
fix: replace Stack with ArrayDeque in SearchableRepositoryViewModel 2023-06-04 02:24:23 +05:30
Harsh Shandilya
469700f627
feat: add custom dialog title for passphrase cache 2023-06-04 02:02:47 +05:30
Harsh Shandilya
f6e1830647
fix: start clearing violations of DenyListedApi 2023-06-04 01:52:57 +05:30
Harsh Shandilya
3a4e827f1a
fix: clear violations of RawDispatcherUse 2023-06-04 01:52:57 +05:30
Harsh Shandilya
496f421f17
fix: clear violations of FullyQualifiedResource 2023-06-04 01:52:57 +05:30
Harsh Shandilya
5538306927
chore: refresh lint baseline 2023-06-04 01:52:57 +05:30
Harsh Shandilya
b9410a0f31
Revert "fix: adjust R8 rules"
This reverts commit 9838801ed3.
2023-05-31 17:33:15 +05:30
Harsh Shandilya
9838801ed3
fix: adjust R8 rules
Workaround for https://github.com/getsentry/sentry-java/issues/2738
2023-05-28 02:33:51 +05:30
Harsh Shandilya
b022529f5f
Revert "fix(app): remove invalid lint"
This reverts commit 05c9c8c0ef.
2023-05-27 01:26:12 +05:30
Harsh Shandilya
e05c704539
refactor(build): sync Gradle properties set with current AGP 2023-05-20 23:50:39 +05:30
Harsh Shandilya
5420faff34
feat(gpg): add methods to clear entries from GPG passphrase cache 2023-05-19 18:58:48 +05:30
Harsh Shandilya
05c9c8c0ef
fix(app): remove invalid lint 2023-05-16 15:54:50 +05:30
Harsh Shandilya
76efe73e28
chore: refresh Lint baseline with AGP 8.1.0-beta02 2023-05-16 15:41:54 +05:30
Harsh Shandilya
29ca93854a
fix: check feature flag before biometric auth 2023-05-13 15:24:48 +05:30
Harsh Shandilya
ec696c1d8d
feat: raise min SDK to 26
Autofill is only available on API 26 and above and I do not want to deal with
bugs on these older Android releases.
2023-05-12 20:28:36 +05:30
Harsh Shandilya
39c7b0cb7b
fix: add warning to passphrase cache feature 2023-05-09 00:13:09 +05:30
Harsh Shandilya
f3fc246c58
chore: adjust code style 2023-05-08 11:39:49 +05:30
Harsh Shandilya
d988bdd0dc
feat: wire up passphrase cache
Currently has horrible UX and is behind an experimental feature flag
2023-05-08 03:09:26 +05:30
Harsh Shandilya
4ff0525e95
fix: adjust GPGPassphraseCache public API 2023-05-08 02:51:08 +05:30
Harsh Shandilya
df58f484ac
refactor: move out GPG identifier parser to BasePgpActivity 2023-05-08 02:51:08 +05:30
Harsh Shandilya
136f4e5caa
chore: touch up codestyle in BiometricAuthenticator.kt 2023-05-08 01:10:45 +05:30
Harsh Shandilya
f9730cae58
feat: kick off a very basic passphrase cache 2023-05-05 00:51:51 +05:30
Harsh Shandilya
1e68e97b25
refactor: make PreferenceModule codestyle consistent 2023-05-05 00:47:32 +05:30
Harsh Shandilya
def9786736
feat: switch default password generator to Diceware 2023-05-05 00:30:53 +05:30
Harsh Shandilya
ff372c0c97
Sync localisations from Crowdin (#2493)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-04-30 00:30:49 +00:00
renovate[bot]
d04e1fa368
fix(deps): update dependency com.facebook:ktfmt to v0.44 (#2490)
* fix(deps): update dependency com.facebook:ktfmt to v0.44

* chore: reformat with ktfmt 0.44

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-04-29 01:28:41 +00:00
Harsh Shandilya
3e67280f65
fix: use password entry for OTP entry field 2023-04-27 15:15:04 +05:30
Harsh Shandilya
5659ad9863
feat(build): add Slack's Compose Lints 2023-04-27 14:45:06 +05:30
Harsh Shandilya
53497c0365
feat(lint): update baselines 2023-04-27 01:37:20 +05:30
Harsh Shandilya
d6fdd3580f
fix: remove injection redirection in SSHFacade 2023-04-10 22:59:54 +05:30
Harsh Shandilya
fb8d74fc1f
feat: put new SSH layer behind a feature flag
There hasn't been nearly enough regression testing on this and
it is causing breakage, let's move it out of the default path
until we've ironed out the kinks.
2023-04-10 17:19:32 +05:30
Harsh Shandilya
5ab0c53d03
fix: actually apply LeakCanary config changes 2023-04-10 16:20:59 +05:30
Harsh Shandilya
0a16ac7620
fix: only check repo initialization in commit flow 2023-04-06 18:16:09 +05:30
Harsh Shandilya
c4edf7f0e6
feat: wire up key import functionality 2023-04-06 18:14:35 +05:30
Harsh Shandilya
a96f24ac96
fix: use created repository directly 2023-04-06 17:53:14 +05:30
Aditya Wasan
97b3577a46
Refactor SSHKey into a separate module (#2450)
* refactor(ssh): add `ssh` module

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add `SSHKey` data class

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add `SSHKeyType` enum

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add `SSHKeyAlgorithm` class

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add class to generate `RSA` key

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* chore(ssh): add required dependencies

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add `ECDSAKeyGenerator` and remove constants

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): add utilities

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat(ssh): add `SSHKeyWriter`

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(ssh): make ssh key generators suspending

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* fix(ssh): fix explicit API violations

* feat: complete `ED25519KeyWriter` implementation

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* factor(ssh/writer): update writer interface

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat(ssh/provider): add providers for different key types

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat(ssh): add SSHKeyManager for common key functionality

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat(ssh): add remaining methods to reach feature parity with old SSH implementation

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* wip(app): start using SSHKeyManager instead of SSHKey class

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>

* refactor(ssh): update package name

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* chore(ssh): fix detekt warnings

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* chore: fixes across the board

---------

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2023-04-02 18:04:33 +00:00
Harsh Shandilya
8b97a4a3f1
refactor: migrate to androidx.core APIs for Bundle/Intent API changes 2023-03-27 17:53:10 +05:30
Harsh Shandilya
8258c08f10
Sync localisations from Crowdin (#2440)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-03-27 04:57:23 +00:00
Harsh Shandilya
cb0a2fe6ee
Sync localisations from Crowdin (#2439)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-03-26 00:26:24 +00:00
Harsh Shandilya
8af09d5bc8
feat: offer to import a PGP key when none are present 2023-03-25 12:36:13 +05:30
Harsh Shandilya
e2900c26de
fix: use DispatcherProvider in CryptoRepository 2023-03-25 12:26:01 +05:30
Harsh Shandilya
f07bfb2f97
chore: rename import button label string resource 2023-03-25 12:26:01 +05:30
Harsh Shandilya
e3eb6b1c9c
fix: ensure repo dir is recreated after deletion 2023-03-25 11:30:19 +05:30
Harsh Shandilya
73de8ba267
fix: extract hard-coded string 2023-03-24 13:30:14 +05:30
Harsh Shandilya
29eaa09427
feat: add user guidance in PGP key manager screen 2023-03-24 13:17:54 +05:30
Harsh Shandilya
bebb804e01
fix: adjust LeakCanary init flow 2023-03-24 10:19:02 +05:30
Harsh Shandilya
db7756638a
refactor(build): wire up CC-compatible task dependencies for Crowdin 2023-03-21 13:45:12 +05:30
Harsh Shandilya
2f524fc2b7
fix(build): remove DSL_SCOPE_VIOLATION suppression
This was a Gradle bug that is now fixed https://docs.gradle.org/8.1-rc-1/release-notes.html#:~:text=Access%20to%20version%20catalog%20for%20plugins%20in%20the%20plugins%20%7B%7D%20block
2023-03-21 13:43:09 +05:30
Harsh Shandilya
a96213f6ce
fix: inverted test in Migrations#removeCurrentBranchValue 2023-03-19 19:11:27 +05:30
Harsh Shandilya
ddd958a8d6
fix(app): control LeakCanary lifecycle more explicitly 2023-03-18 21:53:50 +05:30
Harsh Shandilya
0fa2521592
fix: also swallow retry attempts in SSHJ biometric auth 2023-03-08 23:05:19 +05:30
Harsh Shandilya
d8dbe74d3a
chore: add more logging to biometric operations 2023-03-08 22:59:31 +05:30
Harsh Shandilya
16d6b1e853
fix: use UI context for more Toasts
Fixes: a3b88c1dee ("fix: use activity context for Toast")
2023-03-08 22:59:12 +05:30
Harsh Shandilya
90b9ed88eb
fix: make remembering HTTPS password the default
Not many good reasons to do this a different way
2023-03-04 00:19:31 +05:30
Harsh Shandilya
a3b88c1dee
fix: use activity context for Toast
Fixes a newly introduced warning in API 33

> Tried to access visual service WindowManager from a non-visual Context:app.passwordstore.Application@d2801f8 WindowManager
> should be accessed from Activity or other visual Context. Use an Activity or a Context created with
> Context#createWindowContext(int, Bundle), which are adjusted to the configuration and visual bounds of an area on screen.
2023-03-04 00:19:31 +05:30
Harsh Shandilya
96d624a205
chore: refresh Lint baselines 2023-03-01 17:23:33 +05:30
Harsh Shandilya
ff58afde28
refactor(app): centralize lint configuration 2023-03-01 17:17:09 +05:30
Harsh Shandilya
ccf2e835ef
Sync localisations from Crowdin (#2392)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2023-02-26 00:27:43 +00:00
Harsh Shandilya
ca982c0000
chore(i18n): import current translations 2023-02-23 19:13:04 +05:30
Harsh Shandilya
122131ba9f
fix: clarify OTP import failure strings 2023-02-23 18:38:46 +05:30