package info.nightscout.androidaps.plugins.Overview.Dialogs;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import org.json.JSONException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.Overview.OverviewPlugin;
import info.nightscout.androidaps.plugins.Overview.QuickWizard;
import info.nightscout.androidaps.plugins.Overview.events.EventQuickWizardChange;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.SafeParse;
public class EditQuickWizardDialog extends DialogFragment implements View.OnClickListener {
QuickWizard.QuickWizardEntry entry = new QuickWizard().newEmptyItem();
QuickWizard quickWizard = ((OverviewPlugin) MainApp.getSpecificPlugin(OverviewPlugin.class)).quickWizard;
EditText buttonEdit;
EditText carbsEdit;
Spinner fromSpinner;
Spinner toSpinner;
Button okButton;
public EditQuickWizardDialog() {
}
public void setData(QuickWizard.QuickWizardEntry data) {
entry = data;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
View view = inflater.inflate(R.layout.overview_editquickwizard_dialog, container, false);
buttonEdit = (EditText) view.findViewById(R.id.overview_editquickwizard_button_edit);
carbsEdit = (EditText) view.findViewById(R.id.overview_editquickwizard_carbs_edit);
fromSpinner = (Spinner) view.findViewById(R.id.overview_editquickwizard_from_spinner);
toSpinner = (Spinner) view.findViewById(R.id.overview_editquickwizard_to_spinner);
okButton = (Button) view.findViewById(R.id.overview_editquickwizard_ok_button);
okButton.setOnClickListener(this);
int posFrom = 0;
int posTo = 95;
ArrayList<CharSequence> timeList = new ArrayList<>();
int pos = 0;
for (int t = 0; t < 24 * 60 * 60; t += 15 * 60) {
timeList.add(DateUtil.timeString(DateUtil.toDate(t)));
if (entry.validFrom() == t) posFrom = pos;
if (entry.validTo() == t) posTo = pos;
pos++;
}
timeList.add(DateUtil.timeString(DateUtil.toDate(24 * 60 * 60 - 60)));
ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getContext(),
android.R.layout.simple_spinner_item, timeList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
fromSpinner.setAdapter(adapter);
toSpinner.setAdapter(adapter);
buttonEdit.setText(entry.buttonText());
carbsEdit.setText(entry.carbs().toString());
fromSpinner.setSelection(posFrom);
toSpinner.setSelection(posTo);
return view;
}
@Override
public void onResume() {
super.onResume();
if (getDialog() != null)
getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.overview_editquickwizard_ok_button:
if (fromSpinner.getSelectedItem() == null) return;
if (toSpinner.getSelectedItem() == null) return;
try {
entry.storage.put("buttonText", buttonEdit.getText().toString());
entry.storage.put("carbs", SafeParse.stringToInt(carbsEdit.getText().toString()));
int validFromInt = DateUtil.toSeconds(fromSpinner.getSelectedItem().toString());
entry.storage.put("validFrom", validFromInt);
int validToInt = DateUtil.toSeconds(toSpinner.getSelectedItem().toString());
entry.storage.put("validTo", validToInt);
} catch (JSONException e) {
e.printStackTrace();
}
quickWizard.addOrUpdate(entry);
dismiss();
MainApp.bus().post(new EventQuickWizardChange());
break;
}
}
}