From dc82879d732a4e8753c89948f71afb3b08b22182 Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Wed, 12 Feb 2020 22:04:08 +0100 Subject: [PATCH] Implement StatusBar notification panel APIs for TV Test: atest GtsIncidentManagerTestCases Bug: 138173483 Change-Id: Ib22aaec8be5744e74c6eb2e58a5383c75f8cb58b --- .../systemui/statusbar/tv/TvStatusBar.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java index 39de0f3f5a9f6..241d9783c6e0e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java @@ -17,8 +17,12 @@ package com.android.systemui.statusbar.tv; import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.UserHandle; import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.SystemUI; @@ -40,6 +44,9 @@ import javax.inject.Singleton; @Singleton public class TvStatusBar extends SystemUI implements CommandQueue.Callbacks { + private static final String ACTION_OPEN_TV_NOTIFICATIONS_PANEL = + "com.android.tv.action.OPEN_NOTIFICATIONS_PANEL"; + private final CommandQueue mCommandQueue; @Inject @@ -61,4 +68,23 @@ public class TvStatusBar extends SystemUI implements CommandQueue.Callbacks { new AudioRecordingDisclosureBar(mContext).start(); } + + @Override + public void animateExpandNotificationsPanel() { + startSystemActivity(new Intent(ACTION_OPEN_TV_NOTIFICATIONS_PANEL)); + } + + @Override + public void animateCollapsePanels(int flags, boolean force) { + startSystemActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME)); + } + + private void startSystemActivity(Intent intent) { + PackageManager pm = mContext.getPackageManager(); + ResolveInfo ri = pm.resolveActivity(intent, PackageManager.MATCH_SYSTEM_ONLY); + if (ri != null && ri.activityInfo != null) { + intent.setPackage(ri.activityInfo.packageName); + mContext.startActivityAsUser(intent, UserHandle.CURRENT); + } + } }