diff --git a/src/org/geometerplus/android/fbreader/api/ApiClientImplementation.java b/src/org/geometerplus/android/fbreader/api/ApiClientImplementation.java index 092aa0871..53b01dde6 100644 --- a/src/org/geometerplus/android/fbreader/api/ApiClientImplementation.java +++ b/src/org/geometerplus/android/fbreader/api/ApiClientImplementation.java @@ -22,6 +22,26 @@ public class ApiClientImplementation implements ServiceConnection, Api, ApiMetho private ConnectionListener myListener; private volatile ApiInterface myInterface; + private final List myApiListeners = + Collections.synchronizedList(new LinkedList()); + + private final BroadcastReceiver myEventReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (myInterface == null || myApiListeners.size() == 0) { + return; + } + final int code = intent.getIntExtra(EVENT_TYPE, -1); + if (code != -1) { + synchronized (myApiListeners) { + for (ApiListener l : myApiListeners) { + l.onEvent(code); + } + } + } + } + }; + public ApiClientImplementation(Context context, ConnectionListener listener) { myContext = context; myListener = listener;