aboutsummaryrefslogtreecommitdiff
path: root/demokit/app/src/com/google/android/DemoKit/RelayController.java
diff options
context:
space:
mode:
Diffstat (limited to 'demokit/app/src/com/google/android/DemoKit/RelayController.java')
-rw-r--r--demokit/app/src/com/google/android/DemoKit/RelayController.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/demokit/app/src/com/google/android/DemoKit/RelayController.java b/demokit/app/src/com/google/android/DemoKit/RelayController.java
new file mode 100644
index 0000000..d08516f
--- /dev/null
+++ b/demokit/app/src/com/google/android/DemoKit/RelayController.java
@@ -0,0 +1,56 @@
+package com.google.android.DemoKit;
+
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.text.SpannableStringBuilder;
+import android.text.style.RelativeSizeSpan;
+import android.text.style.SubscriptSpan;
+import android.view.ViewGroup;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.TextView;
+import android.widget.ToggleButton;
+
+public class RelayController implements OnCheckedChangeListener {
+ private final int mRelayNumber;
+ private final byte mCommandTarget;
+ private DemoKitActivity mActivity;
+ private TextView mLabel;
+ private ToggleButton mButton;
+ private Drawable mOffBackground;
+ private Drawable mOnBackground;
+
+ public RelayController(DemoKitActivity activity, int relayNumber,
+ Resources res) {
+ mActivity = activity;
+ mRelayNumber = relayNumber;
+ mCommandTarget = (byte) (relayNumber - 1);
+ mOffBackground = res
+ .getDrawable(R.drawable.toggle_button_off_holo_dark);
+ mOnBackground = res.getDrawable(R.drawable.toggle_button_on_holo_dark);
+ }
+
+ public void attachToView(ViewGroup targetView) {
+ mLabel = (TextView) targetView.getChildAt(0);
+ SpannableStringBuilder ssb = new SpannableStringBuilder("Relay");
+ ssb.append(String.valueOf(mRelayNumber));
+ ssb.setSpan(new SubscriptSpan(), 5, 6, 0);
+ ssb.setSpan(new RelativeSizeSpan(0.7f), 5, 6, 0);
+ mLabel.setText(ssb);
+ mButton = (ToggleButton) targetView.getChildAt(1);
+ mButton.setOnCheckedChangeListener(this);
+ }
+
+ public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
+ if (isChecked) {
+ mButton.setBackgroundDrawable(mOnBackground);
+ } else {
+ mButton.setBackgroundDrawable(mOffBackground);
+ }
+ if (mActivity != null) {
+ mActivity.sendCommand(DemoKitActivity.RELAY_COMMAND,
+ mCommandTarget, isChecked ? 1 : 0);
+ }
+ }
+
+}