From 5b43d76c2b77eaa2698f2c5b99da9829360b3ee0 Mon Sep 17 00:00:00 2001 From: Ink Date: Sat, 6 Apr 2024 17:48:39 -0400 Subject: [PATCH] * get rid of onStopped overload --- .../damn/anotherglass/glass/host/HostService.java | 5 +++++ .../com/damn/anotherglass/core/BluetoothHost.java | 6 +++--- .../com/damn/anotherglass/core/GlassService.java | 11 +++++------ shared/build.gradle | 1 + .../com/damn/anotherglass/shared/rpc/IRPCHost.java | 2 -- .../com/damn/anotherglass/shared/rpc/RPCHandler.java | 12 ++++++++++-- .../anotherglass/shared/rpc/RPCMessageListener.java | 2 ++ 7 files changed, 26 insertions(+), 13 deletions(-) diff --git a/glass/src/main/java/com/damn/anotherglass/glass/host/HostService.java b/glass/src/main/java/com/damn/anotherglass/glass/host/HostService.java index 73d6e25..179049d 100644 --- a/glass/src/main/java/com/damn/anotherglass/glass/host/HostService.java +++ b/glass/src/main/java/com/damn/anotherglass/glass/host/HostService.java @@ -108,6 +108,11 @@ public void onConnectionLost(@Nullable String error) { Toast.LENGTH_LONG).show(); stopSelf(); // do not restart for now } + + @Override + public void onShutdown() { + // already stopped in onConnectionLost + } }); } else { mLiveCard.navigate(); diff --git a/mobile/src/main/java/com/damn/anotherglass/core/BluetoothHost.java b/mobile/src/main/java/com/damn/anotherglass/core/BluetoothHost.java index 0c28bdb..e04010b 100644 --- a/mobile/src/main/java/com/damn/anotherglass/core/BluetoothHost.java +++ b/mobile/src/main/java/com/damn/anotherglass/core/BluetoothHost.java @@ -32,7 +32,7 @@ import java.util.concurrent.LinkedBlockingDeque; -public abstract class BluetoothHost implements IRPCHost { +public class BluetoothHost implements IRPCHost { private static final String NAME = "AnotherGlass"; private static final String TAG = "GlassHost"; @@ -69,10 +69,10 @@ public void stop() { } } - @Override @CallSuper - public void onStopped() { + private void onStopped() { mQueue.clear(); + mHandler.onShutdown(); } @Override diff --git a/mobile/src/main/java/com/damn/anotherglass/core/GlassService.java b/mobile/src/main/java/com/damn/anotherglass/core/GlassService.java index 0396865..f8320d2 100644 --- a/mobile/src/main/java/com/damn/anotherglass/core/GlassService.java +++ b/mobile/src/main/java/com/damn/anotherglass/core/GlassService.java @@ -100,15 +100,14 @@ public void onConnectionLost(@Nullable String error) { mGPS.stop(); mNotifications.stop(); } - }) { + @Override - public void onStopped() { - super.onStopped(); - log.i(TAG, "BluetoothClient has stopped, terminating GlassService"); - Toast.makeText(GlassService.this, "BluetoothClient has stopped, terminating GlassService", Toast.LENGTH_SHORT).show(); + public void onShutdown() { + log.i(TAG, "BluetoothHost has stopped, terminating GlassService"); + Toast.makeText(GlassService.this, "BluetoothHost has stopped, terminating GlassService", Toast.LENGTH_SHORT).show(); stopSelf(); } - }; + }); mNotifications = new NotificationExtension(this); mGPS = new GPSExtension(this); diff --git a/shared/build.gradle b/shared/build.gradle index 4733dfb..89e23d0 100644 --- a/shared/build.gradle +++ b/shared/build.gradle @@ -18,4 +18,5 @@ android { } dependencies { + implementation "androidx.annotation:annotation:1.7.1" } diff --git a/shared/src/main/java/com/damn/anotherglass/shared/rpc/IRPCHost.java b/shared/src/main/java/com/damn/anotherglass/shared/rpc/IRPCHost.java index 52b11a7..6d291ac 100644 --- a/shared/src/main/java/com/damn/anotherglass/shared/rpc/IRPCHost.java +++ b/shared/src/main/java/com/damn/anotherglass/shared/rpc/IRPCHost.java @@ -8,6 +8,4 @@ public interface IRPCHost { void start(Context context); void send(RPCMessage message); void stop(); - @CallSuper - void onStopped(); } diff --git a/shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCHandler.java b/shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCHandler.java index d87f023..00070df 100644 --- a/shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCHandler.java +++ b/shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCHandler.java @@ -6,6 +6,7 @@ import android.util.Log; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; public class RPCHandler extends Handler implements RPCMessageListener { @@ -15,10 +16,10 @@ public class RPCHandler extends Handler implements RPCMessageListener { private static final int STATE_CONNECTION_LOST = 1; private static final int STATE_WAITING_FOR_CONNECT = 2; private static final int MSG_DATA_RECEIVED = 3; + private static final int MSG_ON_SHUTDOWN = 4; private static final String TAG = "RPCHandler"; - public RPCHandler(RPCMessageListener listener) { super(Looper.getMainLooper()); this.listener = listener; @@ -40,6 +41,8 @@ public void handleMessage(Message msg) { listener.onConnectionLost(error); } else if (STATE_WAITING_FOR_CONNECT == msg.what) { listener.onWaiting(); + } else if (MSG_ON_SHUTDOWN == msg.what) { + listener.onShutdown(); } } @@ -59,7 +62,12 @@ public void onDataReceived(@NonNull RPCMessage data) { } @Override - public void onConnectionLost(/*@Nullable*/ String error) { + public void onConnectionLost(@Nullable String error) { obtainMessage(RPCHandler.STATE_CONNECTION_LOST, error).sendToTarget(); } + + @Override + public void onShutdown() { + obtainMessage(RPCHandler.MSG_ON_SHUTDOWN).sendToTarget(); + } } diff --git a/shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCMessageListener.java b/shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCMessageListener.java index 976fe95..9a2bf40 100644 --- a/shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCMessageListener.java +++ b/shared/src/main/java/com/damn/anotherglass/shared/rpc/RPCMessageListener.java @@ -12,4 +12,6 @@ public interface RPCMessageListener { void onDataReceived(@NonNull RPCMessage data); void onConnectionLost(@Nullable String error); + + void onShutdown(); }