package org.droidplanner.android.proxy.mission.item.fragments;
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.spatial.RegionOfInterest;
import org.beyene.sius.unit.length.LengthUnit;
import org.droidplanner.android.R;
import org.droidplanner.android.utils.unit.providers.length.LengthUnitProvider;
import org.droidplanner.android.view.spinnerWheel.CardWheelHorizontalView;
import org.droidplanner.android.view.spinnerWheel.adapters.LengthWheelAdapter;
public class MissionRegionOfInterestFragment extends MissionDetailFragment implements
CardWheelHorizontalView.OnCardWheelScrollListener<LengthUnit> {
@Override
protected int getResource() {
return R.layout.fragment_editor_detail_roi;
}
@Override
public void onApiConnected() {
super.onApiConnected();
final View view = getView();
typeSpinner.setSelection(commandAdapter.getPosition(MissionItemType.REGION_OF_INTEREST));
final LengthUnitProvider lengthUP = getLengthUnitProvider();
final LengthWheelAdapter altitudeAdapter = new LengthWheelAdapter(getContext(), R.layout.wheel_text_centered,
lengthUP.boxBaseValueToTarget(MIN_ALTITUDE), lengthUP.boxBaseValueToTarget(MAX_ALTITUDE));
CardWheelHorizontalView<LengthUnit> altitudePicker = (CardWheelHorizontalView<LengthUnit>) view
.findViewById(R.id.altitudePicker);
altitudePicker.setViewAdapter(altitudeAdapter);
altitudePicker.addScrollListener(this);
altitudePicker.setCurrentValue(lengthUP.boxBaseValueToTarget(((RegionOfInterest) getMissionItems().get(0))
.getCoordinate().getAltitude()));
}
@Override
public void onScrollingStarted(CardWheelHorizontalView cardWheel, LengthUnit startValue) {
}
@Override
public void onScrollingUpdate(CardWheelHorizontalView cardWheel, LengthUnit oldValue, LengthUnit newValue) {
}
@Override
public void onScrollingEnded(CardWheelHorizontalView wheel, LengthUnit startValue, LengthUnit endValue) {
switch (wheel.getId()) {
case R.id.altitudePicker:
final double baseValue = endValue.toBase().getValue();
for (MissionItem missionItem : getMissionItems()) {
((RegionOfInterest) missionItem).getCoordinate().setAltitude(baseValue);
}
getMissionProxy().notifyMissionUpdate();
break;
}
}
}