Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70c9aee0 authored by Becky Qiu's avatar Becky Qiu Committed by Android (Google) Code Review
Browse files

Merge "Revert "Expose getSearchBox from the HomeAllApps class"" into tm-qpr-dev

parents d01497d7 d5311f65
Loading
Loading
Loading
Loading
+0 −37
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.launcher3.tapl;

import androidx.test.uiautomator.UiObject2;

/**
 * Operations on AllApp screen qsb.
 */
class AllAppsQsb extends Qsb {

    private final UiObject2 mAllAppsContainer;

    AllAppsQsb(LauncherInstrumentation launcher, UiObject2 allAppsContainer) {
        super(launcher);
        mAllAppsContainer = allAppsContainer;
        waitForQsbObject();
    }

    @Override
    protected UiObject2 waitForQsbObject() {
        return mLauncher.waitForObjectInContainer(mAllAppsContainer, "search_container_all_apps");
    }
}
+0 −9
Original line number Diff line number Diff line
@@ -115,13 +115,4 @@ public class HomeAllApps extends AllApps {
            }
        }
    }

    /**
     * Return the QSB UI object on the AllApps screen.
     * @return the QSB UI object.
     */
    @NonNull
    public Qsb getQsb() {
        return new AllAppsQsb(mLauncher, verifyActiveContainer());
    }
}
+56 −10
Original line number Diff line number Diff line
@@ -15,23 +15,69 @@
 */
package com.android.launcher3.tapl;

import androidx.annotation.NonNull;
import androidx.test.uiautomator.By;
import androidx.test.uiautomator.BySelector;
import androidx.test.uiautomator.UiObject2;
import androidx.test.uiautomator.Until;

/**
 * Operations on Home screen qsb.
 * Operations on home screen qsb.
 */
class HomeQsb extends Qsb {
public class HomeQsb {

    private final UiObject2 mHotSeat;
    private final LauncherInstrumentation mLauncher;
    private static final String ASSISTANT_APP_PACKAGE = "com.google.android.googlequicksearchbox";
    private static final String ASSISTANT_ICON_RES_ID = "mic_icon";

    HomeQsb(LauncherInstrumentation launcher, UiObject2 hotseat) {
        super(launcher);
        mHotSeat = hotseat;
        waitForQsbObject();

    HomeQsb(LauncherInstrumentation launcher) {
        mLauncher = launcher;
        mLauncher.waitForLauncherObject("search_container_hotseat");
    }

    /**
     * Launch assistant app by tapping mic icon on qsb.
     */
    @NonNull
    public LaunchedAppState launchAssistant() {
        try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
                "want to click assistant mic icon button");
             LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
            UiObject2 assistantIcon = mLauncher.waitForLauncherObject(ASSISTANT_ICON_RES_ID);

            LauncherInstrumentation.log("HomeQsb.launchAssistant before click "
                    + assistantIcon.getVisibleCenter() + " in "
                    + mLauncher.getVisibleBounds(assistantIcon));

            mLauncher.clickLauncherObject(assistantIcon);

            try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("clicked")) {
                // assert Assistant App Launched
                BySelector selector = By.pkg(ASSISTANT_APP_PACKAGE);
                mLauncher.assertTrue(
                        "assistant app didn't start: (" + selector + ")",
                        mLauncher.getDevice().wait(Until.hasObject(selector),
                                LauncherInstrumentation.WAIT_TIME_MS)
                );
                return new LaunchedAppState(mLauncher);
            }
        }
    }

    @Override
    protected UiObject2 waitForQsbObject() {
        return mLauncher.waitForObjectInContainer(mHotSeat, "search_container_hotseat");
    /**
     * Show search result page from tapping qsb.
     */
    public SearchResultFromQsb showSearchResult() {
        try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
                "want to open search result page");
             LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
            mLauncher.clickLauncherObject(
                    mLauncher.waitForLauncherObject("search_container_hotseat"));
            try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer(
                    "clicked qsb to open search result page")) {
                return new SearchResultFromQsb(mLauncher);
            }
        }
    }
}
+0 −86
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.launcher3.tapl;

import androidx.annotation.NonNull;
import androidx.test.uiautomator.By;
import androidx.test.uiautomator.BySelector;
import androidx.test.uiautomator.UiObject2;
import androidx.test.uiautomator.Until;

/**
 * Operations on qsb from either Home screen or AllApp screen.
 */
public abstract class Qsb {

    private static final String ASSISTANT_APP_PACKAGE = "com.google.android.googlequicksearchbox";
    private static final String ASSISTANT_ICON_RES_ID = "mic_icon";
    protected final LauncherInstrumentation mLauncher;

    protected Qsb(LauncherInstrumentation launcher) {
        mLauncher = launcher;
    }

    // Waits for the quick search box.
    protected abstract UiObject2 waitForQsbObject();
    /**
     * Launch assistant app by tapping mic icon on qsb.
     */

    @NonNull
    public LaunchedAppState launchAssistant() {
        try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
                "want to click assistant mic icon button");
             LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
            UiObject2 assistantIcon = mLauncher.waitForLauncherObject(ASSISTANT_ICON_RES_ID);

            LauncherInstrumentation.log("Qsb.launchAssistant before click "
                    + assistantIcon.getVisibleCenter() + " in "
                    + mLauncher.getVisibleBounds(assistantIcon));

            mLauncher.clickLauncherObject(assistantIcon);

            try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("clicked")) {
                // assert Assistant App Launched
                BySelector selector = By.pkg(ASSISTANT_APP_PACKAGE);
                mLauncher.assertTrue(
                        "assistant app didn't start: (" + selector + ")",
                        mLauncher.getDevice().wait(Until.hasObject(selector),
                                LauncherInstrumentation.WAIT_TIME_MS)
                );
                return new LaunchedAppState(mLauncher);
            }
        }
    }

    /**
     * Show search result page from tapping qsb.
     */
    public SearchResultFromQsb showSearchResult() {
        try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
                "want to open search result page");
             LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
            mLauncher.clickLauncherObject(waitForQsbObject());
            // wait for the result rendering to complete
            mLauncher.waitForIdle();
            try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer(
                    "clicked qsb to open search result page")) {
                return new SearchResultFromQsb(mLauncher);
            }
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ import androidx.test.uiautomator.UiObject2;
import java.util.ArrayList;

/**
 * Operations on search result page opened from qsb.
 * Operations on search result page opened from home screen qsb.
 */
public class SearchResultFromQsb {
    // The input resource id in the search box.
Loading