Make SmartReplyController a Dumpable
Bug: 204127880 Test: dump and inspect Merged-In: Id3e58ae6559ef1762496f46ff86ccd99886c8aaf Change-Id: Id3e58ae6559ef1762496f46ff86ccd99886c8aaf
This commit is contained in:
@@ -19,35 +19,44 @@ import android.app.Notification;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.android.internal.statusbar.IStatusBarService;
|
import com.android.internal.statusbar.IStatusBarService;
|
||||||
import com.android.internal.statusbar.NotificationVisibility;
|
import com.android.internal.statusbar.NotificationVisibility;
|
||||||
|
import com.android.systemui.Dumpable;
|
||||||
|
import com.android.systemui.dump.DumpManager;
|
||||||
import com.android.systemui.statusbar.dagger.StatusBarModule;
|
import com.android.systemui.statusbar.dagger.StatusBarModule;
|
||||||
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
import com.android.systemui.statusbar.notification.NotificationEntryManager;
|
||||||
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
|
||||||
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
|
||||||
|
|
||||||
|
import java.io.FileDescriptor;
|
||||||
|
import java.io.PrintWriter;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles when smart replies are added to a notification
|
* Handles when smart replies are added to a notification
|
||||||
* and clicked upon.
|
* and clicked upon.
|
||||||
*/
|
*/
|
||||||
public class SmartReplyController {
|
public class SmartReplyController implements Dumpable {
|
||||||
private final IStatusBarService mBarService;
|
private final IStatusBarService mBarService;
|
||||||
private final NotificationEntryManager mEntryManager;
|
private final NotificationEntryManager mEntryManager;
|
||||||
private final NotificationClickNotifier mClickNotifier;
|
private final NotificationClickNotifier mClickNotifier;
|
||||||
private Set<String> mSendingKeys = new ArraySet<>();
|
private final Set<String> mSendingKeys = new ArraySet<>();
|
||||||
private Callback mCallback;
|
private Callback mCallback;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Injected constructor. See {@link StatusBarModule}.
|
* Injected constructor. See {@link StatusBarModule}.
|
||||||
*/
|
*/
|
||||||
public SmartReplyController(NotificationEntryManager entryManager,
|
public SmartReplyController(
|
||||||
|
DumpManager dumpManager,
|
||||||
|
NotificationEntryManager entryManager,
|
||||||
IStatusBarService statusBarService,
|
IStatusBarService statusBarService,
|
||||||
NotificationClickNotifier clickNotifier) {
|
NotificationClickNotifier clickNotifier) {
|
||||||
mBarService = statusBarService;
|
mBarService = statusBarService;
|
||||||
mEntryManager = entryManager;
|
mEntryManager = entryManager;
|
||||||
mClickNotifier = clickNotifier;
|
mClickNotifier = clickNotifier;
|
||||||
|
dumpManager.registerDumpable(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCallback(Callback callback) {
|
public void setCallback(Callback callback) {
|
||||||
@@ -75,6 +84,7 @@ public class SmartReplyController {
|
|||||||
public void smartActionClicked(
|
public void smartActionClicked(
|
||||||
NotificationEntry entry, int actionIndex, Notification.Action action,
|
NotificationEntry entry, int actionIndex, Notification.Action action,
|
||||||
boolean generatedByAssistant) {
|
boolean generatedByAssistant) {
|
||||||
|
// TODO(b/204183781): get this from the current pipeline
|
||||||
final int count = mEntryManager.getActiveNotificationsCount();
|
final int count = mEntryManager.getActiveNotificationsCount();
|
||||||
final int rank = entry.getRanking().getRank();
|
final int rank = entry.getRanking().getRank();
|
||||||
NotificationVisibility.NotificationLocation location =
|
NotificationVisibility.NotificationLocation location =
|
||||||
@@ -112,6 +122,14 @@ public class SmartReplyController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
|
||||||
|
pw.println("mSendingKeys: " + mSendingKeys.size());
|
||||||
|
for (String key : mSendingKeys) {
|
||||||
|
pw.println(" * " + key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback for any class that needs to do something in response to a smart reply being sent.
|
* Callback for any class that needs to do something in response to a smart reply being sent.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -166,10 +166,11 @@ public interface StatusBarDependenciesModule {
|
|||||||
@SysUISingleton
|
@SysUISingleton
|
||||||
@Provides
|
@Provides
|
||||||
static SmartReplyController provideSmartReplyController(
|
static SmartReplyController provideSmartReplyController(
|
||||||
|
DumpManager dumpManager,
|
||||||
NotificationEntryManager entryManager,
|
NotificationEntryManager entryManager,
|
||||||
IStatusBarService statusBarService,
|
IStatusBarService statusBarService,
|
||||||
NotificationClickNotifier clickNotifier) {
|
NotificationClickNotifier clickNotifier) {
|
||||||
return new SmartReplyController(entryManager, statusBarService, clickNotifier);
|
return new SmartReplyController(dumpManager, entryManager, statusBarService, clickNotifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -86,8 +86,11 @@ public class SmartReplyControllerTest extends SysuiTestCase {
|
|||||||
mDependency.injectTestDependency(NotificationEntryManager.class,
|
mDependency.injectTestDependency(NotificationEntryManager.class,
|
||||||
mNotificationEntryManager);
|
mNotificationEntryManager);
|
||||||
|
|
||||||
mSmartReplyController = new SmartReplyController(mNotificationEntryManager,
|
mSmartReplyController = new SmartReplyController(
|
||||||
mIStatusBarService, mClickNotifier);
|
mock(DumpManager.class),
|
||||||
|
mNotificationEntryManager,
|
||||||
|
mIStatusBarService,
|
||||||
|
mClickNotifier);
|
||||||
mDependency.injectTestDependency(SmartReplyController.class,
|
mDependency.injectTestDependency(SmartReplyController.class,
|
||||||
mSmartReplyController);
|
mSmartReplyController);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user