Privacy and video (7.x Beta)
This page documents the 7.x beta line. For the stable release, see the 6.x video privacy page.
Disabling video
Video recording can be disabled completely via the VideoEnabled option —
see configuration.
Protect activities
Add a fully-qualified activity class name to the list of secure activities. When the user navigates to that activity, the screen is substituted with black frames and touch events are dropped.
- Java
- Kotlin
Bugsee.addSecureActivity(MySecretActivity.class.getName());
// Later:
Bugsee.removeSecureActivity(MySecretActivity.class.getName());
boolean secure = Bugsee.isSecureActivity(MySecretActivity.class.getName());
Bugsee.addSecureActivity(MySecretActivity::class.java.name)
// Later:
Bugsee.removeSecureActivity(MySecretActivity::class.java.name)
val secure = Bugsee.isSecureActivity(MySecretActivity::class.java.name)
Activities carrying the system FLAG_SECURE flag are protected without any
Bugsee call.
Protecting views
By View reference
- Java
- Kotlin
Bugsee.addSecureView(mySecretView);
// View is substituted by a black rectangle in the video.
Bugsee.removeSecureView(mySecretView);
Bugsee.addSecureView(mySecretView)
Bugsee.removeSecureView(mySecretView)
By Fragment
In 7.x the hosting-Activity argument has been removed — pass the Fragment
directly.
- Java
- Kotlin
Bugsee.addSecureView(myFragment);
Bugsee.removeSecureView(myFragment);
Bugsee.addSecureView(myFragment)
Bugsee.removeSecureView(myFragment)
Bugsee.addSecureViews(int layoutId, Activity) still exists but is
deprecated in 7.x and always returns false. Walk the view tree yourself
and call addSecureView(View) per node.
Jetpack Compose
Add the Compose extension module and apply Modifier.bugseeSecure() to any
sensitive composable:
// build.gradle.kts
implementation("com.bugsee:bugsee-android-compose:<version>")
import com.bugsee.library.compose.bugseeSecure
Text(
text = "Confidential",
modifier = Modifier.bugseeSecure()
)
The Bugsee Kotlin compiler plugin can also auto-inject bugseeSecure() into
password TextField call sites — see the
gradle-plugin reference.
WebView elements
Add class="bugsee-hide" to any element that must be redacted, or
class="bugsee-show" to opt back in an element that is hidden by default
(like type="password"):
<input type="text" class="bugsee-hide">
<input type="password" class="bugsee-show">
If you call WebView.setWebViewClient(...) yourself, register the WebView
explicitly:
- Java
- Kotlin
webView.setWebViewClient(new WebViewClient());
Bugsee.addSecureWebView(webView);
webView.webViewClient = WebViewClient()
Bugsee.addSecureWebView(webView)
Protecting by coordinates
- Java
- Kotlin
Bugsee.addSecureRectangle(new Rect(100, 100, 200, 200));
List<Rect> all = Bugsee.getAllSecureRectangles();
Bugsee.removeSecureRectangle(new Rect(100, 100, 200, 200));
Bugsee.removeAllSecureRectangles();
Bugsee.addSecureRectangle(Rect(100, 100, 200, 200))
val all = Bugsee.getAllSecureRectangles()
Bugsee.removeSecureRectangle(Rect(100, 100, 200, 200))
Bugsee.removeAllSecureRectangles()
Blackout — time-bounded full redaction
Bracket a sensitive flow with startBlackout() / endBlackout() to fully
blank the video and drop touches for the duration. This pair replaces the
6.x Bugsee.pause() / Bugsee.resume() methods — the semantics are unchanged,
only the names.
- Java
- Kotlin
Bugsee.startBlackout();
// ...render / interact with sensitive content...
Bugsee.endBlackout();
Bugsee.startBlackout()
// ...render / interact with sensitive content...
Bugsee.endBlackout()
For a hard stop of all capture (including log, network, and event collection),
call Bugsee.stop() and resume later with Bugsee.launch(...) — see
Lifecycle events.