HUN: Close RemoteInputView when Home is pressed

CLOSE_SYSTEM_DIALOGS usually dismisses the notification shade,
but that's not the case for HUNs because the shade is not actually
open. However, CLOSE_SYSTEM_DIALOGS will now close the Direct Reply
even with HUNs.

Change-Id: If8e5115e33f93db0f8b4e442331ea3d60fc0c63d
Fixes: 29583313
This commit is contained in:
Adrian Roos
2016-06-23 11:19:28 -07:00
parent b3ad74eb46
commit 07215350f9
2 changed files with 25 additions and 0 deletions

View File

@@ -130,6 +130,28 @@ public class RemoteInputController {
}
}
public void closeRemoteInputs() {
if (mOpen.size() == 0) {
return;
}
// Make a copy because closing the remote inputs will modify mOpen.
ArrayList<NotificationData.Entry> list = new ArrayList<>(mOpen.size());
for (int i = mOpen.size() - 1; i >= 0; i--) {
NotificationData.Entry item = mOpen.get(i).get();
if (item != null && item.row != null) {
list.add(item);
}
}
for (int i = list.size() - 1; i >= 0; i--) {
NotificationData.Entry item = list.get(i);
if (item.row != null) {
item.row.closeRemoteInput();
}
}
}
public interface Callback {
default void onRemoteInputActive(boolean active) {}

View File

@@ -3351,6 +3351,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
KeyboardShortcuts.dismiss();
if (mRemoteInputController != null) {
mRemoteInputController.closeRemoteInputs();
}
if (isCurrentProfile(getSendingUserId())) {
int flags = CommandQueue.FLAG_EXCLUDE_NONE;
String reason = intent.getStringExtra("reason");