From 6cd22ee6ce81482f65b98e280bff6f27b3a593f3 Mon Sep 17 00:00:00 2001 From: garrettmills Date: Sat, 15 May 2021 23:40:43 -0500 Subject: [PATCH] Update messaging service to actually make requests to the request queue. Still WIP, since it will need to return data to server and whatnot. --- .../starship/hyperlink/MessagingService.java | 41 ++++++++++++++++--- .../relay/ServerRequestEndpoint.java | 5 --- .../hyperlink/relay/ServerSentRequest.java | 4 +- 3 files changed, 37 insertions(+), 13 deletions(-) delete mode 100644 app/src/main/java/dev/garrettmills/starship/hyperlink/relay/ServerRequestEndpoint.java diff --git a/app/src/main/java/dev/garrettmills/starship/hyperlink/MessagingService.java b/app/src/main/java/dev/garrettmills/starship/hyperlink/MessagingService.java index 70df2d2..a7e497d 100644 --- a/app/src/main/java/dev/garrettmills/starship/hyperlink/MessagingService.java +++ b/app/src/main/java/dev/garrettmills/starship/hyperlink/MessagingService.java @@ -7,13 +7,22 @@ import android.content.Intent; import android.os.Handler; import android.os.IBinder; import android.os.Looper; +import android.util.Log; import android.widget.Toast; +import com.android.volley.Response; +import com.android.volley.VolleyError; + import java.sql.Time; +import java.util.HashMap; +import java.util.Map; import java.util.Timer; import java.util.TimerTask; import dev.garrettmills.starship.hyperlink.relay.ServerSentRequest; +import dev.garrettmills.starship.hyperlink.util.APIv1; +import dev.garrettmills.starship.hyperlink.util.GsonRequest; +import dev.garrettmills.starship.hyperlink.util.NotAuthenticatedException; public class MessagingService extends Service { private final Handler handler = new Handler(); @@ -49,11 +58,11 @@ public class MessagingService extends Service { TimerTask task = new TimerTask() { @Override public void run() { - handler.post(() -> { - if ( !tick() ) { - stopSelf(); - } - }); + handler.post(() -> { + if ( !tick() ) { + stopSelf(); + } + }); } }; @@ -61,7 +70,27 @@ public class MessagingService extends Service { } private boolean tick() { + Map headers = new HashMap<>(); + + try { + headers.put("X-Hyperlink-Access-Token", APIv1.getToken().getToken()); + } catch (NotAuthenticatedException e) { + return false; + } + + GsonRequest request = new GsonRequest<>( + APIv1.resolveEndpoint("/request/queue"), + ServerSentRequest[].class, + headers, + (Response.Listener) response -> { + for (ServerSentRequest ssr : response) { + handleServerSentRequest(ssr); + } + }, + error -> Log.e("MessagingService", error.getMessage()) + ); + Hyperlink.httpRequestQueue.add(request); return true; } @@ -71,6 +100,6 @@ public class MessagingService extends Service { } protected void handleServerSentRequest(ServerSentRequest request) { - + Log.d("MessagingService", "Received server-sent request " + request.getUUID() + " to endpoint " + request.getEndpoint()); } } diff --git a/app/src/main/java/dev/garrettmills/starship/hyperlink/relay/ServerRequestEndpoint.java b/app/src/main/java/dev/garrettmills/starship/hyperlink/relay/ServerRequestEndpoint.java deleted file mode 100644 index f44830c..0000000 --- a/app/src/main/java/dev/garrettmills/starship/hyperlink/relay/ServerRequestEndpoint.java +++ /dev/null @@ -1,5 +0,0 @@ -package dev.garrettmills.starship.hyperlink.relay; - -public enum ServerRequestEndpoint { - LIST_THREADS -} diff --git a/app/src/main/java/dev/garrettmills/starship/hyperlink/relay/ServerSentRequest.java b/app/src/main/java/dev/garrettmills/starship/hyperlink/relay/ServerSentRequest.java index 77dab31..bcb39d0 100644 --- a/app/src/main/java/dev/garrettmills/starship/hyperlink/relay/ServerSentRequest.java +++ b/app/src/main/java/dev/garrettmills/starship/hyperlink/relay/ServerSentRequest.java @@ -2,13 +2,13 @@ package dev.garrettmills.starship.hyperlink.relay; public class ServerSentRequest { private String server_request_id; - private ServerRequestEndpoint endpoint; + private String endpoint; public String getUUID() { return server_request_id; } - public ServerRequestEndpoint getEndpoint() { + public String getEndpoint() { return endpoint; } }