diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index 71ffbf30..91fa5a34 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -354,8 +354,10 @@ public class Game extends Activity implements SurfaceHolder.Callback, SpinnerDialog.closeDialogs(this); Dialog.closeDialogs(); - InputManager inputManager = (InputManager) getSystemService(Context.INPUT_SERVICE); - inputManager.unregisterInputDeviceListener(controllerHandler); + if (controllerHandler != null) { + InputManager inputManager = (InputManager) getSystemService(Context.INPUT_SERVICE); + inputManager.unregisterInputDeviceListener(controllerHandler); + } wifiLock.release(); @@ -364,36 +366,38 @@ public class Game extends Activity implements SurfaceHolder.Callback, unbindService(usbDriverServiceConnection); } - VideoDecoderRenderer.VideoFormat videoFormat = conn.getActiveVideoFormat(); + if (conn != null) { + VideoDecoderRenderer.VideoFormat videoFormat = conn.getActiveVideoFormat(); - displayedFailureDialog = true; - stopConnection(); + displayedFailureDialog = true; + stopConnection(); - int averageEndToEndLat = decoderRenderer.getAverageEndToEndLatency(); - int averageDecoderLat = decoderRenderer.getAverageDecoderLatency(); - String message = null; - if (averageEndToEndLat > 0) { - message = getResources().getString(R.string.conn_client_latency)+" "+averageEndToEndLat+" ms"; - if (averageDecoderLat > 0) { - message += " ("+getResources().getString(R.string.conn_client_latency_hw)+" "+averageDecoderLat+" ms)"; + int averageEndToEndLat = decoderRenderer.getAverageEndToEndLatency(); + int averageDecoderLat = decoderRenderer.getAverageDecoderLatency(); + String message = null; + if (averageEndToEndLat > 0) { + message = getResources().getString(R.string.conn_client_latency)+" "+averageEndToEndLat+" ms"; + if (averageDecoderLat > 0) { + message += " ("+getResources().getString(R.string.conn_client_latency_hw)+" "+averageDecoderLat+" ms)"; + } } - } - else if (averageDecoderLat > 0) { - message = getResources().getString(R.string.conn_hardware_latency)+" "+averageDecoderLat+" ms"; - } - - // Add the video codec to the post-stream toast - if (message != null && videoFormat != VideoDecoderRenderer.VideoFormat.Unknown) { - if (videoFormat == VideoDecoderRenderer.VideoFormat.H265) { - message += " [H.265]"; + else if (averageDecoderLat > 0) { + message = getResources().getString(R.string.conn_hardware_latency)+" "+averageDecoderLat+" ms"; } - else { - message += " [H.264]"; - } - } - if (message != null) { - Toast.makeText(this, message, Toast.LENGTH_LONG).show(); + // Add the video codec to the post-stream toast + if (message != null && videoFormat != VideoDecoderRenderer.VideoFormat.Unknown) { + if (videoFormat == VideoDecoderRenderer.VideoFormat.H265) { + message += " [H.265]"; + } + else { + message += " [H.264]"; + } + } + + if (message != null) { + Toast.makeText(this, message, Toast.LENGTH_LONG).show(); + } } finish();