diff options
Diffstat (limited to 'mobile/android/javaaddons')
-rw-r--r-- | mobile/android/javaaddons/Makefile.in | 9 | ||||
-rw-r--r-- | mobile/android/javaaddons/java/org/mozilla/javaaddons/JavaAddonInterfaceV1.java | 51 | ||||
-rw-r--r-- | mobile/android/javaaddons/moz.build | 11 |
3 files changed, 71 insertions, 0 deletions
diff --git a/mobile/android/javaaddons/Makefile.in b/mobile/android/javaaddons/Makefile.in new file mode 100644 index 000000000..a223d6e4e --- /dev/null +++ b/mobile/android/javaaddons/Makefile.in @@ -0,0 +1,9 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +include $(topsrcdir)/config/rules.mk + +include $(topsrcdir)/config/android-common.mk + +libs:: javaaddons-1.0.jar diff --git a/mobile/android/javaaddons/java/org/mozilla/javaaddons/JavaAddonInterfaceV1.java b/mobile/android/javaaddons/java/org/mozilla/javaaddons/JavaAddonInterfaceV1.java new file mode 100644 index 000000000..caf31e7a5 --- /dev/null +++ b/mobile/android/javaaddons/java/org/mozilla/javaaddons/JavaAddonInterfaceV1.java @@ -0,0 +1,51 @@ +/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.javaaddons; + +import android.content.Context; +import org.json.JSONObject; + +public interface JavaAddonInterfaceV1 { + /** + * Callback interface for Gecko requests. + * <p/> + * For each instance of EventCallback, exactly one of sendResponse, sendError, must be called to prevent observer leaks. + * If more than one send* method is called, or if a single send method is called multiple times, an + * {@link IllegalStateException} will be thrown. + */ + interface EventCallback { + /** + * Sends a success response with the given data. + * + * @param response The response data to send to Gecko. Can be any of the types accepted by + * JSONObject#put(String, Object). + */ + public void sendSuccess(Object response); + + /** + * Sends an error response with the given data. + * + * @param response The response data to send to Gecko. Can be any of the types accepted by + * JSONObject#put(String, Object). + */ + public void sendError(Object response); + } + + interface EventDispatcher { + void registerEventListener(EventListener listener, String... events); + void unregisterEventListener(EventListener listener); + + void sendRequestToGecko(String event, JSONObject message, RequestCallback callback); + } + + interface EventListener { + public void handleMessage(final Context context, final String event, final JSONObject message, final EventCallback callback); + } + + interface RequestCallback { + void onResponse(final Context context, JSONObject jsonObject); + } +} diff --git a/mobile/android/javaaddons/moz.build b/mobile/android/javaaddons/moz.build new file mode 100644 index 000000000..c2f004cc1 --- /dev/null +++ b/mobile/android/javaaddons/moz.build @@ -0,0 +1,11 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +jar = add_java_jar('javaaddons-1.0') +jar.sources = [ + 'java/org/mozilla/javaaddons/JavaAddonInterfaceV1.java', +] +jar.javac_flags += ['-Xlint:all'] |