-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Add page on the Android sensitive content feature #12220
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
Changes from 7 commits
0ea6e67
baf0760
7b5f499
d8bf8ce
f8fb607
c867372
8cb2b3b
9b060e6
5c637f1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| --- | ||
| title: Protect your app's sensitive content | ||
| short-title: Sensitive content | ||
| description: >- | ||
| Learn how to protect sensitive content in your Flutter app. | ||
| --- | ||
|
|
||
| This feature has landed in Flutter 3.35 and is available on Android API 35+. | ||
| You can try it out by using the [`SensitiveContent`] widget. See the guide | ||
| below for details. | ||
|
|
||
| ## About the `SensitiveContent` widget | ||
|
|
||
| You can use the `SensitiveContent` widget in your app to set the content | ||
| sensitivity of a child `Widget` to one of the following [`ContentSensitivity`] | ||
| values: `notSensitive`, `sensitive`, or `autoSensitive`. The mode that you | ||
| choose helps to determine if the device screen should be obscured | ||
| (blacked out) during media projection to protect users’ sensitive data. | ||
|
|
||
| You can have as many `SensitiveContent` widgets in your app as you wish, | ||
| but if _any_ one of those widgets has a `sensitive` content value, then the | ||
| screen will be obscured during media projection. Thus, for most use cases, | ||
| using multiple `SensitiveContent` widgets provides no advantage over having | ||
| one `SensitiveContent` widget in your app’s widget tree. This feature is | ||
| available on Android API 35+ and has no effect on lower API versions. | ||
|
|
||
| :::note | ||
| The `autoSensitive` value isn't supported as of Flutter 3.35 and behaves | ||
| the same as `notSensitive`. See the [tracking issue][] for more information. | ||
camsim99 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ::: | ||
|
|
||
| ## Using the `SensitiveContent` widget | ||
|
|
||
| Given some content that you want to protect from media screen share | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Include somewhere in this doc if users need to worry about using sensitive content on non android or non api 35+ platforms and what the fallback behavior is. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It was already included in the section above but added a note here, as well. |
||
| (for example, a `MySensitiveContent()` widget), you can wrap it with the | ||
| `SensitiveContent` widget as shown in the following example: | ||
|
|
||
| ```dart | ||
| class MyWidget extends StatelessWidget { | ||
| ... | ||
| Widget build(BuildContext context) { | ||
| return SensitiveContent( | ||
| sensitivivity: ContentSensitivity.sensitive, | ||
| child: MySensitiveContent(), | ||
| ); | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| ## For more information | ||
|
|
||
| For more information, visit the [`SensitiveContent`][] | ||
| and [`ContentSensitivity`][] API docs. | ||
|
|
||
| [`SensitiveContent`]: {{site.api}}/flutter/widgets/SensitiveContent-class.html | ||
| [`ContentSensitivity`]: {{site.api}}/flutter/services/ContentSensitivity.html | ||
| [tracking issue]: {{site.github}}/flutter/flutter/issues/160879 | ||
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 normally indicate what flutter version first introduced a feature?
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.
Oops I thought we did but I don't see any examples in https://docs.flutter.dev/platform-integration/android! Removed.