From 5eed378cb9f955b2c8c9acaaf3779ac60ee7418c Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 8 Jan 2025 14:21:06 +0100 Subject: [PATCH] Chore: update name suggestion index --- .../java/org/mapcomplete/MainActivity.java | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mapcomplete/MainActivity.java b/app/src/main/java/org/mapcomplete/MainActivity.java index 9b7f591c..4275f99f 100644 --- a/app/src/main/java/org/mapcomplete/MainActivity.java +++ b/app/src/main/java/org/mapcomplete/MainActivity.java @@ -4,14 +4,16 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; +import android.provider.ContactsContract; import android.util.Log; +import android.window.OnBackInvokedDispatcher; +import androidx.annotation.NonNull; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import com.getcapacitor.BridgeActivity; import com.getcapacitor.JSObject; -import com.getcapacitor.Plugin; import com.getcapacitor.PluginCall; import java.util.Objects; @@ -20,6 +22,7 @@ public class MainActivity extends BridgeActivity { private PluginCall locationRequest = null; private PluginCall authRequest = null; + private PluginCall backbutton = null; private JSObject loginToken = null; @@ -33,11 +36,28 @@ public class MainActivity extends BridgeActivity { }); Databridge.addResponder("request:login", pluginCall -> { this.authRequest = pluginCall; - if(this.loginToken != null){ + if (this.loginToken != null) { pluginCall.resolve(this.loginToken); } }); + + Databridge.addResponder("backbutton", responder -> { + System.out.println("Received back button responder"); + this.backbutton = responder; + responder.setKeepAlive(true); + }); + super.onCreate(savedInstanceState); + + + getOnBackInvokedDispatcher().registerOnBackInvokedCallback(OnBackInvokedDispatcher.PRIORITY_OVERLAY, + () -> { + System.out.println("Back button pressed"); + if(this.backbutton != null){ + Databridge.sendAnswerTo(this.backbutton, "backbutton pressed"); + } + } + ); } private void requestPermission() { @@ -75,7 +95,7 @@ public class MainActivity extends BridgeActivity { res.put("value", obj); Log.i("main", "Resolving auth call, param is " + token); this.loginToken = res; - if(this.authRequest != null){ + if (this.authRequest != null) { this.authRequest.resolve(res); } return; @@ -84,6 +104,14 @@ public class MainActivity extends BridgeActivity { System.out.println("Intercepted URL: " + url); } + @NonNull + @Override + public OnBackInvokedDispatcher getOnBackInvokedDispatcher() { + + return super.getOnBackInvokedDispatcher(); + } + + @Override public void onRequestPermissionsResult( int requestCode,