diff options
Diffstat (limited to 'demokit/app/src/com/google/android/DemoKit/RelayController.java')
-rw-r--r-- | demokit/app/src/com/google/android/DemoKit/RelayController.java | 56 |
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); + } + } + +} |