From 2bec883a4667f902bf6a8dfd75ee14f41c1f295a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dennis=20Thie=C3=9Fen?= Date: Sun, 3 Jan 2016 21:13:12 +0100 Subject: [PATCH] DT @03.01.2016: Finished ViewReport Activity and worked on SettingsActivity --- app/src/main/btn_report-web.png | Bin 0 -> 61250 bytes .../org/deke/risk/riskahead/MapsActivity.java | 11 +- .../deke/risk/riskahead/ReportWFActivity.java | 36 +++- .../deke/risk/riskahead/SettingsActivity.java | 85 +++++--- .../risk/riskahead/ViewReportActivity.java | 41 +++- .../fragment/ReportWF_7_Fragment.java | 2 +- .../fragment/ReportWF_8_Fragment.java | 2 +- .../fragment/ReportWF_Finish_Fragment.java | 60 ++++++ .../risk/riskahead/helper/BaseActivity.java | 5 - .../risk/riskahead/helper/IncidentReport.java | 124 ++++++++--- .../fragment_reportwf_finish_button.xml | 7 + .../main/res/layout/activity_report_wf.xml | 10 + app/src/main/res/layout/activity_settings.xml | 25 +-- .../main/res/layout/activity_view_report.xml | 203 ++++++++++++++---- .../main/res/layout/fragment_reportwf_1.xml | 3 +- .../main/res/layout/fragment_reportwf_7.xml | 3 +- .../main/res/layout/fragment_reportwf_8.xml | 12 +- .../res/layout/fragment_reportwf_finish.xml | 83 +++++++ app/src/main/res/layout/map_info_window.xml | 54 +++-- app/src/main/res/values-de/strings.xml | 18 +- app/src/main/res/values/strings.xml | 21 +- 21 files changed, 631 insertions(+), 174 deletions(-) create mode 100644 app/src/main/btn_report-web.png create mode 100644 app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_Finish_Fragment.java create mode 100644 app/src/main/res/drawable/fragment_reportwf_finish_button.xml create mode 100644 app/src/main/res/layout/fragment_reportwf_finish.xml diff --git a/app/src/main/btn_report-web.png b/app/src/main/btn_report-web.png new file mode 100644 index 0000000000000000000000000000000000000000..34a4a4a1123cb1836984ecb4f909f87e39c0f362 GIT binary patch literal 61250 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 TkjxwcFh3?YEU(uZxJLgMG*q9R literal 0 HcmV?d00001 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 972c5d6..3df40a0 100644 --- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java @@ -423,14 +423,11 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa clickedClusterItem = new IncidentReport(incident); TextView tvUsername = ((TextView) infoView.findViewById(R.id.txt_infowindow_fromuser)); - TextView tvScore = ((TextView) infoView.findViewById(R.id.txt_infowindow_points)); RatingBar rbScore = ((RatingBar) infoView.findViewById(R.id.rb_infowindow_rating)); - tvUsername.setText(getString(R.string.lbl_mapsinfowindow_author) + ": " + clickedClusterItem.getFromUsername()); - tvScore.setText(getString(R.string.lbl_mapsinfowindow_score) + ": " + String.valueOf(clickedClusterItem.getVotedScore())); + tvUsername.setText(getString(R.string.lbl_mapsinfowindow_author) + " " + clickedClusterItem.getFromUsername()); rbScore.setRating(clickedClusterItem.getScoreStars()); - if (markerShowingInfoWindow != null && markerShowingInfoWindow.isInfoWindowShown()) { markerShowingInfoWindow.showInfoWindow(); markerShowingInfoWindow = null; @@ -497,10 +494,10 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa tvCategory.setText(clickedClusterItem.getIncidentCategoryName(getApplicationContext())); tvSubcategory.setText(clickedClusterItem.getIncidentSubCategoryName(getApplicationContext())); - tvSuspect.setText(clickedClusterItem.getSuspectString(getApplicationContext())); - tvVictim.setText(""); // TODO - tvTime.setText(clickedClusterItem.getTimeString(getApplicationContext())); + tvSuspect.setText(getString(R.string.lbl_mapsinfowindow_suspect)+" "+clickedClusterItem.getSuspectString(getApplicationContext())); + tvVictim.setText(getString(R.string.lbl_mapsinfowindow_victim)+" "+clickedClusterItem.getVictimString(getApplicationContext())); + tvTime.setText(getString(R.string.lbl_mapsinfowindow_time)+" "+clickedClusterItem.getTimeString(getApplicationContext())); } return myContentsView; } 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 c175fe1..e42d8f7 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java @@ -14,6 +14,7 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.TextView; import com.android.volley.Request; import com.android.volley.Response; @@ -31,6 +32,7 @@ import org.deke.risk.riskahead.fragment.ReportWF_5_Fragment; import org.deke.risk.riskahead.fragment.ReportWF_6_Fragment; import org.deke.risk.riskahead.fragment.ReportWF_7_Fragment; import org.deke.risk.riskahead.fragment.ReportWF_8_Fragment; +import org.deke.risk.riskahead.fragment.ReportWF_Finish_Fragment; import org.deke.risk.riskahead.helper.IncidentReport; import org.deke.risk.riskahead.helper.AppConfig; import org.deke.risk.riskahead.helper.AppController; @@ -47,8 +49,8 @@ import java.util.Locale; import java.util.Map; public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragment.OnInputFinishedListener, ReportWF_2_Fragment.OnInputFinishedListener, ReportWF_3_Fragment.OnInputFinishedListener - ,ReportWF_4_Fragment.OnInputFinishedListener, ReportWF_5_Fragment.OnInputFinishedListener,ReportWF_6_Fragment.OnInputFinishedListener - ,ReportWF_7_Fragment.OnInputFinishedListener, ReportWF_8_Fragment.OnInputFinishedListener { + ,ReportWF_4_Fragment.OnInputFinishedListener, ReportWF_5_Fragment.OnInputFinishedListener,ReportWF_6_Fragment.OnInputFinishedListener + ,ReportWF_7_Fragment.OnInputFinishedListener, ReportWF_8_Fragment.OnInputFinishedListener, ReportWF_Finish_Fragment.SendReportListener { private final static String mActivityTitle = "Report Incident"; private final static String TAG = ReportWFActivity.class.getSimpleName(); @@ -63,10 +65,12 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen private Fragment frag_report_6 = new ReportWF_6_Fragment(); private Fragment frag_report_7 = new ReportWF_7_Fragment(); private Fragment frag_report_8 = new ReportWF_8_Fragment(); + private Fragment frag_report_finish = new ReportWF_Finish_Fragment(); private BootstrapButton btnContinue; private BootstrapButton btnReportNow; private FloatingActionButton btnMap; + private TextView siteIndicator; private IncidentReport incident = new IncidentReport(); @@ -89,6 +93,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen fragList.add(frag_report_6); fragList.add(frag_report_7); fragList.add(frag_report_8); + fragList.add(frag_report_finish); btnContinue = (BootstrapButton) findViewById(R.id.btn_reportwf_next); btnContinue.setVisibility(View.INVISIBLE); @@ -104,10 +109,12 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen btnReportNow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - reportIncident(incident); + reportIncident(); } }); + siteIndicator = (TextView) findViewById(R.id.lbl_reportwf_site); + btnMap = (FloatingActionButton) findViewById(R.id.fab_reportwf_map); btnMap.setOnClickListener(new View.OnClickListener() { @Override @@ -124,7 +131,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen prefsEditor = mPrefs.edit(); } - private void reportIncident(IncidentReport incident){ + private void reportIncident(){ String tag_string_req = "addincidentwithposition"; StringRequest strReq = getStringRequestAddIncidentWithPosition(incident); AppController.getInstance().addToRequestQueue(strReq, tag_string_req); @@ -140,7 +147,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen prefsEditor.commit(); } - private void modifiyPos(String pos){ + private void modifyPos(String pos){ String[] position = pos.split(":"); Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault()); LatLng latlngpos = new LatLng(Double.parseDouble(position[0]), Double.parseDouble(position[1])); @@ -184,11 +191,19 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.fragment_reportwf, fragList.get(state)); - transaction.addToBackStack(null); transaction.commit(); if(state > 1) btnReportNow.setVisibility(View.VISIBLE); - if(state == fragList.size()-1) btnReportNow.setVisibility(View.INVISIBLE); + if(state == (fragList.size()-1)){ + btnContinue.setVisibility(View.INVISIBLE); + btnReportNow.setVisibility(View.INVISIBLE); + siteIndicator.setVisibility(View.INVISIBLE); + }else{ + siteIndicator.setVisibility(View.VISIBLE); + } + + String currentSite = (currentState+1)+"/"+(fragList.size()-1); + siteIndicator.setText(currentSite); } @Override @@ -240,7 +255,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen Intent intent = getIntent(); String pos = intent.getStringExtra(EXTRA_MESSAGE); - if(pos != null) modifiyPos(pos); + if(pos != null) modifyPos(pos); currentState = mPrefs.getInt("currentState",0); initFragment(currentState); @@ -378,4 +393,9 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen protected String getActivityName() { return mActivityTitle; } + + @Override + public void sendReport() { + reportIncident(); + } } 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 eaa4ea0..47da52e 100644 --- a/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java @@ -3,9 +3,11 @@ package org.deke.risk.riskahead; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; +import android.text.method.PasswordTransformationMethod; import android.util.Log; import android.util.Patterns; import android.view.View; +import android.widget.EditText; import android.widget.TextView; import com.android.volley.Request; @@ -33,7 +35,6 @@ public class SettingsActivity extends BaseActivity { private TextView txtSurname; private TextView txtName; private TextView txtEmail; - private TextView txtPassword; @Override protected void onCreate(Bundle savedInstanceState) { @@ -44,7 +45,6 @@ public class SettingsActivity extends BaseActivity { txtName = (TextView) findViewById(R.id.txt_settings_name); txtSurname = (TextView) findViewById(R.id.txt_settings_surname); txtEmail = (TextView) findViewById(R.id.txt_settings_email); - txtPassword = (TextView) findViewById(R.id.txt_settings_password); findViewById(R.id.btn_settings_req_password).setOnClickListener(new View.OnClickListener() { @Override @@ -74,33 +74,12 @@ public class SettingsActivity extends BaseActivity { findViewById(R.id.btn_settings_change).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (txtPassword.getText() != null && txtPassword.getText().toString().isEmpty()) { - showMessage("Enter your password to confirm profile changes"); - return; - } - - if (txtUsername.getError() != null || txtEmail.getError() != null) { + if (txtUsername.getError() != null || txtEmail.getError() != null) { showMessage("Entered fields not valid\n" + "Please check errors first."); } else { + showAlert(); - new AlertDialog.Builder(SettingsActivity.this) - .setTitle("Confirm changes") - .setMessage("Do you really want to confirm changes? ") - .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - String tag_string_req = "updateuser"; - StringRequest strReq = getStringChangeUserSettings(); - AppController.getInstance().addToRequestQueue(strReq, tag_string_req); - } - }) - .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - // do nothing - } - }) - .setIcon(android.R.drawable.ic_dialog_alert) - .show(); } } }); @@ -131,14 +110,60 @@ public class SettingsActivity extends BaseActivity { }); if(user.get("providerType") != null && user.get("providerType").equals("local")){ - findViewById(R.id.txt_settings_password).setVisibility(View.VISIBLE); findViewById(R.id.btn_settings_req_password).setVisibility(View.VISIBLE); }else{ - findViewById(R.id.txt_settings_password).setVisibility(View.INVISIBLE); findViewById(R.id.btn_settings_req_password).setVisibility(View.INVISIBLE); } } + private void showAlert() { + AlertDialog.Builder alert = new AlertDialog.Builder(SettingsActivity.this); + + if(user.get("providerType") != null && user.get("providerType").equals("local")) { + final EditText input = new EditText(this); + input.setTransformationMethod(PasswordTransformationMethod.getInstance()); + + alert.setView(input); + + alert.setTitle("Change settings") + .setMessage("Enter your password to confirm changes: ") + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + String value = input.getText().toString(); + + String tag_string_req = "updateuser"; + StringRequest strReq = getStringChangeUserSettings(value); + AppController.getInstance().addToRequestQueue(strReq, tag_string_req); + } + }) + .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // do nothing + } + }) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); + }else{ + alert.setTitle("Change settings") + .setMessage("Do you really want to confirm changes?") + .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + + String tag_string_req = "updateuser"; + StringRequest strReq = getStringChangeUserSettings(""); + AppController.getInstance().addToRequestQueue(strReq, tag_string_req); + } + }) + .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // do nothing + } + }) + .setIcon(android.R.drawable.ic_dialog_alert) + .show(); + } + } + @Override protected void onResume() { @@ -154,7 +179,7 @@ public class SettingsActivity extends BaseActivity { @Override protected String getActivityName() { return mActivityTitle; } - private StringRequest getStringChangeUserSettings() { + private StringRequest getStringChangeUserSettings(final String value) { showDialog(); return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { @@ -169,7 +194,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("lastlogin_at"), tmpuser.getString("token")); + session.addUser(jObj.getString("id"), 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 { @@ -204,7 +229,7 @@ public class SettingsActivity extends BaseActivity { params.put("surname", txtSurname.getText().toString()); params.put("email", txtEmail.getText().toString()); params.put("providerType", user.get("providerType")); - params.put("password", txtPassword.getText().toString()); + params.put("password", value); return params; } 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 5b2507e..02d4620 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java @@ -1,6 +1,7 @@ package org.deke.risk.riskahead; import android.app.AlertDialog; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Address; @@ -9,7 +10,6 @@ import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; -import android.widget.TextView; import com.android.volley.Request; import com.android.volley.Response; @@ -38,7 +38,16 @@ public class ViewReportActivity extends BaseActivity { private EditText txtIncidentCategory; private EditText txtIncidentSubCategory; - private TextView txtPosition; + private EditText txtPosition; + private EditText txtSuspect; + private EditText txtWeapons; + private EditText txtNumOfSuspects; + private EditText txtVictim; + private EditText txtVictimOrigin; + private EditText txtSuspectTransport; + private EditText txtVictimAffiliation; + private EditText txtSuspectRecognition; + private BootstrapLabel scorelabel; private IncidentReport incident; @@ -50,8 +59,16 @@ public class ViewReportActivity extends BaseActivity { txtIncidentCategory = (EditText) findViewById(R.id.txt_viewreport_incidentcategory); txtIncidentSubCategory = (EditText) findViewById(R.id.txt_viewreport_incidentsubcategory); - txtPosition = (TextView) findViewById(R.id.txt_viewreport_position); + txtPosition = (EditText) findViewById(R.id.txt_viewreport_position); scorelabel = (BootstrapLabel) findViewById(R.id.txt_viewreport_points); + txtSuspect = (EditText) findViewById(R.id.txt_viewreport_suspect); + txtWeapons = (EditText) findViewById(R.id.txt_viewreport_suspectweapon); + txtNumOfSuspects = (EditText) findViewById(R.id.txt_viewreport_suspectcount); + txtVictim = (EditText) findViewById(R.id.txt_viewreport_victim); + txtVictimOrigin = (EditText) findViewById(R.id.txt_viewreport_victimorigin); + txtSuspectTransport = (EditText) findViewById(R.id.txt_viewreport_suspecttransport); + txtVictimAffiliation = (EditText) findViewById(R.id.txt_viewreport_victimaff); + txtSuspectRecognition = (EditText) findViewById(R.id.txt_viewreport_suspectrecon); Intent intent = getIntent(); final Integer id = intent.getIntExtra(BaseActivity.EXTRA_MESSAGE, 0); @@ -223,9 +240,19 @@ public class ViewReportActivity extends BaseActivity { } private void initReport(IncidentReport incident) { + Context tmpContext = getApplicationContext(); + scorelabel.setText(Integer.toString(incident.getVotedScore())); - txtIncidentCategory.setText(incident.getIncidentCategoryName(getApplicationContext())); - txtIncidentSubCategory.setText(incident.getIncidentSubCategoryName(getApplicationContext())); + txtIncidentCategory.setText(incident.getIncidentCategoryName(tmpContext)); + txtIncidentSubCategory.setText(incident.getIncidentSubCategoryName(tmpContext)); + txtSuspect.setText(incident.getSuspectString(tmpContext)); + txtWeapons.setText(incident.getSuspectWeaponsString(tmpContext)); + txtNumOfSuspects.setText(incident.getSuspectNoOfString(tmpContext)); + txtVictim.setText(incident.getVictimString(tmpContext)); + txtVictimOrigin.setText(incident.getVictimOriginString(tmpContext)); + txtSuspectTransport.setText(incident.getSuspectTransportString(tmpContext)); + txtVictimAffiliation.setText(incident.getVictimAffiliationString(tmpContext)); + txtSuspectRecognition.setText(incident.getSuspectRecognitionString(tmpContext)); this.incident = incident; @@ -259,8 +286,8 @@ public class ViewReportActivity extends BaseActivity { } }); - String test = user.get(SessionManager.KEY_UID); - if(incident.getFidFromUser() != Integer.valueOf(test)){ + String uid = user.get(SessionManager.KEY_UID); + if(incident.getFidFromUser() != Integer.valueOf(uid)){ findViewById(R.id.layoutFooter).setVisibility(View.GONE); } } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_7_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_7_Fragment.java index b82540f..4e75f1b 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_7_Fragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_7_Fragment.java @@ -85,7 +85,7 @@ public class ReportWF_7_Fragment extends Fragment { } if (position > 0) { - incident.setFidVictimCategory(position); + incident.setFidVictimOriginCategory(position); } checkIfFinished(); diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_8_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_8_Fragment.java index 56cfda8..e3017e4 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_8_Fragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_8_Fragment.java @@ -72,7 +72,7 @@ public class ReportWF_8_Fragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { - viewFragment = inflater.inflate(R.layout.fragment_reportwf_7, container, false); + viewFragment = inflater.inflate(R.layout.fragment_reportwf_8, container, false); initSuspectVehicleInputElements(); setSuspectVehicleMainSpinnerValues(R.array.cat_details_vehicle); diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_Finish_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_Finish_Fragment.java new file mode 100644 index 0000000..7b857e7 --- /dev/null +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_Finish_Fragment.java @@ -0,0 +1,60 @@ +package org.deke.risk.riskahead.fragment; + + +import android.content.Context; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; + +import org.deke.risk.riskahead.R; + +/** + * A simple {@link Fragment} subclass. + */ +public class ReportWF_Finish_Fragment extends Fragment { + + private View viewFragment; + private SendReportListener mCallback; + private Button btnSendReport; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { + viewFragment = inflater.inflate(R.layout.fragment_reportwf_finish, container, false); + + btnSendReport = (Button) viewFragment.findViewById(R.id.btn_reportwf_finish_send); + btnSendReport.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mCallback.sendReport(); + } + }); + + return viewFragment; + } + + public interface SendReportListener { + void sendReport(); + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + try { + mCallback = (SendReportListener) context; + } catch (ClassCastException e) { + throw new ClassCastException(context.toString() + + " must implement SendReportListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + } + + +} 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 6e76ac4..021ef2f 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 @@ -417,11 +417,6 @@ public abstract class BaseActivity extends AppCompatActivity { protected abstract String getActivityName(); - - private boolean isEmpty(EditText etText) { - return etText.getText().toString().trim().length() == 0; - } - public void showDialog() { if (!pDialog.isShowing()) pDialog.show(); 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 83572a3..ae77e9e 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 @@ -222,30 +222,7 @@ public class IncidentReport implements ClusterItem { fromDate = ""; } - @Override - public LatLng getPosition() { - return this.incidentPosition; - } - public void setPosition(LatLng position) { - this.incidentPosition = position; - } - - public String getFromUsername() { - return fromUsername; - } - - public void setFromUsername(String fromUsername) { - this.fromUsername = fromUsername; - } - - public int getFidIncidentCategory() { - return fidIncidentCategory; - } - - public void setFidIncidentCategory(int fidIncidentCategory) { - this.fidIncidentCategory = fidIncidentCategory; - } public int getId() { return id; @@ -289,7 +266,7 @@ public class IncidentReport implements ClusterItem { switch (this.fidTimeCategory){ case 1: if((this.fromDate != null) && !(this.fromDate.equals("0000-00-00"))){ - returnString = this.fromDate+" "+this.fromTime; + returnString = this.fromDate+" "+this.fromTime.substring(0,5); }else{ returnString = context.getResources().getStringArray(R.array.cat_time_main)[this.fidTimeCategory-1]; } @@ -299,14 +276,14 @@ public class IncidentReport implements ClusterItem { break; case 3: if((this.fromTime != null) && !(this.fromTime.equals("00:00:00"))){ - returnString = this.fromDate+" "+this.fromTime; + returnString = this.fromDate+" "+this.fromTime.substring(0,5); }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; + returnString = this.fromDate+" "+this.fromTime.substring(0,5)+" -> "+this.toDate+" "+this.toTime.substring(0,5); }else{ returnString = this.fromDate+" -> "+this.toDate; } @@ -324,7 +301,14 @@ public class IncidentReport implements ClusterItem { }else{ return ""; } + } + public String getVictimString(Context context){ + if(this.fidVictimCategory > 0){ + return context.getResources().getStringArray(R.array.cat_victim)[this.fidVictimCategory-1]; + }else{ + return ""; + } } public int getCategoryColor(){ @@ -352,6 +336,91 @@ public class IncidentReport implements ClusterItem { return Color.parseColor("#" + color); } + public String getSuspectWeaponsString(Context context) { + String returnValue = ""; + + if(fidSuspectWeaponCategory != 0) returnValue = context.getResources().getStringArray(R.array.cat_suspect_weapons)[fidSuspectWeaponCategory-1]; + if(!etcSuspectWeaponCategory.equals("")) returnValue += "\n"+etcSuspectWeaponCategory; + + return returnValue; + } + + public String getSuspectNoOfString(Context context) { + String returnValue = ""; + + if(fidSuspectCountCategory != 0) returnValue = context.getResources().getStringArray(R.array.cat_suspect_count)[fidSuspectCountCategory-1]; + if(!etcSuspectCountCategory.equals("")) returnValue += "\n"+etcSuspectCountCategory; + + return returnValue; + } + + public String getVictimOriginString(Context context) { + String returnValue = ""; + + if(fidVictimOriginCategory != 0) returnValue = context.getResources().getStringArray(R.array.cat_victim_origin)[fidVictimOriginCategory-1]; + if(!etcVictimOriginCategory.equals("")) returnValue += "\n"+etcVictimOriginCategory; + + return returnValue; + } + + public String getSuspectTransportString(Context context) { + String returnValue = ""; + + if(fidSuspectTransportationCategory != 0) returnValue = context.getResources().getStringArray(R.array.cat_details_vehicle)[fidSuspectTransportationCategory-1]; + if(!etcSuspectTransportationCategory.equals("")) returnValue += "\n"+etcSuspectTransportationCategory; + + return returnValue; + } + + public String getVictimAffiliationString(Context context) { + String returnValue = ""; + + if(fidVictimBelongingCategory != 0) returnValue = context.getResources().getStringArray(R.array.cat_details_victimaff)[fidVictimBelongingCategory-1]; + if(!etcVictimBelongingCategory.equals("")) returnValue += "\n"+etcVictimBelongingCategory; + + return returnValue; + } + + public String getSuspectRecognitionString(Context context) { + String returnValue = ""; + + if(fidSuspectCharacteristicsCategory != 0) returnValue = context.getResources().getStringArray(R.array.cat_details_suspect_recon)[fidSuspectCharacteristicsCategory-1]; + if(!etcSuspectCharacteristicsCategory.equals("")) returnValue += "\n"+etcSuspectCharacteristicsCategory; + + return returnValue; + } + + + + /* + Simple Getters and Setter below + */ + + public void setPosition(LatLng position) { + this.incidentPosition = position; + } + + public String getFromUsername() { + return fromUsername; + } + + public void setFromUsername(String fromUsername) { + this.fromUsername = fromUsername; + } + + public int getFidIncidentCategory() { + return fidIncidentCategory; + } + + public void setFidIncidentCategory(int fidIncidentCategory) { + this.fidIncidentCategory = fidIncidentCategory; + } + + @Override + public LatLng getPosition() { + return this.incidentPosition; + } + public int getVotedScore(){ return this.votedScore; } @@ -607,4 +676,7 @@ public class IncidentReport implements ClusterItem { public void setIncidentPositionDescription(String incidentPositionDescription) { this.incidentPositionDescription = incidentPositionDescription; } + + + } diff --git a/app/src/main/res/drawable/fragment_reportwf_finish_button.xml b/app/src/main/res/drawable/fragment_reportwf_finish_button.xml new file mode 100644 index 0000000..c268ba2 --- /dev/null +++ b/app/src/main/res/drawable/fragment_reportwf_finish_button.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_report_wf.xml b/app/src/main/res/layout/activity_report_wf.xml index b9bc853..7d44cac 100644 --- a/app/src/main/res/layout/activity_report_wf.xml +++ b/app/src/main/res/layout/activity_report_wf.xml @@ -62,6 +62,16 @@ + + + android:layout_below="@+id/til_settings_name"> @@ -86,7 +83,7 @@ android:id="@+id/til_settings_email" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_below="@+id/til_settings_name"> + android:layout_below="@+id/til_settings_surname"> - - diff --git a/app/src/main/res/layout/activity_view_report.xml b/app/src/main/res/layout/activity_view_report.xml index 66afda0..4e40bdb 100644 --- a/app/src/main/res/layout/activity_view_report.xml +++ b/app/src/main/res/layout/activity_view_report.xml @@ -23,19 +23,23 @@ android:layout_height="match_parent" android:orientation="vertical"> - + android:layout_weight="1"> + + + android:layout_marginRight="45dp" + android:layout_weight="1"> - - - - + android:layout_below="@+id/til_viewreport_incidentsubcategory"> + - + + + android:layout_below="@+id/til_viewreport_incidentposition"> + - + + + android:layout_below="@+id/til_viewreport_time"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -141,8 +262,17 @@ bootstrap:fontAwesomeIcon="fa_angle_down" /> - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_reportwf_1.xml b/app/src/main/res/layout/fragment_reportwf_1.xml index fc44acb..a6d7d7a 100644 --- a/app/src/main/res/layout/fragment_reportwf_1.xml +++ b/app/src/main/res/layout/fragment_reportwf_1.xml @@ -91,7 +91,8 @@ android:id="@+id/lbl_reportwf_position_detail" android:layout_below="@+id/lbl_reportwf_1_question_2" android:layout_centerInParent="true" - android:layout_marginLeft="20dp" /> + android:layout_marginLeft="20dp" + android:layout_marginBottom="50dp"/> diff --git a/app/src/main/res/layout/fragment_reportwf_7.xml b/app/src/main/res/layout/fragment_reportwf_7.xml index 1e3c411..9f3148a 100644 --- a/app/src/main/res/layout/fragment_reportwf_7.xml +++ b/app/src/main/res/layout/fragment_reportwf_7.xml @@ -28,8 +28,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" + android:gravity="center" android:layout_margin="20dp" - android:text="@string/lbl_question_count" + android:text="@string/lbl_question_victimorigin" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="@color/bg_common" /> diff --git a/app/src/main/res/layout/fragment_reportwf_8.xml b/app/src/main/res/layout/fragment_reportwf_8.xml index bf9c376..6b870e1 100644 --- a/app/src/main/res/layout/fragment_reportwf_8.xml +++ b/app/src/main/res/layout/fragment_reportwf_8.xml @@ -39,7 +39,7 @@ android:layout_height="wrap_content" android:layout_margin="20dp" android:text="@string/lbl_question_etc_vehicle" - android:textAppearance="?android:attr/textAppearanceLarge" + android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/bg_common" /> - + android:layout_gravity="center_horizontal" + android:layout_marginBottom="80dp"/> diff --git a/app/src/main/res/layout/fragment_reportwf_finish.xml b/app/src/main/res/layout/fragment_reportwf_finish.xml new file mode 100644 index 0000000..99f18ae --- /dev/null +++ b/app/src/main/res/layout/fragment_reportwf_finish.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + +