blob: d08516f17843282f4f22821e1193155ede9f715e [file] [log] [blame]
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);
}
}
}