Merge "Implement StatusBar notification panel APIs for TV"
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 39de0f3..241d978 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 @@
@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 @@
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);
+ }
+ }
}