package org.droidplanner.android.fragments.control; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import com.o3dr.android.client.Drone; import org.droidplanner.android.R; import org.droidplanner.android.activities.helpers.SuperUI; import org.droidplanner.android.utils.prefs.DroidPlannerPrefs; /** * Provides action buttons functionality for generic drone type. */ public class GenericActionsFragment extends BaseFlightControlFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ return inflater.inflate(R.layout.fragment_generic_mission_control, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState){ super.onViewCreated(view, savedInstanceState); final Context context = getActivity().getApplicationContext(); final DroidPlannerPrefs prefs = DroidPlannerPrefs.getInstance(context); final Resources res = getResources(); final String[] connectionTypes = res.getStringArray(R.array.TelemetryConnectionTypes); final String[] connectionTypeValues = res.getStringArray(R.array.TelemetryConnectionTypesValues); final SparseArray<String> valuesToLabels = new SparseArray<>(); for(int i = 0; i < connectionTypes.length; i++){ valuesToLabels.append(Integer.parseInt(connectionTypeValues[i]), connectionTypes[i]); } final int savedConnectionType = prefs.getConnectionParameterType(); View connectBtn = view.findViewById(R.id.mc_connectBtn); connectBtn.setOnClickListener(this); final ArrayAdapter<String> connectionsAdapter = new ArrayAdapter<>(context, R.layout.spinner_drop_down_mission_item, connectionTypes); Spinner connectionsSpinner = (Spinner) view.findViewById(R.id.telem_connection_type); connectionsSpinner.setAdapter(connectionsAdapter); connectionsSpinner.setSelection(connectionsAdapter.getPosition(valuesToLabels.get(savedConnectionType))); connectionsSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String connectionValue = connectionTypeValues[position]; //Save the selected connection to the shared preferences prefs.setConnectionParameterType(Integer.parseInt(connectionValue)); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.mc_connectBtn: ((SuperUI) getActivity()).toggleDroneConnection(); break; } } @Override public boolean isSlidingUpPanelEnabled(Drone drone) { return true; } }