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

Unified Diff: chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkServiceConnectionManager.java

Issue 2012043002: Remove base dependency from webapk/libs/client (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 | « chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkServiceConnectionManagerTest.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkServiceConnectionManager.java
diff --git a/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkServiceConnectionManager.java b/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkServiceConnectionManager.java
index c6b08f560a099950ae538ffb0792adee58fc9caa..a2bcd65c33afe34b17b447f57f66fc44aaaf1018 100644
--- a/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkServiceConnectionManager.java
+++ b/chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/WebApkServiceConnectionManager.java
@@ -10,10 +10,8 @@ import android.content.Intent;
import android.content.ServiceConnection;
import android.os.AsyncTask;
import android.os.IBinder;
+import android.util.Log;
-import org.chromium.base.Callback;
-import org.chromium.base.ContextUtils;
-import org.chromium.base.Log;
import org.chromium.webapk.lib.runtime_library.IWebApkApi;
import java.util.ArrayList;
@@ -25,6 +23,17 @@ import java.util.Hashtable;
*/
public class WebApkServiceConnectionManager {
/**
+ * Interface for getting notified once Chrome is connected to the WebAPK service.
+ */
+ public interface ConnectionCallback {
+ /**
+ * Called once Chrome is connected to the WebAPK service.
+ * @param api The WebAPK service API.
+ */
+ public void onConnected(IWebApkApi api);
+ }
+
+ /**
* Managed connection to WebAPK service.
*/
private static class Connection implements ServiceConnection {
@@ -36,7 +45,7 @@ public class WebApkServiceConnectionManager {
/**
* Callbacks to call once the connection is established.
*/
- private ArrayList<Callback<IWebApkApi>> mCallbacks = new ArrayList<Callback<IWebApkApi>>();
+ private ArrayList<ConnectionCallback> mCallbacks = new ArrayList<ConnectionCallback>();
/**
* WebAPK IBinder interface.
@@ -51,7 +60,7 @@ public class WebApkServiceConnectionManager {
return mApi;
}
- public void addCallback(Callback<IWebApkApi> callback) {
+ public void addCallback(ConnectionCallback callback) {
mCallbacks.add(callback);
}
@@ -62,10 +71,10 @@ public class WebApkServiceConnectionManager {
public void onServiceConnected(ComponentName name, IBinder service) {
mHasConnected = true;
mApi = IWebApkApi.Stub.asInterface(service);
- Log.d(TAG, "Got IWebApkApi: %s", mApi);
+ Log.d(TAG, String.format("Got IWebApkApi: %s", mApi));
- for (Callback<IWebApkApi> callback : mCallbacks) {
- callback.onResult(mApi);
+ for (ConnectionCallback callback : mCallbacks) {
+ callback.onConnected(mApi);
}
mCallbacks.clear();
}
@@ -91,15 +100,17 @@ public class WebApkServiceConnectionManager {
/**
* Connects Chrome application to WebAPK service. Can be called from any thread.
+ * @param appContext Application context.
* @param webApkPackage WebAPK package to create connection for.
* @param callback Callback to call after connection has been established. Called synchronously
* if the connection is already established.
*/
- public void connect(final String webApkPackage, final Callback<IWebApkApi> callback) {
+ public void connect(final Context appContext, final String webApkPackage,
+ final ConnectionCallback callback) {
Connection connection = mConnections.get(webApkPackage);
if (connection != null) {
if (connection.hasConnected()) {
- callback.onResult(connection.getApi());
+ callback.onConnected(connection.getApi());
} else {
connection.addCallback(callback);
}
@@ -111,7 +122,6 @@ public class WebApkServiceConnectionManager {
protected Void doInBackground(Void... params) {
Connection newConnection = new Connection();
newConnection.addCallback(callback);
- Context appContext = ContextUtils.getApplicationContext();
Intent intent = createConnectIntent(webApkPackage);
try {
@@ -130,9 +140,10 @@ public class WebApkServiceConnectionManager {
/**
* Disconnects Chrome application from WebAPK service. Can be called from any thread.
+ * @param appContext Application context.
* @param webApkPackage WebAPK package for the service to disconnect from.
*/
- public void disconnect(String webApkPackage) {
+ public void disconnect(final Context appContext, String webApkPackage) {
final Connection connection = mConnections.remove(webApkPackage);
if (connection == null) {
return;
@@ -141,7 +152,6 @@ public class WebApkServiceConnectionManager {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
- Context appContext = ContextUtils.getApplicationContext();
appContext.unbindService(connection);
return null;
}
« no previous file with comments | « chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkServiceConnectionManagerTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698