-
Notifications
You must be signed in to change notification settings - Fork 920
[PM-19108] Add privileged app management screen #4862
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
Conversation
Codecov ReportAll modified and coverable lines are covered by tests โ
Additional details and impacted files@@ Coverage Diff @@
## main #4862 +/- ##
==========================================
- Coverage 89.49% 83.05% -6.44%
==========================================
Files 499 628 +129
Lines 42507 48904 +6397
Branches 5985 6758 +773
==========================================
+ Hits 38040 40619 +2579
- Misses 2399 6011 +3612
- Partials 2068 2274 +206 โ View full report in Codecov by Sentry. ๐ New features to boost your workflow:
|
|
Great job, no security vulnerabilities found in this Pull Request |
e26c43a to
15ae542
Compare
| } | ||
|
|
||
| item { | ||
| Spacer(modifier = Modifier.height(88.dp)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We usually reserve the 88.dp for screens that have a FAB and 16.dp for the rest of them
| } | ||
|
|
||
| @Composable | ||
| private fun LazyItemScope.PrivilegedAppHeaderItem( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A LazyItemScope should not be composable?
| if (canDelete) { | ||
| BitwardenStandardIconButton( | ||
| vectorIconRes = R.drawable.ic_send_pending_delete, | ||
| contentDescription = "", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should have a contentDescription
| cardStyle: CardStyle, | ||
| modifier: Modifier = Modifier, | ||
| ) { | ||
| Row( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should already have standard components for this sort of thing already
|
|
||
| @Preview | ||
| @Composable | ||
| private fun PrivilegedAppsListScreenPreview() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we call this function PrivilegedAppsListScreen_preview
| Spacer(modifier = Modifier.height(8.dp)) | ||
| } | ||
| itemsIndexed( | ||
| key = { _, item -> "communityTrust_${item.packageName}_${item.signature}" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๐
| cardStyle = state.communityTrustedApps | ||
| .toListItemCardStyle(index = index), | ||
| modifier = Modifier | ||
| .padding(horizontal = 16.dp) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use the standardHorizontalMargin() function here
| modifier = Modifier | ||
| .padding(horizontal = 16.dp) | ||
| .fillMaxWidth() | ||
| .animateItem(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๐
| data class Fido2TrustState( | ||
| val googleTrustedApps: ImmutableList<PrivilegedAppListItem>, | ||
| val communityTrustedApps: ImmutableList<PrivilegedAppListItem>, | ||
| val userTrustedApps: ImmutableList<PrivilegedAppListItem>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I love that we can put ImmutableLists directly into parcelable classes now ๐จโ๐ณ
| } | ||
|
|
||
| override suspend fun getCommunityTrustedPrivilegedAppsOrNull(): PrivilegedAppAllowListJson? { | ||
| return withContext(ioScope.coroutineContext) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need this specifically for the json .decodeFromStringOrNull part?
Introduces the ability to trust privileged applications for FIDO2 operations. If a calling application is acting as a privileged application but is not yet trusted, the user will be given the option to trust the app and continue the operation, or to cancel the operation without trusting the application. If the application is trusted, subsequent requests from the application will be treated as a trusted application without user interaction.
465c5ce to
9beb3ec
Compare
Allow users to manage trusted privileged applications and view privileged applications that are trusted by external sources.
โฆps list - Added a new vector graphic file `ic_delete.xml` for the delete icon. - Updated the delete button icon in the `PrivilegedAppsListScreen` from `ic_send_pending_delete` to `ic_delete`.
- Removed unused string resources: `trusted_by_google_x`, `trusted_by_you_x`, and `trusted_by_the_community_c`.
208e972 to
3c1ef13
Compare
51c8a2e to
1f201b0
Compare

๐๏ธ Tracking
PM-19108
๐ Objective
Allow users to manage trusted privileged applications and view
privileged applications that are trusted by external sources.
๐ธ Screenshots
Screen_recording_20250313_161906.mp4
โฐ Reminders before review
๐ฆฎ Reviewer guidelines
:+1:) or similar for great changes:memo:) or โน๏ธ (:information_source:) for notes or general info:question:) for questions:thinking:) or ๐ญ (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion:art:) for suggestions / improvements:x:) or:warning:) for more significant problems or concerns needing attention:seedling:) or โป๏ธ (:recycle:) for future improvements or indications of technical debt:pick:) for minor or nitpick changes