diff --git a/app/app.iml b/app/app.iml index 34642f2..81c682e 100644 --- a/app/app.iml +++ b/app/app.iml @@ -73,10 +73,11 @@ + - + @@ -107,6 +108,8 @@ + + @@ -120,12 +123,11 @@ - + - diff --git a/app/build.gradle b/app/build.gradle index 2582b06..0e61857 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -47,7 +47,7 @@ dependencies { compile 'com.google.android.gms:play-services-plus:8.3.0' compile 'com.google.android.gms:play-services-location:8.3.0' compile 'com.google.android.gms:play-services-ads:8.3.0' - compile 'com.facebook.android:facebook-android-sdk:4.1.0' + compile 'com.facebook.android:facebook-android-sdk:4.8.1' compile 'com.beardedhen:androidbootstrap:2.0.1' compile 'com.mcxiaoke.volley:library:1.0.19' compile 'com.android.support:design:23.1.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c1c339a..f0db859 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,6 +24,7 @@ + - getParams() { Map params = new HashMap<>(); params.put("tag", "getincidentcount"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); - + params.put("uid", user.get(SessionManager.KEY_UID)); + params.put("token", user.get(SessionManager.TOKEN)); return params; } }; 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 da72bd3..51bc1b7 100644 --- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java @@ -44,6 +44,7 @@ import org.deke.risk.riskahead.helper.AppController; import org.deke.risk.riskahead.helper.BaseActivity; import org.deke.risk.riskahead.helper.OwnIconRendered; import org.deke.risk.riskahead.helper.PlaceProvider; +import org.deke.risk.riskahead.helper.SessionManager; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -154,12 +155,12 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa { mHeatMapPositionList.add(item.getPosition()); //If the item isn't already being displayed - if(isMarkerShown && !visibleMarkers.containsKey(item.getID())) + if(isMarkerShown && !visibleMarkers.containsKey(item.getId())) { mClusterManager.addItem(item); mClusterManager.cluster(); - visibleMarkers.put(item.getID(),item); + visibleMarkers.put(item.getId(),item); } } else { /* @@ -238,29 +239,29 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa @Override public View getInfoWindow(Marker marker) { + LinearLayout layCategoryColor = ((LinearLayout) myContentsView.findViewById(R.id.lay_infowindow_color)); - TextView tvTitle = ((TextView) myContentsView - .findViewById(R.id.txt_infowindow_title)); - TextView tvSnippet = ((TextView) myContentsView - .findViewById(R.id.txt_infowindow_description)); - TextView tvCategory = ((TextView) myContentsView - .findViewById(R.id.txt_infowindow_category)); - LinearLayout layCategory = ((LinearLayout) myContentsView - .findViewById(R.id.lay_infowindow_color)); - TextView tvUsername = ((TextView) myContentsView - .findViewById(R.id.txt_infowindow_fromuser)); - TextView tvPoints = ((TextView) myContentsView - .findViewById(R.id.txt_infowindow_points)); - RatingBar rbScore = ((RatingBar) myContentsView - .findViewById(R.id.rb_infowindow_rating)); + TextView tvCategory = ((TextView) myContentsView.findViewById(R.id.txt_infowindow_category)); + TextView tvSubcategory = ((TextView) myContentsView.findViewById(R.id.txt_infowindow_subcategory)); + TextView tvVictim = ((TextView) myContentsView.findViewById(R.id.txt_infowindow_victim)); + TextView tvSuspect = ((TextView) myContentsView.findViewById(R.id.txt_infowindow_subject)); + TextView tvTime = ((TextView) myContentsView.findViewById(R.id.txt_infowindow_time)); + + TextView tvUsername = ((TextView) myContentsView.findViewById(R.id.txt_infowindow_fromuser)); + TextView tvScore = ((TextView) myContentsView.findViewById(R.id.txt_infowindow_points)); + RatingBar rbScore = ((RatingBar) myContentsView.findViewById(R.id.rb_infowindow_rating)); if (clickedClusterItem != null) { - tvTitle.setText(clickedClusterItem.getTitle()); - tvSnippet.setText(clickedClusterItem.getSnippet()); - tvCategory.setText(clickedClusterItem.getCategory()); - layCategory.setBackgroundColor(Color.parseColor("#" + clickedClusterItem.getColor())); - tvUsername.setText(getString(R.string.lbl_mapsinfowindow_author) + ": " + clickedClusterItem.getUsername()); - tvPoints.setText(getString(R.string.lbl_mapsinfowindow_score) + ": " + clickedClusterItem.getScore()); + layCategoryColor.setBackgroundColor(clickedClusterItem.getCategoryColor()); + + tvCategory.setText(clickedClusterItem.getIncidentCategoryName(getApplicationContext())); + tvSubcategory.setText(clickedClusterItem.getIncidentSubCategoryName(getApplicationContext())); + tvSuspect.setText(clickedClusterItem.getSuspectString(getApplicationContext())); + + tvUsername.setText(getString(R.string.lbl_mapsinfowindow_author) + ": " + clickedClusterItem.getFromUsername()); + tvScore.setText(getString(R.string.lbl_mapsinfowindow_score) + ": " + clickedClusterItem.getVotedScore()); + tvVictim.setText(clickedClusterItem.getFidVictimCategory()); + tvTime.setText(clickedClusterItem.getTimeString(getApplicationContext())); rbScore.setRating(clickedClusterItem.getScoreStars()); } return myContentsView; @@ -278,7 +279,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa mHeatMapPositionList.add(new LatLng(53.252151,10.422109)); mProvider = new HeatmapTileProvider.Builder() - .radius(40) + .radius(50) .data(mHeatMapPositionList) .opacity(0.7) .build(); @@ -339,7 +340,6 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa position = new LatLng(Double.parseDouble(c.getString(1)),Double.parseDouble(c.getString(2))); markerOptions.position(position); markerOptions.title(c.getString(0)); - //mMarker = mMap.addMarker(markerOptions); } if(position!=null){ CameraUpdate cameraPosition = CameraUpdateFactory.newLatLng(position); @@ -354,7 +354,6 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa @Override public void onLoaderReset(Loader arg0) { - // TODO Auto-generated method stub } @Override @@ -426,6 +425,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa if (!error) { JSONArray incidents = jObj.getJSONArray("message"); + for(int i=0;i getParams() { Map params = new HashMap<>(); - params.put("tag", "getincidentswithpositionandscore"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); + params.put("tag", "getincidentswithpositionandscorev2"); + params.put("uid", user.get(SessionManager.KEY_UID)); + params.put("token", user.get(SessionManager.TOKEN)); return params; } @@ -466,7 +466,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa @Override public void onClusterItemInfoWindowClick(IncidentReport incidentReport) { - gotoViewReportActivity(incidentReport.getID()); + gotoViewReportActivity(incidentReport.getId()); } @Override diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java deleted file mode 100644 index 24c1dcd..0000000 --- a/app/src/main/java/org/deke/risk/riskahead/ReportActivity.java +++ /dev/null @@ -1,437 +0,0 @@ -package org.deke.risk.riskahead; - -import android.app.DatePickerDialog; -import android.app.Dialog; -import android.app.TimePickerDialog; -import android.content.Intent; -import android.content.SharedPreferences; -import android.location.Address; -import android.location.Geocoder; -import android.os.Bundle; -import android.util.Log; -import android.view.View; -import android.widget.ArrayAdapter; -import android.widget.DatePicker; -import android.widget.EditText; -import android.widget.Spinner; -import android.widget.TextView; -import android.widget.TimePicker; -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.deke.risk.riskahead.helper.TextValidator; -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; -import java.util.Locale; -import java.util.Map; - -public class ReportActivity extends BaseActivity { - - private final static String mActivityTitle = "Report"; - private final static String TAG = ReportActivity.class.getSimpleName(); - private static final int DATE_DIALOG_ID = 999; - private static final int TIME_DIALOG_ID = 998; - - private static final String SAVED_TITLE = "801"; - private static final String SAVED_DESCRIPTION_LONG = "802"; - private static final String SAVED_CRIME_CATEGORY = "803"; - private static final String SAVED_DATE_INCIDENT = "804"; - private static final String SAVED_DATE_TIME = "805"; - private static final String SAVED_POSITION = "806"; - private static final String SAVED_POSITION_DETAIL = "807"; - - private EditText txtTitle; - private EditText txtDescription; - private Spinner txtCrimeCategory; - private EditText txtPosition; - private EditText txtDay; - private EditText txtTime; - private TextView txtPositionDetail; - - private String latitude, longitude; - - 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(); - - Intent intent = getIntent(); - String pos = intent.getStringExtra(EXTRA_MESSAGE); - getCategories(); - - final Calendar c = Calendar.getInstance(); - year = c.get(Calendar.YEAR); - month = c.get(Calendar.MONTH); - day = c.get(Calendar.DAY_OF_MONTH); - hour = c.get(Calendar.HOUR_OF_DAY); - minute = c.get(Calendar.MINUTE); - - txtTitle = (EditText) findViewById(R.id.input_report_short); - txtDescription = (EditText) findViewById(R.id.input_report_long); - txtCrimeCategory = (Spinner) findViewById(R.id.dd_report_category); - txtDay = (EditText) findViewById(R.id.input_report_date); - txtTime = (EditText) findViewById(R.id.input_report_time); - txtPosition = (EditText) findViewById(R.id.input_report_position); - txtPositionDetail = (TextView) findViewById(R.id.lbl_report_position_detail); - - if(txtDay.getText().toString().equals("")) { - txtDay.setText(new StringBuilder() - .append(year).append("-").append(month + 1).append("-") - .append(day).append(" ")); - } - - if(txtTime.getText().toString().equals("")) { - txtTime.setText(new StringBuilder().append(hour) - .append(":").append(minute).append(" ")); - } - - findViewById(R.id.btn_report_position).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - gotoMapActivity(); - } - }); - - findViewById(R.id.btn_report_report).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - String tag_string_req = "addincidentwithposition"; - 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); - } - }); - - txtDay.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - showDialog(DATE_DIALOG_ID); - } - }); - - txtPosition.setEnabled(false); - txtTime.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - showDialog(TIME_DIALOG_ID); - } - }); - - restoreSharedPreferences(); - - if(pos != null) { - String[] position = pos.split(":"); - Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault()); - - try { - List
addressList = geocoder.getFromLocation(Double.parseDouble(position[0]), Double.parseDouble(position[1]), 1); - - if (addressList != null && addressList.size() > 0) { - Address address = addressList.get(0); - StringBuilder sb = new StringBuilder(); - - for (int i = 0; i < address.getMaxAddressLineIndex(); i++) { - - if(address.getAddressLine(i) != null) sb.append(address.getAddressLine(i)).append("\n"); - - } - - //if(address.getLocality() != null) sb.append(address.getLocality()).append("\n"); - //if(address.getPostalCode() != null) sb.append(address.getPostalCode()).append("\n"); - if(address.getCountryName() != null) sb.append(address.getCountryName()); - - txtPosition.setText(address.getLocality()); - txtPositionDetail.setText(sb.toString()); - } - - latitude = position[0]; - longitude = position[1]; - } catch (IOException e) { - e.printStackTrace(); - } - } - - txtTitle.addTextChangedListener(new TextValidator(txtTitle,getApplicationContext()) { - @Override - public void validate(TextView textView, String text) { - if (text.length() < 5) { - textView.setError("Title must be at least\n" + - "5 characters in length."); - } - } - }); - - txtDescription.addTextChangedListener(new TextValidator(txtDescription, getApplicationContext()) { - @Override - public void validate(TextView textView, String text) { - if (text.length() < 5) { - textView.setError("Description must be at least\n" + - "5 characters in length."); - } - } - }); - - - } - - @Override - protected void onResume() { - super.onResume(); - result.setSelection(reportAvtivityID, false); - } - - @Override - protected Dialog onCreateDialog(int id) { - switch (id) { - case DATE_DIALOG_ID: - return new DatePickerDialog(this, datePickerListener, - year, month,day); - case TIME_DIALOG_ID: - return new TimePickerDialog(this, timePickerListener, - hour,minute,true); - } - return null; - } - - private DatePickerDialog.OnDateSetListener datePickerListener - = new DatePickerDialog.OnDateSetListener() { - - // when dialog box is closed, below method will be called. - public void onDateSet(DatePicker view, int selectedYear, - int selectedMonth, int selectedDay) { - year = selectedYear; - month = selectedMonth; - day = selectedDay; - - txtDay.setText(new StringBuilder().append(year) - .append("-").append(month + 1).append("-").append(day) - .append(" ")); - } - }; - - private TimePickerDialog.OnTimeSetListener timePickerListener - = new TimePickerDialog.OnTimeSetListener() { - - // when dialog box is closed, below method will be called. - public void onTimeSet(TimePicker view, int selectedHour, - int selectedMinute) { - hour = selectedHour; - minute = selectedMinute; - - txtTime.setText(new StringBuilder().append(hour) - .append(":").append(minute).append(" ")); - } - }; - - - - @Override - protected void onStop() { - super.onStop(); - - SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); - editor.putString(SAVED_TITLE, txtTitle.getText().toString()); - editor.putString(SAVED_DESCRIPTION_LONG, txtDescription.getText().toString()); - editor.putInt(SAVED_CRIME_CATEGORY, txtCrimeCategory.getSelectedItemPosition()); - editor.putString(SAVED_DATE_INCIDENT, txtDay.getText().toString()); - editor.putString(SAVED_DATE_TIME, txtTime.getText().toString()); - editor.putString(SAVED_POSITION, txtPosition.getText().toString()); - editor.putString(SAVED_POSITION_DETAIL, txtPositionDetail.getText().toString()); - editor.putString("latitude", latitude); - editor.putString("longitude", longitude); - editor.apply(); - } - - private void restoreSharedPreferences() { - SharedPreferences prefs = getPreferences(MODE_PRIVATE); - - txtTitle.setText(prefs.getString(SAVED_TITLE, "")); - txtDescription.setText(prefs.getString(SAVED_DESCRIPTION_LONG, "")); - txtCrimeCategory.setSelection(prefs.getInt(SAVED_CRIME_CATEGORY, 0)); - txtDay.setText(prefs.getString(SAVED_DATE_INCIDENT, new StringBuilder() - .append(year).append("-").append(month + 1).append("-") - .append(day).append(" ").toString())); - - txtTime.setText(prefs.getString(SAVED_DATE_TIME, new StringBuilder().append(hour) - .append(":").append(minute).append(" ").toString())); - - txtPosition.setText(prefs.getString(SAVED_POSITION, "")); - txtPositionDetail.setText(prefs.getString(SAVED_POSITION_DETAIL, "")); - latitude = prefs.getString("latitude","0"); - longitude = prefs.getString("longitude","0"); - - findViewById(R.id.btn_report_position).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - gotoMapActivity(latitude + ":" + longitude); - } - }); - } - - public void getCategories(){ - String tag_string_req = "getincidentcategories"; - StringRequest strReq = getStringRequestGetIncidentCategories(); - AppController.getInstance().addToRequestQueue(strReq, tag_string_req); - } - - private StringRequest getStringRequestAddIncidentWithPosition(final String textshort, final String textlong, final int crimecategory, final String latitude, final String longitude, final int status, final int radius, final String day, final String time) { - showDialog(); - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { - - @Override - public void onResponse(String response) { - Log.d(TAG, "Report response: " + response); - hideDialog(); - try { - JSONObject jObj = new JSONObject(response); - boolean error = jObj.getBoolean("error"); - - if (!error) { - showMessage("Report added!"); - SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); - editor.clear().commit(); - txtTitle.setText(""); - txtDescription.setText(""); - txtCrimeCategory.setSelection(0); - txtDay.setText(""); - txtTime.setText(""); - txtPosition.setText(""); - findViewById(R.id.btn_report_position).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - gotoMapActivity(); - } - }); - showAd(); - gotoMapActivity(latitude+":"+longitude); - } else { - String errorMsg = jObj.getString("error_msg"); - Log.e(TAG, "Error adding incident (Server returned error): " + errorMsg); - showMessage(errorMsg); - } - } catch (JSONException e) { - e.printStackTrace(); - } - } - }, new Response.ErrorListener() { - @Override - public void onErrorResponse(VolleyError error) { - Log.e(TAG, "Error adding incident: " + error.getMessage()); - showMessage(getString(R.string.errormsg_couldnotretrieve)); - hideDialog(); - } - }) { - - @Override - protected Map getParams() { - Map params = new HashMap<>(); - params.put("tag", "addincidentwithposition"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); - params.put("textshort",textshort); - params.put("textlong",textlong); - params.put("fiduser",user.get("uid")); - params.put("fidcategory", Integer.toString(crimecategory)); - params.put("latitude",latitude); - params.put("longitude",longitude); - params.put("status",Integer.toString(status)); - params.put("radius",Integer.toString(radius)); - params.put("happened_at",year+"-"+month+"-"+day+" "+hour+":"+minute+":00"); - - return params; - } - }; - } - - - private StringRequest getStringRequestGetIncidentCategories() { - showDialog(); - 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"); - - if (!error) { - JSONArray jsoncategories = jObj.getJSONArray("msg"); - categories = new HashMap<>(); - incidentCategoryList = new ArrayList<>(); - - for(int i=0;i adapter = new ArrayAdapter<>(ReportActivity.this, android.R.layout.simple_spinner_item,incidentCategoryList); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - spinner.setAdapter(adapter); - - } else { - String errorMsg = jObj.getString("error_msg"); - Log.e(TAG, "Error getting incident categories (Server returned error): " + errorMsg); - showMessage(errorMsg); - } - } catch (JSONException e) { - e.printStackTrace(); - } - - } - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - Log.e(TAG, "Error getting incident categories: " + error.getMessage()); - showMessage(getString(R.string.errormsg_couldnotretrieve)); - hideDialog(); - } - }) { - - @Override - protected Map getParams() { - Map params = new HashMap<>(); - params.put("tag", "getincidentcategories"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); - - return params; - } - }; - } - - @Override - protected int getLayoutResourceId() { - return R.layout.activity_report; - } - - @Override - protected String getActivityName() { - return mActivityTitle; - } -} diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java index 24172cc..d409cec 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java @@ -27,6 +27,7 @@ import org.deke.risk.riskahead.helper.IncidentReport; import org.deke.risk.riskahead.helper.AppConfig; import org.deke.risk.riskahead.helper.AppController; import org.deke.risk.riskahead.helper.BaseActivity; +import org.deke.risk.riskahead.helper.SessionManager; import org.json.JSONException; import org.json.JSONObject; @@ -107,7 +108,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen } if(address.getCountryName() != null) sb.append(address.getCountryName()); - incident.setmPosDescription(sb.toString()); + incident.setIncidentPositionDescription(sb.toString()); } incident.setPosition(latlngpos); } catch (IOException e) { @@ -267,7 +268,8 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen protected Map getParams() { Map params = new HashMap<>(); params.put("tag", "addincidentwithposition"); - params.put("uid", user.get("uid")); + params.put("uid", user.get(SessionManager.KEY_UID)); + params.put("token", user.get(SessionManager.TOKEN)); return params; } 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 9bef09a..53e3a93 100644 --- a/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java @@ -17,6 +17,7 @@ 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.deke.risk.riskahead.helper.SessionManager; import org.deke.risk.riskahead.helper.TextValidator; import org.json.JSONException; import org.json.JSONObject; @@ -131,11 +132,9 @@ public class SettingsActivity extends BaseActivity { }); if(user.get("providerType") != null && user.get("providerType").equals("local")){ - findViewById(R.id.lbl_settings_password).setVisibility(View.VISIBLE); findViewById(R.id.txt_settings_password).setVisibility(View.VISIBLE); findViewById(R.id.btn_settings_req_password).setVisibility(View.VISIBLE); }else{ - findViewById(R.id.lbl_settings_password).setVisibility(View.INVISIBLE); findViewById(R.id.txt_settings_password).setVisibility(View.INVISIBLE); findViewById(R.id.btn_settings_req_password).setVisibility(View.INVISIBLE); } @@ -171,7 +170,7 @@ public class SettingsActivity extends BaseActivity { if (!error) { showMessage(jObj.getString("msg")); JSONObject tmpuser = jObj.getJSONObject("user"); - session.addUser(jObj.getString("uid"), tmpuser.getString("username"), tmpuser.getString("name"), tmpuser.getString("surname"), tmpuser.getString("email"), tmpuser.getString("status"), user.get("providerType"), tmpuser.getString("created_at"), tmpuser.getString("updated_at"), tmpuser.getString("token")); + session.addUser(jObj.getString("uid"), tmpuser.getString("username"), tmpuser.getString("name"), tmpuser.getString("surname"), tmpuser.getString("email"), tmpuser.getString("status"), user.get("providerType"), tmpuser.getString("created_at"), tmpuser.getString("updated_at"), tmpuser.getString("lastlogin_at"), tmpuser.getString("token")); finish(); startActivity(getIntent()); } else { @@ -199,8 +198,8 @@ public class SettingsActivity extends BaseActivity { // Posting params to register url Map params = new HashMap<>(); params.put("tag", "updateuser"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); + params.put("uid", user.get(SessionManager.KEY_UID)); + params.put("token", user.get(SessionManager.TOKEN)); params.put("username", txtUsername.getText().toString()); params.put("name", txtName.getText().toString()); params.put("surname", txtSurname.getText().toString()); 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 cd93127..ff5fc0a 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java @@ -20,6 +20,7 @@ import com.beardedhen.androidbootstrap.BootstrapLabel; import org.deke.risk.riskahead.helper.AppConfig; import org.deke.risk.riskahead.helper.AppController; import org.deke.risk.riskahead.helper.BaseActivity; +import org.deke.risk.riskahead.helper.SessionManager; import org.json.JSONException; import org.json.JSONObject; @@ -164,8 +165,8 @@ public class ViewReportActivity extends BaseActivity { // Posting parameters to login url Map params = new HashMap<>(); params.put("tag", "deactivateincident"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); + params.put("uid", user.get(SessionManager.KEY_UID)); + params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentid.toString()); @@ -260,8 +261,8 @@ public class ViewReportActivity extends BaseActivity { // Posting parameters to login url Map params = new HashMap<>(); params.put("tag", "getincidentfromid"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); + params.put("uid", user.get(SessionManager.KEY_UID)); + params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentid.toString()); @@ -315,8 +316,8 @@ public class ViewReportActivity extends BaseActivity { protected Map getParams() { Map params = new HashMap<>(); params.put("tag", "getincidentvotescore"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); + params.put("uid", user.get(SessionManager.KEY_UID)); + params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentid.toString()); return params; @@ -377,8 +378,8 @@ public class ViewReportActivity extends BaseActivity { protected Map getParams() { Map params = new HashMap<>(); params.put("tag", "addvote"); - params.put("uid", user.get("uid")); - params.put("token", user.get("token")); + params.put("uid", user.get(SessionManager.KEY_UID)); + params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentid.toString()); params.put("votetype", votetype); diff --git a/app/src/main/java/org/deke/risk/riskahead/adapter/ReportListAdapter.java b/app/src/main/java/org/deke/risk/riskahead/adapter/ReportListAdapter.java index ff2d4a1..3915b5e 100644 --- a/app/src/main/java/org/deke/risk/riskahead/adapter/ReportListAdapter.java +++ b/app/src/main/java/org/deke/risk/riskahead/adapter/ReportListAdapter.java @@ -58,19 +58,17 @@ public class ReportListAdapter extends BaseAdapter { LinearLayout ll = (LinearLayout) vi.findViewById(R.id.lay_reportlist_color); ImageView iv = (ImageView) vi.findViewById(R.id.ic_reportlist_row); + IncidentReport item = new IncidentReport(data.get(position)); - try { - titleText.setText(data.get(position).getString("created_at")+" : "+data.get(position).getString("text_short")); - itemText.setText(data.get(position).getString("text_long")); - categoryText.setText(data.get(position).getString("cat_name")); - titleText.setTypeface(null, Typeface.BOLD); - ll.setBackgroundColor(Color.parseColor("#" + data.get(position).getString("color"))); + titleText.setText(item.getIncidentCategoryName(vi.getContext())); + itemText.setText(item.getIncidentSubCategoryName(vi.getContext())); + categoryText.setText(item.getTimeString(vi.getContext())); + + titleText.setTypeface(null, Typeface.BOLD); + ll.setBackgroundColor(item.getCategoryColor()); + + iv.setBackground(parent.getContext().getDrawable(item.getIconDrawable())); - IncidentReport item = new IncidentReport(data.get(position)); - iv.setBackground(parent.getContext().getDrawable(item.getIconDrawable())); - } catch (JSONException e) { - e.printStackTrace(); - } return vi; } } \ No newline at end of file diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/FacebookButtonFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/FacebookButtonFragment.java index bcc1b20..73db232 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/FacebookButtonFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/FacebookButtonFragment.java @@ -1,25 +1,32 @@ package org.deke.risk.riskahead.fragment; -import android.app.Activity; + import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import com.beardedhen.androidbootstrap.BootstrapButton; +import com.facebook.AccessToken; import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; import com.facebook.FacebookSdk; +import com.facebook.GraphRequest; +import com.facebook.GraphResponse; +import com.facebook.login.LoginBehavior; import com.facebook.login.LoginManager; import com.facebook.login.LoginResult; import org.deke.risk.riskahead.LoginActivity; import org.deke.risk.riskahead.R; +import org.json.JSONException; +import org.json.JSONObject; import java.util.Arrays; @@ -46,7 +53,7 @@ public class FacebookButtonFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_facebook_button, container, false); - initFacebookButton(); + return view; } @@ -57,20 +64,16 @@ public class FacebookButtonFragment extends Fragment { } @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - try { - mListener = (OnFragmentInteractionListener) activity; - } catch (ClassCastException e) { - throw new ClassCastException(activity.toString() - + " must implement OnFragmentInteractionListener"); - } - - FacebookSdk.sdkInitialize(activity.getApplicationContext()); + public void onResume() { + super.onResume(); + FacebookSdk.sdkInitialize(getContext()); callbackManager = CallbackManager.Factory.create(); + initFacebookButton(); + + } - @Override + @Override public void onDetach() { super.onDetach(); mListener = null; @@ -78,6 +81,7 @@ public class FacebookButtonFragment extends Fragment { public interface OnFragmentInteractionListener { void onFragmentInteraction(Uri uri); + } private void initFacebookButton() { @@ -86,7 +90,8 @@ public class FacebookButtonFragment extends Fragment { btnLoginFB.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - LoginManager.getInstance().logInWithReadPermissions(getActivity(), Arrays.asList("public_profile", "user_friends")); + LoginManager.getInstance().setLoginBehavior(LoginBehavior.WEB_ONLY); + LoginManager.getInstance().logInWithReadPermissions(getActivity(), Arrays.asList("public_profile", "email")); } }); @@ -94,18 +99,38 @@ public class FacebookButtonFragment extends Fragment { new FacebookCallback() { @Override public void onSuccess(LoginResult loginResult) { - ((LoginActivity) getActivity()).handleSocialMediaLogin(loginResult.getAccessToken().getToken(),"facebook",loginResult.getAccessToken().getUserId(),""); + getUserMailAndLogin(loginResult.getAccessToken()); } @Override public void onCancel() { + Log.d("FB","OnCancel"); ((LoginActivity) getActivity()).showMessage("Facebook LogIn canceled"); } @Override public void onError(FacebookException exception) { + Log.d("FB","OnError"); ((LoginActivity) getActivity()).showMessage("Error while SignIn: ErrorMsg: " + exception.toString()); } }); } + + private void getUserMailAndLogin(AccessToken accesstoken){ + GraphRequest request = GraphRequest.newMeRequest(accesstoken, new GraphRequest.GraphJSONObjectCallback() { + @Override + public void onCompleted(JSONObject objects, GraphResponse response) { + + try { + ((LoginActivity) getActivity()).handleSocialMediaLogin(objects.getString("id"), "facebook", objects.getString("first_name"), objects.getString("email")); + } catch (JSONException e) { + e.printStackTrace(); + } + } + }); + Bundle parameters = new Bundle(); + parameters.putString("fields", "id,first_name,last_name,email"); + request.setParameters(parameters); + request.executeAsync(); + } } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/GooglePlusButtonFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/GooglePlusButtonFragment.java index df0714f..1f1bd6f 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/GooglePlusButtonFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/GooglePlusButtonFragment.java @@ -72,14 +72,15 @@ public class GooglePlusButtonFragment extends Fragment implements GoogleApiClien performClickAction(); } }); - updateUI(mGoogleApiClient.isConnected()); return view; } private void performClickAction() { if(mGoogleApiClient.isConnected()){ - signOutFromGplus(); + //signOutFromGplus(); + Person currentPerson = getProfileInformation(); + ((LoginActivity) getActivity()).handleSocialMediaLogin(currentPerson.getId(),"google",currentPerson.getDisplayName(),Plus.AccountApi.getAccountName(mGoogleApiClient)); }else{ signInWithGplus(); } @@ -143,23 +144,14 @@ public class GooglePlusButtonFragment extends Fragment implements GoogleApiClien if(mSignInClicked) ((LoginActivity) getActivity()).handleSocialMediaLogin(currentPerson.getId(),"google",currentPerson.getDisplayName(),Plus.AccountApi.getAccountName(mGoogleApiClient)); mSignInClicked = false; - updateUI(true); } @Override public void onConnectionSuspended(int arg0) { mGoogleApiClient.connect(); - updateUI(false); - } - private void updateUI(boolean isSignedIn) { - if (isSignedIn) { - this.btnSignIn.setText("Log out from G+"); - } else { - this.btnSignIn.setText("Google+"); - } - } + /** * Sign-in into google @@ -220,7 +212,14 @@ public class GooglePlusButtonFragment extends Fragment implements GoogleApiClien private void signOutFromGplus() { if (mGoogleApiClient.isConnected()) { mGoogleApiClient.clearDefaultAccountAndReconnect(); - updateUI(false); + } + } + + public void logoutFromGplus() { + if (mGoogleApiClient.isConnected()) { + Plus.AccountApi.clearDefaultAccount(mGoogleApiClient); + mGoogleApiClient.disconnect(); + mGoogleApiClient.connect(); } } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ProfileStatisticsFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ProfileStatisticsFragment.java index 112a234..e0d8b92 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ProfileStatisticsFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ProfileStatisticsFragment.java @@ -17,6 +17,7 @@ import org.deke.risk.riskahead.ProfileActivity; import org.deke.risk.riskahead.R; import org.deke.risk.riskahead.helper.AppConfig; import org.deke.risk.riskahead.helper.AppController; +import org.deke.risk.riskahead.helper.SessionManager; import org.json.JSONException; import org.json.JSONObject; @@ -90,8 +91,8 @@ public class ProfileStatisticsFragment extends Fragment { // Posting params to register url Map params = new HashMap<>(); params.put("tag", "getuserstats"); - params.put("uid", parent.user.get("uid")); - params.put("token", parent.user.get("token")); + params.put("uid", parent.user.get(SessionManager.KEY_UID)); + params.put("token", parent.user.get(SessionManager.TOKEN)); return params; } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportListFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportListFragment.java index 6e8e619..0b1364c 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportListFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportListFragment.java @@ -20,6 +20,7 @@ import org.deke.risk.riskahead.R; import org.deke.risk.riskahead.helper.AppConfig; import org.deke.risk.riskahead.helper.AppController; import org.deke.risk.riskahead.adapter.ReportListAdapter; +import org.deke.risk.riskahead.helper.SessionManager; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -58,7 +59,7 @@ public class ReportListFragment extends Fragment{ @Override public void onItemClick(AdapterView parentview, View view, int position, long id) { try { - parent.gotoViewReportActivity(resultList.get(position).getInt("uid")); + parent.gotoViewReportActivity(resultList.get(position).getInt("id")); } catch (JSONException e) { e.printStackTrace(); } @@ -120,8 +121,8 @@ public class ReportListFragment extends Fragment{ protected Map getParams() { Map params = new HashMap<>(); params.put("tag", "getincidentsfromuserid"); - params.put("uid", parent.user.get("uid")); - params.put("token", parent.user.get("token")); + params.put("uid", parent.user.get(SessionManager.KEY_UID)); + params.put("token", parent.user.get(SessionManager.TOKEN)); return params; } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_1_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_1_Fragment.java index 67174cc..46c1354 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_1_Fragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_1_Fragment.java @@ -132,7 +132,7 @@ public class ReportWF_1_Fragment extends Fragment{ spinner_sub_1.setVisibility(View.VISIBLE); } - incident.setmFidCat1_Main(position); + incident.setFidIncidentCategory(position); isMandatoryCategoryFilled = false; checkIfFinished(); } @@ -188,10 +188,10 @@ public class ReportWF_1_Fragment extends Fragment{ checkIfFinished(); } - if ((position == 0) && (incident.getmFidCat1_Sub() != 0)) - crimeSubCategory.setSelection(incident.getmFidCat1_Sub()); + if ((position == 0) && (incident.getFidIncidentSubCategory() != 0)) + crimeSubCategory.setSelection(incident.getFidIncidentSubCategory()); - incident.setmFidCat1_Sub(position); + incident.setFidIncidentSubCategory(position); } @Override @@ -224,19 +224,19 @@ public class ReportWF_1_Fragment extends Fragment{ if(incident != null){ if(incident.getPosition() != null){ timeLayout.setVisibility(View.VISIBLE); - txtPositionInformation.setText(incident.getmPosDescription()); + txtPositionInformation.setText(incident.getIncidentPositionDescription()); } - if(incident.getmFidCat1_Main() != 0){ - crimeCategory.setSelection(incident.getmFidCat1_Main()); + if(incident.getFidIncidentCategory() != 0){ + crimeCategory.setSelection(incident.getFidIncidentCategory()); } - if(incident.getmFidCat1_Sub() != 0){ - crimeSubCategory.setSelection(incident.getmFidCat1_Sub()); + if(incident.getFidIncidentSubCategory() != 0){ + crimeSubCategory.setSelection(incident.getFidIncidentSubCategory()); } - if(incident.getmCat1_Sub_etc() != null){ - crimeSubOther.setText(incident.getmCat1_Sub_etc()); + if(incident.getEtcIncidentCategory() != null){ + crimeSubOther.setText(incident.getEtcIncidentCategory()); } } @@ -247,9 +247,9 @@ public class ReportWF_1_Fragment extends Fragment{ public void onPause() { super.onPause(); - incident.setmFidCat1_Main(crimeCategory.getSelectedItemPosition()); - incident.setmFidCat1_Sub(crimeSubCategory.getSelectedItemPosition()); - incident.setmCat1_Sub_etc(crimeSubOther.getText().toString()); + incident.setFidIncidentCategory(crimeCategory.getSelectedItemPosition()); + incident.setFidIncidentSubCategory(crimeSubCategory.getSelectedItemPosition()); + incident.setEtcIncidentCategory(crimeSubOther.getText().toString()); ((ReportWFActivity)getActivity()).setIncident(incident); } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_2_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_2_Fragment.java index 115b2d1..1c26093 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_2_Fragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_2_Fragment.java @@ -197,7 +197,7 @@ public class ReportWF_2_Fragment extends Fragment { - incident.setmFidTimeMainCat(position); + incident.setFidTimeCategory(position); } @Override @@ -215,11 +215,11 @@ public class ReportWF_2_Fragment extends Fragment { public void onItemSelected(AdapterView parent, View view, int position, long id) { isMandatoryCategoryFilled = !((SpinnerHintAdapter) timeSubCategory.getAdapter()).isInInitialState(); - if ((position == 0) && (incident.getmFidTimeSubCat() != 0)) - timeSubCategory.setSelection(incident.getmFidTimeSubCat()); + if ((position == 0) && (incident.getFidTimeSubCategory() != 0)) + timeSubCategory.setSelection(incident.getFidTimeSubCategory()); checkIfFinished(); - incident.setmFidTimeSubCat(position); + incident.setFidTimeSubCategory(position); } @Override @@ -248,12 +248,12 @@ public class ReportWF_2_Fragment extends Fragment { incident = ((ReportWFActivity)getActivity()).getIncident(); if(incident != null){ - if(incident.getmFidTimeMainCat() != 0){ - timeCategory.setSelection(incident.getmFidTimeMainCat()); + if(incident.getFidTimeCategory() != 0){ + timeCategory.setSelection(incident.getFidTimeCategory()); } - if(incident.getmFidTimeSubCat() != 0){ - timeSubCategory.setSelection(incident.getmFidTimeSubCat()); + if(incident.getFidTimeSubCategory() != 0){ + timeSubCategory.setSelection(incident.getFidTimeSubCategory()); } if(incident.getFromDate() != null && !incident.getFromDate().equals("")){ @@ -280,8 +280,8 @@ public class ReportWF_2_Fragment extends Fragment { public void onPause() { super.onPause(); - incident.setmFidTimeMainCat(timeCategory.getSelectedItemPosition()); - incident.setmFidTimeSubCat(timeSubCategory.getSelectedItemPosition()); + incident.setFidTimeCategory(timeCategory.getSelectedItemPosition()); + incident.setFidTimeSubCategory(timeSubCategory.getSelectedItemPosition()); incident.setFromDate(inputDateFrom.getText().toString()); incident.setFromTime(inputTimeFrom.getText().toString()); incident.setToDate(inputDateTo.getText().toString()); diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_3_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_3_Fragment.java index 5648572..4ebc96c 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_3_Fragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_3_Fragment.java @@ -128,7 +128,7 @@ public class ReportWF_3_Fragment extends Fragment { } checkIfFinished(); - incident.setmFidSuspectMainCat(position); + incident.setFidSuspectCategory(position); } @Override @@ -147,11 +147,11 @@ public class ReportWF_3_Fragment extends Fragment { isMandatoryCategoryFilled = !((SpinnerHintAdapter) suspectOriginCategory.getAdapter()).isInInitialState(); - if ((position == 0) && (incident.getmFidTimeSubCat() != 0)) - suspectOriginCategory.setSelection(incident.getmFidSuspectOrigin()); + if ((position == 0) && (incident.getFidSuspectSubCategory() != 0)) + suspectOriginCategory.setSelection(incident.getFidSuspectSubCategory()); checkIfFinished(); - incident.setmFidTimeSubCat(position); + incident.setFidSuspectSubCategory(position); } @Override @@ -180,9 +180,9 @@ public class ReportWF_3_Fragment extends Fragment { incident = ((ReportWFActivity)getActivity()).getIncident(); if(incident != null){ - if(incident.getmFidSuspectMainCat() != 0) suspectCategory.setSelection(incident.getmFidSuspectMainCat()); - if(incident.getmFidSuspectOrigin() != 0) suspectOriginCategory.setSelection(incident.getmFidSuspectOrigin()); - if(incident.getmSuspectEtc() != null && !incident.getmSuspectEtc().equals("")) suspectEtcInput.setText(incident.getmSuspectEtc()); + if(incident.getFidSuspectCategory() != 0) suspectCategory.setSelection(incident.getFidSuspectCategory()); + if(incident.getFidSuspectSubCategory() != 0) suspectOriginCategory.setSelection(incident.getFidSuspectSubCategory()); + if(incident.getEtcSuspectCategory() != null && !incident.getEtcSuspectCategory().equals("")) suspectEtcInput.setText(incident.getEtcSuspectCategory()); } checkIfFinished(); @@ -192,9 +192,9 @@ public class ReportWF_3_Fragment extends Fragment { public void onPause() { super.onPause(); - incident.setmFidSuspectMainCat(suspectCategory.getSelectedItemPosition()); - incident.setmFidSuspectOrigin(suspectOriginCategory.getSelectedItemPosition()); - incident.setmSuspectEtc(suspectEtcInput.getText().toString()); + incident.setFidSuspectCategory(suspectCategory.getSelectedItemPosition()); + incident.setFidSuspectSubCategory(suspectOriginCategory.getSelectedItemPosition()); + incident.setEtcSuspectCategory(suspectEtcInput.getText().toString()); ((ReportWFActivity)getActivity()).setIncident(incident); } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/Top10Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/Top10Fragment.java index 17938b1..9393b54 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/Top10Fragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/Top10Fragment.java @@ -19,6 +19,7 @@ import org.deke.risk.riskahead.R; import org.deke.risk.riskahead.helper.AppConfig; import org.deke.risk.riskahead.helper.AppController; import org.deke.risk.riskahead.adapter.Top10ListAdapter; +import org.deke.risk.riskahead.helper.SessionManager; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -70,9 +71,9 @@ public class Top10Fragment extends Fragment { JSONObject jObj = new JSONObject(response); boolean error = jObj.getBoolean("error"); if (!error) { - JSONArray users = jObj.getJSONArray("msg"); + JSONArray users = jObj.getJSONArray("top10"); resultList = new ArrayList<>(); - Log.d(TAG,"Writing stuff in resultList!"); + for(int i=0;i getParams() { Map params = new HashMap<>(); params.put("tag", "gettop10"); - params.put("uid", parent.user.get("uid")); - params.put("token", parent.user.get("token")); + params.put("uid", parent.user.get(SessionManager.KEY_UID)); + params.put("token", parent.user.get(SessionManager.TOKEN)); return params; } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/TwitterButtonFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/TwitterButtonFragment.java index fce3f91..2513a33 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/TwitterButtonFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/TwitterButtonFragment.java @@ -75,7 +75,7 @@ public class TwitterButtonFragment extends Fragment { String token = authToken.token; String secret = authToken.secret; - ((LoginActivity) getActivity()).handleSocialMediaLogin((Long.toString(session.getUserId())),"twitter",session.getUserName(),""); + ((LoginActivity) getActivity()).handleSocialMediaLogin((Long.toString(session.getUserId())), "twitter", session.getUserName(), ""); } @Override 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 9e463e3..7680c43 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 @@ -24,6 +24,9 @@ import android.widget.Toast; import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.InterstitialAd; +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.plus.Plus; import com.mikepenz.google_material_typeface_library.GoogleMaterial; import com.mikepenz.iconics.context.IconicsLayoutInflater; import com.mikepenz.materialdrawer.AccountHeader; @@ -44,6 +47,7 @@ import org.deke.risk.riskahead.ReportWFActivity; import org.deke.risk.riskahead.SettingsActivity; import org.deke.risk.riskahead.SubscriptionsActivity; import org.deke.risk.riskahead.ViewReportActivity; +import org.deke.risk.riskahead.fragment.GooglePlusButtonFragment; import java.util.HashMap; @@ -64,6 +68,7 @@ public abstract class BaseActivity extends AppCompatActivity { public HashMap user; public ProgressDialog pDialog; + GoogleApiClient mGoogleApiClient; private final static int INTERVAL = 1000 * 300; //300 seconds InterstitialAd mInterstitialAd; @@ -218,16 +223,13 @@ public abstract class BaseActivity extends AppCompatActivity { intent = new Intent(BaseActivity.this, SubscriptionsActivity.class); break; case 7: - session.removeUser(); - session.setLogin(false); - intent = new Intent(BaseActivity.this, LoginActivity.class); - intent.putExtra(EXTRA_MESSAGE, "login"); + logoutUser(); break; default: Log.d("Unknown switch page: ", Integer.toString(position)); break; } - BaseActivity.this.startActivity(intent); + if(intent != null) BaseActivity.this.startActivity(intent); return false; } }).build(); @@ -276,9 +278,9 @@ public abstract class BaseActivity extends AppCompatActivity { public void logout() { session.setLogin(false); - Intent intent = new Intent(this, LoginActivity.class); + Intent intent = new Intent(BaseActivity.this, LoginActivity.class); intent.putExtra(EXTRA_MESSAGE, "login"); - startActivity(intent); + BaseActivity.this.startActivity(intent); finish(); } diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/IncidentReport.java b/app/src/main/java/org/deke/risk/riskahead/helper/IncidentReport.java index 04c691b..b5feb7c 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/IncidentReport.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/IncidentReport.java @@ -1,6 +1,7 @@ package org.deke.risk.riskahead.helper; -import android.graphics.drawable.Drawable; +import android.content.Context; +import android.graphics.Color; import com.google.android.gms.maps.model.BitmapDescriptor; import com.google.android.gms.maps.model.BitmapDescriptorFactory; @@ -16,107 +17,124 @@ import org.json.JSONObject; */ public class IncidentReport implements ClusterItem { - private LatLng mPosition; - private Integer mID; - private String mTitle; - private String mDescription; - private String mFidUser; - private String mFidCategory; - private String mHappenedAt; - private String mCreatedAt; - private String mUpdatedAt; - private String mRadius; - private String mCatName; - private String mCatDescription; - private String mColor; - private String mUsername; - private int mScore; + private int id; + private LatLng incidentPosition; + private String incidentPositionDescription; + private int fidFromUser; + private String fromUsername; - private int mFidCat1_Main; - private int mFidCat1_Sub; - private String mCat1_Sub_etc; - private String mPosDescription; + private int votedScore; - private int mFidTimeMainCat; - private int mFidTimeSubCat; + private String createdAt; + private String updatedAt; + + private int fidIncidentCategory; + private int fidIncidentSubCategory; + private String etcIncidentCategory; + + private int fidTimeCategory; + private int fidTimeSubCategory; private String fromTime; private String fromDate; private String toTime; private String toDate; - private int mFidSuspectMainCat; - private int mFidSuspectOrigin; - private String mSuspectEtc; + private int fidSuspectCategory; + private int fidSuspectSubCategory; + private String etcSuspectCategory; + private int fidSuspectWeaponCategory; + private int fidSuspectWeaponSubCategory; + private String etcSuspectWeaponCategory; + private int fidSuspectCountCategory; + private String etcSuspectCountCategory; - private BitmapDescriptor icon; + private int fidVictimCategory; + private int fidVictimOriginCategory; + private String etcVictimOriginCategory; - public IncidentReport(JSONObject mIncident, LatLng pos) { + private int fidSuspectTransportationCategory; + private String etcSuspectTransportationCategory; - try { - this.mID = mIncident.getInt("uid"); - this.mTitle = mIncident.getString("text_short"); - this.mDescription = mIncident.getString("text_long"); - this.mFidUser = mIncident.getString("fid_user"); - this.mFidCategory = mIncident.getString("fid_category"); - this.mHappenedAt = mIncident.getString("happened_at"); - this.mCreatedAt = mIncident.getString("created_at"); - this.mUpdatedAt = mIncident.getString("updated_at"); - this.mRadius = mIncident.getString("radius"); - this.mCatName = mIncident.getString("cat_name"); - this.mCatDescription = mIncident.getString("cat_description"); - this.mColor = mIncident.getString("color"); - this.mUsername = mIncident.getString("username"); - this.mScore = mIncident.getInt("votescore"); - this.mPosition = pos; - } catch (JSONException e) { - e.printStackTrace(); - } + private int fidVictimBelongingCategory; + private String etcVictimBelongingCategory; + + private int fidSuspectCharacteristicsCategory; + private String etcSuspectCharacteristicsCategory; + + private int fidOthersCategory; + private String etcOthersCategory; + + public IncidentReport(JSONObject mIncident, LatLng position) { + setAllAttributes(mIncident, position); } public IncidentReport(JSONObject mIncident) { - - try { - this.mID = mIncident.getInt("uid"); - this.mTitle = mIncident.getString("text_short"); - this.mDescription = mIncident.getString("text_long"); - this.mFidUser = mIncident.getString("fid_user"); - this.mFidCategory = mIncident.getString("fid_category"); - this.mHappenedAt = mIncident.getString("happened_at"); - this.mCreatedAt = mIncident.getString("created_at"); - this.mUpdatedAt = mIncident.getString("updated_at"); - this.mRadius = mIncident.getString("radius"); - this.mCatName = mIncident.getString("cat_name"); - this.mCatDescription = mIncident.getString("cat_description"); - this.mColor = mIncident.getString("color"); - this.mUsername = mIncident.getString("username"); - this.mScore = mIncident.getInt("votescore"); - this.mPosition = new LatLng(mIncident.getDouble("latitude"),mIncident.getDouble("longitude")); - } catch (JSONException e) { - e.printStackTrace(); - } + setAllAttributes(mIncident,null); } public IncidentReport(){ } - @Override - public LatLng getPosition() { - return mPosition; + private void setAllAttributes(JSONObject mIncident, LatLng position) { + try { + this.id = mIncident.getInt("id"); + + if(position != null) { + this.incidentPosition = position; + }else{ + this.incidentPosition = new LatLng(mIncident.getDouble("latitude"),mIncident.getDouble("longitude")); + } + + this.votedScore = mIncident.getInt("id"); + this.createdAt = mIncident.getString("created_at"); + this.updatedAt = mIncident.getString("updated_at"); + this.fromUsername = mIncident.getString("username"); + + this.fidFromUser = mIncident.getInt("fid_user"); + this.fidIncidentCategory = mIncident.getInt("fid_incident"); + this.fidIncidentSubCategory = mIncident.getInt("fid_subincident"); + this.etcIncidentCategory = mIncident.getString("etc_incident"); + this.fidTimeCategory = mIncident.getInt("fid_time"); + this.fidTimeSubCategory = mIncident.getInt("fid_subtime"); + this.fromTime = mIncident.getString("happened_from_datetime").split(" ")[1]; + this.fromDate = mIncident.getString("happened_from_datetime").split(" ")[0]; + this.toTime = mIncident.getString("happened_to_datetime").split(" ")[1]; + this.toDate = mIncident.getString("happened_to_datetime").split(" ")[0]; + this.fidSuspectCategory = mIncident.getInt("fid_suspect"); + this.fidSuspectSubCategory = mIncident.getInt("fid_subsuspect"); + this.etcSuspectCategory = mIncident.getString("etc_suspect"); + this.fidSuspectWeaponCategory = mIncident.getInt("fid_weapon"); + this.fidSuspectWeaponSubCategory = mIncident.getInt("fid_subweapon"); + this.etcSuspectWeaponCategory = mIncident.getString("etc_weapon"); + this.fidSuspectCountCategory = mIncident.getInt("fid_suspectcount"); + this.etcSuspectCountCategory = mIncident.getString("etc_suspectcount"); + this.fidVictimCategory = mIncident.getInt("fid_victim"); + this.fidVictimOriginCategory = mIncident.getInt("fid_victimorigin"); + this.etcVictimOriginCategory = mIncident.getString("etc_victimorigin"); + this.fidSuspectTransportationCategory = mIncident.getInt("fid_suspecttransportation"); + this.etcSuspectTransportationCategory = mIncident.getString("etc_suspecttransportation"); + this.fidVictimBelongingCategory = mIncident.getInt("fid_victimbelonging"); + this.etcVictimBelongingCategory = mIncident.getString("etc_victimbelonging"); + this.fidSuspectCharacteristicsCategory = mIncident.getInt("fid_suspectcharacteristics"); + this.etcSuspectCharacteristicsCategory = mIncident.getString("etc_suspectcharacteristics"); + this.fidOthersCategory = mIncident.getInt("fid_others"); + this.etcOthersCategory = mIncident.getString("etc_others"); + } catch (JSONException e) { + e.printStackTrace(); + } } - public void setPosition(LatLng pos) { - mPosition = pos; - } + public BitmapDescriptor getIcon() { BitmapDescriptor mIcon; - switch (Integer.valueOf(this.mFidCategory)) { + switch (Integer.valueOf(this.fidIncidentCategory)) { case 1: mIcon = BitmapDescriptorFactory.fromResource(R.drawable.icon_general); break; @@ -142,10 +160,11 @@ public class IncidentReport implements ClusterItem { return mIcon; } + public int getIconDrawable() { int mIcon; - switch (Integer.valueOf(this.mFidCategory)) { + switch (Integer.valueOf(this.fidIncidentCategory)) { case 1: mIcon = R.drawable.icon_general; break; @@ -171,104 +190,222 @@ public class IncidentReport implements ClusterItem { return mIcon; } - public String getSnippet() { - return this.mDescription; - } - - public String getTitle() { - return this.mTitle; - } - - public String getCategory(){ - return this.mCatName; - } - - public int getScore() { return this.mScore; } - - public String getUsername() { return this.mUsername; } - public float getScoreStars() { - if(mScore > 0){ + if(this.votedScore > 0){ return 0.5f; - }else if(mScore > 2){ + }else if(this.votedScore > 1){ return 1.0f; - }else if(mScore > 4){ + }else if(this.votedScore > 2){ return 1.5f; - }else if(mScore > 6){ + }else if(this.votedScore > 3){ return 2.0f; - }else if(mScore > 8){ + }else if(this.votedScore > 4){ return 2.5f; - }else if(mScore > 10){ + }else if(this.votedScore > 5){ return 3.0f; - }else if(mScore > 12){ + }else if(this.votedScore > 6){ return 3.5f; - }else if(mScore > 14){ + }else if(this.votedScore > 7){ return 4.0f; - }else if(mScore > 16){ + }else if(this.votedScore > 8){ return 4.5f; - }else if(mScore > 18){ + }else if(this.votedScore > 9){ return 5.0f; }else{ return 0f; } } - public String getColor(){ - return this.mColor; + public void resetDatetime() { + toTime = ""; + toDate = ""; + fromTime = ""; + fromDate = ""; } - public Integer getID() { - return mID; + @Override + public LatLng getPosition() { + return this.incidentPosition; } - - - public String getmPosDescription() { - return mPosDescription; + public void setPosition(LatLng position) { + this.incidentPosition = position; } - public void setmPosDescription(String mLocDetail) { - this.mPosDescription = mLocDetail; + public String getFromUsername() { + return fromUsername; } - public int getmFidCat1_Main() { - return mFidCat1_Main; + public void setFromUsername(String fromUsername) { + this.fromUsername = fromUsername; } - public void setmFidCat1_Main(int mFidCat1_Main) { - this.mFidCat1_Main = mFidCat1_Main; + public int getFidIncidentCategory() { + return fidIncidentCategory; } - public int getmFidCat1_Sub() { - return mFidCat1_Sub; + public void setFidIncidentCategory(int fidIncidentCategory) { + this.fidIncidentCategory = fidIncidentCategory; } - public void setmFidCat1_Sub(int mFidCat1_Sub) { - this.mFidCat1_Sub = mFidCat1_Sub; + public int getId() { + return id; } - public String getmCat1_Sub_etc() { - return mCat1_Sub_etc; + public void setId(int id) { + this.id = id; } - public void setmCat1_Sub_etc(String mCat1_Sub_etc) { - this.mCat1_Sub_etc = mCat1_Sub_etc; + public String getIncidentCategoryName(Context context){ + return context.getResources().getStringArray(R.array.cat_situation_main)[this.fidIncidentCategory]; } - public int getmFidTimeMainCat() { - return mFidTimeMainCat; + public String getIncidentSubCategoryName(Context context){ + String returnName = ""; + switch(this.fidIncidentCategory){ + case 1: + returnName = context.getResources().getStringArray(R.array.cat_situation_sub_general)[this.fidIncidentSubCategory]; + break; + case 2: + returnName = context.getResources().getStringArray(R.array.cat_situation_sub_verbal)[this.fidIncidentSubCategory]; + break; + case 3: + returnName = context.getResources().getStringArray(R.array.cat_situation_sub_force)[this.fidIncidentSubCategory]; + break; + case 4: + returnName = context.getResources().getStringArray(R.array.cat_situation_sub_force_serious)[this.fidIncidentSubCategory]; + break; + case 5: + returnName = context.getResources().getStringArray(R.array.cat_situation_sub_nature)[this.fidIncidentSubCategory]; + break; + case 6: + returnName = context.getResources().getStringArray(R.array.cat_situation_sub_infrastructure)[this.fidIncidentSubCategory]; + break; + } + return returnName; } - public void setmFidTimeMainCat(int mFidTimeMainCat) { - this.mFidTimeMainCat = mFidTimeMainCat; + public String getTimeString(Context context){ + String returnString = ""; + switch (this.fidTimeCategory){ + case 1: + returnString = context.getResources().getStringArray(R.array.cat_time_main)[this.fidTimeCategory]; + break; + case 2: + returnString = context.getResources().getStringArray(R.array.cat_time_sub_periodical)[this.fidTimeSubCategory]; + break; + case 3: + if((this.fromTime != null) && !(this.fromTime.equals("00:00:00"))){ + returnString = this.fromDate+" "+this.fromTime; + }else{ + returnString = this.fromDate; + } + break; + case 4: + if((this.fromTime != null) && !(this.fromTime.equals("00:00")) && (this.toTime != null) && !(this.toTime.equals("00:00"))){ + returnString = this.fromDate+" "+this.fromTime+" -> "+this.toDate+" "+this.toTime; + }else{ + returnString = this.fromDate+" -> "+this.toDate; + } + break; + case 5: + returnString = context.getResources().getStringArray(R.array.cat_time_main)[this.fidTimeCategory]; + break; + } + return returnString; } - public int getmFidTimeSubCat() { - return mFidTimeSubCat; + public String getSuspectString(Context context){ + return context.getResources().getStringArray(R.array.cat_suspect_main)[this.fidSuspectCategory]; } - public void setmFidTimeSubCat(int mFidTimeSubCat) { - this.mFidTimeSubCat = mFidTimeSubCat; + public int getCategoryColor(){ + String color = "FFFFFF"; + switch (this.fidIncidentCategory) { + case 1: + color = "3ac1e2"; + break; + case 2: + color = "3ed78d"; + break; + case 3: + color = "ed8d53"; + break; + case 4: + color = "ff3433"; + break; + case 5: + color = "3f7efd"; + break; + case 6: + color = "929292"; + break; + } + return Color.parseColor("#" + color); + } + + public int getVotedScore(){ + return this.votedScore; + } + + public void setVotedScore(int votedScore){ + this.votedScore = votedScore; + } + + public int getFidFromUser() { + return fidFromUser; + } + + public void setFidFromUser(int fidFromUser) { + this.fidFromUser = fidFromUser; + } + + public String getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(String createdAt) { + this.createdAt = createdAt; + } + + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(String updatedAt) { + this.updatedAt = updatedAt; + } + + public int getFidIncidentSubCategory() { + return fidIncidentSubCategory; + } + + public void setFidIncidentSubCategory(int fidIncidentSubCategory) { + this.fidIncidentSubCategory = fidIncidentSubCategory; + } + + public String getEtcIncidentCategory() { + return etcIncidentCategory; + } + + public void setEtcIncidentCategory(String etcIncidentCategory) { + this.etcIncidentCategory = etcIncidentCategory; + } + + public int getFidTimeCategory() { + return fidTimeCategory; + } + + public void setFidTimeCategory(int fidTimeCategory) { + this.fidTimeCategory = fidTimeCategory; + } + + public int getFidTimeSubCategory() { + return fidTimeSubCategory; + } + + public void setFidTimeSubCategory(int fidTimeSubCategory) { + this.fidTimeSubCategory = fidTimeSubCategory; } public String getFromTime() { @@ -300,37 +437,166 @@ public class IncidentReport implements ClusterItem { } public void setToDate(String toDate) { - toDate = toDate; + this.toDate = toDate; } - public void resetDatetime() { - toTime = ""; - toDate = ""; - fromTime = ""; - fromDate = ""; + public int getFidSuspectCategory() { + return fidSuspectCategory; } - public int getmFidSuspectMainCat() { - return mFidSuspectMainCat; + public void setFidSuspectCategory(int fidSuspectCategory) { + this.fidSuspectCategory = fidSuspectCategory; } - public void setmFidSuspectMainCat(int mFidSuspectMainCat) { - this.mFidSuspectMainCat = mFidSuspectMainCat; + public int getFidSuspectSubCategory() { + return fidSuspectSubCategory; } - public int getmFidSuspectOrigin() { - return mFidSuspectOrigin; + public void setFidSuspectSubCategory(int fidSuspectSubCategory) { + this.fidSuspectSubCategory = fidSuspectSubCategory; } - public void setmFidSuspectOrigin(int mFidSuspectOrigin) { - this.mFidSuspectOrigin = mFidSuspectOrigin; + public String getEtcSuspectCategory() { + return etcSuspectCategory; } - public String getmSuspectEtc() { - return mSuspectEtc; + public void setEtcSuspectCategory(String etcSuspectCategory) { + this.etcSuspectCategory = etcSuspectCategory; } - public void setmSuspectEtc(String mSuspectEtc) { - this.mSuspectEtc = mSuspectEtc; + public int getFidSuspectWeaponCategory() { + return fidSuspectWeaponCategory; + } + + public void setFidSuspectWeaponCategory(int fidSuspectWeaponCategory) { + this.fidSuspectWeaponCategory = fidSuspectWeaponCategory; + } + + public int getFidSuspectWeaponSubCategory() { + return fidSuspectWeaponSubCategory; + } + + public void setFidSuspectWeaponSubCategory(int fidSuspectWeaponSubCategory) { + this.fidSuspectWeaponSubCategory = fidSuspectWeaponSubCategory; + } + + public String getEtcSuspectWeaponCategory() { + return etcSuspectWeaponCategory; + } + + public void setEtcSuspectWeaponCategory(String etcSuspectWeaponCategory) { + this.etcSuspectWeaponCategory = etcSuspectWeaponCategory; + } + + public int getFidSuspectCountCategory() { + return fidSuspectCountCategory; + } + + public void setFidSuspectCountCategory(int fidSuspectCountCategory) { + this.fidSuspectCountCategory = fidSuspectCountCategory; + } + + public String getEtcSuspectCountCategory() { + return etcSuspectCountCategory; + } + + public void setEtcSuspectCountCategory(String etcSuspectCountCategory) { + this.etcSuspectCountCategory = etcSuspectCountCategory; + } + + public int getFidVictimCategory() { + return fidVictimCategory; + } + + public void setFidVictimCategory(int fidVictimCategory) { + this.fidVictimCategory = fidVictimCategory; + } + + public int getFidVictimOriginCategory() { + return fidVictimOriginCategory; + } + + public void setFidVictimOriginCategory(int fidVictimOriginCategory) { + this.fidVictimOriginCategory = fidVictimOriginCategory; + } + + public String getEtcVictimOriginCategory() { + return etcVictimOriginCategory; + } + + public void setEtcVictimOriginCategory(String etcVictimOriginCategory) { + this.etcVictimOriginCategory = etcVictimOriginCategory; + } + + public int getFidSuspectTransportationCategory() { + return fidSuspectTransportationCategory; + } + + public void setFidSuspectTransportationCategory(int fidSuspectTransportationCategory) { + this.fidSuspectTransportationCategory = fidSuspectTransportationCategory; + } + + public String getEtcSuspectTransportationCategory() { + return etcSuspectTransportationCategory; + } + + public void setEtcSuspectTransportationCategory(String etcSuspectTransportationCategory) { + this.etcSuspectTransportationCategory = etcSuspectTransportationCategory; + } + + public int getFidVictimBelongingCategory() { + return fidVictimBelongingCategory; + } + + public void setFidVictimBelongingCategory(int fidVictimBelongingCategory) { + this.fidVictimBelongingCategory = fidVictimBelongingCategory; + } + + public String getEtcVictimBelongingCategory() { + return etcVictimBelongingCategory; + } + + public void setEtcVictimBelongingCategory(String etcVictimBelongingCategory) { + this.etcVictimBelongingCategory = etcVictimBelongingCategory; + } + + public int getFidSuspectCharacteristicsCategory() { + return fidSuspectCharacteristicsCategory; + } + + public void setFidSuspectCharacteristicsCategory(int fidSuspectCharacteristicsCategory) { + this.fidSuspectCharacteristicsCategory = fidSuspectCharacteristicsCategory; + } + + public String getEtcSuspectCharacteristicsCategory() { + return etcSuspectCharacteristicsCategory; + } + + public void setEtcSuspectCharacteristicsCategory(String etcSuspectCharacteristicsCategory) { + this.etcSuspectCharacteristicsCategory = etcSuspectCharacteristicsCategory; + } + + public int getFidOthersCategory() { + return fidOthersCategory; + } + + public void setFidOthersCategory(int fidOthersCategory) { + this.fidOthersCategory = fidOthersCategory; + } + + public String getEtcOthersCategory() { + return etcOthersCategory; + } + + public void setEtcOthersCategory(String etcOthersCategory) { + this.etcOthersCategory = etcOthersCategory; + } + + public String getIncidentPositionDescription() { + return incidentPositionDescription; + } + + public void setIncidentPositionDescription(String incidentPositionDescription) { + this.incidentPositionDescription = incidentPositionDescription; } } diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/OwnIconRendered.java b/app/src/main/java/org/deke/risk/riskahead/helper/OwnIconRendered.java index 97a48ab..db7fc9d 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/OwnIconRendered.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/OwnIconRendered.java @@ -12,15 +12,18 @@ import com.google.maps.android.clustering.view.DefaultClusterRenderer; */ public class OwnIconRendered extends DefaultClusterRenderer { + Context context; + public OwnIconRendered(Context context, GoogleMap map,ClusterManager clusterManager) { super(context, map, clusterManager); + this.context = context; } @Override protected void onBeforeClusterItemRendered(IncidentReport item, MarkerOptions markerOptions) { markerOptions.icon(item.getIcon()); - markerOptions.snippet(item.getSnippet()); - markerOptions.title(item.getTitle()); + markerOptions.snippet(item.getIncidentSubCategoryName(context)); + markerOptions.title(item.getIncidentCategoryName(context)); super.onBeforeClusterItemRendered(item, markerOptions); } } 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 49556f1..3171f03 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 @@ -22,17 +22,18 @@ public class SessionManager { private static final String PREF_NAME = "AndroidLogin"; private static final String USERDATA_NAME = "AndroidLoginUser"; - private static final String KEY_UID = "uid"; - private static final String KEY_USERNAME = "username"; - private static final String KEY_NAME = "name"; - private static final String KEY_SURNAME = "surname"; - private static final String KEY_EMAIL = "email"; - private static final String KEY_STATUS = "status"; - private static final String PROVIDER_TYPE = "providerType"; - private static final String KEY_CREATED_AT = "created_at"; - private static final String KEY_UPDATED_AT = "updated_at"; - private static final String TOKEN = "token"; - private static final String KEY_IS_LOGGEDIN = "isLoggedIn"; + public static final String KEY_UID = "uid"; + public static final String KEY_USERNAME = "username"; + public static final String KEY_NAME = "name"; + public static final String KEY_SURNAME = "surname"; + public static final String KEY_EMAIL = "email"; + public static final String KEY_STATUS = "status"; + public static final String PROVIDER_TYPE = "providerType"; + public static final String KEY_CREATED_AT = "created_at"; + public static final String KEY_UPDATED_AT = "updated_at"; + public static final String KEY_LASTLOGIN_AT = "lastlogin_at"; + public static final String TOKEN = "accesskey"; + public static final String KEY_IS_LOGGEDIN = "isLoggedIn"; @@ -53,7 +54,7 @@ public class SessionManager { return status.getBoolean(KEY_IS_LOGGEDIN, false); } - public void addUser(String uid, String username, String name, String surname, String email, String status, String provider_type, String created_at, String updated_at, String token) { + public void addUser(String uid, String username, String name, String surname, String email, String status, String provider_type, String created_at, String updated_at, String lastlogin_at, String token) { userDataEditor.putString(KEY_UID, uid); //UID userDataEditor.putString(KEY_USERNAME, username); // Username @@ -64,6 +65,7 @@ public class SessionManager { userDataEditor.putString(PROVIDER_TYPE, provider_type); // ProviderType userDataEditor.putString(KEY_CREATED_AT, created_at); // Created At userDataEditor.putString(KEY_UPDATED_AT, updated_at); // Updated At + userDataEditor.putString(KEY_LASTLOGIN_AT, lastlogin_at); // Last Login userDataEditor.putString(TOKEN, token); // TOKEN userDataEditor.apply(); @@ -86,6 +88,7 @@ public class SessionManager { user.put(PROVIDER_TYPE, userdata.getString(PROVIDER_TYPE, null)); user.put(KEY_CREATED_AT, userdata.getString(KEY_CREATED_AT, null)); user.put(KEY_UPDATED_AT, userdata.getString(KEY_UPDATED_AT, null)); + user.put(KEY_LASTLOGIN_AT, userdata.getString(KEY_LASTLOGIN_AT, null)); user.put(TOKEN, userdata.getString(TOKEN, null)); Log.d(TAG, "Fetching user from sharedPrefs: " + user.toString()); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 052bf69..489e361 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -38,7 +38,7 @@ android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_marginTop="52dp" - android:textColor="#aa4b4b4b"/> + android:textColor="@color/text_light_grey"/> + android:textColor="@color/text_light_grey"/> @@ -63,7 +63,7 @@ android:id="@+id/layoutFooter" android:gravity="center" android:layout_height="wrap_content" - android:background="#d5ddff" + android:background="#7fbfbfbf" android:layout_width="match_parent" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml deleted file mode 100644 index be57276..0000000 --- a/app/src/main/res/layout/activity_report.xml +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index ffa0404..1b03a93 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -30,128 +30,123 @@ android:layout_weight="1" android:layout_centerInParent="true" android:layout_margin="10dp" - android:layout_marginBottom="20dp" - android:padding="8dp" - android:orientation="vertical"> + android:layout_marginBottom="20dp"> - + + + + + + + + + android:layout_below="@+id/til_settings_username"> - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + android:layout_alignParentEnd="true" /> + android:layout_alignParentBottom="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true"> - - - + style="?android:attr/borderlessButtonStyle" + android:text="@string/btn_settings_change" /> diff --git a/app/src/main/res/layout/fragment_profile_stats.xml b/app/src/main/res/layout/fragment_profile_stats.xml index 2f244e5..e04e4f5 100644 --- a/app/src/main/res/layout/fragment_profile_stats.xml +++ b/app/src/main/res/layout/fragment_profile_stats.xml @@ -23,7 +23,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" - android:textColor="#aa999999"/> + android:textColor="@color/text_light_grey"/> + android:textColor="@color/text_light_grey"/> + android:textColor="@color/text_light_grey"/> + android:textColor="@color/text_light_grey"/> + android:textColor="@color/text_light_grey"/> diff --git a/app/src/main/res/layout/fragment_reportlist_row.xml b/app/src/main/res/layout/fragment_reportlist_row.xml index 57affd1..8e8c398 100644 --- a/app/src/main/res/layout/fragment_reportlist_row.xml +++ b/app/src/main/res/layout/fragment_reportlist_row.xml @@ -3,9 +3,17 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:padding="5dp" + android:paddingRight="5dp" android:weightSum="1"> + + - - + @@ -49,7 +50,7 @@ diff --git a/app/src/main/res/layout/fragment_top10list_row.xml b/app/src/main/res/layout/fragment_top10list_row.xml index 7376921..9e0c66c 100644 --- a/app/src/main/res/layout/fragment_top10list_row.xml +++ b/app/src/main/res/layout/fragment_top10list_row.xml @@ -11,7 +11,7 @@ @@ -48,7 +48,7 @@ @@ -57,7 +57,7 @@ @@ -56,10 +56,28 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#b9000000" - android:text="Category" + android:text="subject" + android:paddingLeft="5dp" + android:id="@+id/txt_infowindow_subject" + android:typeface="serif" /> + + + + @@ -82,7 +100,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#b9000000" - android:text="Points:" + android:text="points:" android:id="@+id/txt_infowindow_points" android:typeface="serif" /> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 0c3eeb8..713b33a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1,7 +1,5 @@ RiskAhead - 658657714234846 - ca-app-pub-3940256099942544/6300978111 Login Register @@ -22,8 +20,6 @@ RiskAhead RiskAhead - {fa_pencil} Confirm changes - Open navigation drawer Close navigation drawer @@ -50,7 +46,7 @@ We have currently ... ... reported incidents {fa_map_marker} Report - {fa_info} View Map + {fa_map} View Map Short Description Long Descpription @@ -68,6 +64,10 @@ Surname E-Mail Username + Confirm Password + {fa_envelope} Reset Password + Retype Password + Confirm changes Profile Stats Member Since @@ -77,9 +77,6 @@ {fa_search} View Posts Top 10 - Confirm Password - {fa_envelope} Reset Password - Retype Password {fa_paint_brush} Report this position! diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index b0d27ef..4325450 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -9,7 +9,7 @@ #333333 #fdfdfd - + #aa4b4b4b #ffffff #ffffff diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1aad1e7..5b4c518 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -22,8 +22,6 @@ RiskAhead RiskAhead - {fa_pencil} Confirm changes - Open navigation drawer Close navigation drawer @@ -68,6 +66,10 @@ Surname E-Mail Username + Confirm Password + {fa_envelope} Reset Password + Retype Password + Confirm changes Profile Stats Member Since @@ -77,9 +79,6 @@ {fa_search} View Posts Top 10 - Confirm Password - {fa_envelope} Reset Password - Retype Password {fa_paint_brush} Report this position!