Skip to content

Commit

Permalink
#52, #53, #54, #57
Browse files Browse the repository at this point in the history
Move methods to HelperMethods
Add area, range, frequency, duration, and text questions
  • Loading branch information
amalafrozalam committed Apr 26, 2016
1 parent 138a263 commit 9f85278
Show file tree
Hide file tree
Showing 5 changed files with 291 additions and 138 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,28 @@
package edu.jhu.bme.cbid.healthassistantsclient;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.text.InputType;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.NumberPicker;
import android.widget.TextView;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import edu.jhu.bme.cbid.healthassistantsclient.objects.Node;

/**
* Created by tusharjois on 3/22/16.
Expand Down Expand Up @@ -62,5 +77,244 @@ public static JSONObject encodeJSON(Context context, String fileName) {

}

public static void askText(final Node node, Activity context) {
final AlertDialog.Builder textInput = new AlertDialog.Builder(context);
textInput.setTitle(R.string.question_text_input);
final EditText dialogEditText = new EditText(context);
dialogEditText.setInputType(InputType.TYPE_CLASS_TEXT);
textInput.setView(dialogEditText);
textInput.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
node.addLanguage(dialogEditText.getText().toString());
node.changeText(node.language());
node.setSelected();
}
});
textInput.setNegativeButton(R.string.generic_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
textInput.show();
}

public static void askDate(final Node node, final Activity context) {
Calendar calendar = Calendar.getInstance();
DatePickerDialog datePickerDialog = new DatePickerDialog(context,
android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, monthOfYear, dayOfMonth);
Date date = cal.getTime();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MMM/yyyy", context.getResources().getConfiguration().locale);
String dateString = simpleDateFormat.format(date);
node.addLanguage(dateString);
node.changeText(node.language());
node.setSelected();
//TODO:: Check if the language is actually what is intended to be displayed
}
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
datePickerDialog.setTitle(R.string.question_date_picker);
datePickerDialog.show();
}

public static void askLocation(final Node node, Activity context) {

final AlertDialog.Builder textInput = new AlertDialog.Builder(context);
textInput.setTitle(R.string.question_location_picker);

}

public static void askNumber(final Node node, Activity context) {

final AlertDialog.Builder numberDialog = new AlertDialog.Builder(context);
numberDialog.setTitle(R.string.question_number_picker);
final LayoutInflater inflater = context.getLayoutInflater();
View convertView = inflater.inflate(R.layout.dialog_1_number_picker, null);
numberDialog.setView(convertView);
final NumberPicker numberPicker = (NumberPicker) convertView.findViewById(R.id.dialog_1_number_picker);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(100);
numberDialog.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
numberPicker.setValue(numberPicker.getValue());
String value = String.valueOf(numberPicker.getValue());
node.addLanguage(" " + value);
node.changeText(value);
node.setSelected();
dialog.dismiss();
}
});
numberDialog.setNegativeButton(R.string.generic_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();

}
});
numberDialog.show();

}

public static void askArea(final Node node, Activity context) {

final AlertDialog.Builder areaDialog = new AlertDialog.Builder(context);
areaDialog.setTitle(R.string.question_area_picker);
final LayoutInflater inflater = context.getLayoutInflater();
View convertView = inflater.inflate(R.layout.dialog_2_numbers_picker, null);
areaDialog.setView(convertView);
final NumberPicker widthPicker = (NumberPicker) convertView.findViewById(R.id.dialog_2_numbers_quantity);
final NumberPicker lengthPicker = (NumberPicker) convertView.findViewById(R.id.dialog_2_numbers_unit);
final TextView middleText = (TextView) convertView.findViewById(R.id.dialog_2_numbers_text);
middleText.setText("X");

widthPicker.setMinValue(0);
widthPicker.setMaxValue(100);
lengthPicker.setMinValue(0);
lengthPicker.setMaxValue(100);

areaDialog.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
widthPicker.setValue(widthPicker.getValue());
lengthPicker.setValue(lengthPicker.getValue());
String durationString = String.valueOf(widthPicker.getValue()) + " X " + lengthPicker.getValue();
node.addLanguage(" " + durationString);
node.changeText(durationString);
node.setSelected();
dialog.dismiss();
}
});
areaDialog.setNegativeButton(R.string.generic_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
areaDialog.show();

}


public static void askRange(final Node node, Activity context) {

final AlertDialog.Builder rangeDialog = new AlertDialog.Builder(context);
rangeDialog.setTitle(R.string.question_range_picker);
final LayoutInflater inflater = context.getLayoutInflater();
View convertView = inflater.inflate(R.layout.dialog_2_numbers_picker, null);
rangeDialog.setView(convertView);
final NumberPicker startPicker = (NumberPicker) convertView.findViewById(R.id.dialog_2_numbers_quantity);
final NumberPicker endPicker = (NumberPicker) convertView.findViewById(R.id.dialog_2_numbers_unit);
final TextView middleText = (TextView) convertView.findViewById(R.id.dialog_2_numbers_text);
middleText.setText(" - ");

startPicker.setMinValue(0);
startPicker.setMaxValue(100);
endPicker.setMinValue(0);
endPicker.setMaxValue(100);
rangeDialog.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startPicker.setValue(startPicker.getValue());
endPicker.setValue(endPicker.getValue());
String durationString = String.valueOf(startPicker.getValue()) + " to " + endPicker.getValue();
//TODO gotta get the units of the range somehow. gotta see what they look like first
node.addLanguage(" " + durationString);
node.changeText(durationString);
node.setSelected();
dialog.dismiss();
}
});
rangeDialog.setNegativeButton(R.string.generic_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
rangeDialog.show();
}

public static void askFrequency(final Node node, Activity context) {

final AlertDialog.Builder frequencyDialog = new AlertDialog.Builder(context);
frequencyDialog.setTitle(R.string.question_frequency_picker);
final LayoutInflater inflater = context.getLayoutInflater();
View convertView = inflater.inflate(R.layout.dialog_2_numbers_picker, null);
frequencyDialog.setView(convertView);
final NumberPicker quantityPicker = (NumberPicker) convertView.findViewById(R.id.dialog_2_numbers_quantity);
final NumberPicker unitPicker = (NumberPicker) convertView.findViewById(R.id.dialog_2_numbers_unit);
final TextView middleText = (TextView) convertView.findViewById(R.id.dialog_2_numbers_text);
middleText.setVisibility(View.GONE);
final String[] units = new String[]{"per Hour", "per Day", "Per Week", "per Month", "per Year"};
final String[] doctorUnits = new String[]{"times per hour", "time per day", "times per week", "times per month", "times per year"};
unitPicker.setDisplayedValues(units);
quantityPicker.setMinValue(0);
quantityPicker.setMaxValue(24);
unitPicker.setMinValue(0);
unitPicker.setMaxValue(4);
frequencyDialog.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
quantityPicker.setValue(quantityPicker.getValue());
unitPicker.setValue(unitPicker.getValue());
String durationString = String.valueOf(quantityPicker.getValue()) + " " + doctorUnits[unitPicker.getValue()];
node.addLanguage(" " + durationString);
node.changeText(durationString);
node.setSelected();
dialog.dismiss();
}
});
frequencyDialog.setNegativeButton(R.string.generic_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
frequencyDialog.show();

}

public static void askDuration(final Node node, Activity context) {
final AlertDialog.Builder durationDialog = new AlertDialog.Builder(context);
durationDialog.setTitle(R.string.question_duration_picker);
final LayoutInflater inflater = context.getLayoutInflater();
View convertView = inflater.inflate(R.layout.dialog_2_numbers_picker, null);
durationDialog.setView(convertView);
final NumberPicker quantityPicker = (NumberPicker) convertView.findViewById(R.id.dialog_2_numbers_quantity);
final NumberPicker unitPicker = (NumberPicker) convertView.findViewById(R.id.dialog_2_numbers_unit);
final TextView middleText = (TextView) convertView.findViewById(R.id.dialog_2_numbers_text);
middleText.setVisibility(View.GONE);
final String[] units = new String[]{"Hours", "Days", "Weeks", "Months", "Years"};
unitPicker.setDisplayedValues(units);
quantityPicker.setMinValue(0);
quantityPicker.setMaxValue(24);
unitPicker.setMinValue(0);
unitPicker.setMaxValue(4);
durationDialog.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
quantityPicker.setValue(quantityPicker.getValue());
unitPicker.setValue(unitPicker.getValue());
String durationString = String.valueOf(quantityPicker.getValue()) + " " + units[unitPicker.getValue()];
node.addLanguage(" " + durationString);
node.changeText(durationString);
node.setSelected();
dialog.dismiss();
}
});
durationDialog.setNegativeButton(R.string.generic_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
durationDialog.show();
}

}

0 comments on commit 9f85278

Please sign in to comment.