Skip to content

Commit f363cd6

Browse files
committed
Build158
- Fixed compass dial stuck sometimes after manual rotation
1 parent 5633110 commit f363cd6

File tree

2 files changed

+2
-13
lines changed

2 files changed

+2
-13
lines changed

app/src/main/java/app/simple/positional/decorations/views/PhysicalRotationImageView.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ protected boolean angleRecalculate(final long timeNew) {
176176
*/
177177
@Override
178178
public void clearAnimation() {
179-
animationOn = false;
179+
rotationUpdate(getRotation(), false);
180180
super.clearAnimation();
181181
}
182182
}

app/src/main/java/app/simple/positional/ui/panels/Compass.kt

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,6 @@ class Compass : ScopedFragment(), SensorEventListener {
7575
private val magnetometerReadings = FloatArray(3)
7676
private val rotation = FloatArray(9)
7777
private val inclination = FloatArray(9)
78-
private var accelerometerValues: String? = null
79-
private var magnetometerValues: String? = null
8078

8179
private var haveAccelerometerSensor = false
8280
private var haveMagnetometerSensor = false
@@ -108,7 +106,6 @@ class Compass : ScopedFragment(), SensorEventListener {
108106
private lateinit var magnetometerX: TextView
109107
private lateinit var magnetometerY: TextView
110108
private lateinit var magnetometerZ: TextView
111-
private lateinit var magnetometerData: TextView
112109
private lateinit var inclinationTextView: TextView
113110
private lateinit var declination: TextView
114111
private lateinit var fieldStrength: TextView
@@ -345,10 +342,6 @@ class Compass : ScopedFragment(), SensorEventListener {
345342
Sensor.TYPE_ACCELEROMETER -> {
346343
smoothAndSetReadings(accelerometerReadings, event.values, readingsAlpha)
347344
accelerometer = Vector3(accelerometerReadings[0], accelerometerReadings[1], accelerometerReadings[2])
348-
349-
accelerometerValues += "x: ${accelerometerReadings[0]}"
350-
accelerometerValues += "y: ${accelerometerReadings[1]}\n"
351-
accelerometerValues += "z: ${accelerometerReadings[2]}\n"
352345
}
353346
Sensor.TYPE_MAGNETIC_FIELD -> {
354347
smoothAndSetReadings(magnetometerReadings, event.values, readingsAlpha)
@@ -504,21 +497,17 @@ class Compass : ScopedFragment(), SensorEventListener {
504497

505498
private inner class MyOnTouchListener : View.OnTouchListener {
506499

507-
var animate = false
508-
509500
@SuppressLint("ClickableViewAccessibility")
510501
override fun onTouch(v: View?, event: MotionEvent): Boolean {
511502
when (event.action) {
512503
MotionEvent.ACTION_DOWN -> {
513-
animate = CompassPreferences.isUsingPhysicalProperties()
514504
isUserRotatingDial = true
515505
objectAnimator?.removeAllListeners()
516506
objectAnimator?.cancel()
517507
dial.clearAnimation()
518508
handler.removeCallbacks(compassDialAnimationRunnable)
519509
lastDialAngle = dial.rotation //if (dial.rotation < -180) abs(dial.rotation) else dial.rotation
520510
startAngle = getAngle(event.x.toDouble(), event.y.toDouble(), dialContainer.width.toFloat(), dialContainer.height.toFloat())
521-
dial.clearAnimation()
522511
return true
523512
}
524513
MotionEvent.ACTION_MOVE -> {
@@ -527,7 +516,7 @@ class Compass : ScopedFragment(), SensorEventListener {
527516
viewRotation(abs(finalAngle.normalizeEulerAngle(inverseResult = true)), animate = false)
528517
return true
529518
}
530-
MotionEvent.ACTION_UP -> {
519+
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
531520
handler.postDelayed(compassDialAnimationRunnable, 1000)
532521
return true
533522
}

0 commit comments

Comments
 (0)