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

Unified Diff: mojo/public/java/application/src/org/chromium/mojo/application/ShellHelper.java

Issue 1061313003: Introduce intent manager. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Follow review Created 5 years, 8 months 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
« no previous file with comments | « mojo/public/java/BUILD.gn ('k') | services/android/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/java/application/src/org/chromium/mojo/application/ShellHelper.java
diff --git a/mojo/public/java/application/src/org/chromium/mojo/application/ShellHelper.java b/mojo/public/java/application/src/org/chromium/mojo/application/ShellHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..705e22e12c1b9ff6f339130782993da2896a4bf9
--- /dev/null
+++ b/mojo/public/java/application/src/org/chromium/mojo/application/ShellHelper.java
@@ -0,0 +1,40 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.mojo.application;
+
+import org.chromium.mojo.bindings.Interface;
+import org.chromium.mojo.bindings.Interface.Proxy;
+import org.chromium.mojo.bindings.InterfaceRequest;
+import org.chromium.mojo.system.Core;
+import org.chromium.mojo.system.Pair;
+import org.chromium.mojom.mojo.ServiceProvider;
+import org.chromium.mojom.mojo.Shell;
+
+/**
+ * Helper class to help connecting to other application through the shell.
+ */
+public class ShellHelper {
+ /**
+ * Connects to a service in another application.
+ *
+ * @param core Implementation of the {@link Core} api.
+ * @param shell Instance of the shell.
+ * @param application URL to the application to use.
+ * @param manager {@link org.chromium.mojo.bindings.Interface.Manager} for the service to
+ * connect to.
+ * @return a proxy to the service.
+ */
+ public static <I extends Interface, P extends Proxy> P connectToService(
+ Core core, Shell shell, String application, Interface.Manager<I, P> manager) {
+ Pair<ServiceProvider.Proxy, InterfaceRequest<ServiceProvider>> providerRequest =
+ ServiceProvider.MANAGER.getInterfaceRequest(core);
+ try (ServiceProvider.Proxy provider = providerRequest.first) {
+ shell.connectToApplication(application, providerRequest.second, null);
+ Pair<P, InterfaceRequest<I>> serviceRequest = manager.getInterfaceRequest(core);
+ provider.connectToService(manager.getName(), serviceRequest.second.passHandle());
+ return serviceRequest.first;
+ }
+ }
+}
« no previous file with comments | « mojo/public/java/BUILD.gn ('k') | services/android/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698