package com.integreight.onesheeld.shields.fragments;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import com.integreight.onesheeld.R;
import com.integreight.onesheeld.enums.ArduinoPin;
import com.integreight.onesheeld.model.ArduinoConnectedPin;
import com.integreight.onesheeld.sdk.OneSheeldDevice;
import com.integreight.onesheeld.shields.ShieldFragmentParent;
import com.integreight.onesheeld.shields.controller.ToggleButtonShield;
import com.integreight.onesheeld.utils.ConnectingPinsView;
import com.integreight.onesheeld.utils.ConnectingPinsView.OnPinSelectionListener;
import com.integreight.onesheeld.utils.customviews.OneSheeldToggleButton;
public class ToggleButtonFragment extends
ShieldFragmentParent<ToggleButtonFragment> {
OneSheeldToggleButton toggleButtonButton;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.toggle_button_shield_fragment_layout,
container, false);
}
@Override
public void doOnViewCreated(View v, @Nullable Bundle savedInstanceState) {
toggleButtonButton = (OneSheeldToggleButton) v
.findViewById(R.id.toggle_button_shield_button_toggle_button);
if (getApplication().getRunningShields().get(
getControllerTag()) == null) {
getApplication().getRunningShields().put(getControllerTag(),
new ToggleButtonShield(activity, getControllerTag()));
}
toggleButtonButton
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
((ToggleButtonShield) getApplication()
.getRunningShields().get(getControllerTag()))
.setButton(isChecked);
}
});
if (getApplication().getRunningShields().get(
getControllerTag()) != null)
toggleButtonButton.setEnabled(true);
}
@Override
public void doOnStart() {
toggleButtonButton.setChecked(((ToggleButtonShield) getApplication().getRunningShields().get(getControllerTag())).getButton());
ConnectingPinsView.getInstance().reset(
getApplication().getRunningShields().get(getControllerTag()),
new OnPinSelectionListener() {
@Override
public void onSelect(ArduinoPin pin) {
if (pin != null) {
(getApplication()
.getRunningShields()
.get(getControllerTag()))
.setConnected(new ArduinoConnectedPin(
pin.microHardwarePin,
OneSheeldDevice.OUTPUT));
((ToggleButtonShield) getApplication().getRunningShields().get(getControllerTag())).setButton(toggleButtonButton.isChecked());
toggleButtonButton.setEnabled(true);
}
}
@Override
public void onUnSelect(ArduinoPin pin) {
}
});
}
}