import android.view.MotionEvent;
import android.view.View;
+import androidx.annotation.Nullable;
+
import net.ktnx.mobileledger.utils.Colors;
import net.ktnx.mobileledger.utils.DimensionUtils;
-import androidx.annotation.Nullable;
import static net.ktnx.mobileledger.utils.Logger.debug;
public class HueRing extends View {
- private static final int hueStepDegrees = 15;
+ public static final int hueStepDegrees = 5;
private Paint ringPaint, initialPaint, currentPaint, markerPaint;
private int centerX, centerY;
private int diameter;
return hueDegrees;
}
public void setHue(int hueDegrees) {
- if (hueDegrees == -1) hueDegrees = Colors.DEFAULT_HUE_DEG;
+ if (hueDegrees == -1)
+ hueDegrees = Colors.DEFAULT_HUE_DEG;
if (hueDegrees != Colors.DEFAULT_HUE_DEG) {
// round to 15 degrees
int rem = hueDegrees % hueStepDegrees;
- if (rem < (hueStepDegrees / 2)) hueDegrees -= rem;
- else hueDegrees += hueStepDegrees - rem;
+ if (rem < (hueStepDegrees / 2))
+ hueDegrees -= rem;
+ else
+ hueDegrees += hueStepDegrees - rem;
}
this.hueDegrees = hueDegrees;
// p.arcTo(-innerEdge, -innerEdge, innerEdge, innerEdge, -hueStepDegrees / 2f,
// hueStepDegrees, true);
// p.lineTo(outerEdge * cr, outerEdge * sr);
- p.arcTo(-outerEdge, -outerEdge, outerEdge, outerEdge, hueStepDegrees / 2f,
- -hueStepDegrees, false);
+ p.arcTo(-outerEdge, -outerEdge, outerEdge, outerEdge, hueStepDegrees / 2f, -hueStepDegrees,
+ false);
// p.close();
canvas.save();
canvas.translate(center, center);
float angleRad = (float) Math.atan2(y, x);
// angleRad is [-𝜋; +𝜋]
float hue = (float) (angleRad / (2 * Math.PI));
- if (hue < 0) hue += 1;
- debug("TMP",
- String.format("x=%1.3f, y=%1.3f, angle=%1.3frad, hueDegrees=%1.3f", x, y,
- angleRad, hue));
+ if (hue < 0)
+ hue += 1;
+ debug("TMP", String.format(Locale.US,
+ "x=%1.3f, y=%1.3f, angle=%1.3f rad, hueDegrees=%1.3f", x, y, angleRad,
+ hue));
setHue(hue);
break;
}
return true;
}
public void setInitialHue(int initialHue) {
- if (initialHue == -1) initialHue = Colors.DEFAULT_HUE_DEG;
+ if (initialHue == -1)
+ initialHue = Colors.DEFAULT_HUE_DEG;
this.initialHueDegrees = initialHue;
this.initialPaint.setColor(Colors.getPrimaryColorForHue(initialHue));
invalidate();