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

Commit 64cdc145 authored by Filip Gruszczynski's avatar Filip Gruszczynski
Browse files

Remove dock divider surface when it's not visible.

We achieve the removal by notifying System UI about the visibility of
the dock divider. This way System UI can change visibility of the root
view, which in turn will cause the WMS to destroy or create the surface
as necessary.

Bug: 25844096
Bug: 25683717

Change-Id: Idbc33368db697a059af49106dfadb80c3d7d06c1
parent 7fc7f48a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -261,6 +261,7 @@ LOCAL_SRC_FILES += \
	core/java/android/view/IApplicationToken.aidl \
	core/java/android/view/IAppTransitionAnimationSpecsFuture.aidl \
	core/java/android/view/IAssetAtlas.aidl \
	core/java/android/view/IDockDividerVisibilityListener.aidl \
	core/java/android/view/IGraphicsStats.aidl \
	core/java/android/view/IInputFilter.aidl \
	core/java/android/view/IInputFilterHost.aidl \
+27 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2015, 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 android.view;

/**
  * Listener for showing/hiding of the dock divider. Will fire when an app is shown in side by side
  * mode and a divider should be shown.
  *
  * @hide
  */
oneway interface IDockDividerVisibilityListener {
    void onDockDividerVisibilityChanged(boolean visible);
}
+8 −2
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.os.Bundle;
import android.os.IRemoteCallback;
import android.view.IApplicationToken;
import android.view.IAppTransitionAnimationSpecsFuture;
import android.view.IDockDividerVisibilityListener;
import android.view.IOnKeyguardExitResult;
import android.view.IRotationWatcher;
import android.view.IWindowSession;
@@ -348,4 +349,9 @@ interface IWindowManager
     * stack size.
     */
    void setDockedStackResizing(boolean resizing);

    /**
     * Registers a listener that will be called when the dock divider changes its visibility.
     */
    void registerDockDividerVisibilityListener(IDockDividerVisibilityListener listener);
}
+5 −0
Original line number Diff line number Diff line
@@ -1877,6 +1877,11 @@
    <permission android:name="android.permission.MANAGE_APP_TOKENS"
        android:protectionLevel="signature" />

    <!-- Allows System UI to register listeners for events from Window Manager.
         @hide -->
    <permission android:name="android.permission.REGISTER_WINDOW_MANAGER_LISTENERS"
        android:protectionLevel="signature" />

    <!-- @hide Allows the application to temporarily freeze the screen for a
         full-screen transition. -->
    <permission android:name="android.permission.FREEZE_SCREEN"
+1 −0
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
    <uses-permission android:name="android.permission.MANAGE_APP_TOKENS" />
    <uses-permission android:name="android.permission.REGISTER_WINDOW_MANAGER_LISTENERS" />
    <uses-permission android:name="android.permission.SET_ORIENTATION" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

Loading