From 7786595ae565ccd48efc87422508f2ff93b1b7e8 Mon Sep 17 00:00:00 2001 From: Wale Ogunwale Date: Wed, 3 Feb 2021 07:39:20 -0800 Subject: [PATCH] Launcher3: Added shared lib APIs for Launcher to use split-screen APIs. Bug: 179176511 Test: presubmits! Change-Id: Ib66cd533676ec28c3b18549d2b9931cdb2263654 --- .../com/android/quickstep/SystemUiProxy.java | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/quickstep/src/com/android/quickstep/SystemUiProxy.java b/quickstep/src/com/android/quickstep/SystemUiProxy.java index ca55468a9f..85b21e09aa 100644 --- a/quickstep/src/com/android/quickstep/SystemUiProxy.java +++ b/quickstep/src/com/android/quickstep/SystemUiProxy.java @@ -17,6 +17,7 @@ package com.android.quickstep; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; +import android.app.PendingIntent; import android.app.PictureInPictureParams; import android.content.ComponentName; import android.content.Context; @@ -24,15 +25,18 @@ import android.content.pm.ActivityInfo; import android.graphics.Bitmap; import android.graphics.Insets; import android.graphics.Rect; +import android.os.Binder; import android.os.Bundle; import android.os.IBinder; import android.os.IBinder.DeathRecipient; import android.os.RemoteException; +import android.os.UserHandle; import android.util.Log; import android.view.MotionEvent; import com.android.launcher3.util.MainThreadInitializedObject; import com.android.systemui.shared.recents.IPinnedStackAnimationListener; +import com.android.systemui.shared.recents.ISplitScreenListener; import com.android.systemui.shared.recents.ISystemUiProxy; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.system.RemoteTransitionCompat; @@ -431,4 +435,84 @@ public class SystemUiProxy implements ISystemUiProxy { } } } + + @Override + public void registerSplitScreenListener(ISplitScreenListener listener) { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.registerSplitScreenListener(listener); + } catch (RemoteException e) { + Log.w(TAG, "Failed call registerSplitScreenListener"); + } + } + } + + @Override + public void unregisterSplitScreenListener(ISplitScreenListener listener) { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.unregisterSplitScreenListener(listener); + } catch (RemoteException e) { + Log.w(TAG, "Failed call unregisterSplitScreenListener"); + } + } + } + + @Override + public void setSideStageVisibility(boolean visible) { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.setSideStageVisibility(visible); + } catch (RemoteException e) { + Log.w(TAG, "Failed call setSideStageVisibility"); + } + } + } + + @Override + public void exitSplitScreen() { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.exitSplitScreen(); + } catch (RemoteException e) { + Log.w(TAG, "Failed call exitSplitScreen"); + } + } + } + + @Override + public void startTask(int taskId, int stage, int position, Bundle options) { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.startTask(taskId, stage, position, options); + } catch (RemoteException e) { + Log.w(TAG, "Failed call startTask"); + } + } + } + + @Override + public void startShortcut(String packageName, String shortcutId, int stage, int position, + Bundle options, UserHandle user) { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.startShortcut(packageName, shortcutId, stage, position, options, + user); + } catch (RemoteException e) { + Log.w(TAG, "Failed call startShortcut"); + } + } + } + + @Override + public void startIntent(PendingIntent intent, int stage, int position, Bundle options) { + if (mSystemUiProxy != null) { + try { + mSystemUiProxy.startIntent(intent, stage, position, options); + } catch (RemoteException e) { + Log.w(TAG, "Failed call startIntent"); + } + } + } + }