diff --git a/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java deleted file mode 100644 index f2c2217e..00000000 --- a/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.getcapacitor.myapp; - -import static org.junit.Assert.*; - -import android.content.Context; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.platform.app.InstrumentationRegistry; -import org.junit.Test; -import org.junit.runner.RunWith; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); - - assertEquals("com.getcapacitor.app", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d666f13a..5f41638d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,9 +33,7 @@ - - - diff --git a/app/src/main/java/org/mapcomplete/Databridge.java b/app/src/main/java/org/mapcomplete/Databridge.java new file mode 100644 index 00000000..db12b97b --- /dev/null +++ b/app/src/main/java/org/mapcomplete/Databridge.java @@ -0,0 +1,51 @@ +package org.mapcomplete; + + +import android.util.Log; + +import com.getcapacitor.JSObject; +import com.getcapacitor.Plugin; +import com.getcapacitor.PluginCall; +import com.getcapacitor.PluginMethod; +import com.getcapacitor.annotation.CapacitorPlugin; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.function.Consumer; +import java.util.function.Function; + +@CapacitorPlugin(name = "Echo") +public class Databridge extends Plugin { + + private final Map> responders; + + private static Consumer answer(String answer) { + JSObject ret = new JSObject(); + ret.put("value", answer); + Log.i("databridge","Resolving call"); + return (PluginCall call) -> call.resolve(ret); + } + + /** + * A responder will be activated if the native code asks for it. + * Use call.setKeepAlive(true) for multiple responses + * @param responders + */ + public Databridge(Map> responders) { + this.responders = responders; + responders.put("meta", Databridge.answer("capacitator-shell 0.0.1;")); + } + + @PluginMethod() + public void request(PluginCall call) { + String key = call.getString("key"); + Log.i("databridge","Got a call: "+key); + var c= this.responders.get(key); + if(c != null){ + c.accept(call); + }else{ + call.reject("ERROR: no responder installed for "+key); + } + } +} diff --git a/app/src/main/java/org/mapcomplete/MainActivity.java b/app/src/main/java/org/mapcomplete/MainActivity.java index bc4b35ea..95433853 100644 --- a/app/src/main/java/org/mapcomplete/MainActivity.java +++ b/app/src/main/java/org/mapcomplete/MainActivity.java @@ -1,5 +1,15 @@ package org.mapcomplete; +import android.os.Bundle; + import com.getcapacitor.BridgeActivity; -public class MainActivity extends BridgeActivity {} +public class MainActivity extends BridgeActivity { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + registerPlugin(Databridge.class); + } + +} diff --git a/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java deleted file mode 100644 index 02973278..00000000 --- a/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.getcapacitor.myapp; - -import static org.junit.Assert.*; - -import org.junit.Test; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} diff --git a/variables.gradle b/variables.gradle index 8ef305d0..7785a4ee 100644 --- a/variables.gradle +++ b/variables.gradle @@ -1,5 +1,5 @@ ext { - minSdkVersion = 22 + minSdkVersion = 24 compileSdkVersion = 34 targetSdkVersion = 34 androidxActivityVersion = '1.8.0' @@ -13,4 +13,4 @@ ext { androidxJunitVersion = '1.1.5' androidxEspressoCoreVersion = '3.5.1' cordovaAndroidVersion = '10.1.1' -} \ No newline at end of file +}