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

Commit ee151059 authored by Winson Chung's avatar Winson Chung Committed by Android (Google) Code Review
Browse files

Merge "Expose DockedStackListener for logging purposes in Launcher"

parents d3007950 6b0f1a3d
Loading
Loading
Loading
Loading
+63 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 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.systemui.shared.system;

import android.view.IDockedStackListener;

/**
 * An interface to track docked stack changes.
 */
public class DockedStackListenerCompat {

    IDockedStackListener.Stub mListener = new IDockedStackListener.Stub() {
        @Override
        public void onDividerVisibilityChanged(boolean visible) {}

        @Override
        public void onDockedStackExistsChanged(boolean exists) {
            DockedStackListenerCompat.this.onDockedStackExistsChanged(exists);
        }

        @Override
        public void onDockedStackMinimizedChanged(boolean minimized, long animDuration,
                boolean isHomeStackResizable) {
            DockedStackListenerCompat.this.onDockedStackMinimizedChanged(minimized, animDuration,
                    isHomeStackResizable);
        }

        @Override
        public void onAdjustedForImeChanged(boolean adjustedForIme, long animDuration) {}

        @Override
        public void onDockSideChanged(final int newDockSide) {
            DockedStackListenerCompat.this.onDockSideChanged(newDockSide);
        }
    };

    public void onDockedStackExistsChanged(boolean exists) {
        // To be overridden
    }

    public void onDockedStackMinimizedChanged(boolean minimized, long animDuration,
            boolean isHomeStackResizable) {
        // To be overridden
    }

    public void onDockSideChanged(final int newDockSide) {
        // To be overridden
    }
}
+12 −0
Original line number Diff line number Diff line
@@ -166,4 +166,16 @@ public class WindowManagerWrapper {
        }
        return NAV_BAR_POS_INVALID;
    }

    /**
     * Registers a docked stack listener with the system.
     */
    public void registerDockedStackListener(DockedStackListenerCompat listener) {
        try {
            WindowManagerGlobal.getWindowManagerService().registerDockedStackListener(
                    listener.mListener);
        } catch (RemoteException e) {
            Log.w(TAG, "Failed to register docked stack listener");
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@
    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
    <uses-permission android:name="android.permission.NETWORK_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.REGISTER_WINDOW_MANAGER_LISTENERS" />

    <application android:debuggable="true">
        <uses-library android:name="android.test.runner" />
+2 −4
Original line number Diff line number Diff line
@@ -6926,10 +6926,8 @@ public class WindowManagerService extends IWindowManager.Stub

    @Override
    public void registerDockedStackListener(IDockedStackListener listener) {
        if (!checkCallingPermission(REGISTER_WINDOW_MANAGER_LISTENERS,
                "registerDockedStackListener()")) {
            return;
        }
        mAtmInternal.enforceCallerIsRecentsOrHasPermission(REGISTER_WINDOW_MANAGER_LISTENERS,
                "registerDockedStackListener()");
        synchronized (mWindowMap) {
            // TODO(multi-display): The listener is registered on the default display only.
            getDefaultDisplayContentLocked().mDividerControllerLocked.registerDockedStackListener(