Merge "Dismiss panel when requested to close system dialogs" into rvc-dev

This commit is contained in:
Heemin Seog
2020-06-11 16:42:53 +00:00
committed by Android (Google) Code Review
3 changed files with 35 additions and 0 deletions

View File

@@ -16,6 +16,7 @@
package com.android.systemui.car.notification; package com.android.systemui.car.notification;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarDeviceProvisionedController;
import com.android.systemui.car.navigationbar.CarNavigationBarController; import com.android.systemui.car.navigationbar.CarNavigationBarController;
import com.android.systemui.car.window.OverlayPanelViewController; import com.android.systemui.car.window.OverlayPanelViewController;
@@ -37,6 +38,7 @@ public class BottomNotificationPanelViewMediator extends NotificationPanelViewMe
NotificationPanelViewController notificationPanelViewController, NotificationPanelViewController notificationPanelViewController,
PowerManagerHelper powerManagerHelper, PowerManagerHelper powerManagerHelper,
BroadcastDispatcher broadcastDispatcher,
CarDeviceProvisionedController carDeviceProvisionedController, CarDeviceProvisionedController carDeviceProvisionedController,
ConfigurationController configurationController ConfigurationController configurationController
@@ -44,6 +46,7 @@ public class BottomNotificationPanelViewMediator extends NotificationPanelViewMe
super(carNavigationBarController, super(carNavigationBarController,
notificationPanelViewController, notificationPanelViewController,
powerManagerHelper, powerManagerHelper,
broadcastDispatcher,
carDeviceProvisionedController, carDeviceProvisionedController,
configurationController); configurationController);
notificationPanelViewController.setOverlayDirection( notificationPanelViewController.setOverlayDirection(

View File

@@ -17,10 +17,17 @@
package com.android.systemui.car.notification; package com.android.systemui.car.notification;
import android.car.hardware.power.CarPowerManager; import android.car.hardware.power.CarPowerManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.UserHandle;
import android.util.Log;
import androidx.annotation.CallSuper; import androidx.annotation.CallSuper;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarDeviceProvisionedController;
import com.android.systemui.car.navigationbar.CarNavigationBarController; import com.android.systemui.car.navigationbar.CarNavigationBarController;
import com.android.systemui.car.window.OverlayViewMediator; import com.android.systemui.car.window.OverlayViewMediator;
@@ -37,18 +44,36 @@ import javax.inject.Singleton;
public class NotificationPanelViewMediator implements OverlayViewMediator, public class NotificationPanelViewMediator implements OverlayViewMediator,
ConfigurationController.ConfigurationListener { ConfigurationController.ConfigurationListener {
private static final boolean DEBUG = false;
private static final String TAG = "NotificationPanelVM";
private final CarNavigationBarController mCarNavigationBarController; private final CarNavigationBarController mCarNavigationBarController;
private final NotificationPanelViewController mNotificationPanelViewController; private final NotificationPanelViewController mNotificationPanelViewController;
private final PowerManagerHelper mPowerManagerHelper; private final PowerManagerHelper mPowerManagerHelper;
private final BroadcastDispatcher mBroadcastDispatcher;
private final CarDeviceProvisionedController mCarDeviceProvisionedController; private final CarDeviceProvisionedController mCarDeviceProvisionedController;
private final ConfigurationController mConfigurationController; private final ConfigurationController mConfigurationController;
private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (DEBUG) Log.v(TAG, "onReceive: " + intent);
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
if (mNotificationPanelViewController.isPanelExpanded()) {
mNotificationPanelViewController.toggle();
}
}
}
};
@Inject @Inject
public NotificationPanelViewMediator( public NotificationPanelViewMediator(
CarNavigationBarController carNavigationBarController, CarNavigationBarController carNavigationBarController,
NotificationPanelViewController notificationPanelViewController, NotificationPanelViewController notificationPanelViewController,
PowerManagerHelper powerManagerHelper, PowerManagerHelper powerManagerHelper,
BroadcastDispatcher broadcastDispatcher,
CarDeviceProvisionedController carDeviceProvisionedController, CarDeviceProvisionedController carDeviceProvisionedController,
ConfigurationController configurationController ConfigurationController configurationController
@@ -56,6 +81,7 @@ public class NotificationPanelViewMediator implements OverlayViewMediator,
mCarNavigationBarController = carNavigationBarController; mCarNavigationBarController = carNavigationBarController;
mNotificationPanelViewController = notificationPanelViewController; mNotificationPanelViewController = notificationPanelViewController;
mPowerManagerHelper = powerManagerHelper; mPowerManagerHelper = powerManagerHelper;
mBroadcastDispatcher = broadcastDispatcher;
mCarDeviceProvisionedController = carDeviceProvisionedController; mCarDeviceProvisionedController = carDeviceProvisionedController;
mConfigurationController = configurationController; mConfigurationController = configurationController;
} }
@@ -84,6 +110,9 @@ public class NotificationPanelViewMediator implements OverlayViewMediator,
return mNotificationPanelViewController.isPanelExpanded(); return mNotificationPanelViewController.isPanelExpanded();
} }
}); });
mBroadcastDispatcher.registerReceiver(mBroadcastReceiver,
new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS), null, UserHandle.ALL);
} }
@Override @Override

View File

@@ -16,6 +16,7 @@
package com.android.systemui.car.notification; package com.android.systemui.car.notification;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.car.CarDeviceProvisionedController; import com.android.systemui.car.CarDeviceProvisionedController;
import com.android.systemui.car.navigationbar.CarNavigationBarController; import com.android.systemui.car.navigationbar.CarNavigationBarController;
import com.android.systemui.car.window.OverlayPanelViewController; import com.android.systemui.car.window.OverlayPanelViewController;
@@ -37,6 +38,7 @@ public class TopNotificationPanelViewMediator extends NotificationPanelViewMedia
NotificationPanelViewController notificationPanelViewController, NotificationPanelViewController notificationPanelViewController,
PowerManagerHelper powerManagerHelper, PowerManagerHelper powerManagerHelper,
BroadcastDispatcher broadcastDispatcher,
CarDeviceProvisionedController carDeviceProvisionedController, CarDeviceProvisionedController carDeviceProvisionedController,
ConfigurationController configurationController ConfigurationController configurationController
@@ -44,6 +46,7 @@ public class TopNotificationPanelViewMediator extends NotificationPanelViewMedia
super(carNavigationBarController, super(carNavigationBarController,
notificationPanelViewController, notificationPanelViewController,
powerManagerHelper, powerManagerHelper,
broadcastDispatcher,
carDeviceProvisionedController, carDeviceProvisionedController,
configurationController); configurationController);
notificationPanelViewController.setOverlayDirection( notificationPanelViewController.setOverlayDirection(