1 /* 2 * Copyright (C) 2019 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.launcher3.tapl; 18 19 import static java.util.regex.Pattern.CASE_INSENSITIVE; 20 21 import androidx.test.uiautomator.By; 22 import androidx.test.uiautomator.BySelector; 23 import androidx.test.uiautomator.UiObject2; 24 25 import java.util.regex.Pattern; 26 27 public class AddToHomeScreenPrompt { 28 private static final Pattern ADD_AUTOMATICALLY = 29 Pattern.compile("^Add to Home screen$", CASE_INSENSITIVE); 30 private final LauncherInstrumentation mLauncher; 31 private final UiObject2 mWidgetCell; 32 AddToHomeScreenPrompt(LauncherInstrumentation launcher)33 AddToHomeScreenPrompt(LauncherInstrumentation launcher) { 34 mLauncher = launcher; 35 mWidgetCell = launcher.waitForLauncherObject(getSelector()); 36 mLauncher.assertNotNull("Can't find widget cell object", mWidgetCell); 37 } 38 getSelector()39 private static BySelector getSelector() { 40 return By.clazz("com.android.launcher3.widget.WidgetCell"); 41 } 42 addAutomatically()43 public void addAutomatically() { 44 try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) { 45 mLauncher.clickObject( 46 mLauncher.waitForObjectInContainer( 47 mWidgetCell.getParent().getParent().getParent().getParent(), 48 By.text(ADD_AUTOMATICALLY)) 49 ); 50 mLauncher.waitUntilLauncherObjectGone(getSelector()); 51 } 52 } 53 } 54