package de.dorianscholz.openlibre.ui; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import java.util.Date; import de.dorianscholz.openlibre.R; import de.dorianscholz.openlibre.model.BloodGlucoseData; import io.realm.Realm; import static de.dorianscholz.openlibre.OpenLibre.realmConfigUserData; public class BloodGlucoseInputFragment extends DialogFragment { public BloodGlucoseInputFragment() { // Required empty public constructor } public static BloodGlucoseInputFragment newInstance() { BloodGlucoseInputFragment fragment = new BloodGlucoseInputFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } public void saveBloodGlucoseLevel(long date, float bloodGlucoseLevel) { Realm realmUserData = Realm.getInstance(realmConfigUserData); realmUserData.beginTransaction(); realmUserData.copyToRealmOrUpdate(new BloodGlucoseData(date, bloodGlucoseLevel)); realmUserData.commitTransaction(); realmUserData.close(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if(getShowsDialog()) { return super.onCreateView(inflater, container, savedInstanceState); } else { return inflater.inflate(R.layout.fragment_blood_glucose_input, container, false); } } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { View view = getActivity().getLayoutInflater().inflate(R.layout.fragment_blood_glucose_input, null); final EditText editTextGlucose = (EditText) view.findViewById(R.id.edit_text_glucose); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity()); alertDialogBuilder.setView(view); alertDialogBuilder.setIcon(R.drawable.ic_sensor); alertDialogBuilder.setTitle(getResources().getString(R.string.title_blood_glucose)); alertDialogBuilder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { float bloodGlucoseLevel = Float.valueOf(editTextGlucose.getText().toString()); // TODO: add user input for measurement time (maybe just as minutes since measurement) long date = new Date().getTime(); saveBloodGlucoseLevel(date, bloodGlucoseLevel); dialog.dismiss(); } }); alertDialogBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss(); } }); return alertDialogBuilder.create(); } }