From 16362ae8f64e54cc9db71b4573e76dd1b88422f6 Mon Sep 17 00:00:00 2001 From: Matthijs Tijink Date: Sun, 21 Jul 2019 10:18:21 +0200 Subject: [PATCH] Send a stop pointer message so we don't need to wait for timeout --- .../Plugins/PresenterPlugin/PresenterActivity.java | 3 +-- .../Plugins/PresenterPlugin/PresenterPlugin.java | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.java b/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.java index c7999361..1852d2e6 100644 --- a/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.java +++ b/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.java @@ -85,13 +85,12 @@ public class PresenterActivity extends AppCompatActivity implements SensorEventL findViewById(R.id.pointer_button).setVisibility(View.VISIBLE); findViewById(R.id.pointer_button).setOnTouchListener((v, event) -> { if(event.getAction() == MotionEvent.ACTION_DOWN){ - yPos = 0; - xPos = 0; sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE), SensorManager.SENSOR_DELAY_GAME); v.performClick(); // The linter complains if this is not called } else if (event.getAction() == MotionEvent.ACTION_UP) { sensorManager.unregisterListener(this); + plugin.stopPointer(); } return true; }); diff --git a/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterPlugin.java b/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterPlugin.java index 1c5a033b..e2659498 100644 --- a/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterPlugin.java +++ b/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterPlugin.java @@ -24,6 +24,7 @@ package org.kde.kdeconnect.Plugins.PresenterPlugin; import android.app.Activity; import android.content.Intent; import android.graphics.drawable.Drawable; +import android.net.Network; import android.os.Handler; import android.os.Message; import android.view.KeyEvent; @@ -129,4 +130,10 @@ public class PresenterPlugin extends Plugin { device.sendPacket(np, NetworkPacket.PACKET_REPLACEID_PRESENTERPOINTER); } + public void stopPointer() { + device.getAndRemoveUnsentPacket(NetworkPacket.PACKET_REPLACEID_PRESENTERPOINTER); + NetworkPacket np = new NetworkPacket(PACKET_TYPE_PRESENTER); + np.set("stop", true); + device.sendPacket(np); + } }