diff --git a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java index 1ef951d..44bdf31 100644 --- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java @@ -11,6 +11,7 @@ import android.support.v4.content.CursorLoader; import android.support.v4.content.Loader; import android.support.v7.widget.SearchView; import android.view.Menu; +import android.view.View; import com.google.android.gms.maps.CameraUpdate; import com.google.android.gms.maps.CameraUpdateFactory; @@ -30,6 +31,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa private static GoogleMap mMap; private LatLng myLocation; + private LatLng markedLocation; @Override protected void onCreate(Bundle savedInstanceState) { @@ -39,7 +41,27 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa mMap.getUiSettings().setZoomControlsEnabled(true); handleIntent(getIntent()); - setUpMap(); + //setUpMap(); + + findViewById(R.id.btn_maps_confirm_position).setVisibility(View.GONE); + + mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { + @Override + public void onMapClick(LatLng point) { + markedLocation = point; + mMap.clear(); + mMap.addMarker(new MarkerOptions().position(point)); + findViewById(R.id.btn_maps_confirm_position).setVisibility(View.VISIBLE); + + findViewById(R.id.btn_maps_confirm_position).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + gotoReportActivity(markedLocation.latitude+":"+markedLocation.longitude); + } + }); + } + }); + } private void handleIntent(Intent intent){ diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java index 1f644af..33b06b6 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java @@ -3,6 +3,9 @@ package org.deke.risk.riskahead; import android.app.DatePickerDialog; import android.app.Dialog; import android.app.TimePickerDialog; +import android.content.Intent; +import android.location.Address; +import android.location.Geocoder; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; @@ -11,9 +14,14 @@ import android.widget.EditText; import android.widget.Spinner; import android.widget.TimePicker; +import com.google.android.gms.maps.model.LatLng; + import org.deke.risk.riskahead.helper.BaseActivity; +import java.io.IOException; import java.util.Calendar; +import java.util.List; +import java.util.Locale; public class ReportActivity extends BaseActivity { @@ -76,6 +84,22 @@ public class ReportActivity extends BaseActivity { } }); + Intent intent = getIntent(); + String pos = intent.getStringExtra(EXTRA_MESSAGE); + + if(pos != null) { + txtPosition.setText(pos); + String[] position = pos.split(":"); + + Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault()); + try { + List
addresses = geocoder.getFromLocation(Double.parseDouble(position[0]), Double.parseDouble(position[1]), 1); + txtPosition.setText(addresses.get(0).getLocality()); + } catch (IOException e) { + e.printStackTrace(); + } + } + txtDay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java b/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java index f73512b..0887ab3 100644 --- a/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java @@ -1,9 +1,26 @@ package org.deke.risk.riskahead; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.os.Bundle; +import android.util.Log; +import android.view.View; import android.widget.TextView; +import android.widget.Toast; +import com.android.volley.Request; +import com.android.volley.Response; +import com.android.volley.VolleyError; +import com.android.volley.toolbox.StringRequest; + +import org.deke.risk.riskahead.helper.AppConfig; +import org.deke.risk.riskahead.helper.AppController; import org.deke.risk.riskahead.helper.BaseActivity; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.HashMap; +import java.util.Map; public class SettingsActivity extends BaseActivity { @@ -15,7 +32,6 @@ public class SettingsActivity extends BaseActivity { private TextView txtName; private TextView txtEmail; private TextView txtPassword; - private TextView txtPassword2; @Override protected void onCreate(Bundle savedInstanceState) { @@ -26,7 +42,54 @@ public class SettingsActivity extends BaseActivity { txtSurname = (TextView) findViewById(R.id.txt_settings_surname); txtEmail = (TextView) findViewById(R.id.txt_settings_email); txtPassword = (TextView) findViewById(R.id.txt_settings_password); - txtPassword2 = (TextView) findViewById(R.id.txt_settings_retype_password); + + findViewById(R.id.btn_settings_req_password).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new AlertDialog.Builder(SettingsActivity.this) + .setTitle("Send password reset E-Mail") + .setMessage("Do you really want to reset your password? An E-Mail will be send to your address. Please follow the instructions to reset your password.") + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + String tag_string_req = "requestpwreset"; + StringRequest strReq = getStringRequestResetPW(txtEmail.getText().toString()); + AppController.getInstance().addToRequestQueue(strReq, tag_string_req); + + showMessage("E-Mail was sent to your address"); + } + }) + .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // do nothing + } + }) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); + } + }); + + findViewById(R.id.btn_settings_change).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new AlertDialog.Builder(getApplicationContext()) + .setTitle("Confirm changes") + .setMessage("Do you really want to confirm changes? ") + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + + + showMessage("Has to be implemented :)"); + } + }) + .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // do nothing + } + }) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); + } + }); txtUsername.setText(user.get("username")); txtName.setText(user.get("name")); @@ -41,4 +104,51 @@ public class SettingsActivity extends BaseActivity { @Override protected String getActivityName() { return mActivityTitle; } + + private StringRequest getStringRequestResetPW(final String email) { + return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener