Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,12 @@ UXCam.addScreenNamesToIgnore(listOf("LoginScreen", "SettingsScreen"))
| `optOutOfSchematicRecordings()` | Opt out of schematic recordings (iOS only) |
| `optIntoSchematicRecordings()` | Opt into schematic recordings (iOS only) |
| `optInSchematicRecordingStatus()` | Check schematic recording status (iOS only) |
| `occludeSensitiveView(view)` | Hide sensitive view from recordings |
| `unOccludeSensitiveView(view)` | Remove occlusion from a view |
| `addScreenNameToIgnore(screenName)` | Exclude screen from recording |
| `addScreenNamesToIgnore(screenNames)` | Exclude multiple screens |
| `removeScreenNameToIgnore(screenName)` | Remove screen from ignore list |
| `removeAllScreenNamesToIgnore()` | Clear all ignored screens |
| `allowShortBreakForAnotherApp(b)` | Allow short app switches |

### UXConfig
Expand Down
17 changes: 17 additions & 0 deletions uxcam-kmp-shared/src/androidMain/kotlin/dev/onexeor/uxcam/UXCam.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

package dev.onexeor.uxcam

import android.view.View
import com.uxcam.OnVerificationListener
import com.uxcam.UXCam
import com.uxcam.datamodel.UXConfig
Expand Down Expand Up @@ -38,6 +39,14 @@ actual object UXCam {
UXCam.tagScreenName(screenName)
}

actual fun occludeSensitiveView(view: Any) {
(view as? View)?.let { UXCam.occludeSensitiveView(it) }
}

actual fun unOccludeSensitiveView(view: Any) {
(view as? View)?.let { UXCam.unOccludeSensitiveView(it) }
}

actual fun addScreenNameToIgnore(screenName: String) {
UXCam.addScreenNameToIgnore(screenName)
}
Expand All @@ -46,6 +55,14 @@ actual object UXCam {
UXCam.addScreenNamesToIgnore(screenNames)
}

actual fun removeScreenNameToIgnore(screenName: String) {
UXCam.removeScreenNameToIgnore(screenName)
}

actual fun removeAllScreenNamesToIgnore() {
UXCam.removeAllScreenNamesToIgnore()
}

actual fun allowShortBreakForAnotherApp(b: Boolean) {
UXCam.allowShortBreakForAnotherApp(b)
}
Expand Down
16 changes: 16 additions & 0 deletions uxcam-kmp-shared/src/commonMain/kotlin/dev/onexeor/uxcam/UXCam.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,26 @@ expect object UXCam {

fun tagScreenName(screenName: String)

/**
* Marks a view as sensitive to be hidden from recordings.
* @param view Platform-specific view: Android View or iOS UIView
*/
fun occludeSensitiveView(view: Any)

/**
* Removes occlusion from a previously occluded view.
* @param view Platform-specific view: Android View or iOS UIView
*/
fun unOccludeSensitiveView(view: Any)

fun addScreenNameToIgnore(screenName: String)

fun addScreenNamesToIgnore(screenNames: List<String>)

fun removeScreenNameToIgnore(screenName: String)

fun removeAllScreenNamesToIgnore()

fun allowShortBreakForAnotherApp(b: Boolean)

fun pauseScreenRecording()
Expand Down
17 changes: 17 additions & 0 deletions uxcam-kmp-shared/src/iosMain/kotlin/dev/onexeor/uxcam/UXCam.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package dev.onexeor.uxcam

import cocoapods.UXCam.UXCam
import cocoapods.UXCam.UXCamConfiguration
import platform.UIKit.UIView

actual object UXCam {

Expand All @@ -28,6 +29,14 @@ actual object UXCam {
UXCam.tagScreenName(screenName)
}

actual fun occludeSensitiveView(view: Any) {
(view as? UIView)?.let { UXCam.occludeSensitiveView(it) }
}

actual fun unOccludeSensitiveView(view: Any) {
(view as? UIView)?.let { UXCam.unOccludeSensitiveView(it) }
}

actual fun addScreenNameToIgnore(screenName: String) {
UXCam.addScreenNameToIgnore(screenName)
}
Expand All @@ -36,6 +45,14 @@ actual object UXCam {
UXCam.addScreenNamesToIgnore(screenNames)
}

actual fun removeScreenNameToIgnore(screenName: String) {
UXCam.removeScreenNameToIgnore(screenName)
}

actual fun removeAllScreenNamesToIgnore() {
UXCam.removeAllScreenNamesToIgnore()
}

actual fun allowShortBreakForAnotherApp(b: Boolean) {
UXCam.allowShortBreakForAnotherApp(b)
}
Expand Down