From 4b8433d3782511f68a62332fd4b2c50dbdc1d310 Mon Sep 17 00:00:00 2001 From: Anand Bagmar Date: Wed, 17 Mar 2021 18:36:59 +0530 Subject: [PATCH] disable notifications and toasts on device - in pCloudy device lab or for local --- .../java/com/znsio/e2e/runner/Runner.java | 4 ++++ .../java/com/znsio/e2e/tools/Drivers.java | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/main/java/com/znsio/e2e/runner/Runner.java b/src/main/java/com/znsio/e2e/runner/Runner.java index c8042af46..c97f53c57 100644 --- a/src/main/java/com/znsio/e2e/runner/Runner.java +++ b/src/main/java/com/znsio/e2e/runner/Runner.java @@ -243,6 +243,10 @@ public static String getAppPackageName () { return configs.get(APP_PACKAGE_NAME); } + public static boolean isRunningInPCloudy () { + return configsBoolean.get(IS_RUN_ON_CLOUD); + } + private void setBranchName () { String[] listOfDevices = new String[]{"git", "rev-parse", "--abbrev-ref", "HEAD"}; CommandLineResponse response = CommandLineExecutor.execCommand(listOfDevices); diff --git a/src/main/java/com/znsio/e2e/tools/Drivers.java b/src/main/java/com/znsio/e2e/tools/Drivers.java index caca41cd7..ab9b8a45a 100644 --- a/src/main/java/com/znsio/e2e/tools/Drivers.java +++ b/src/main/java/com/znsio/e2e/tools/Drivers.java @@ -6,6 +6,8 @@ import com.znsio.e2e.entities.TEST_CONTEXT; import com.znsio.e2e.exceptions.InvalidTestDataException; import com.znsio.e2e.runner.Runner; +import com.znsio.e2e.tools.cmd.CommandLineExecutor; +import com.znsio.e2e.tools.cmd.CommandLineResponse; import io.appium.java_client.AppiumDriver; import io.appium.java_client.appmanagement.ApplicationState; import io.github.bonigarcia.wdm.WebDriverManager; @@ -104,9 +106,27 @@ private Driver createAndroidDriverForUser (String userPersona, Platform forPlatf userPersona, forPlatform.name(), numberOfAndroidDriversUsed); + disableNotificationsAndToastsOnDevice(currentDriver); return currentDriver; } + private void disableNotificationsAndToastsOnDevice (Driver currentDriver) { + if (Runner.isRunningInPCloudy()) { + Object disableToasts = ((AppiumDriver) currentDriver.getInnerDriver()).executeScript("pCloudy_executeAdbCommand", "adb shell appops set " + Runner.getAppPackageName() + " TOAST_WINDOW deny"); + System.out.println("@disableToastsCommandResponse: " + disableToasts); + Object disableNotifications = ((AppiumDriver) currentDriver.getInnerDriver()).executeScript("pCloudy_executeAdbCommand", "adb shell settings put global heads_up_notifications_enabled 0"); + System.out.println("@disableNotificationsCommandResponse: " + disableNotifications); + } else { + String[] disableToastsCommand = new String[] {"adb", "-s", "${device.SERIAL}", "shell", "appops", "set", Runner.getAppPackageName(), "TOAST_WINDOW", "deny"}; + String[] disableNotificationsCommand = new String[] {"adb", "-s", "${device.SERIAL}", "shell", "settings", "put", "global", "heads_up_notifications_enabled", "0"}; + + CommandLineResponse disableToastsCommandResponse = CommandLineExecutor.execCommand(disableToastsCommand); + System.out.println("disableToastsCommandResponse: " + disableToastsCommandResponse); + CommandLineResponse disableNotificationsCommandResponse = CommandLineExecutor.execCommand(disableNotificationsCommand); + System.out.println("disableNotificationsCommandResponse: " + disableNotificationsCommandResponse); + } + } + @NotNull private Driver createWebDriverForUser (String userPersona, Platform forPlatform, TestExecutionContext context) { System.out.printf("getWebDriverForUser: begin: userPersona: '%s', Platform: '%s', Number of webdrivers: '%d'%n",