From ada875cdb06c0ab22b7b6d502fd9535003631a5a Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 19 Jan 2016 18:52:51 -0500 Subject: [PATCH] Highlight the controls red when in configuration mode --- .../input/virtual_controller/AnalogStick.java | 13 ++++--------- .../virtual_controller/DigitalButton.java | 2 +- .../input/virtual_controller/DigitalPad.java | 18 +++++++++--------- .../virtual_controller/VirtualController.java | 4 ++++ .../VirtualControllerElement.java | 10 ++++++++-- 5 files changed, 26 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java index f52dfe2c..347bb8c3 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java @@ -210,11 +210,6 @@ public class AnalogStick extends VirtualControllerElement { } } - public void setColors(int normalColor, int pressedColor) { - this.normalColor = normalColor; - this.pressedColor = pressedColor; - } - @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { // calculate new radius sizes depending @@ -235,25 +230,25 @@ public class AnalogStick extends VirtualControllerElement { // draw outer circle if (!isPressed() || click_state == CLICK_STATE.SINGLE) { - paint.setColor(normalColor); + paint.setColor(getDefaultColor()); } else { paint.setColor(pressedColor); } canvas.drawCircle(getWidth() / 2, getHeight() / 2, radius_complete, paint); - paint.setColor(normalColor); + paint.setColor(getDefaultColor()); // draw dead zone canvas.drawCircle(getWidth() / 2, getHeight() / 2, radius_dead_zone, paint); // draw stick depending on state switch (stick_state) { case NO_MOVEMENT: { - paint.setColor(normalColor); + paint.setColor(getDefaultColor()); canvas.drawCircle(getWidth() / 2, getHeight() / 2, radius_analog_stick, paint); break; } case MOVED_IN_DEAD_ZONE: { - paint.setColor(normalColor); + paint.setColor(getDefaultColor()); canvas.drawCircle(position_stick_x, position_stick_y, radius_analog_stick, paint); break; diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java index 4d2d9ef6..8cc62ee0 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java @@ -148,7 +148,7 @@ public class DigitalButton extends VirtualControllerElement { paint.setTextAlign(Paint.Align.CENTER); paint.setStrokeWidth(3); - paint.setColor(isPressed() ? pressedColor : normalColor); + paint.setColor(isPressed() ? pressedColor : getDefaultColor()); paint.setStyle(Paint.Style.STROKE); canvas.drawRect(1, 1, getWidth() - 1, getHeight() - 1, paint); diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalPad.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalPad.java index 15db0086..5043f6bd 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalPad.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalPad.java @@ -44,7 +44,7 @@ public class DigitalPad extends VirtualControllerElement { if (direction == DIGITAL_PAD_DIRECTION_NO_DIRECTION) { // draw no direction rect paint.setStyle(Paint.Style.STROKE); - paint.setColor(normalColor); + paint.setColor(getDefaultColor()); canvas.drawRect( getPercent(getWidth(), 36), getPercent(getHeight(), 36), getPercent(getWidth(), 63), getPercent(getHeight(), 63), @@ -54,7 +54,7 @@ public class DigitalPad extends VirtualControllerElement { // draw left rect paint.setColor( - (direction & DIGITAL_PAD_DIRECTION_LEFT) > 0 ? pressedColor : normalColor); + (direction & DIGITAL_PAD_DIRECTION_LEFT) > 0 ? pressedColor : getDefaultColor()); paint.setStyle(Paint.Style.STROKE); canvas.drawRect( paint.getStrokeWidth(), getPercent(getHeight(), 33), @@ -65,7 +65,7 @@ public class DigitalPad extends VirtualControllerElement { // draw up rect paint.setColor( - (direction & DIGITAL_PAD_DIRECTION_UP) > 0 ? pressedColor : normalColor); + (direction & DIGITAL_PAD_DIRECTION_UP) > 0 ? pressedColor : getDefaultColor()); paint.setStyle(Paint.Style.STROKE); canvas.drawRect( getPercent(getWidth(), 33), paint.getStrokeWidth(), @@ -75,7 +75,7 @@ public class DigitalPad extends VirtualControllerElement { // draw right rect paint.setColor( - (direction & DIGITAL_PAD_DIRECTION_RIGHT) > 0 ? pressedColor : normalColor); + (direction & DIGITAL_PAD_DIRECTION_RIGHT) > 0 ? pressedColor : getDefaultColor()); paint.setStyle(Paint.Style.STROKE); canvas.drawRect( getPercent(getWidth(), 66), getPercent(getHeight(), 33), @@ -85,7 +85,7 @@ public class DigitalPad extends VirtualControllerElement { // draw down rect paint.setColor( - (direction & DIGITAL_PAD_DIRECTION_DOWN) > 0 ? pressedColor : normalColor); + (direction & DIGITAL_PAD_DIRECTION_DOWN) > 0 ? pressedColor : getDefaultColor()); paint.setStyle(Paint.Style.STROKE); canvas.drawRect( getPercent(getWidth(), 33), getPercent(getHeight(), 66), @@ -97,7 +97,7 @@ public class DigitalPad extends VirtualControllerElement { paint.setColor(( (direction & DIGITAL_PAD_DIRECTION_LEFT) > 0 && (direction & DIGITAL_PAD_DIRECTION_UP) > 0 - ) ? pressedColor : normalColor + ) ? pressedColor : getDefaultColor() ); paint.setStyle(Paint.Style.STROKE); canvas.drawLine( @@ -110,7 +110,7 @@ public class DigitalPad extends VirtualControllerElement { paint.setColor(( (direction & DIGITAL_PAD_DIRECTION_UP) > 0 && (direction & DIGITAL_PAD_DIRECTION_RIGHT) > 0 - ) ? pressedColor : normalColor + ) ? pressedColor : getDefaultColor() ); paint.setStyle(Paint.Style.STROKE); canvas.drawLine( @@ -123,7 +123,7 @@ public class DigitalPad extends VirtualControllerElement { paint.setColor(( (direction & DIGITAL_PAD_DIRECTION_RIGHT) > 0 && (direction & DIGITAL_PAD_DIRECTION_DOWN) > 0 - ) ? pressedColor : normalColor + ) ? pressedColor : getDefaultColor() ); paint.setStyle(Paint.Style.STROKE); canvas.drawLine( @@ -136,7 +136,7 @@ public class DigitalPad extends VirtualControllerElement { paint.setColor(( (direction & DIGITAL_PAD_DIRECTION_DOWN) > 0 && (direction & DIGITAL_PAD_DIRECTION_LEFT) > 0 - ) ? pressedColor : normalColor + ) ? pressedColor : getDefaultColor() ); paint.setStyle(Paint.Style.STROKE); canvas.drawLine( diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java index 6208011b..2f1bbd3b 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualController.java @@ -77,6 +77,10 @@ public class VirtualController { Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); relative_layout.invalidate(); + + for (VirtualControllerElement element : elements) { + element.invalidate(); + } } }); } diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerElement.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerElement.java index a106ece1..8652f0f9 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerElement.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/VirtualControllerElement.java @@ -20,9 +20,10 @@ public abstract class VirtualControllerElement extends View { private final Paint paint = new Paint(); - protected int normalColor = 0xF0888888; + private int normalColor = 0xF0888888; protected int pressedColor = 0xF00000FF; - protected int configSelectedColor = 0xF000FF00; + private int configNormalColor = 0xF0FF0000; + private int configSelectedColor = 0xF000FF00; protected int startSize_x; protected int startSize_y; @@ -132,6 +133,11 @@ public abstract class VirtualControllerElement extends View { invalidate(); } + protected int getDefaultColor() { + return (virtualController.getControllerMode() == VirtualController.ControllerMode.Configuration) ? + configNormalColor : normalColor; + } + protected void showConfigurationDialog() { try { AlertDialog.Builder alertBuilder = new AlertDialog.Builder(getContext());