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 com.android.launcher3.testing.TestProtocol; 26 27 import java.util.regex.Pattern; 28 29 public class AddToHomeScreenPrompt { 30 private static final Pattern ADD_AUTOMATICALLY = 31 Pattern.compile("^Add to Home screen$", CASE_INSENSITIVE); 32 private final LauncherInstrumentation mLauncher; 33 private final UiObject2 mWidgetCell; 34 AddToHomeScreenPrompt(LauncherInstrumentation launcher)35 AddToHomeScreenPrompt(LauncherInstrumentation launcher) { 36 mLauncher = launcher; 37 mWidgetCell = launcher.waitForLauncherObject(getSelector()); 38 mLauncher.assertNotNull("Can't find widget cell object", mWidgetCell); 39 } 40 getSelector()41 private static BySelector getSelector() { 42 return By.clazz("com.android.launcher3.widget.WidgetCell"); 43 } 44 addAutomatically()45 public void addAutomatically() { 46 try (LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) { 47 if (mLauncher.getNavigationModel() 48 != LauncherInstrumentation.NavigationModel.THREE_BUTTON) { 49 if (!mLauncher.isLauncher3()) { 50 mLauncher.expectEvent( 51 TestProtocol.SEQUENCE_TIS, 52 LauncherInstrumentation.EVENT_TOUCH_DOWN_TIS); 53 mLauncher.expectEvent( 54 TestProtocol.SEQUENCE_TIS, LauncherInstrumentation.EVENT_TOUCH_UP_TIS); 55 } 56 } 57 mLauncher.waitForObjectInContainer( 58 mWidgetCell.getParent().getParent().getParent().getParent(), 59 By.text(ADD_AUTOMATICALLY)).click(); 60 mLauncher.waitUntilLauncherObjectGone(getSelector()); 61 } 62 } 63 } 64