summaryrefslogtreecommitdiffhomepage
path: root/android/test/e2e/src
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2022-11-23 19:57:01 +0100
committerAlbin <albin@mullvad.net>2023-01-10 15:32:29 +0100
commit6e09d1941569d5138b961bb7d2d56526663ef1c8 (patch)
tree3eea5fa1a5bb9018bdc031562aaa001319a8ea44 /android/test/e2e/src
parent0b55897e8a53bcc126d1954f99639d482a3b623e (diff)
downloadmullvadvpn-6e09d1941569d5138b961bb7d2d56526663ef1c8.tar.xz
mullvadvpn-6e09d1941569d5138b961bb7d2d56526663ef1c8.zip
Move common test logic to :test:common
Diffstat (limited to 'android/test/e2e/src')
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt4
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt11
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt6
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt2
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/ConnCheckConstants.kt5
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt1
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/PackageConstants.kt3
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/ResourceConstants.kt5
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/TimeoutConstants.kt7
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/extension/UiAutomatorExtensions.kt55
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/AppInteractor.kt83
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/SystemSettingsInteractor.kt2
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/WebViewInteractor.kt9
-rw-r--r--android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CaptureScreenshotOnFailedTestRule.kt31
14 files changed, 21 insertions, 203 deletions
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt
index feabbc5335..0da55954fb 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/ConnectionTest.kt
@@ -2,7 +2,7 @@ package net.mullvad.mullvadvpn.test.e2e
import androidx.test.uiautomator.By
import junit.framework.Assert.assertEquals
-import net.mullvad.mullvadvpn.test.e2e.extension.findObjectWithTimeout
+import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
import net.mullvad.mullvadvpn.test.e2e.interactor.WebViewInteractor
import net.mullvad.mullvadvpn.test.e2e.misc.CleanupAccountTestRule
import org.junit.Rule
@@ -17,7 +17,7 @@ class ConnectionTest : EndToEndTest() {
@Test
fun testConnectAndVerifyWithConnectionCheck() {
// Given
- app.launchAndEnsureLoggedIn()
+ app.launchAndEnsureLoggedIn(validTestAccountToken)
// When
device.findObjectWithTimeout(By.text("Secure my connection")).click()
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt
index 8adf065663..35ba3fbe46 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/EndToEndTest.kt
@@ -4,12 +4,13 @@ import android.content.Context
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.runner.AndroidJUnit4
import androidx.test.uiautomator.UiDevice
+import net.mullvad.mullvadvpn.test.common.interactor.AppInteractor
+import net.mullvad.mullvadvpn.test.common.rule.CaptureScreenshotOnFailedTestRule
import net.mullvad.mullvadvpn.test.e2e.constant.INVALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY
+import net.mullvad.mullvadvpn.test.e2e.constant.LOG_TAG
import net.mullvad.mullvadvpn.test.e2e.constant.VALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY
import net.mullvad.mullvadvpn.test.e2e.extension.getRequiredArgument
-import net.mullvad.mullvadvpn.test.e2e.interactor.AppInteractor
import net.mullvad.mullvadvpn.test.e2e.interactor.WebViewInteractor
-import net.mullvad.mullvadvpn.test.e2e.misc.CaptureScreenshotOnFailedTestRule
import org.junit.Before
import org.junit.Rule
import org.junit.runner.RunWith
@@ -19,7 +20,7 @@ abstract class EndToEndTest {
@Rule
@JvmField
- val rule = CaptureScreenshotOnFailedTestRule()
+ val rule = CaptureScreenshotOnFailedTestRule(LOG_TAG)
lateinit var device: UiDevice
lateinit var targetContext: Context
@@ -40,9 +41,7 @@ abstract class EndToEndTest {
app = AppInteractor(
device,
- targetContext,
- validTestAccountToken,
- invalidTestAccountToken
+ targetContext
)
web = WebViewInteractor(
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
index d16795e5dd..e8fe5b3c7e 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/LoginTest.kt
@@ -3,8 +3,8 @@ package net.mullvad.mullvadvpn.test.e2e
import androidx.test.runner.AndroidJUnit4
import androidx.test.uiautomator.By
import junit.framework.Assert.assertNotNull
-import net.mullvad.mullvadvpn.test.e2e.constant.LOGIN_FAILURE_TIMEOUT
-import net.mullvad.mullvadvpn.test.e2e.extension.findObjectWithTimeout
+import net.mullvad.mullvadvpn.test.common.constant.LOGIN_FAILURE_TIMEOUT
+import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
import net.mullvad.mullvadvpn.test.e2e.misc.CleanupAccountTestRule
import org.junit.Rule
import org.junit.Test
@@ -45,7 +45,7 @@ class LoginTest : EndToEndTest() {
@Test
fun testLogout() {
// Given
- app.launchAndEnsureLoggedIn()
+ app.launchAndEnsureLoggedIn(validTestAccountToken)
// When
app.clickSettingsCog()
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt
index a6a04bf094..8ab05520de 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/WebLinkTest.kt
@@ -1,7 +1,7 @@
package net.mullvad.mullvadvpn.test.e2e
import androidx.test.uiautomator.By
-import net.mullvad.mullvadvpn.test.e2e.extension.findObjectWithTimeout
+import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
import org.junit.Test
class WebLinkTest : EndToEndTest() {
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/ConnCheckConstants.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/ConnCheckConstants.kt
new file mode 100644
index 0000000000..825b6a20c7
--- /dev/null
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/ConnCheckConstants.kt
@@ -0,0 +1,5 @@
+package net.mullvad.mullvadvpn.test.e2e.constant
+
+const val CONN_CHECK_URL = "https://mullvad.net/en/check/"
+const val CONN_CHECK_IS_CONNECTED = "Using Mullvad VPN"
+const val CONN_CHECK_IS_NOT_CONNECTED = "Not using Mullvad VPN"
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt
index 23f29fca3c..98fd52a333 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/Constants.kt
@@ -1,6 +1,5 @@
package net.mullvad.mullvadvpn.test.e2e.constant
const val LOG_TAG = "mullvad-e2e"
-const val CONN_CHECK_URL = "https://mullvad.net/en/check/"
const val VALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY = "valid_test_account_token"
const val INVALID_TEST_ACCOUNT_TOKEN_ARGUMENT_KEY = "invalid_test_account_token"
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/PackageConstants.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/PackageConstants.kt
deleted file mode 100644
index 5476c37687..0000000000
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/PackageConstants.kt
+++ /dev/null
@@ -1,3 +0,0 @@
-package net.mullvad.mullvadvpn.test.e2e.constant
-
-const val MULLVAD_PACKAGE = "net.mullvad.mullvadvpn"
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/ResourceConstants.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/ResourceConstants.kt
deleted file mode 100644
index 7b27a581ad..0000000000
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/ResourceConstants.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package net.mullvad.mullvadvpn.test.e2e.constant
-
-const val SETTINGS_COG_ID = "net.mullvad.mullvadvpn:id/settings"
-const val TUNNEL_INFO_ID = "net.mullvad.mullvadvpn:id/tunnel_info"
-const val TUNNEL_OUT_ADDRESS_ID = "net.mullvad.mullvadvpn:id/out_address"
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/TimeoutConstants.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/TimeoutConstants.kt
deleted file mode 100644
index 6599a26bcd..0000000000
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/constant/TimeoutConstants.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package net.mullvad.mullvadvpn.test.e2e.constant
-
-const val APP_LAUNCH_TIMEOUT = 5000L
-const val CONNECTION_TIMEOUT = 30000L
-const val DEFAULT_INTERACTION_TIMEOUT = 3000L
-const val LOGIN_TIMEOUT = 30000L
-const val LOGIN_FAILURE_TIMEOUT = 60000L
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/extension/UiAutomatorExtensions.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/extension/UiAutomatorExtensions.kt
deleted file mode 100644
index 5d96f4cc45..0000000000
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/extension/UiAutomatorExtensions.kt
+++ /dev/null
@@ -1,55 +0,0 @@
-package net.mullvad.mullvadvpn.test.e2e.extension
-
-import androidx.test.uiautomator.By
-import androidx.test.uiautomator.BySelector
-import androidx.test.uiautomator.UiDevice
-import androidx.test.uiautomator.UiObject2
-import androidx.test.uiautomator.Until
-import java.util.regex.Pattern
-import net.mullvad.mullvadvpn.test.e2e.constant.DEFAULT_INTERACTION_TIMEOUT
-
-fun UiDevice.findObjectByCaseInsensitiveText(text: String): UiObject2 {
- return findObjectWithTimeout(By.text(Pattern.compile(text, Pattern.CASE_INSENSITIVE)))
-}
-
-fun UiObject2.findObjectByCaseInsensitiveText(text: String): UiObject2 {
- return findObjectWithTimeout(By.text(Pattern.compile(text, Pattern.CASE_INSENSITIVE)))
-}
-
-fun UiDevice.findObjectWithTimeout(
- selector: BySelector,
- timeout: Long = DEFAULT_INTERACTION_TIMEOUT
-): UiObject2 {
-
- wait(
- Until.hasObject(selector),
- timeout
- )
-
- return try {
- findObject(selector)
- } catch (e: NullPointerException) {
- throw IllegalArgumentException(
- "No matches for selector within timeout ($timeout): $selector"
- )
- }
-}
-
-fun UiObject2.findObjectWithTimeout(
- selector: BySelector,
- timeout: Long = DEFAULT_INTERACTION_TIMEOUT
-): UiObject2 {
-
- wait(
- Until.hasObject(selector),
- timeout
- )
-
- return try {
- findObject(selector)
- } catch (e: NullPointerException) {
- throw IllegalArgumentException(
- "No matches for selector within timeout ($timeout): $selector"
- )
- }
-}
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/AppInteractor.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/AppInteractor.kt
deleted file mode 100644
index a6739b91e5..0000000000
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/AppInteractor.kt
+++ /dev/null
@@ -1,83 +0,0 @@
-package net.mullvad.mullvadvpn.test.e2e.interactor
-
-import android.content.Context
-import android.content.Intent
-import android.widget.ImageButton
-import androidx.test.uiautomator.By
-import androidx.test.uiautomator.UiDevice
-import androidx.test.uiautomator.Until
-import net.mullvad.mullvadvpn.test.e2e.constant.APP_LAUNCH_TIMEOUT
-import net.mullvad.mullvadvpn.test.e2e.constant.CONNECTION_TIMEOUT
-import net.mullvad.mullvadvpn.test.e2e.constant.LOGIN_TIMEOUT
-import net.mullvad.mullvadvpn.test.e2e.constant.MULLVAD_PACKAGE
-import net.mullvad.mullvadvpn.test.e2e.constant.SETTINGS_COG_ID
-import net.mullvad.mullvadvpn.test.e2e.constant.TUNNEL_INFO_ID
-import net.mullvad.mullvadvpn.test.e2e.constant.TUNNEL_OUT_ADDRESS_ID
-import net.mullvad.mullvadvpn.test.e2e.extension.findObjectWithTimeout
-
-class AppInteractor(
- private val device: UiDevice,
- private val targetContext: Context,
- private val validTestAccountToken: String,
- private val invalidTestAccountToken: String
-) {
- fun launch() {
- device.pressHome()
- // Wait for launcher
- device.wait(
- Until.hasObject(By.pkg(device.launcherPackageName).depth(0)),
- APP_LAUNCH_TIMEOUT
- )
- val intent =
- targetContext.packageManager.getLaunchIntentForPackage(MULLVAD_PACKAGE)?.apply {
- // Clear out any previous instances
- addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
- }
- targetContext.startActivity(intent)
- device.wait(
- Until.hasObject(By.pkg(MULLVAD_PACKAGE).depth(0)),
- APP_LAUNCH_TIMEOUT
- )
- }
-
- fun launchAndEnsureLoggedIn(accountToken: String = validTestAccountToken) {
- launch()
- attemptLogin(accountToken)
- ensureLoggedIn()
- }
-
- fun attemptLogin(accountToken: String = validTestAccountToken) {
- device.findObjectWithTimeout(By.text("Login"))
- val loginObject = device.findObjectWithTimeout(By.clazz("android.widget.EditText"))
- .apply { text = accountToken }
- loginObject.parent.findObject(By.clazz(ImageButton::class.java)).click()
- }
-
- fun ensureLoggedIn() {
- device.findObjectWithTimeout(By.text("UNSECURED CONNECTION"), LOGIN_TIMEOUT)
- }
-
- fun extractIpAddress(): String {
- device.findObjectWithTimeout(By.res(TUNNEL_INFO_ID)).click()
- return device.findObjectWithTimeout(
- By.res(TUNNEL_OUT_ADDRESS_ID),
- CONNECTION_TIMEOUT
- ).text.extractIpAddress()
- }
-
- fun clickSettingsCog() {
- device.findObjectWithTimeout(By.res(SETTINGS_COG_ID)).click()
- }
-
- fun clickListItemByText(text: String) {
- device.findObjectWithTimeout(By.text(text)).click()
- }
-
- fun clickActionButtonByText(text: String) {
- device.findObjectWithTimeout(By.text(text)).click()
- }
-
- private fun String.extractIpAddress(): String {
- return split(" ")[1].split(" ")[0]
- }
-}
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/SystemSettingsInteractor.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/SystemSettingsInteractor.kt
index bbe941d488..9e5f0aa665 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/SystemSettingsInteractor.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/SystemSettingsInteractor.kt
@@ -5,7 +5,7 @@ import android.content.Context
import android.content.Intent
import androidx.test.uiautomator.By
import androidx.test.uiautomator.UiDevice
-import net.mullvad.mullvadvpn.test.e2e.extension.findObjectByCaseInsensitiveText
+import net.mullvad.mullvadvpn.test.common.extension.findObjectByCaseInsensitiveText
class SystemSettingsInteractor(
private val uiDevice: UiDevice,
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/WebViewInteractor.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/WebViewInteractor.kt
index fd809b13dd..f244aed5e7 100644
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/WebViewInteractor.kt
+++ b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/interactor/WebViewInteractor.kt
@@ -7,11 +7,10 @@ import android.webkit.WebView
import androidx.test.uiautomator.By
import androidx.test.uiautomator.UiDevice
import net.mullvad.mullvadvpn.TestActivity
-import net.mullvad.mullvadvpn.test.e2e.constant.CONNECTION_CHECK_IS_CONNECTED
+import net.mullvad.mullvadvpn.test.common.extension.findObjectByCaseInsensitiveText
+import net.mullvad.mullvadvpn.test.common.extension.findObjectWithTimeout
+import net.mullvad.mullvadvpn.test.e2e.constant.CONN_CHECK_IS_CONNECTED
import net.mullvad.mullvadvpn.test.e2e.constant.CONN_CHECK_URL
-import net.mullvad.mullvadvpn.test.e2e.extension.findObjectByCaseInsensitiveText
-import net.mullvad.mullvadvpn.test.e2e.extension.findObjectWithTimeout
-
class WebViewInteractor(
private val context: Context,
private val device: UiDevice
@@ -37,7 +36,7 @@ class WebViewInteractor(
val wireGuardIpv4ConnectionRow = webView.findObjects(By.clazz(View::class.java))
.first { it.text?.endsWith("(WireGuard)") == true }
val wireGuardIpv4Address = wireGuardIpv4ConnectionRow.text.split(" ")[0].trim()
- return ConnCheckState(stateText.text == CONNECTION_CHECK_IS_CONNECTED, wireGuardIpv4Address)
+ return ConnCheckState(stateText.text == CONN_CHECK_IS_CONNECTED, wireGuardIpv4Address)
}
data class ConnCheckState(
diff --git a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CaptureScreenshotOnFailedTestRule.kt b/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CaptureScreenshotOnFailedTestRule.kt
deleted file mode 100644
index 5be65f7ec8..0000000000
--- a/android/test/e2e/src/main/kotlin/net/mullvad/mullvadvpn/test/e2e/misc/CaptureScreenshotOnFailedTestRule.kt
+++ /dev/null
@@ -1,31 +0,0 @@
-package net.mullvad.mullvadvpn.test.e2e.misc
-
-import android.util.Log
-import androidx.test.runner.screenshot.BasicScreenCaptureProcessor
-import androidx.test.runner.screenshot.ScreenCaptureProcessor
-import androidx.test.runner.screenshot.Screenshot
-import java.time.LocalDateTime
-import java.time.format.DateTimeFormatter
-import net.mullvad.mullvadvpn.test.e2e.constant.LOG_TAG
-import org.junit.rules.TestWatcher
-import org.junit.runner.Description
-
-class CaptureScreenshotOnFailedTestRule : TestWatcher() {
- override fun failed(e: Throwable?, description: Description?) {
- Log.d(LOG_TAG, "Capturing screenshot of failed test: " + description?.methodName)
- val timestamp = DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now()).replace(":", "")
- val screenshotName = "$timestamp-${description?.methodName}"
- captureScreenshot(screenshotName)
- }
-
- private fun captureScreenshot(screenShotName: String) {
- try {
- val screenCapture = Screenshot.capture().apply { name = screenShotName }
- val processorSet: MutableSet<ScreenCaptureProcessor> = HashSet()
- processorSet.add(BasicScreenCaptureProcessor())
- screenCapture.process(processorSet)
- } catch (ex: Exception) {
- Log.d(LOG_TAG, "Error capturing screenshot: " + ex.message)
- }
- }
-}