Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Unified Diff: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/TestDevToolsBridgeService.java

Issue 811623005: Refactoring DevToolsBridgeServer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/TestDevToolsBridgeService.java
diff --git a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/TestDevToolsBridgeService.java b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/TestDevToolsBridgeService.java
index b9b9c07d464e7c0dc41993c1e0eceef3010ab2ed..39c8a037959d3af6f8605c0f330ce2226e198aa0 100644
--- a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/TestDevToolsBridgeService.java
+++ b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/TestDevToolsBridgeService.java
@@ -4,13 +4,23 @@
package org.chromium.components.devtools_bridge;
-import org.chromium.components.devtools_bridge.ui.ServiceUIFactory;
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.widget.Toast;
+
+import com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener;
/**
* Service for manual testing DevToolsBridgeServer with GCD signaling.
*/
public final class TestDevToolsBridgeService extends DevToolsBridgeServiceBase {
private static final String SOCKET_NAME = "chrome_shell_devtools_remote";
+ public final int NOTIFICATION_ID = 1;
+ public final String DISCONNECT_ALL_CLIENTS_ACTION =
+ "action.DISCONNECT_ALL_CLIENTS_ACTION";
+ public final String UPDATE_GCM_CHANNEL_ID_ACTION =
+ "action.UPDATE_GCM_CHANNEL_ID";
/**
* Redirects intents to the TestDevToolsBridgeService.
@@ -22,22 +32,56 @@ public final class TestDevToolsBridgeService extends DevToolsBridgeServiceBase {
}
@Override
- protected String socketName() {
- return SOCKET_NAME;
+ protected void querySocketName(DevToolsBridgeServer.QuerySocketCallback callback) {
+ callback.onSuccess(SOCKET_NAME);
}
@Override
- protected ServiceUIFactory newUIFactory() {
- return new UIFactoryImpl();
+ protected void onFirstSessionStarted() {
+ startForeground(NOTIFICATION_ID, newForegroundNotification());
}
- private static class UIFactoryImpl extends ServiceUIFactory {
- protected String productName() {
- return "GCDHostService";
- }
+ @Override
+ protected void onLastSessionStopped() {
+ stopForeground(true);
+ }
- protected int notificationSmallIcon() {
- return android.R.drawable.alert_dark_frame;
+ @Override
+ protected void onHandleIntent(Intent intent) {
+ if (DISCONNECT_ALL_CLIENTS_ACTION.equals(intent.getAction())) {
+ server().closeAllSessions();
+ } else if (UPDATE_GCM_CHANNEL_ID_ACTION.equals(intent.getAction())) {
+ String channelId = MultiplexingGcmListener.initializeGcm(this);
+ if (channelId.isEmpty()) {
+ Toast.makeText(this, "Not registered", Toast.LENGTH_SHORT).show();
+ } else {
+ server().updateCloudMessagesId(channelId, startTask());
+ Toast.makeText(this, "Updating. See log for results.", Toast.LENGTH_SHORT).show();
+ }
}
}
+
+ private PendingIntent newPendingIntent(String action) {
+ Intent intent = new Intent(this, getClass());
+ intent.setAction(action);
+ return PendingIntent.getService(this, 0, intent, 0);
+ }
+
+ private Notification newForegroundNotification() {
+ return new Notification.Builder(this)
+ // Mandatory fields
+ .setSmallIcon(android.R.drawable.alert_dark_frame)
+ .setContentTitle("TestDevToolsBridgeService")
+ .setContentText("Remote debugger connected")
+
+ // Optional
+ .addAction(android.R.drawable.ic_delete,
+ "Disconnect", newPendingIntent(DISCONNECT_ALL_CLIENTS_ACTION))
+ .addAction(android.R.drawable.ic_menu_manage,
+ "Update GCM channel", newPendingIntent(UPDATE_GCM_CHANNEL_ID_ACTION))
+ .setOngoing(true)
+ .setWhen(System.currentTimeMillis())
+
+ .build();
+ }
}

Powered by Google App Engine
This is Rietveld 408576698