diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java | 26 |
1 files changed, 26 insertions, 0 deletions
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 39de0f3f5a9f..241d9783c6e0 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); + } + } } |