diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5f41638d..ff64244b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,7 +32,7 @@ - + diff --git a/app/src/main/java/org/mapcomplete/MainActivity.java b/app/src/main/java/org/mapcomplete/MainActivity.java index 6bc968bf..9b7f591c 100644 --- a/app/src/main/java/org/mapcomplete/MainActivity.java +++ b/app/src/main/java/org/mapcomplete/MainActivity.java @@ -21,6 +21,8 @@ public class MainActivity extends BridgeActivity { private PluginCall locationRequest = null; private PluginCall authRequest = null; + private JSObject loginToken = null; + @Override public void onCreate(Bundle savedInstanceState) { registerPlugin(Databridge.class); @@ -31,6 +33,9 @@ public class MainActivity extends BridgeActivity { }); Databridge.addResponder("request:login", pluginCall -> { this.authRequest = pluginCall; + if(this.loginToken != null){ + pluginCall.resolve(this.loginToken); + } }); super.onCreate(savedInstanceState); } @@ -62,16 +67,17 @@ public class MainActivity extends BridgeActivity { return; } - if (Objects.equals(url.getPath(), "/land.html")) { - var code = url.getQueryParameter("code"); - var state = url.getQueryParameter("state"); + if (Objects.equals(url.getPath(), "/passthrough.html")) { + var token = url.getQueryParameter("oauth_token"); JSObject obj = new JSObject(); - obj.put("code", code); - obj.put("state", state); + obj.put("oauth_token", token); JSObject res = new JSObject(); res.put("value", obj); - Log.i("main", "Resolving auth call"); - this.authRequest.resolve(res); + Log.i("main", "Resolving auth call, param is " + token); + this.loginToken = res; + if(this.authRequest != null){ + this.authRequest.resolve(res); + } return; }