package org.droidplanner.android.proxy.mission.item.fragments;
import android.content.Context;
import android.view.View;
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.SetServo;
import org.droidplanner.android.R;
import org.droidplanner.android.view.spinnerWheel.CardWheelHorizontalView;
import org.droidplanner.android.view.spinnerWheel.adapters.NumericWheelAdapter;
public class SetServoFragment extends MissionDetailFragment implements CardWheelHorizontalView
.OnCardWheelScrollListener<Integer> {
@Override
protected int getResource() {
return R.layout.fragment_editor_detail_set_servo;
}
@Override
public void onApiConnected() {
super.onApiConnected();
final View view = getView();
typeSpinner.setSelection(commandAdapter.getPosition(MissionItemType.SET_SERVO));
final SetServo item = (SetServo) getMissionItems().get(0);
final Context context = getContext();
final NumericWheelAdapter adapter = new NumericWheelAdapter(context, R.layout.wheel_text_centered, 1, 8, "%d");
final CardWheelHorizontalView<Integer> cardChannelPicker = (CardWheelHorizontalView) view.findViewById(R.id
.picker1);
cardChannelPicker.setViewAdapter(adapter);
cardChannelPicker.addScrollListener(this);
cardChannelPicker.setCurrentValue(item.getChannel());
final NumericWheelAdapter pwmAdapter = new NumericWheelAdapter(context, R.layout.wheel_text_centered, 0,
2000, "%d");
final CardWheelHorizontalView<Integer> pwmPicker = (CardWheelHorizontalView) view.findViewById(R.id.pwmPicker);
pwmPicker.setViewAdapter(pwmAdapter);
pwmPicker.addScrollListener(this);
pwmPicker.setCurrentValue(item.getPwm());
}
@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()) {
SetServo item = (SetServo) missionItem;
item.setChannel(endValue);
}
getMissionProxy().notifyMissionUpdate();
break;
case R.id.pwmPicker:
for (MissionItem missionItem : getMissionItems()) {
SetServo item = (SetServo) missionItem;
item.setPwm(endValue);
}
getMissionProxy().notifyMissionUpdate();
break;
}
}
}