private UiObject navigateToAppLaunchIcon(String appLaunchIconName) throws UiObjectNotFoundException { // Simulate a short press on the HOME button. this.device.pressHome(); // We’re now in the home screen. Next, we want to simulate // a user bringing up the All Apps screen. // If you use the uiautomatorviewer tool to capture a snapshot // of the Home screen, notice that the All Apps button’s // content-description property has the value "Apps". We can // use this property to create a UiSelector to find the button. UiObject allAppsButton = this.device.findObject(new UiSelector().description("Apps")); // Simulate a click to bring up the All Apps screen. allAppsButton.clickAndWaitForNewWindow(); // In Android 6 default apps menu (Nexus 5X) there is a search box to locate the application // Use it to search for the application UiObject searchTextbox = this.device.findObject( new UiSelector() .resourceId("com.google.android.googlequicksearchbox:id/search_box_proxy")); searchTextbox.setText(appLaunchIconName); waitForGuiToStabilize(); // The application (if found), will be the first item in the application list container // Type: com.google.android.googlequicksearchbox:id/icon UiObject appListview = this.device.findObject( new UiSelector() .resourceId("com.google.android.googlequicksearchbox:id/apps_list_view")); UiObject selectedItem = appListview.getChild(new UiSelector().index(0)); d(uiaDaemon_logcatTag, selectedItem.getContentDescription()); return selectedItem; }
private void loadXPrivacyConfig(String actionCommand) { // There is an intent to open the import configuration screen, // however there is a bug on XPrivacy, when that intent is called, // after a file is selected its contents are not displayed and no // operation is performed Log.d(uiaDaemon_logcatTag, "Loading XPrivacy configuration file."); // Extract the configuration file name String fileName = actionCommand.split("=")[1]; Log.d(uiaDaemon_logcatTag, "Filename = " + fileName); try { // launchApp("XPrivacy"); String XPrivacy = "biz.bokhorst.xprivacy"; String XPrivacyToolbar = XPrivacy + ":id/widgetToolbar"; String XPrivacyOkButton = XPrivacy + ":id/btnOk"; UiObject toolbar = this.device.findObject(new UiSelector().resourceId(XPrivacyToolbar)); // Locate the toolbar UiObject buttonSet = toolbar.getChild(new UiSelector().index(2)); UiObject menuButton = buttonSet.getChild(new UiSelector().index(1)); // Click to open the menu menuButton.click(); waitForGuiToStabilize(); // Select "Operations …" item from menu UiObject operationsButton = this.device.findObject(new UiSelector().text("Operations …")); operationsButton.click(); waitForGuiToStabilize(); // Select "Import" UiObject importButton = this.device.findObject(new UiSelector().text("Import")); importButton.click(); waitForGuiToStabilize(); // Select configuration file UiObject fileManagerButton = this.device.findObject(new UiSelector().text("OI File Manager")); fileManagerButton.click(); waitForGuiToStabilize(); UiObject textInput = this.device.findObject(new UiSelector().text("File name")); textInput.setText(fileName); UiObject pickFileButton = this.device.findObject(new UiSelector().text("Pick file")); pickFileButton.click(); waitForGuiToStabilize(); UiObject okButton = this.device.findObject(new UiSelector().resourceId(XPrivacyOkButton)); okButton.click(); do { okButton = this.device.findObject(new UiSelector().resourceId(XPrivacyOkButton)); waitForGuiToStabilize(); } while (!okButton.isEnabled()); waitForGuiToStabilize(); okButton.click(); this.device.waitForIdle(); waitForGuiToStabilize(); // Return to home this.device.pressHome(); this.device.waitForIdle(); } catch (UiObjectNotFoundException ex) { Log.e(uiaDaemon_logcatTag, "Failed to import XPrivacy configuration."); } // catch (UiAutomatorDaemonException ex) // { // Log.e(uiaDaemon_logcatTag, "Failed to start XPrivacy."); // } Log.d(uiaDaemon_logcatTag, "XPrivacy configuration file loaded."); }