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