From cfc99d216ca05bad9dbf8375aca157f3e4eb4fa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dennis=20Thie=C3=9Fen?= Date: Sun, 1 Nov 2015 15:02:28 +0100 Subject: [PATCH] DT @1.11.2015: An incidentCategories gearbeitet. Werden beim Report nun vorher aus der mySQL Datenbank ausgelesen. --- .../org/deke/risk/riskahead/MapsActivity.java | 3 +- .../deke/risk/riskahead/ProfileActivity.java | 1 - .../deke/risk/riskahead/ReportActivity.java | 94 +++++++++++++++++-- .../risk/riskahead/ReportlistActivity.java | 2 +- .../deke/risk/riskahead/SettingsActivity.java | 6 +- .../risk/riskahead/ViewReportActivity.java | 22 ++--- .../risk/riskahead/helper/BaseActivity.java | 10 ++ .../riskahead/helper/PlaceJSONParser.java | 4 +- .../helper/PlaceJSONParserDetail.java | 4 +- .../risk/riskahead/helper/PlaceProvider.java | 11 +-- .../risk/riskahead/helper/SessionManager.java | 2 +- 11 files changed, 116 insertions(+), 43 deletions(-) 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 4198ef1..0e65006 100644 --- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java @@ -4,7 +4,6 @@ import android.app.SearchManager; import android.app.SearchableInfo; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.database.Cursor; import android.graphics.Color; import android.os.Bundle; @@ -50,7 +49,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa private static GoogleMap mMap; Marker mMarker; - HashMap markerIDs = new HashMap(); + HashMap markerIDs = new HashMap<>(); private LatLng myLocation; private LatLng markedLocation; diff --git a/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java b/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java index 7053361..f296d58 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java @@ -2,7 +2,6 @@ package org.deke.risk.riskahead; import android.graphics.Color; import android.os.Bundle; -import android.provider.ContactsContract; import android.util.Log; import android.view.Menu; import android.view.MenuItem; 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 f9acdd0..4edae7b 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java @@ -26,10 +26,12 @@ 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.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; +import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; @@ -63,15 +65,20 @@ public class ReportActivity extends BaseActivity { private int year, month, day; private int hour, minute; + + public HashMap categories; + public ArrayList incidentCategoryList; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); userHasToBeLoggedIn(); - Spinner spinner = (Spinner) findViewById(R.id.dd_report_category); - ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.incident_categories, android.R.layout.simple_spinner_item); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - spinner.setAdapter(adapter); + + // ArrayAdapter adapter = ArrayAdapter.createFromResource(this, incidentCategories, android.R.layout.simple_spinner_item); + // adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + getCategories(); + final Calendar c = Calendar.getInstance(); year = c.get(Calendar.YEAR); @@ -90,13 +97,13 @@ public class ReportActivity extends BaseActivity { restoreSharedPreferences(); - if(txtDay.getText().toString() == "") { + if(txtDay.getText().toString().equals("")) { txtDay.setText(new StringBuilder() .append(year).append("-").append(month + 1).append("-") .append(day).append(" ")); } - if(txtTime.getText().toString() == "") { + if(txtTime.getText().toString().equals("")) { txtTime.setText(new StringBuilder().append(hour) .append(":").append(minute).append(" ")); } @@ -131,7 +138,7 @@ public class ReportActivity extends BaseActivity { @Override public void onClick(View v) { String tag_string_req = "addincidentwithposition"; - StringRequest strReq = getStringRequestAddIncidentWithPosition(txtTitle.getText().toString(), txtDescription.getText().toString(), txtCrimeCategory.getSelectedItemPosition(), latitude, longitude, 10, 1, txtDay.getText().toString(), txtTime.getText().toString()); + StringRequest strReq = getStringRequestAddIncidentWithPosition(txtTitle.getText().toString(), txtDescription.getText().toString(), Integer.valueOf(categories.get(txtCrimeCategory.getSelectedItem().toString())[0]), latitude, longitude, 10, 1, txtDay.getText().toString(), txtTime.getText().toString()); AppController.getInstance().addToRequestQueue(strReq, tag_string_req); } }); @@ -191,7 +198,6 @@ public class ReportActivity extends BaseActivity { showMessage("Report added!"); SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); editor.clear(); - editor.commit(); editor.apply(); gotoMapActivity(); } else { @@ -310,4 +316,76 @@ public class ReportActivity extends BaseActivity { editor.apply(); } + public void getCategories(){ + String tag_string_req = "getincidentcategories"; + StringRequest strReq = getStringRequestGetIncidentCategories(); + AppController.getInstance().addToRequestQueue(strReq, tag_string_req); + } + + private StringRequest getStringRequestGetIncidentCategories() { + return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + + @Override + public void onResponse(String response) { + Log.d(TAG, "Incident categories response: " + response); + hideDialog(); + + try { + JSONObject jObj = new JSONObject(response); + boolean error = jObj.getBoolean("error"); + + // Check for error node in json + if (!error) { + JSONArray jsoncategories = jObj.getJSONArray("msg"); + categories = new HashMap<>(); + incidentCategoryList = new ArrayList<>(); + + for(int i=0;i adapter = new ArrayAdapter<>(getApplicationContext(),android.R.layout.simple_spinner_dropdown_item,incidentCategoryList); + Spinner spinner = (Spinner) findViewById(R.id.dd_report_category); + spinner.setAdapter(adapter); + } else { + // Error in login. Get the error message + String errorMsg = jObj.getString("error_msg"); + Toast.makeText(getApplicationContext(), errorMsg, Toast.LENGTH_LONG).show(); + } + } catch (JSONException e) { + // JSON error + e.printStackTrace(); + } + + } + }, new Response.ErrorListener() { + + @Override + public void onErrorResponse(VolleyError error) { + Log.e(TAG, "Report Error: " + error.getMessage()); + Toast.makeText(getApplicationContext(), + error.getMessage(), Toast.LENGTH_LONG).show(); + hideDialog(); + } + }) { + + @Override + protected Map getParams() { + // Posting parameters to login url + Map params = new HashMap<>(); + params.put("tag", "getincidentcategories"); + params.put("uid", user.get("uid")); + params.put("token", user.get("token")); + + + return params; + } + + }; + } } diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportlistActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportlistActivity.java index 9d4916f..720e818 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ReportlistActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ReportlistActivity.java @@ -90,7 +90,7 @@ public class ReportlistActivity extends BaseActivity { // Check for error node in json if (!error) { JSONArray incidents = jObj.getJSONArray("message"); - resultList = new ArrayList(); + resultList = new ArrayList<>(); for(int i=0;i getParams() { // Posting params to register url - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("tag", "updateuser"); params.put("uid", user.get("uid")); params.put("token", user.get("token")); @@ -180,7 +180,6 @@ public class SettingsActivity extends BaseActivity { if (!error) { // do nothing actually } else { - // Error occurred in registration. Get the error // message String errorMsg = jObj.getString("error_msg"); @@ -204,8 +203,7 @@ public class SettingsActivity extends BaseActivity { @Override protected Map getParams() { - // Posting params to register url - Map params = new HashMap(); + Map params = new HashMap<>(); params.put("tag", "requestpwreset"); params.put("email", email); diff --git a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java index 1786c5b..3df7c36 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java @@ -6,7 +6,6 @@ import android.location.Geocoder; import android.os.Bundle; import android.util.Log; import android.view.View; -import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; @@ -55,17 +54,7 @@ public class ViewReportActivity extends BaseActivity { txtPosition = (EditText) findViewById(R.id.input_viewreport_position); txtPositionDetail = (TextView) findViewById(R.id.lbl_viewreport_position_detail); - Spinner spinner = (Spinner) findViewById(R.id.dd_viewreport_category); - ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.incident_categories, android.R.layout.simple_spinner_item); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - spinner.setAdapter(adapter); - - Intent intent = getIntent(); - String uid = intent.getStringExtra(BaseActivity.EXTRA_MESSAGE); - - String tag_string_req = "getincidentwithpositionfromid"; - StringRequest strReq = getStringRequestGetIncidentWithPositionFromID(uid); - AppController.getInstance().addToRequestQueue(strReq, tag_string_req); + getIncident(); findViewById(R.id.btn_viewreport_upvote).setOnClickListener(new View.OnClickListener() { @Override @@ -160,4 +149,13 @@ public class ViewReportActivity extends BaseActivity { }; } + public void getIncident() { + Intent intent = getIntent(); + String uid = intent.getStringExtra(BaseActivity.EXTRA_MESSAGE); + + String tag_string_req = "getincidentwithpositionfromid"; + StringRequest strReq = getStringRequestGetIncidentWithPositionFromID(uid); + AppController.getInstance().addToRequestQueue(strReq, tag_string_req); + } + } diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java b/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java index fae36eb..5f5637b 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java @@ -20,6 +20,10 @@ import android.widget.ArrayAdapter; import android.widget.ListView; 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 com.beardedhen.androidbootstrap.TypefaceProvider; import com.google.android.gms.maps.model.LatLng; @@ -33,8 +37,14 @@ import org.deke.risk.riskahead.ReportlistActivity; import org.deke.risk.riskahead.SettingsActivity; import org.deke.risk.riskahead.SubscriptionsActivity; import org.deke.risk.riskahead.ViewReportActivity; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import java.lang.reflect.Array; +import java.util.ArrayList; import java.util.HashMap; +import java.util.Map; public abstract class BaseActivity extends AppCompatActivity { diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/PlaceJSONParser.java b/app/src/main/java/org/deke/risk/riskahead/helper/PlaceJSONParser.java index 91e784f..241b14c 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/PlaceJSONParser.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/PlaceJSONParser.java @@ -28,7 +28,7 @@ public class PlaceJSONParser { private List> getPlaces(JSONArray jPlaces){ int placesCount = jPlaces.length(); - List> placesList = new ArrayList>(); + List> placesList = new ArrayList<>(); HashMap place = null; /** Taking each place, parses and adds to list object */ @@ -49,7 +49,7 @@ public class PlaceJSONParser { /** Parsing the Place JSON object */ private HashMap getPlace(JSONObject jPlace){ - HashMap place = new HashMap(); + HashMap place = new HashMap<>(); String id=""; String reference=""; diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/PlaceJSONParserDetail.java b/app/src/main/java/org/deke/risk/riskahead/helper/PlaceJSONParserDetail.java index 9051958..681ab51 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/PlaceJSONParserDetail.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/PlaceJSONParserDetail.java @@ -16,8 +16,8 @@ public class PlaceJSONParserDetail { Double lng = Double.valueOf(0); String formattedAddress = ""; - HashMap hm = new HashMap(); - List> list = new ArrayList>(); + HashMap hm = new HashMap<>(); + List> list = new ArrayList<>(); try { lat = (Double)jObject.getJSONObject("result").getJSONObject("geometry").getJSONObject("location").get("lat"); diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/PlaceProvider.java b/app/src/main/java/org/deke/risk/riskahead/helper/PlaceProvider.java index 1ac0876..fc5eaf3 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/PlaceProvider.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/PlaceProvider.java @@ -112,7 +112,6 @@ public class PlaceProvider extends ContentProvider { } } catch (JSONException e) { - // TODO Auto-generated catch block e.printStackTrace(); } c = mCursor; @@ -141,7 +140,6 @@ public class PlaceProvider extends ContentProvider { mCursor.addRow(new String[] { Integer.toString(i), hMap.get("description"), hMap.get("reference") }); } } catch (JSONException e) { - // TODO Auto-generated catch block e.printStackTrace(); } c = mCursor; @@ -156,7 +154,6 @@ public class PlaceProvider extends ContentProvider { try { detailsList = detailsParser.parse(new JSONObject(jsonPlaceDetails)); } catch (JSONException e) { - // TODO Auto-generated catch block e.printStackTrace(); } @@ -172,32 +169,26 @@ public class PlaceProvider extends ContentProvider { @Override public int delete(Uri uri, String selection, String[] selectionArgs) { - // TODO Auto-generated method stub return 0; } @Override public String getType(Uri uri) { - // TODO Auto-generated method stub return null; } @Override public Uri insert(Uri uri, ContentValues values) { - // TODO Auto-generated method stub return null; } @Override public boolean onCreate() { - // TODO Auto-generated method stub return false; } @Override - public int update(Uri uri, ContentValues values, String selection, - String[] selectionArgs) { - // TODO Auto-generated method stub + public int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) { return 0; } diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/SessionManager.java b/app/src/main/java/org/deke/risk/riskahead/helper/SessionManager.java index 435eeb1..49556f1 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/SessionManager.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/SessionManager.java @@ -75,7 +75,7 @@ public class SessionManager { * Getting user data from database * */ public HashMap getUserDetails() { - HashMap user = new HashMap(); + HashMap user = new HashMap<>(); user.put(KEY_UID, userdata.getString(KEY_UID, null)); user.put(KEY_USERNAME, userdata.getString(KEY_USERNAME, null));