create factory to generated an onClickListener for notifications such that
CarSysUI can close the notification window when a notifcation launches an app Bug: 116595026 Test: Manual Change-Id: Ia3d59ca6b361eb5a5364dcad2e999a0fe820929e (cherry picked from commit c3e86efd3b9dc0544c7c4a404380bb9ab57fc113)
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.notifications;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.car.Car;
|
||||
import android.car.CarNotConnectedException;
|
||||
import android.car.drivingstate.CarUxRestrictionsManager;
|
||||
@@ -24,6 +25,7 @@ import android.content.Context;
|
||||
import android.content.ServiceConnection;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.os.IBinder;
|
||||
import android.os.ServiceManager;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -31,8 +33,10 @@ import android.view.WindowManager;
|
||||
|
||||
import com.android.car.notification.CarNotificationListener;
|
||||
import com.android.car.notification.CarUxRestrictionManagerWrapper;
|
||||
import com.android.car.notification.NotificationClickHandlerFactory;
|
||||
import com.android.car.notification.NotificationViewController;
|
||||
import com.android.car.notification.PreprocessingManager;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SystemUI;
|
||||
|
||||
@@ -44,6 +48,7 @@ public class NotificationsUI extends SystemUI {
|
||||
private static final String TAG = "NotificationsUI";
|
||||
private CarNotificationListener mCarNotificationListener;
|
||||
private CarUxRestrictionsManager mCarUxRestrictionsManager;
|
||||
private NotificationClickHandlerFactory mClickHandlerFactory;
|
||||
private Car mCar;
|
||||
private ViewGroup mCarNotificationWindow;
|
||||
private NotificationViewController mNotificationViewController;
|
||||
@@ -60,7 +65,17 @@ public class NotificationsUI extends SystemUI {
|
||||
WindowManager windowManager =
|
||||
(WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
|
||||
mCarNotificationListener = new CarNotificationListener();
|
||||
mCarNotificationListener.registerAsSystemService(mContext, mCarUxRestrictionManagerWrapper);
|
||||
mClickHandlerFactory = new NotificationClickHandlerFactory(
|
||||
IStatusBarService.Stub.asInterface(
|
||||
ServiceManager.getService(Context.STATUS_BAR_SERVICE)),
|
||||
launchResult -> {
|
||||
if (launchResult == ActivityManager.START_TASK_TO_FRONT
|
||||
|| launchResult == ActivityManager.START_SUCCESS) {
|
||||
closeCarNotifications();
|
||||
}
|
||||
});
|
||||
mCarNotificationListener.registerAsSystemService(mContext, mCarUxRestrictionManagerWrapper,
|
||||
mClickHandlerFactory);
|
||||
mCar = Car.createCar(mContext, mCarConnectionListener);
|
||||
mCar.connect();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user