summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2020-03-23 11:09:18 +0100
committerGitHub <noreply@github.com>2020-03-23 11:09:18 +0100
commitc488b6c3fb0223e2d3eaf867b5fa950c9cbc47fd (patch)
tree26c2ad83ee49841ff8144b359cc218b687976ff3 /app/src/main/java/de/danoeh
parent884d00a5374efe60da76a6b9daf33505b4954f8f (diff)
parent72b85f247269f3038a3498995a97ade748f773d9 (diff)
downloadAntennaPod-c488b6c3fb0223e2d3eaf867b5fa950c9cbc47fd.zip
Merge pull request #3953 from ByteHamster/do-not-rotate-speed-indicator
Do not rotate speed indicator if setSpeed is never called
Diffstat (limited to 'app/src/main/java/de/danoeh')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/PlaybackSpeedIndicatorView.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/view/PlaybackSpeedIndicatorView.java b/app/src/main/java/de/danoeh/antennapod/view/PlaybackSpeedIndicatorView.java
index d5c4e3c6d..52c6e5375 100644
--- a/app/src/main/java/de/danoeh/antennapod/view/PlaybackSpeedIndicatorView.java
+++ b/app/src/main/java/de/danoeh/antennapod/view/PlaybackSpeedIndicatorView.java
@@ -20,7 +20,7 @@ public class PlaybackSpeedIndicatorView extends View {
private final Paint indicatorPaint = new Paint();
private final Path trianglePath = new Path();
private float angle = VALUE_UNSET;
- private float targetAngle = 0.5f;
+ private float targetAngle = VALUE_UNSET;
private float degreePerFrame = 2;
private float paddingArc = 20;
private float paddingIndicator = 10;
@@ -41,6 +41,9 @@ public class PlaybackSpeedIndicatorView extends View {
}
private void setup() {
+ setSpeed(1.0f); // Set default angle to 1.0
+ targetAngle = VALUE_UNSET; // Do not move to first value that is set externally
+
int[] colorAttrs = new int[] {R.attr.action_icon_color };
TypedArray a = getContext().obtainStyledAttributes(colorAttrs);
arcPaint.setColor(a.getColor(0, 0xffffffff));
@@ -61,10 +64,11 @@ public class PlaybackSpeedIndicatorView extends View {
float maxAnglePerDirection = 90 + 45 - 2 * paddingArc;
// Speed values above 3 are probably not too common. Cap at 3 for better differentiation
float normalizedValue = Math.min(2.5f, value - 0.5f) / 2.5f; // Linear between 0 and 1
- targetAngle = -maxAnglePerDirection + 2 * maxAnglePerDirection * normalizedValue;
- if (angle == VALUE_UNSET) {
- angle = targetAngle;
+ float target = -maxAnglePerDirection + 2 * maxAnglePerDirection * normalizedValue;
+ if (targetAngle == VALUE_UNSET) {
+ angle = target;
}
+ targetAngle = target;
degreePerFrame = Math.abs(targetAngle - angle) / 20;
invalidate();
}
@@ -100,7 +104,7 @@ public class PlaybackSpeedIndicatorView extends View {
canvas.drawArc(arcBounds, -180 - 45, 90 + 45 + angle - PADDING_ANGLE, false, arcPaint);
canvas.drawArc(arcBounds, -90 + PADDING_ANGLE + angle, 90 + 45 - PADDING_ANGLE - angle, false, arcPaint);
- if (Math.abs(angle - targetAngle) > 0.5) {
+ if (Math.abs(angle - targetAngle) > 0.5 && targetAngle != VALUE_UNSET) {
angle += Math.signum(targetAngle - angle) * Math.min(degreePerFrame, Math.abs(targetAngle - angle));
invalidate();
}