Changeset View
Changeset View
Standalone View
Standalone View
src/org/kde/kdeconnect/Plugins/MousePadPlugin/MousePadActivity.java
Show First 20 Lines • Show All 56 Lines • ▼ Show 20 Line(s) | 42 | public class MousePadActivity extends AppCompatActivity implements GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener, MousePadGestureDetector.OnGestureListener { | |||
---|---|---|---|---|---|
57 | 57 | | |||
58 | private GestureDetector mDetector; | 58 | private GestureDetector mDetector; | ||
59 | private MousePadGestureDetector mMousePadGestureDetector; | 59 | private MousePadGestureDetector mMousePadGestureDetector; | ||
60 | 60 | | |||
61 | KeyListenerView keyListenerView; | 61 | KeyListenerView keyListenerView; | ||
62 | 62 | | |||
63 | enum ClickType { | 63 | enum ClickType { | ||
64 | RIGHT, MIDDLE, NONE; | 64 | RIGHT, MIDDLE, NONE; | ||
65 | | ||||
65 | static ClickType fromString(String s) { | 66 | static ClickType fromString(String s) { | ||
66 | switch(s) { | 67 | switch (s) { | ||
67 | case "right": return RIGHT; | 68 | case "right": | ||
68 | case "middle": return MIDDLE; | 69 | return RIGHT; | ||
69 | default: return NONE; | 70 | case "middle": | ||
71 | return MIDDLE; | ||||
72 | default: | ||||
73 | return NONE; | ||||
70 | } | 74 | } | ||
71 | } | 75 | } | ||
72 | } | 76 | } | ||
73 | 77 | | |||
74 | private ClickType doubleTapAction, tripleTapAction; | 78 | private ClickType doubleTapAction, tripleTapAction; | ||
75 | 79 | | |||
76 | @Override | 80 | @Override | ||
77 | protected void onCreate(Bundle savedInstanceState) { | 81 | protected void onCreate(Bundle savedInstanceState) { | ||
78 | super.onCreate(savedInstanceState); | 82 | super.onCreate(savedInstanceState); | ||
79 | 83 | | |||
80 | setContentView(R.layout.activity_mousepad); | 84 | setContentView(R.layout.activity_mousepad); | ||
81 | 85 | | |||
82 | deviceId = getIntent().getStringExtra("deviceId"); | 86 | deviceId = getIntent().getStringExtra("deviceId"); | ||
83 | 87 | | |||
84 | getWindow().getDecorView().setHapticFeedbackEnabled(true); | 88 | getWindow().getDecorView().setHapticFeedbackEnabled(true); | ||
85 | 89 | | |||
86 | mDetector = new GestureDetector(this, this); | 90 | mDetector = new GestureDetector(this, this); | ||
87 | mMousePadGestureDetector = new MousePadGestureDetector(this, this); | 91 | mMousePadGestureDetector = new MousePadGestureDetector(this, this); | ||
88 | mDetector.setOnDoubleTapListener(this); | 92 | mDetector.setOnDoubleTapListener(this); | ||
89 | 93 | | |||
90 | keyListenerView = (KeyListenerView)findViewById(R.id.keyListener); | 94 | keyListenerView = (KeyListenerView) findViewById(R.id.keyListener); | ||
91 | keyListenerView.setDeviceId(deviceId); | 95 | keyListenerView.setDeviceId(deviceId); | ||
92 | 96 | | |||
93 | SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); | 97 | SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); | ||
94 | if (prefs.getBoolean(getString(R.string.mousepad_scroll_direction),false)) { | 98 | if (prefs.getBoolean(getString(R.string.mousepad_scroll_direction), false)) { | ||
95 | scrollDirection = -1; | 99 | scrollDirection = -1; | ||
96 | } else { | 100 | } else { | ||
97 | scrollDirection = 1; | 101 | scrollDirection = 1; | ||
98 | } | 102 | } | ||
99 | String doubleTapSetting = prefs.getString(getString(R.string.mousepad_double_tap_key), | 103 | String doubleTapSetting = prefs.getString(getString(R.string.mousepad_double_tap_key), | ||
100 | getString(R.string.mousepad_default_double)); | 104 | getString(R.string.mousepad_default_double)); | ||
101 | String tripleTapSetting = prefs.getString(getString(R.string.mousepad_triple_tap_key), | 105 | String tripleTapSetting = prefs.getString(getString(R.string.mousepad_triple_tap_key), | ||
102 | getString(R.string.mousepad_default_triple)); | 106 | getString(R.string.mousepad_default_triple)); | ||
103 | String sensitivitySetting = prefs.getString(getString(R.string.mousepad_sensitivity_key), | 107 | String sensitivitySetting = prefs.getString(getString(R.string.mousepad_sensitivity_key), | ||
104 | getString(R.string.mousepad_default_sensitivity)); | 108 | getString(R.string.mousepad_default_sensitivity)); | ||
105 | 109 | | |||
106 | doubleTapAction = ClickType.fromString(doubleTapSetting); | 110 | doubleTapAction = ClickType.fromString(doubleTapSetting); | ||
107 | tripleTapAction = ClickType.fromString(tripleTapSetting); | 111 | tripleTapAction = ClickType.fromString(tripleTapSetting); | ||
108 | 112 | | |||
109 | switch (sensitivitySetting){ | 113 | switch (sensitivitySetting) { | ||
110 | case "slowest": | 114 | case "slowest": | ||
111 | mCurrentSensitivity = 0.2f; | 115 | mCurrentSensitivity = 0.2f; | ||
112 | break; | 116 | break; | ||
113 | case "aboveSlowest": | 117 | case "aboveSlowest": | ||
114 | mCurrentSensitivity = 0.5f; | 118 | mCurrentSensitivity = 0.5f; | ||
115 | break; | 119 | break; | ||
116 | case "default": | 120 | case "default": | ||
117 | mCurrentSensitivity = 1.0f; | 121 | mCurrentSensitivity = 1.0f; | ||
▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Line(s) | 171 | public boolean onOptionsItemSelected(MenuItem item) { | |||
180 | } | 184 | } | ||
181 | } | 185 | } | ||
182 | 186 | | |||
183 | @Override | 187 | @Override | ||
184 | public boolean onTouchEvent(MotionEvent event) { | 188 | public boolean onTouchEvent(MotionEvent event) { | ||
185 | if (mMousePadGestureDetector.onTouchEvent(event)) { | 189 | if (mMousePadGestureDetector.onTouchEvent(event)) { | ||
186 | return true; | 190 | return true; | ||
187 | } | 191 | } | ||
188 | if ( mDetector.onTouchEvent(event) ) { | 192 | if (mDetector.onTouchEvent(event)) { | ||
189 | return true; | 193 | return true; | ||
190 | } | 194 | } | ||
191 | 195 | | |||
192 | int actionType = event.getAction(); | 196 | int actionType = event.getAction(); | ||
193 | 197 | | |||
194 | if (isScrolling) { | 198 | if (isScrolling) { | ||
195 | if (actionType == MotionEvent.ACTION_UP) { | 199 | if (actionType == MotionEvent.ACTION_UP) { | ||
196 | isScrolling = false; | 200 | isScrolling = false; | ||
Show All 38 Lines | |||||
235 | } | 239 | } | ||
236 | 240 | | |||
237 | @Override | 241 | @Override | ||
238 | public boolean onSingleTapUp(MotionEvent e) { | 242 | public boolean onSingleTapUp(MotionEvent e) { | ||
239 | return false; | 243 | return false; | ||
240 | } | 244 | } | ||
241 | 245 | | |||
242 | @Override | 246 | @Override | ||
243 | public boolean onGenericMotionEvent(MotionEvent e) | 247 | public boolean onGenericMotionEvent(MotionEvent e) { | ||
244 | { | | |||
245 | if (android.os.Build.VERSION.SDK_INT >= 12) { // MotionEvent.getAxisValue is >= 12 | 248 | if (android.os.Build.VERSION.SDK_INT >= 12) { // MotionEvent.getAxisValue is >= 12 | ||
246 | if (e.getAction() == MotionEvent.ACTION_SCROLL) { | 249 | if (e.getAction() == MotionEvent.ACTION_SCROLL) { | ||
247 | final float distanceY = e.getAxisValue(MotionEvent.AXIS_VSCROLL); | 250 | final float distanceY = e.getAxisValue(MotionEvent.AXIS_VSCROLL); | ||
248 | 251 | | |||
249 | accumulatedDistanceY += distanceY; | 252 | accumulatedDistanceY += distanceY; | ||
250 | 253 | | |||
251 | if (accumulatedDistanceY > MinDistanceToSendGenericScroll || accumulatedDistanceY < -MinDistanceToSendGenericScroll) { | 254 | if (accumulatedDistanceY > MinDistanceToSendGenericScroll || accumulatedDistanceY < -MinDistanceToSendGenericScroll) { | ||
252 | sendScroll(accumulatedDistanceY); | 255 | sendScroll(accumulatedDistanceY); | ||
Show All 10 Lines | 265 | public boolean onScroll(MotionEvent e1, MotionEvent e2, final float distanceX, final float distanceY) { | |||
263 | // If only one thumb is used then cancel the scroll gesture | 266 | // If only one thumb is used then cancel the scroll gesture | ||
264 | if (e2.getPointerCount() <= 1) { | 267 | if (e2.getPointerCount() <= 1) { | ||
265 | return false; | 268 | return false; | ||
266 | } | 269 | } | ||
267 | 270 | | |||
268 | isScrolling = true; | 271 | isScrolling = true; | ||
269 | 272 | | |||
270 | accumulatedDistanceY += distanceY; | 273 | accumulatedDistanceY += distanceY; | ||
271 | if (accumulatedDistanceY > MinDistanceToSendScroll || accumulatedDistanceY < -MinDistanceToSendScroll) | 274 | if (accumulatedDistanceY > MinDistanceToSendScroll || accumulatedDistanceY < -MinDistanceToSendScroll) { | ||
272 | { | | |||
273 | sendScroll(scrollDirection * accumulatedDistanceY); | 275 | sendScroll(scrollDirection * accumulatedDistanceY); | ||
274 | 276 | | |||
275 | accumulatedDistanceY = 0; | 277 | accumulatedDistanceY = 0; | ||
276 | } | 278 | } | ||
277 | 279 | | |||
278 | return true; | 280 | return true; | ||
279 | } | 281 | } | ||
280 | 282 | | |||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Line(s) | |||||
329 | 331 | | |||
330 | @Override | 332 | @Override | ||
331 | public boolean onDoubleTapEvent(MotionEvent e) { | 333 | public boolean onDoubleTapEvent(MotionEvent e) { | ||
332 | return false; | 334 | return false; | ||
333 | } | 335 | } | ||
334 | 336 | | |||
335 | @Override | 337 | @Override | ||
336 | public boolean onTripleFingerTap(MotionEvent ev) { | 338 | public boolean onTripleFingerTap(MotionEvent ev) { | ||
337 | switch(tripleTapAction){ | 339 | switch (tripleTapAction) { | ||
338 | case RIGHT: | 340 | case RIGHT: | ||
339 | sendRightClick(); | 341 | sendRightClick(); | ||
340 | break; | 342 | break; | ||
341 | case MIDDLE: | 343 | case MIDDLE: | ||
342 | sendMiddleClick(); | 344 | sendMiddleClick(); | ||
343 | break; | 345 | break; | ||
344 | default: | 346 | default: | ||
345 | } | 347 | } | ||
346 | return true; | 348 | return true; | ||
347 | } | 349 | } | ||
348 | 350 | | |||
349 | @Override | 351 | @Override | ||
350 | public boolean onDoubleFingerTap(MotionEvent ev) { | 352 | public boolean onDoubleFingerTap(MotionEvent ev) { | ||
351 | switch(doubleTapAction){ | 353 | switch (doubleTapAction) { | ||
352 | case RIGHT: | 354 | case RIGHT: | ||
353 | sendRightClick(); | 355 | sendRightClick(); | ||
354 | break; | 356 | break; | ||
355 | case MIDDLE: | 357 | case MIDDLE: | ||
356 | sendMiddleClick(); | 358 | sendMiddleClick(); | ||
357 | break; | 359 | break; | ||
358 | default: | 360 | default: | ||
359 | } | 361 | } | ||
▲ Show 20 Lines • Show All 71 Lines • Show Last 20 Lines |