package com.PP.LunarTabsAndroid.Dialogs; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.content.res.Resources; import android.os.Bundle; import com.PP.IntelliSeg.MarkerSegmenter.MarkerSegmenter; import com.PP.IntelliSeg.MeasureIncrementSegmenter.MeasureIncrementSegmenter; import com.PP.IntelliSeg.RepetionSegmenter.SMRSegmenter.SMRSegmenter; import com.PP.LunarTabsAndroid.Activities.MainActivity; import com.PP.LunarTabsAndroid.UI.DataModel; import com.example.lunartabsandroid.R; public class MeasureIncrementDialog extends DialogFragment { //parent protected MainActivity parent; public MeasureIncrementDialog(MainActivity parent) { this.parent = parent; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.SectionIncrement); builder.setItems(R.array.MeasureIncChoices, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // The 'which' argument contains the index position // of the selected item //get choice Resources r = getActivity().getResources(); String[] incChoices = r.getStringArray(R.array.MeasureIncArr); if(which==(incChoices.length-2)) { //redo data model w/ repetition segmenter DataModel dataModel = DataModel.getInstance(); dataModel.setSegmenter(new SMRSegmenter()); dataModel.genInstructions(); dataModel.setCurrentSegment(0); dataModel.clearSelectedInstructionIndex(); parent.refreshGUI(); } else if(which==(incChoices.length-1)) { //redo data model w/ marker segmenter DataModel dataModel = DataModel.getInstance(); dataModel.setSegmenter(new MarkerSegmenter()); dataModel.genInstructions(); dataModel.setCurrentSegment(0); dataModel.clearSelectedInstructionIndex(); parent.refreshGUI(); } else { //redo data model w/ measurement increment try { int newInc = Integer.parseInt(incChoices[which]); DataModel dataModel = DataModel.getInstance(); MeasureIncrementSegmenter m; if(dataModel.getSegmenter() instanceof MeasureIncrementSegmenter) { m = (MeasureIncrementSegmenter) dataModel.getSegmenter(); } else { m = new MeasureIncrementSegmenter(); dataModel.setSegmenter(m); } m.setIncrement(newInc); dataModel.genInstructions(); dataModel.setCurrentSegment(0); dataModel.clearSelectedInstructionIndex(); parent.refreshGUI(); } catch(Exception e) { e.printStackTrace(); } } } }); return builder.create(); } }