Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pm 6701/email verification selfhost registration #3336

Draft
wants to merge 1,431 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1431 commits
Select commit Hold shift + click to select a range
45d0ac9
Apply result extension consistently (#1210)
david-livefront Apr 2, 2024
5b55ab6
Upon trusting device, update decryption options (#1211)
david-livefront Apr 2, 2024
6dc4cdd
Update KSP (#1212)
david-livefront Apr 2, 2024
2df9aa1
Remove inline keyword from updatePasswordLength() (#1213)
caleb-livefront Apr 2, 2024
a56300f
Update Renovate config (#1215)
SaintPatrck Apr 3, 2024
8f0b42a
Remove redundant call to set vault to unlocked (#1217)
david-livefront Apr 3, 2024
58c195a
default timeout action should be LOGOUT when using TDE (#1216)
david-livefront Apr 3, 2024
c6f0af5
Fix incorrect VM state access & unnecessary eventFlow usages (#1218)
caleb-livefront Apr 3, 2024
92fcf9d
Fix minor dialog bug where top is not padded if title is missing (#1221)
david-livefront Apr 3, 2024
c8727f2
Expose the 'shouldTrustDevice' boolean from auth repo (#1220)
david-livefront Apr 3, 2024
3ec5f05
Display SDK error message when generating email alias (#1219)
SaintPatrck Apr 3, 2024
4d114f4
BIT-2104: Add check for file passwords matching (#1222)
caleb-livefront Apr 3, 2024
eb4104a
Update AuthRequestManager for TDE (#1223)
david-livefront Apr 4, 2024
fc10a77
Add trusted device logic (#1224)
david-livefront Apr 4, 2024
0abb41d
Update Github PR template to remove useless categories (#1225)
caleb-livefront Apr 4, 2024
464490e
BIT-2207: Move Give Feedback form to About screen (#1227)
caleb-livefront Apr 4, 2024
4e4add9
Organize LoginCommon and helper methods (#1229)
david-livefront Apr 4, 2024
b1f1972
BIT-2207: Remove Rate the App row (#1228)
caleb-livefront Apr 4, 2024
47e94a3
BIT-1469: Autofill talkback (#1226)
ramsey-livefront Apr 5, 2024
8bc58c2
BIT-2201: Handle URI checksum validation (#1231)
david-livefront Apr 5, 2024
7902bf4
Remove unnecessary extra testing keystore (#1232)
brian-livefront Apr 5, 2024
79db19c
Fix section link in Code Style documentation (#1233)
brian-livefront Apr 5, 2024
236a979
Update login logic to handle TDE authentication (#1234)
david-livefront Apr 5, 2024
52756ab
Remove unused intent manager (#1236)
david-livefront Apr 5, 2024
bdce5b4
Add initial UI flow for TDE (#1235)
david-livefront Apr 8, 2024
5d88985
Add dialog support for TrustedDeviceScreen (#1239)
david-livefront Apr 8, 2024
2525b65
Add createAccountKeys API (#1240)
david-livefront Apr 8, 2024
382bac7
BIT-2119: View item screen element ids (#1237)
ramsey-livefront Apr 8, 2024
5dce40f
BIT-2136: Update minimum length handling in Generator (#1238)
caleb-livefront Apr 8, 2024
d681a12
BIT-2106: Export vault file with password (#1241)
caleb-livefront Apr 8, 2024
bd09d6b
Make SdkClientManager the single source of the Bitwarden SDK Client (โ€ฆ
david-livefront Apr 8, 2024
6c4c942
Add makeRegisterTdeKeysAndUnlockVault to authSdkSource (#1245)
david-livefront Apr 9, 2024
9e75135
Make the passwordHash nullable on the organizationResetPasswordEnrollโ€ฆ
david-livefront Apr 9, 2024
6d5c827
Establish device trust directly with a TrustDeviceResponse (#1246)
david-livefront Apr 9, 2024
573bdf2
Clean up generator minimum length implementation (#1244)
caleb-livefront Apr 9, 2024
891a6da
Add the continue button flow for TDE (#1248)
david-livefront Apr 10, 2024
d55306c
BIT-2145: Create account dialog error (#1243)
ramsey-livefront Apr 10, 2024
34e4683
Ensure trusted device is displayed before set password or reset passwโ€ฆ
david-livefront Apr 10, 2024
a066619
BIT-2236: Trusted Device screen logs out when unauthenticated (#1253)
david-livefront Apr 10, 2024
6f026b7
BIT-2202: Add element ids for cipher icons (#1251)
ramsey-livefront Apr 11, 2024
ef0c9bc
Update the version name to 2024.4.0 (#1257)
david-livefront Apr 11, 2024
0af23a3
Remove needsPasswordReset from isVaultUnlocked logic (#1256)
david-livefront Apr 11, 2024
7a6130f
BIT-2232: Don't require password for PIN setup for users w/o passwordโ€ฆ
caleb-livefront Apr 11, 2024
5c7f830
Add login with password flow (#1254)
david-livefront Apr 11, 2024
cd9cdcd
BIT-2237: Sync password visibility fields for set and reset password โ€ฆ
david-livefront Apr 12, 2024
ec2abb6
Update Bitwarden SDK to the latest (#1258)
caleb-livefront Apr 12, 2024
cf7db6a
Persist the pending auth request even past a logout (#1260)
david-livefront Apr 12, 2024
032b0fc
Remove an unused UI variable (#1261)
david-livefront Apr 12, 2024
f0da48e
Apply some minor clean up to the AuthRepo (#1263)
david-livefront Apr 12, 2024
f4aaa11
BIT-2221: Error message upon login (#1262)
ramsey-livefront Apr 12, 2024
bad6c05
[deps]: Update gradle/wrapper-validation-action action to v2.1.3 (#1267)
renovate[bot] Apr 15, 2024
d358f5f
BIT-2240: Lock UserState while handling a successful login (#1264)
david-livefront Apr 15, 2024
ae58303
BIT-2233: Hide master password reprompt on add edit screen (#1265)
ramsey-livefront Apr 15, 2024
fc9e117
[deps]: Update gradle minor (#1266)
renovate[bot] Apr 15, 2024
7859a6e
Remove the in-memory deviceKey (#1270)
david-livefront Apr 15, 2024
afb4d3a
[deps]: Update kotlin (#1268)
renovate[bot] Apr 15, 2024
f0d6ebb
Update the Bitwarden SDK (#1271)
david-livefront Apr 15, 2024
a3f4a2e
BIT-2183: Pass website with forwarded email username generation (#1249)
caleb-livefront Apr 15, 2024
6a54351
Update set-password logic to accommodate TDE admin force password updโ€ฆ
david-livefront Apr 16, 2024
a00b03c
BIT-2231: Disable components of the AccountSecurityScreen for TDE (#1โ€ฆ
david-livefront Apr 16, 2024
b1e1d8d
Add requestOtp and verifyOtp API methods (#1275)
caleb-livefront Apr 16, 2024
e4090b4
BIT-2208: Add test tags for dialogs (#1277)
david-livefront Apr 16, 2024
216b5b1
Add helper class for providing manager classes via CompositionLocalPrโ€ฆ
david-livefront Apr 16, 2024
8c88cf2
Add architecture documentation (#1274)
brian-livefront Apr 17, 2024
0ad81a2
BIT-2247: Persists screen recording flag past a logout (#1280)
david-livefront Apr 17, 2024
eadc709
Update tests for clearData in AuthDiskSource and SettingsDiskSource (โ€ฆ
david-livefront Apr 17, 2024
359bec6
BIT-2255: When admin-approval is denied, do not update the UI (#1283)
david-livefront Apr 17, 2024
ce9bcac
BIT-2256: Clear pending admin request when request is completed (#1284)
david-livefront Apr 17, 2024
167f465
BIT-2234: Delete Account Confirmation Screen (Navigation) (#1278)
ramsey-livefront Apr 18, 2024
bf8e875
BIT-2235: Add support for exporting vault data w/o passcode (#1281)
caleb-livefront Apr 18, 2024
892b526
BIT-2259: Check device trust after each vault unlock (#1286)
david-livefront Apr 18, 2024
92bd8c6
The stored 'shouldTrustDevice' boolean ise scoped to the userId (#1287)
david-livefront Apr 18, 2024
074bb56
BIT-2261: Check if user has master password to determine default timeโ€ฆ
david-livefront Apr 19, 2024
24ad4f0
Replace all usage of semantics { testTag = '' } with extension (#1288)
caleb-livefront Apr 19, 2024
f4485c4
BIT-2181: Move PreLogin and Register network calls to Identity API (#โ€ฆ
SaintPatrck Apr 19, 2024
7ac6d8e
Rename FIDO_2_WEB_APP enum to WEB_AUTH (#1292)
david-livefront Apr 22, 2024
6825818
Force the UserState to re-evaluate on authentication change (#1291)
david-livefront Apr 22, 2024
86b981b
Add setup for WebAuthn (#1294)
david-livefront Apr 22, 2024
b0b4e5e
BIT-2270: Use rememberVectorPainter method to fix icon recomposition โ€ฆ
caleb-livefront Apr 22, 2024
35fb475
BIT-1624 Fix OutOfMemoryException when uploading large files (#1293)
SaintPatrck Apr 22, 2024
70f1727
Apply an immutable list to the Bitwarden segmented button (#1296)
david-livefront Apr 22, 2024
9bd90b3
BIT-2217: Long email addresses account switcher ellipses (#1297)
ramsey-livefront Apr 22, 2024
6784d2b
BIT-2234: Delete Account Confirmation Screen (functionality) (#1290)
ramsey-livefront Apr 23, 2024
793cc41
Update the BitwardenLogoutConfirmationDialog file to match the functiโ€ฆ
david-livefront Apr 23, 2024
0de2efe
BIT-2216: Add remove account option from account summary long-press (โ€ฆ
david-livefront Apr 23, 2024
abb22df
BIT-2273: Maintain data when combining data state (#1298)
david-livefront Apr 23, 2024
534f052
BIT-2291: Bypass master password reprompt when user has no password (โ€ฆ
david-livefront Apr 24, 2024
d4833f6
Update the strings to the latest translations (#1302)
david-livefront Apr 24, 2024
fddcee4
BIT-2246: Update link for recovery code process (#1303)
ramsey-livefront Apr 24, 2024
1a0cead
BIT-2276: Add support for logging in with WebAuthN two-factor (#1304)
david-livefront Apr 25, 2024
7d0064e
BIT-2293, BIT-2294: Add vault and generator shortcuts (#1306)
david-livefront Apr 25, 2024
174f7b8
BIT-2156: auto-prompt the user for biometrics (#1307)
david-livefront Apr 25, 2024
8aa7fd6
Apply formatting and optimized imports to the app (#1309)
david-livefront Apr 26, 2024
9382c3a
BIT-2296: Fix generator options disk source key (#1310)
david-livefront Apr 26, 2024
977ce11
Add helper methods to disk source (#1311)
david-livefront Apr 26, 2024
726cd5d
Update shortcut icons to be adaptive (#1312)
david-livefront Apr 26, 2024
0b4847c
BIT-2297: Update the values for UriMatchType to ensure a proper migraโ€ฆ
david-livefront Apr 26, 2024
db3ffb7
BIT-2214: Sync complete toast (#1305)
ramsey-livefront Apr 29, 2024
4721dbf
[deps]: Update androidx.compose:compose-bom to v2024.04.01 (#1314)
renovate[bot] Apr 29, 2024
d761f89
[deps]: Update gh minor (#1315)
renovate[bot] Apr 29, 2024
9a6ac3f
Apply the RobolectricTestRunner to the BaseRobolectricTest (#1316)
david-livefront Apr 29, 2024
1565ab0
Update AndroidX dependencies (#1317)
david-livefront Apr 29, 2024
4b29eb7
BIT-2180: Check htmlInfo for username field (#1318)
david-livefront Apr 29, 2024
7d7b304
BIT-2291: use org IDs when unlocking vault for new TDE user (#1320)
david-livefront Apr 30, 2024
6c9e56c
Allow user with untrusted device to unlock vault if they have a meansโ€ฆ
david-livefront Apr 30, 2024
deaa45e
BIT-2269: Make all lists in Composables immutable (#1319)
caleb-livefront Apr 30, 2024
0d398a4
BIT-2251: Fix pending login request UI scrolling (#1323)
david-livefront Apr 30, 2024
3be5528
Simplify and rename the hasManualUnlockMechanism helper (#1322)
david-livefront Apr 30, 2024
8c72179
BIT-2295: Simplify the pending requests UI (#1325)
david-livefront May 1, 2024
9a45c44
BIT-2283: Add the unassigned ciphers API (#1326)
david-livefront May 1, 2024
607417a
Clean up QrCodeScanScreen to avoid test error action (#1327)
david-livefront May 1, 2024
d77e9bc
BIT-2305: Update default environment URLs to match legacy data (#1329)
david-livefront May 2, 2024
b52d11f
BIT-2306: Use legacy autofill service name to enforce compatibility aโ€ฆ
david-livefront May 2, 2024
ed44ec2
Optimize when statement in EnvironmentUrlDataJsonExtensions (#1331)
david-livefront May 2, 2024
12bfb71
Update to latest strings (#1330)
david-livefront May 2, 2024
6076685
Declare ruby version globally (#1333)
SaintPatrck May 2, 2024
d2365a3
BIT-2267: Fix incorrect element IDs on add / edit page (#1332)
caleb-livefront May 3, 2024
61a6ee5
Update AppComponentFactory (#1336)
david-livefront May 3, 2024
958f059
BIT-2307: Add logic to migrate crash logging behavior (#1335)
david-livefront May 3, 2024
904f891
Ensure BitwardenAppComponentFactory is call correct super methods (#1โ€ฆ
david-livefront May 3, 2024
9388290
Clear vault data in memory when the vault is locked (#1339)
david-livefront May 6, 2024
a764189
Update dependency names and alphabetization (#1337)
david-livefront May 6, 2024
dfb39d1
Update AndroidX Compose and Core to latest versions (#1342)
david-livefront May 7, 2024
1dc1306
Update Firebase to latest version (#1343)
david-livefront May 7, 2024
4151dd7
Update app version to 2024.05.0 (#1344)
david-livefront May 7, 2024
9cb3c8a
Add missing param to F-Droid implementation of CrashLogsManager (#1345)
SaintPatrck May 7, 2024
6180299
BIT-2170: Fix biometric bypass (#1324)
caleb-livefront May 8, 2024
01f05fc
PM-7156: Publish Play Store and F-Droid artifacts (#1273)
SaintPatrck May 9, 2024
b0691d7
BIT-2345: Add error message when user needs to reenable biometrics (#โ€ฆ
caleb-livefront May 9, 2024
ddb680c
BIT-2335: Onboarding flow (data) (#1346)
ramsey-livefront May 9, 2024
423af01
PM-6947: Correct Firebase credential file path (#1349)
SaintPatrck May 9, 2024
e3e719b
Suppress the unresolved Autofill service name warning (#1351)
SaintPatrck May 9, 2024
55eded4
Standardize the way we collect ViewModel state with `collectAsStateWiโ€ฆ
david-livefront May 9, 2024
78754a1
Update the app with the latest strings (#1354)
david-livefront May 9, 2024
ec2fcb3
BIT-2342: Hide verification codes for items with password reprompt (#โ€ฆ
caleb-livefront May 9, 2024
9b49766
BIT-2318: Clear input when VaultUnlockViewModel is cleared (#1355)
david-livefront May 10, 2024
555702b
Clean up VaultScreen Dialogs (#1356)
david-livefront May 10, 2024
5e2d863
BIT-2287: Display a dialog for unassigned items (#1358)
david-livefront May 13, 2024
d300128
Change Create Account span texts to buttons for keyboard nav (#1357)
caleb-livefront May 13, 2024
f0aceae
[deps]: Update com.android.application to v8.4.0 (#1361)
renovate[bot] May 13, 2024
c936f47
[deps]: Update gh minor (#1359)
renovate[bot] May 13, 2024
092060b
Add support for keyboard navigation with the slider (#1363)
david-livefront May 13, 2024
d44412c
[deps]: Update com.google.firebase.crashlytics to v3 (#1362)
renovate[bot] May 13, 2024
92d0979
Add explicit title to reset password screen dialogs (#1364)
david-livefront May 13, 2024
dc96d03
Add keyboard navigation logic for password fields to handle the tab bโ€ฆ
david-livefront May 13, 2024
7f39812
BIT-2258: Update 'Enter key manually' button for keyboard navigation โ€ฆ
david-livefront May 13, 2024
4fd97aa
BIT-1843: Redact access token in request header logs (#1367)
david-livefront May 13, 2024
9b8c1b5
Update compose compiler to 1.5.13 (#1368)
david-livefront May 13, 2024
c61f182
Update Coroutines to v1.8.1 (#1369)
david-livefront May 13, 2024
b8509ad
BIT-2258: Update slider navigation to work with emulator (#1371)
david-livefront May 14, 2024
23e12a5
BIT-2318: Master password leak (#1372)
david-livefront May 14, 2024
405b62c
Replace last usage of ClickableText with BitwardenClickableText (#1374)
david-livefront May 14, 2024
4427c32
Update kotlin to v1.9.24 (#1373)
david-livefront May 14, 2024
7535f5b
Group compose compiler updates with other Kotlin dependencies (#1375)
SaintPatrck May 15, 2024
7e15b43
Add suppression for maxLineLength (#1376)
david-livefront May 15, 2024
0165437
Add remember to viewmodel events to ensure optimal recompositions (#1โ€ฆ
david-livefront May 16, 2024
7ef0c8d
Fix memory leak by using activity lifecycle scope (#1378)
david-livefront May 16, 2024
7c4e82a
PM-5153: Implement FIDO2 credential provider service (passkey creatioโ€ฆ
SaintPatrck May 20, 2024
35e5d23
Pass in minimal data to avoid extra recompositions (#1381)
david-livefront May 22, 2024
df0f0ef
Remove LoginState from savedStateHandle (#1382)
david-livefront May 23, 2024
44b815d
Update to AGP 8.4.1 (#1383)
david-livefront May 23, 2024
ae7841c
Use isolated per-item scopes for TOTP flows (#1384)
brian-livefront May 23, 2024
4c21624
Clear passwordToCheck at appropriate times (#1385)
david-livefront May 23, 2024
024020f
Add manager that hints to the garbage collector to collect the garbagโ€ฆ
david-livefront May 24, 2024
310c452
Restart activity to clear out in-memory data when locking or changingโ€ฆ
david-livefront May 24, 2024
8e1f410
Clear crypto on logout (#1391)
david-livefront May 24, 2024
944e8b7
[deps]: Update gh minor (#1392)
renovate[bot] May 28, 2024
2814b2d
Update Mockk and Robolectric test tools (#1394)
david-livefront May 28, 2024
1cb9c92
Fix minor formatting in readme (#1395)
david-livefront May 28, 2024
ef89f25
Update Kover to 0.8.0. (#1396)
david-livefront May 28, 2024
92f5580
Add suppression for unstable API (#1398)
david-livefront May 28, 2024
4d1eb7f
[BIT-2361] Display account deletion error message provided by networkโ€ฆ
SaintPatrck May 29, 2024
303027d
Update to Kotlin 2.0.0 (#1397)
david-livefront May 29, 2024
5c1a20e
Update gemfile.lock (#1399)
david-livefront May 29, 2024
f43a8c8
Clear focus when the Activity stops (#1401)
david-livefront May 29, 2024
4deb181
Reorder buttons in BitwardenTwoButtonDialog (#1402)
david-livefront May 29, 2024
d442edf
Repo tuneup (#1400)
withinfocus May 30, 2024
376008d
Ask for packages permissions (#1403)
withinfocus May 30, 2024
69dfc9d
Set token as environment variable for Gradle (#1404)
withinfocus May 30, 2024
82ff879
[deps]: Update ruby/setup-ruby action to v1.178.0 (#1405)
renovate[bot] May 30, 2024
0548661
Checkmarx configuration (#1408)
withinfocus May 30, 2024
7c9f9d5
Update AppCompat to 1.7.0 (#1409)
david-livefront May 30, 2024
d117d6b
Update Google Services Plugin (#1410)
david-livefront May 30, 2024
a417e5c
[PM-6701] Extract environment selector to its own file for reusability
andrebispo5 May 30, 2024
bc44043
[PM-6701] Add start registration screen and all the navigation logic โ€ฆ
andrebispo5 May 30, 2024
404f371
Clear focus whenever the root navigation changes (#1411)
david-livefront May 30, 2024
bb52381
Change BaseTheme to use AppCompat parent (#1412)
david-livefront May 31, 2024
8fcd16a
Update the Bitwarden SDK to 0.5.0 (#1413)
david-livefront May 31, 2024
151af7b
Update Firebase BOM to latest version v33.1.0 (#1414)
david-livefront May 31, 2024
9ec46ca
Upgrade Gradle wrapper (#1416)
withinfocus May 31, 2024
ba9bc7b
Fix various unused property param warnings (#1415)
SaintPatrck May 31, 2024
8124467
Improve test caching (#1417)
withinfocus May 31, 2024
95156b0
[BIT-2358] Generate username automatically when creating a new login โ€ฆ
SaintPatrck Jun 3, 2024
7e440a8
BIT-2402: Add Keep annotation to services used in the BitwardenAppComโ€ฆ
david-livefront Jun 3, 2024
0ec7315
Bump version name to 2024.06.0 (#1420)
david-livefront Jun 4, 2024
d51c8d0
[BIT-2275] Fix OutOfMemoryException when saving attachments (#1418)
SaintPatrck Jun 4, 2024
58c6f0f
BIT-2403: Update process for moving item to organization (#1421)
david-livefront Jun 4, 2024
ac32773
Move credential provider service declaration to standardDebug manifesโ€ฆ
SaintPatrck Jun 4, 2024
0eb436b
Cleanup production build steps (#1423)
SaintPatrck Jun 4, 2024
3f7aa27
Publish beta builds to play store when requested (#1424)
SaintPatrck Jun 5, 2024
9869f4f
Only distribute F-Droid to Firebase when requested (#1426)
SaintPatrck Jun 5, 2024
89855c5
[deps]: Lock file maintenance (#1407)
renovate[bot] Jun 5, 2024
99827d2
Update strings in the app (#1425)
david-livefront Jun 5, 2024
3362ae8
[deps]: Lock file maintenance (#1428)
renovate[bot] Jun 5, 2024
517229f
[deps]: Update ruby/setup-ruby action to v1.179.0 (#1427)
renovate[bot] Jun 5, 2024
4324607
[PM-8137] Passkey creation navigation and account switching (#1380)
SaintPatrck Jun 6, 2024
f6729c7
Update moveToOrganization to be 1-to-1 with the SDK (#1429)
david-livefront Jun 6, 2024
3c3ef58
Create manager class to isolate logic for ciphers (#1432)
david-livefront Jun 7, 2024
afa76c4
Add private helpers for attachments that return a result (#1434)
david-livefront Jun 7, 2024
281fdf9
Update to latest version of the SDK (#1430)
david-livefront Jun 7, 2024
c404161
Update to Kover 0.8.1 (#1438)
david-livefront Jun 10, 2024
eef1941
Update to latest ksp (2.0.0-1.0.22) (#1439)
david-livefront Jun 10, 2024
eb503e7
Update Kotlin serialization to latest version (1.7.0) (#1440)
david-livefront Jun 10, 2024
4061f80
Simplify the restoreCipher API (#1441)
david-livefront Jun 10, 2024
0288c6b
[BRE-101] Remove dept-devops from CODEOWNERS (#1433)
michalchecinski Jun 11, 2024
141bd81
BIT-2355: Check to see if a cipher needs to be migrated when encryptiโ€ฆ
david-livefront Jun 11, 2024
965f469
BIT-2420: Add attachments to cipher update requests (#1443)
david-livefront Jun 11, 2024
f4ccb2a
Ensure collection IDs are maintained when restoring a cipher (#1445)
david-livefront Jun 11, 2024
4fd0c2a
[deps]: Update ruby/setup-ruby action to v1.179.1 (#1436)
renovate[bot] Jun 11, 2024
b9f8094
[deps]: Lock file maintenance (#1437)
renovate[bot] Jun 11, 2024
ffcaaa6
Add migration logic for cipher attachments (#1446)
david-livefront Jun 11, 2024
9ff5426
Update Bitwarden SDK (#1444)
SaintPatrck Jun 12, 2024
ff423c6
Update Compose BOM to the latest version (2024.06.00) (#1448)
david-livefront Jun 13, 2024
a09b82c
Allow test workflow to be triggered manually (#1449)
SaintPatrck Jun 13, 2024
0b9498b
[PM-8137] Populate add cipher form during passkey creation (#1431)
SaintPatrck Jun 13, 2024
4ddfc34
Update the Camera library to 1.3.4 (#1450)
david-livefront Jun 13, 2024
c9f8178
BIT-2409: Update attachment migration logic when sharing a cipher (#1โ€ฆ
david-livefront Jun 13, 2024
3c75f22
Update AGP to v8.4.2 (#1451)
david-livefront Jun 13, 2024
cd6419b
Update the Bitwarden SDK (#1453)
david-livefront Jun 14, 2024
18abbdd
Update strings localization (#1455)
david-livefront Jun 17, 2024
fe46dc5
BIT-2409: Update the attachment migration process (#1454)
david-livefront Jun 17, 2024
da27115
[PM-6701] Add Complete Registration screen
andrebispo5 Jun 17, 2024
53430cd
[PM-8947] Add marketing toggle and rewrite terms and conditions UI
andrebispo5 Jun 17, 2024
7e61ab5
Add support for the FCMv1 format in push notifications (#1456)
david-livefront Jun 18, 2024
a0dd14f
Update the Bitwarden SDK (#1460)
david-livefront Jun 18, 2024
faa6199
Update AGP and Gradle (#1461)
david-livefront Jun 18, 2024
ac85af7
[deps]: Lock file maintenance (#1459)
renovate[bot] Jun 18, 2024
818aaed
[deps]: Update gh minor (#1457)
renovate[bot] Jun 18, 2024
a5f8fe1
Clean up the PushManager (#1462)
david-livefront Jun 18, 2024
b1d06cc
Add beta icons (#1463)
david-livefront Jun 18, 2024
3ea15e3
Remove unused beta icons (#1465)
david-livefront Jun 18, 2024
37a53d4
Remove legacy GCM notification support (#1464)
david-livefront Jun 18, 2024
ef03aa0
Set all multiipart request MIME types to 'multipart/form-data' (#1467)
david-livefront Jun 19, 2024
eb90069
[AC-2787] Remove the unassigned items dialog (#1466)
david-livefront Jun 19, 2024
fa8a5b8
[PM-6702] Add Check your email screen used for cloud registration flow.
andrebispo5 Jun 19, 2024
9b662ec
Merge branch 'main' into pm-6701/email-verification-selfhost-registraโ€ฆ
andrebispo5 Jun 19, 2024
fe9c779
[PM-6702] Fix password strength indicator component package name
andrebispo5 Jun 19, 2024
2556217
[PM-6702] Fix clickable text font weight
andrebispo5 Jun 19, 2024
56e6836
Merge branch 'main' into pm-6701/email-verification-selfhost-registraโ€ฆ
andrebispo5 Jun 21, 2024
b867079
[PM-6702] Add AppLink support to open links sent to email to completeโ€ฆ
andrebispo5 Jun 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,17 @@
<data android:mimeType="video/*" />
<data android:mimeType="text/*" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data android:scheme="https" />
<data android:host="bitwarden.com" />
<data android:host="bitwarden.pw" />
<data android:host="bitwarden.eu" />
</intent-filter>
</activity>

<activity
Expand Down
10 changes: 10 additions & 0 deletions app/src/main/java/com/x8bit/bitwarden/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import javax.inject.Inject
import android.net.Uri

/**
* Primary entry point for the application.
Expand Down Expand Up @@ -74,6 +75,15 @@ class MainActivity : AppCompatActivity() {
}
}
}

val appLinkData: Uri? = intent.data
if (appLinkData != null && appLinkData.isHierarchical) {
mainViewModel.trySendAction(
action = MainAction.ReceiveNewIntent(
intent = intent,
),
)
}
}

override fun onNewIntent(intent: Intent) {
Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/com/x8bit/bitwarden/MainViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ import android.os.Parcelable
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.viewModelScope
import com.bitwarden.vault.CipherView
import com.google.firebase.Timestamp
import com.x8bit.bitwarden.data.auth.repository.AuthRepository
import com.x8bit.bitwarden.data.auth.util.getCompleteRegistrationDataIntentOrNull
import com.x8bit.bitwarden.data.auth.util.getPasswordlessRequestDataIntentOrNull
import com.x8bit.bitwarden.data.autofill.fido2.util.getFido2CredentialRequestOrNull
import com.x8bit.bitwarden.data.autofill.manager.AutofillSelectionManager
Expand Down Expand Up @@ -174,6 +176,7 @@ class MainViewModel @Inject constructor(
val hasGeneratorShortcut = intent.isPasswordGeneratorShortcut
val hasVaultShortcut = intent.isMyVaultShortcut
val fido2CredentialRequestData = intent.getFido2CredentialRequestOrNull()
val completeRegistrationData = intent.getCompleteRegistrationDataIntentOrNull()
when {
passwordlessRequestData != null -> {
specialCircumstanceManager.specialCircumstance =
Expand All @@ -185,6 +188,14 @@ class MainViewModel @Inject constructor(
)
}

completeRegistrationData != null -> {
specialCircumstanceManager.specialCircumstance =
SpecialCircumstance.CompleteRegistration(
completeRegistrationData = completeRegistrationData,
timestamp = Timestamp.now()
)
}

autofillSaveItem != null -> {
specialCircumstanceManager.specialCircumstance =
SpecialCircumstance.AutofillSave(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.x8bit.bitwarden.data.auth.util

import android.content.Intent
import com.x8bit.bitwarden.data.platform.manager.model.CompleteRegistrationData

/**
* Checks if the given [Intent] contains data to complete registration.
* The [CompleteRegistrationData] will be returned when present.
*/
fun Intent.getCompleteRegistrationDataIntentOrNull(): CompleteRegistrationData? {
val uri = data ?: return null
val email = uri?.getQueryParameter("email") ?: return null
val verificationToken = uri.getQueryParameter("verificationtoken") ?: return null
return CompleteRegistrationData(
email = email,
verificationToken = verificationToken
)
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.x8bit.bitwarden.data.platform.manager.model

import android.os.Parcelable
import kotlinx.parcelize.Parcelize

/**
* Required data to complete ongoing registration process.
*
* @property email The email of the user creating the account.
* @property verificationToken The token required to finish the registration process.
*/
@Parcelize
data class CompleteRegistrationData(
val email: String,
val verificationToken: String,
) : Parcelable
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.x8bit.bitwarden.data.platform.manager.model

import android.os.Parcelable
import com.google.firebase.Timestamp
import com.x8bit.bitwarden.data.autofill.fido2.model.Fido2CredentialRequest
import com.x8bit.bitwarden.data.autofill.model.AutofillSaveItem
import com.x8bit.bitwarden.data.autofill.model.AutofillSelectionData
Expand Down Expand Up @@ -48,6 +49,15 @@ sealed class SpecialCircumstance : Parcelable {
val shouldFinishWhenComplete: Boolean,
) : SpecialCircumstance()

/**
* The app was launched via AppLink in order to allow the user complete an ongoing registration.
*/
@Parcelize
data class CompleteRegistration(
val completeRegistrationData: CompleteRegistrationData,
val timestamp: Timestamp
) : SpecialCircumstance()

/**
* The app was launched via the credential manager framework in order to allow the user to
* manually save a passkey to their vault.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ fun SpecialCircumstance.toAutofillSaveItemOrNull(): AutofillSaveItem? =
SpecialCircumstance.GeneratorShortcut -> null
SpecialCircumstance.VaultShortcut -> null
is SpecialCircumstance.Fido2Save -> null
is SpecialCircumstance.CompleteRegistration -> null
}

/**
Expand All @@ -31,6 +32,7 @@ fun SpecialCircumstance.toAutofillSelectionDataOrNull(): AutofillSelectionData?
SpecialCircumstance.GeneratorShortcut -> null
SpecialCircumstance.VaultShortcut -> null
is SpecialCircumstance.Fido2Save -> null
is SpecialCircumstance.CompleteRegistration -> null
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ import androidx.navigation.NavHostController
import androidx.navigation.NavOptions
import androidx.navigation.navOptions
import androidx.navigation.navigation
import com.x8bit.bitwarden.ui.auth.feature.checkemail.checkEmailDestination
import com.x8bit.bitwarden.ui.auth.feature.checkemail.navigateToCheckEmail
import com.x8bit.bitwarden.ui.auth.feature.completeregistration.completeRegistrationDestination
import com.x8bit.bitwarden.ui.auth.feature.completeregistration.navigateToCompleteRegistration
import com.x8bit.bitwarden.ui.auth.feature.createaccount.createAccountDestination
import com.x8bit.bitwarden.ui.auth.feature.createaccount.navigateToCreateAccount
import com.x8bit.bitwarden.ui.auth.feature.enterprisesignon.enterpriseSignOnDestination
Expand All @@ -23,6 +27,8 @@ import com.x8bit.bitwarden.ui.auth.feature.masterpasswordhint.masterPasswordHint
import com.x8bit.bitwarden.ui.auth.feature.masterpasswordhint.navigateToMasterPasswordHint
import com.x8bit.bitwarden.ui.auth.feature.setpassword.navigateToSetPassword
import com.x8bit.bitwarden.ui.auth.feature.setpassword.setPasswordDestination
import com.x8bit.bitwarden.ui.auth.feature.startregistration.navigateToStartRegistration
import com.x8bit.bitwarden.ui.auth.feature.startregistration.startRegistrationDestination
import com.x8bit.bitwarden.ui.auth.feature.twofactorlogin.navigateToTwoFactorLogin
import com.x8bit.bitwarden.ui.auth.feature.twofactorlogin.twoFactorLoginDestination

Expand All @@ -49,6 +55,28 @@ fun NavGraphBuilder.authGraph(navController: NavHostController) {
)
},
)
startRegistrationDestination(
onNavigateBack = { navController.popBackStack() },
// TODO check necessary parameters
onNavigateToCompleteRegistration = { emailAddress, verificationToken, captchaToken ->
navController.navigateToCompleteRegistration()
},
onNavigateToCheckEmail = {emailAddress ->
navController.navigateToCheckEmail(emailAddress)
},
onNavigateToEnvironment = { navController.navigateToEnvironment() }
)
checkEmailDestination(
onNavigateBack = { navController.popBackStack() },
onNavigateBackToLanding = {
navController.popBackStack(route = LANDING_ROUTE, inclusive = false)
})
completeRegistrationDestination(
onNavigateBack = { navController.popBackStack() },
onNavigateToLogin = { emailAddress, captchaToken ->
navController.navigateToLogin(emailAddress, captchaToken)
},
)
enterpriseSignOnDestination(
onNavigateBack = { navController.popBackStack() },
onNavigateToSetPassword = { navController.navigateToSetPassword() },
Expand All @@ -71,6 +99,7 @@ fun NavGraphBuilder.authGraph(navController: NavHostController) {
onNavigateToEnvironment = {
navController.navigateToEnvironment()
},
onNavigateToStartRegistration = { navController.navigateToStartRegistration()}
)
loginDestination(
onNavigateBack = { navController.popBackStack() },
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package com.x8bit.bitwarden.ui.auth.feature.checkemail

import androidx.lifecycle.SavedStateHandle
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.NavType
import androidx.navigation.navArgument
import com.x8bit.bitwarden.data.platform.annotation.OmitFromCoverage
import com.x8bit.bitwarden.ui.platform.base.util.composableWithSlideTransitions

private const val EMAIL_ADDRESS: String = "email"
private const val CHECK_EMAIL_ROUTE: String = "check_email/{$EMAIL_ADDRESS}"

/**
* Navigate to the check email screen.
*/
fun NavController.navigateToCheckEmail(emailAddress: String, navOptions: NavOptions? = null) {
this.navigate("check_email/$emailAddress", navOptions)
}

/**
* Class to retrieve check email arguments from the [SavedStateHandle].
*/
@OmitFromCoverage
data class CheckEmailArgs(
val emailAddress: String
) {
constructor(savedStateHandle: SavedStateHandle) : this(
emailAddress = checkNotNull(savedStateHandle.get<String>(EMAIL_ADDRESS)),
)
}

/**
* Add the check email screen to the nav graph.
*/
fun NavGraphBuilder.checkEmailDestination(
onNavigateBack: () -> Unit,
onNavigateBackToLanding: () -> Unit,
) {
composableWithSlideTransitions(
route = CHECK_EMAIL_ROUTE,
arguments = listOf(
navArgument(EMAIL_ADDRESS) { type = NavType.StringType },
)
) {
CheckEmailScreen(
onNavigateBack = onNavigateBack,
onNavigateBackToLanding = onNavigateBackToLanding
)
}
}
Loading
Loading