package org.droidplanner.android.proxy.mission.item.fragments;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import com.o3dr.services.android.lib.drone.mission.MissionItemType;
import com.o3dr.services.android.lib.drone.mission.item.MissionItem;
import com.o3dr.services.android.lib.drone.mission.item.command.YawCondition;
import org.droidplanner.android.R;
import org.droidplanner.android.widgets.spinnerWheel.CardWheelHorizontalView;
import org.droidplanner.android.widgets.spinnerWheel.adapters.NumericWheelAdapter;
public class MissionConditionYawFragment extends MissionDetailFragment
implements CardWheelHorizontalView.OnCardWheelScrollListener<Integer>,
OnCheckedChangeListener {
@Override
protected int getResource() {
return R.layout.fragment_editor_detail_condition_yaw;
}
@Override
public void onApiConnected() {
super.onApiConnected();
final View view = getView();
typeSpinner.setSelection(commandAdapter.getPosition(MissionItemType.YAW_CONDITION));
YawCondition item = (YawCondition) getMissionItems().get(0);
final NumericWheelAdapter adapter = new NumericWheelAdapter(getContext(),
R.layout.wheel_text_centered, 0, 359, "%d deg");
final CardWheelHorizontalView<Integer> cardAltitudePicker = (CardWheelHorizontalView<Integer>) view
.findViewById(R.id.picker1);
cardAltitudePicker.setViewAdapter(adapter);
cardAltitudePicker.addScrollListener(this);
cardAltitudePicker.setCurrentValue((int) item.getAngle());
CheckBox checkBoxRelative = (CheckBox) view.findViewById(R.id.checkBox1);
checkBoxRelative.setOnCheckedChangeListener(this);
checkBoxRelative.setChecked(item.isRelative());
}
@Override
public void onScrollingStarted(CardWheelHorizontalView cardWheel, Integer startValue) {
}
@Override
public void onScrollingUpdate(CardWheelHorizontalView cardWheel, Integer oldValue, Integer newValue) {
}
@Override
public void onScrollingEnded(CardWheelHorizontalView wheel, Integer startValue, Integer endValue) {
switch (wheel.getId()) {
case R.id.picker1:
for (MissionItem missionItem : getMissionItems()) {
YawCondition item = (YawCondition) missionItem;
item.setAngle(endValue);
}
getMissionProxy().notifyMissionUpdate();
break;
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (buttonView.getId() == R.id.checkBox1) {
for (MissionItem missionItem : getMissionItems()) {
((YawCondition) missionItem).setRelative(isChecked);
}
getMissionProxy().notifyMissionUpdate();
}
}
}