/* * Copyright (C) 2016 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.searchlauncher; import com.android.launcher3.Launcher; import com.android.launcher3.Launcher.LauncherOverlay; import com.android.launcher3.Launcher.LauncherOverlayCallbacks; import com.google.android.libraries.gsa.launcherclient.LauncherClient; import com.google.android.libraries.gsa.launcherclient.LauncherClientCallbacks; /** * Implements {@link LauncherOverlay} and passes all the corresponding events to {@link * LauncherClient}. {@see setClient} * *

Implements {@link LauncherClientCallbacks} and sends all the corresponding callbacks to {@link * Launcher}. */ public class OverlayCallbackImpl implements LauncherOverlay, LauncherClientCallbacks { private final Launcher mLauncher; private LauncherClient mClient; private LauncherOverlayCallbacks mLauncherOverlayCallbacks; private boolean mWasOverlayAttached = false; public OverlayCallbackImpl(Launcher launcher) { mLauncher = launcher; } public void setClient(LauncherClient client) { mClient = client; } @Override public void onServiceStateChanged(boolean overlayAttached, boolean hotwordActive) { if (overlayAttached != mWasOverlayAttached) { mWasOverlayAttached = overlayAttached; mLauncher.setLauncherOverlay(overlayAttached ? this : null); } } @Override public void onOverlayScrollChanged(float progress) { if (mLauncherOverlayCallbacks != null) { mLauncherOverlayCallbacks.onScrollChanged(progress); } } @Override public void onScrollInteractionBegin() { mClient.startMove(); } @Override public void onScrollInteractionEnd() { mClient.endMove(); } @Override public void onScrollChange(float progress, boolean rtl) { mClient.updateMove(progress); } @Override public void setOverlayCallbacks(Launcher.LauncherOverlayCallbacks callbacks) { mLauncherOverlayCallbacks = callbacks; } }