From 014daab5c323c68927e3f5b67f93e5df6158c6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dennis=20Thie=C3=9Fen?= Date: Sat, 2 Jan 2016 21:08:33 +0100 Subject: [PATCH] DT @02.01.2016: Finished ReportWF Category implementation --- .../org/deke/risk/riskahead/MainActivity.java | 3 +- .../deke/risk/riskahead/ReportWFActivity.java | 25 +- .../fragment/ReportWF_4_Fragment.java | 20 +- .../fragment/ReportWF_5_Fragment.java | 159 +++++++++ .../fragment/ReportWF_6_Fragment.java | 146 ++++++++ .../fragment/ReportWF_7_Fragment.java | 159 +++++++++ .../fragment/ReportWF_8_Fragment.java | 317 ++++++++++++++++++ .../main/res/layout/fragment_reportwf_5.xml | 57 ++++ .../main/res/layout/fragment_reportwf_6.xml | 50 +++ .../main/res/layout/fragment_reportwf_7.xml | 57 ++++ .../main/res/layout/fragment_reportwf_8.xml | 167 +++++++++ app/src/main/res/values-de/strings.xml | 6 +- app/src/main/res/values/strings.xml | 7 +- 13 files changed, 1159 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_5_Fragment.java create mode 100644 app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_6_Fragment.java create mode 100644 app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_7_Fragment.java create mode 100644 app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_8_Fragment.java create mode 100644 app/src/main/res/layout/fragment_reportwf_5.xml create mode 100644 app/src/main/res/layout/fragment_reportwf_6.xml create mode 100644 app/src/main/res/layout/fragment_reportwf_7.xml create mode 100644 app/src/main/res/layout/fragment_reportwf_8.xml diff --git a/app/src/main/java/org/deke/risk/riskahead/MainActivity.java b/app/src/main/java/org/deke/risk/riskahead/MainActivity.java index 895175d..fb62018 100644 --- a/app/src/main/java/org/deke/risk/riskahead/MainActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/MainActivity.java @@ -107,7 +107,7 @@ public class MainActivity extends BaseActivity{ Log.d(this.toString(),"Run Notification Task"); myPosition = session.getLocation(); - if(myPosition != null){ + if((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0)){ String lastNotificationTime = ""; @@ -253,7 +253,6 @@ public class MainActivity extends BaseActivity{ startRepeatingTask(); } - Runnable mHandlerTask = new Runnable() { @Override 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 9124643..c175fe1 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,10 @@ import org.deke.risk.riskahead.fragment.ReportWF_1_Fragment; import org.deke.risk.riskahead.fragment.ReportWF_2_Fragment; import org.deke.risk.riskahead.fragment.ReportWF_3_Fragment; import org.deke.risk.riskahead.fragment.ReportWF_4_Fragment; +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.helper.IncidentReport; import org.deke.risk.riskahead.helper.AppConfig; import org.deke.risk.riskahead.helper.AppController; @@ -42,7 +46,9 @@ import java.util.List; 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 { +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 { private final static String mActivityTitle = "Report Incident"; private final static String TAG = ReportWFActivity.class.getSimpleName(); @@ -53,6 +59,10 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen private Fragment frag_report_2 = new ReportWF_2_Fragment(); private Fragment frag_report_3 = new ReportWF_3_Fragment(); private Fragment frag_report_4 = new ReportWF_4_Fragment(); + private Fragment frag_report_5 = new ReportWF_5_Fragment(); + 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 BootstrapButton btnContinue; private BootstrapButton btnReportNow; @@ -75,8 +85,10 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen fragList.add(frag_report_2); fragList.add(frag_report_3); fragList.add(frag_report_4); - - initFragment(currentState); + fragList.add(frag_report_5); + fragList.add(frag_report_6); + fragList.add(frag_report_7); + fragList.add(frag_report_8); btnContinue = (BootstrapButton) findViewById(R.id.btn_reportwf_next); btnContinue.setVisibility(View.INVISIBLE); @@ -160,6 +172,8 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen public void setIncident(IncidentReport newIncident){ if(!resetSignal){ incident = newIncident; + Gson gson = new Gson(); + Log.d(this.getActivityName(),"Set Incident with CurrentState: "+currentState+" / Details: "+gson.toJson(incident)); } } @@ -174,6 +188,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen transaction.commit(); if(state > 1) btnReportNow.setVisibility(View.VISIBLE); + if(state == fragList.size()-1) btnReportNow.setVisibility(View.INVISIBLE); } @Override @@ -187,7 +202,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen @Override public void onInputFinished(boolean finished) { if(finished) { - btnContinue.setVisibility(View.VISIBLE); + if(currentState < fragList.size()-1) btnContinue.setVisibility(View.VISIBLE); findViewById(R.id.atvStatus).setVisibility(View.VISIBLE); }else{ btnContinue.setVisibility(View.INVISIBLE); @@ -228,7 +243,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen if(pos != null) modifiyPos(pos); currentState = mPrefs.getInt("currentState",0); - if(currentState != 0) initFragment(currentState); + initFragment(currentState); navDrawer.setSelection(reportAvtivityID, false); } diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_4_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_4_Fragment.java index 9fd2739..62eba8e 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_4_Fragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_4_Fragment.java @@ -60,17 +60,31 @@ public class ReportWF_4_Fragment extends Fragment { suspectWeapon = (Spinner) viewFragment.findViewById(R.id.dd_reportwf_4_weapon); suspectWeaponEtcInput = (EditText) viewFragment.findViewById(R.id.txt_reportwf_4_weapon_etc); + suspectWeaponEtcInput.setVisibility(View.INVISIBLE); + suspectWeapon.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { switch (position) { + case COMMON_OBJECTS: + suspectWeaponEtcInput.setVisibility(View.VISIBLE); + break; + case FIREARM: + suspectWeaponEtcInput.setVisibility(View.VISIBLE); + break; + case EXPLOSIONS: + suspectWeaponEtcInput.setVisibility(View.VISIBLE); + break; + case MIL: + suspectWeaponEtcInput.setVisibility(View.VISIBLE); + break; + case ETC: + suspectWeaponEtcInput.setVisibility(View.VISIBLE); + break; case DONTKNOW: suspectWeaponEtcInput.setVisibility(View.INVISIBLE); break; - default: - suspectWeaponEtcInput.setVisibility(View.VISIBLE); - break; } if (position > 0) { diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_5_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_5_Fragment.java new file mode 100644 index 0000000..ae6a663 --- /dev/null +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_5_Fragment.java @@ -0,0 +1,159 @@ +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.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; + +import org.deke.risk.riskahead.R; +import org.deke.risk.riskahead.ReportWFActivity; +import org.deke.risk.riskahead.adapter.SpinnerHintAdapter; +import org.deke.risk.riskahead.helper.IncidentReport; + +/** + * @author Dennis Thießen + */ +public class ReportWF_5_Fragment extends Fragment { + + + private final static int SINGLE_PERSON = 1; + private final static int SMALL_GROUP = 2; + private final static int BIG_GROUP = 3; + private final static int ETC = 4; + private final static int DONTKNOW = 5; + + private View viewFragment; + + private Spinner suspectCount; + private EditText suspectCountEtcInput; + + private IncidentReport incident; + + private OnInputFinishedListener mCallback; + + public interface OnInputFinishedListener { + void onInputFinished(boolean finished); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { + viewFragment = inflater.inflate(R.layout.fragment_reportwf_5, container, false); + + initInputElements(); + setMainSpinnerValues(R.array.cat_suspect_count); + + return viewFragment; + } + + private void initInputElements() { + suspectCount = (Spinner) viewFragment.findViewById(R.id.dd_reportwf_5_count); + suspectCountEtcInput = (EditText) viewFragment.findViewById(R.id.txt_reportwf_5_count_etc); + + suspectCountEtcInput.setVisibility(View.INVISIBLE); + + suspectCount.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (position) { + case SINGLE_PERSON: + suspectCountEtcInput.setVisibility(View.INVISIBLE); + break; + case SMALL_GROUP: + suspectCountEtcInput.setVisibility(View.INVISIBLE); + break; + case BIG_GROUP: + suspectCountEtcInput.setVisibility(View.INVISIBLE); + break; + case ETC: + suspectCountEtcInput.setVisibility(View.VISIBLE); + break; + case DONTKNOW: + suspectCountEtcInput.setVisibility(View.INVISIBLE); + break; + } + + if (position > 0) { + incident.setFidSuspectCountCategory(position); + } + + checkIfFinished(); + } + + @Override + public void onNothingSelected(AdapterView parentView) { + // do nothing + } + }); + } + + private void setMainSpinnerValues(int stringId){ + ArrayAdapter adapter_main_1 = ArrayAdapter.createFromResource(getActivity(), stringId, android.R.layout.simple_spinner_dropdown_item); + suspectCount.setAdapter(new SpinnerHintAdapter(adapter_main_1, R.layout.contact_spinner_row_nothing_selected, getActivity())); + } + + + private void checkIfFinished(){ + boolean isMainCategoryFilled = false; + + if(incident != null){ + isMainCategoryFilled = (suspectCount.getSelectedItemPosition() > 0) && (incident.getFidSuspectCountCategory() > 0); + } + + mCallback.onInputFinished(isMainCategoryFilled); + } + + @Override + public void onResume() { + super.onResume(); + + incident = ((ReportWFActivity)getActivity()).getIncident(); + + if(incident != null){ + if(incident.getFidSuspectCountCategory() != 0) suspectCount.setSelection(incident.getFidSuspectCountCategory()); + if(incident.getEtcSuspectCountCategory() != null && !incident.getEtcSuspectCountCategory().equals("")) suspectCountEtcInput.setText(incident.getEtcSuspectCountCategory()); + } + + checkIfFinished(); + } + + @Override + public void onPause() { + super.onPause(); + + incident.setFidSuspectCountCategory(suspectCount.getSelectedItemPosition()); + incident.setEtcSuspectCountCategory(suspectCountEtcInput.getText().toString()); + + ((ReportWFActivity)getActivity()).setIncident(incident); + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + try { + mCallback = (OnInputFinishedListener) context; + } catch (ClassCastException e) { + throw new ClassCastException(context.toString() + + " must implement OnInputFinishedListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + } + + +} diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_6_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_6_Fragment.java new file mode 100644 index 0000000..c5a8332 --- /dev/null +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_6_Fragment.java @@ -0,0 +1,146 @@ +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.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Spinner; + +import org.deke.risk.riskahead.R; +import org.deke.risk.riskahead.ReportWFActivity; +import org.deke.risk.riskahead.adapter.SpinnerHintAdapter; +import org.deke.risk.riskahead.helper.IncidentReport; + +/** + * @author Dennis Thießen + */ +public class ReportWF_6_Fragment extends Fragment { + + private final static int WOMEN = 1; + private final static int CHILDREN = 2; + private final static int MEN = 3; + private final static int ANIMALS = 4; + private final static int INFRASTRUCTURE = 5; + + private View viewFragment; + + private Spinner victimType; + + private IncidentReport incident; + + private OnInputFinishedListener mCallback; + + public interface OnInputFinishedListener { + void onInputFinished(boolean finished); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { + viewFragment = inflater.inflate(R.layout.fragment_reportwf_6, container, false); + + initInputElements(); + setMainSpinnerValues(R.array.cat_victim); + + return viewFragment; + } + + private void initInputElements() { + victimType = (Spinner) viewFragment.findViewById(R.id.dd_reportwf_6_victim); + + victimType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (position) { + case WOMEN: + break; + case CHILDREN: + break; + case MEN: + break; + case ANIMALS: + break; + case INFRASTRUCTURE: + break; + } + + if (position > 0) { + incident.setFidVictimCategory(position); + } + + checkIfFinished(); + } + + @Override + public void onNothingSelected(AdapterView parentView) { + // do nothing + } + }); + } + + private void setMainSpinnerValues(int stringId){ + ArrayAdapter adapter_main_1 = ArrayAdapter.createFromResource(getActivity(), stringId, android.R.layout.simple_spinner_dropdown_item); + victimType.setAdapter(new SpinnerHintAdapter(adapter_main_1, R.layout.contact_spinner_row_nothing_selected, getActivity())); + } + + + private void checkIfFinished(){ + boolean isMainCategoryFilled = false; + + if(incident != null){ + isMainCategoryFilled = (victimType.getSelectedItemPosition() > 0) && (incident.getFidVictimCategory() > 0); + } + + mCallback.onInputFinished(isMainCategoryFilled); + } + + @Override + public void onResume() { + super.onResume(); + + incident = ((ReportWFActivity)getActivity()).getIncident(); + + if(incident != null){ + if(incident.getFidVictimCategory() != 0) victimType.setSelection(incident.getFidVictimCategory()); + } + + checkIfFinished(); + } + + @Override + public void onPause() { + super.onPause(); + + incident.setFidVictimCategory(victimType.getSelectedItemPosition()); + + ((ReportWFActivity)getActivity()).setIncident(incident); + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + try { + mCallback = (OnInputFinishedListener) context; + } catch (ClassCastException e) { + throw new ClassCastException(context.toString() + + " must implement OnInputFinishedListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + } + + +} 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 new file mode 100644 index 0000000..b82540f --- /dev/null +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_7_Fragment.java @@ -0,0 +1,159 @@ +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.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; + +import org.deke.risk.riskahead.R; +import org.deke.risk.riskahead.ReportWFActivity; +import org.deke.risk.riskahead.adapter.SpinnerHintAdapter; +import org.deke.risk.riskahead.helper.IncidentReport; + +/** + * @author Dennis Thießen + */ +public class ReportWF_7_Fragment extends Fragment { + + + private final static int LOCAL = 1; + private final static int TOURIST = 2; + private final static int FOREIGNER = 3; + private final static int ETC = 4; + private final static int DONTKNOW = 5; + + private View viewFragment; + + private Spinner victimOrigin; + private EditText victimOriginEtcInput; + + private IncidentReport incident; + + private OnInputFinishedListener mCallback; + + public interface OnInputFinishedListener { + void onInputFinished(boolean finished); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { + viewFragment = inflater.inflate(R.layout.fragment_reportwf_7, container, false); + + initInputElements(); + setMainSpinnerValues(R.array.cat_victim_origin); + + return viewFragment; + } + + private void initInputElements() { + victimOrigin = (Spinner) viewFragment.findViewById(R.id.dd_reportwf_7_victimorigin); + victimOriginEtcInput = (EditText) viewFragment.findViewById(R.id.txt_reportwf_7_victimorigin_etc); + + victimOriginEtcInput.setVisibility(View.INVISIBLE); + + victimOrigin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (position) { + case LOCAL: + victimOriginEtcInput.setVisibility(View.INVISIBLE); + break; + case TOURIST: + victimOriginEtcInput.setVisibility(View.INVISIBLE); + break; + case FOREIGNER: + victimOriginEtcInput.setVisibility(View.INVISIBLE); + break; + case ETC: + victimOriginEtcInput.setVisibility(View.VISIBLE); + break; + case DONTKNOW: + victimOriginEtcInput.setVisibility(View.INVISIBLE); + break; + } + + if (position > 0) { + incident.setFidVictimCategory(position); + } + + checkIfFinished(); + } + + @Override + public void onNothingSelected(AdapterView parentView) { + // do nothing + } + }); + } + + private void setMainSpinnerValues(int stringId){ + ArrayAdapter adapter_main_1 = ArrayAdapter.createFromResource(getActivity(), stringId, android.R.layout.simple_spinner_dropdown_item); + victimOrigin.setAdapter(new SpinnerHintAdapter(adapter_main_1, R.layout.contact_spinner_row_nothing_selected, getActivity())); + } + + + private void checkIfFinished(){ + boolean isMainCategoryFilled = false; + + if(incident != null){ + isMainCategoryFilled = (victimOrigin.getSelectedItemPosition() > 0) && (incident.getFidVictimOriginCategory() > 0); + } + + mCallback.onInputFinished(isMainCategoryFilled); + } + + @Override + public void onResume() { + super.onResume(); + + incident = ((ReportWFActivity)getActivity()).getIncident(); + + if(incident != null){ + if(incident.getFidVictimOriginCategory() != 0) victimOrigin.setSelection(incident.getFidVictimOriginCategory()); + if(incident.getEtcVictimOriginCategory() != null && !incident.getEtcVictimOriginCategory().equals("")) victimOriginEtcInput.setText(incident.getEtcVictimOriginCategory()); + } + + checkIfFinished(); + } + + @Override + public void onPause() { + super.onPause(); + + incident.setFidVictimOriginCategory(victimOrigin.getSelectedItemPosition()); + incident.setEtcVictimOriginCategory(victimOriginEtcInput.getText().toString()); + + ((ReportWFActivity)getActivity()).setIncident(incident); + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + try { + mCallback = (OnInputFinishedListener) context; + } catch (ClassCastException e) { + throw new ClassCastException(context.toString() + + " must implement OnInputFinishedListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + } + + +} 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 new file mode 100644 index 0000000..56cfda8 --- /dev/null +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_8_Fragment.java @@ -0,0 +1,317 @@ +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.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; + +import org.deke.risk.riskahead.R; +import org.deke.risk.riskahead.ReportWFActivity; +import org.deke.risk.riskahead.adapter.SpinnerHintAdapter; +import org.deke.risk.riskahead.helper.IncidentReport; + +/** + * @author Dennis Thießen + */ +public class ReportWF_8_Fragment extends Fragment { + + + private final static int FEET = 1; + private final static int MOTORBIKE = 2; + private final static int CAR = 3; + private final static int BUS = 4; + private final static int TANK = 5; + private final static int PLANE = 6; + private final static int ETC_1 = 7; + + private final static int RELIGION = 1; + private final static int ETHNICS = 2; + private final static int POLITICS = 3; + private final static int SOCIAL_GROUP = 4; + private final static int JOB = 5; + private final static int LANGUAGE = 6; + private final static int ETC_2 = 7; + + private final static int MEN = 1; + private final static int WOMEN = 2; + private final static int CHILDREN = 3; + private final static int ANIMALS = 4; + private final static int ETC_3 = 5; + + private View viewFragment; + + private Spinner suspectVehicle; + private EditText suspectVehicleEtcInput; + + private Spinner victimAffiliation; + private EditText victimAffiliationEtcInput; + + private Spinner suspectRecongnition; + private EditText suspectRecongnitionEtcInput; + + private EditText moreEtcInput; + + private IncidentReport incident; + + private OnInputFinishedListener mCallback; + + public interface OnInputFinishedListener { + void onInputFinished(boolean finished); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { + viewFragment = inflater.inflate(R.layout.fragment_reportwf_7, container, false); + + initSuspectVehicleInputElements(); + setSuspectVehicleMainSpinnerValues(R.array.cat_details_vehicle); + + initVictimAffiliationInputElements(); + setVictimAffiliationMainSpinnerValues(R.array.cat_details_victimaff); + + initSuspectRecognitionInputElements(); + setSuspectRecognitionMainSpinnerValues(R.array.cat_details_suspect_recon); + + moreEtcInput = (EditText) viewFragment.findViewById(R.id.txt_reportwf_8_etc); + + return viewFragment; + } + + private void initSuspectVehicleInputElements() { + suspectVehicle = (Spinner) viewFragment.findViewById(R.id.dd_reportwf_8_suspectvehicle); + suspectVehicleEtcInput = (EditText) viewFragment.findViewById(R.id.txt_reportwf_8_suspectvehicle); + + suspectVehicleEtcInput.setVisibility(View.INVISIBLE); + + suspectVehicle.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (position) { + case FEET: + suspectVehicleEtcInput.setVisibility(View.INVISIBLE); + break; + case MOTORBIKE: + suspectVehicleEtcInput.setVisibility(View.INVISIBLE); + break; + case CAR: + suspectVehicleEtcInput.setVisibility(View.INVISIBLE); + break; + case BUS: + suspectVehicleEtcInput.setVisibility(View.INVISIBLE); + break; + case TANK: + suspectVehicleEtcInput.setVisibility(View.INVISIBLE); + break; + case PLANE: + suspectVehicleEtcInput.setVisibility(View.INVISIBLE); + break; + case ETC_1: + suspectVehicleEtcInput.setVisibility(View.VISIBLE); + break; + } + + if (position > 0) { + incident.setFidSuspectTransportationCategory(position); + } + + checkIfFinished(); + } + + @Override + public void onNothingSelected(AdapterView parentView) { + // do nothing + } + }); + } + + private void setSuspectVehicleMainSpinnerValues(int stringId){ + ArrayAdapter adapter_main_1 = ArrayAdapter.createFromResource(getActivity(), stringId, android.R.layout.simple_spinner_dropdown_item); + suspectVehicle.setAdapter(new SpinnerHintAdapter(adapter_main_1, R.layout.contact_spinner_row_nothing_selected, getActivity())); + } + + private void initVictimAffiliationInputElements() { + victimAffiliation = (Spinner) viewFragment.findViewById(R.id.dd_reportwf_8_victimaff); + victimAffiliationEtcInput = (EditText) viewFragment.findViewById(R.id.txt_reportwf_8_victimaff); + + victimAffiliationEtcInput.setVisibility(View.INVISIBLE); + + victimAffiliation.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (position) { + case RELIGION: + victimAffiliationEtcInput.setVisibility(View.INVISIBLE); + break; + case ETHNICS: + victimAffiliationEtcInput.setVisibility(View.INVISIBLE); + break; + case POLITICS: + victimAffiliationEtcInput.setVisibility(View.INVISIBLE); + break; + case SOCIAL_GROUP: + victimAffiliationEtcInput.setVisibility(View.INVISIBLE); + break; + case JOB: + victimAffiliationEtcInput.setVisibility(View.INVISIBLE); + break; + case LANGUAGE: + victimAffiliationEtcInput.setVisibility(View.INVISIBLE); + break; + case ETC_2: + victimAffiliationEtcInput.setVisibility(View.VISIBLE); + break; + } + + if (position > 0) { + incident.setFidVictimBelongingCategory(position); + } + + checkIfFinished(); + } + + @Override + public void onNothingSelected(AdapterView parentView) { + // do nothing + } + }); + } + + private void setVictimAffiliationMainSpinnerValues(int stringId){ + ArrayAdapter adapter_main_1 = ArrayAdapter.createFromResource(getActivity(), stringId, android.R.layout.simple_spinner_dropdown_item); + victimAffiliation.setAdapter(new SpinnerHintAdapter(adapter_main_1, R.layout.contact_spinner_row_nothing_selected, getActivity())); + } + + private void initSuspectRecognitionInputElements() { + suspectRecongnition = (Spinner) viewFragment.findViewById(R.id.dd_reportwf_8_recon); + suspectRecongnitionEtcInput = (EditText) viewFragment.findViewById(R.id.txt_reportwf_8_recon); + + suspectRecongnitionEtcInput.setVisibility(View.INVISIBLE); + + suspectRecongnition.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + + switch (position) { + case MEN: + suspectRecongnitionEtcInput.setVisibility(View.INVISIBLE); + break; + case WOMEN: + suspectRecongnitionEtcInput.setVisibility(View.INVISIBLE); + break; + case CHILDREN: + suspectRecongnitionEtcInput.setVisibility(View.INVISIBLE); + break; + case ANIMALS: + suspectRecongnitionEtcInput.setVisibility(View.INVISIBLE); + break; + case ETC_3: + suspectRecongnitionEtcInput.setVisibility(View.VISIBLE); + break; + } + + if (position > 0) { + incident.setFidSuspectCharacteristicsCategory(position); + } + + checkIfFinished(); + } + + @Override + public void onNothingSelected(AdapterView parentView) { + // do nothing + } + }); + } + + private void setSuspectRecognitionMainSpinnerValues(int stringId){ + ArrayAdapter adapter_main_1 = ArrayAdapter.createFromResource(getActivity(), stringId, android.R.layout.simple_spinner_dropdown_item); + suspectRecongnition.setAdapter(new SpinnerHintAdapter(adapter_main_1, R.layout.contact_spinner_row_nothing_selected, getActivity())); + } + + private void checkIfFinished(){ + boolean isSuspectVehicleFilled = false; + boolean isVictimAffiliationFilled = false; + boolean isSuspectRecoginitionFilled = false; + + if(incident != null){ + isSuspectVehicleFilled = (suspectVehicle.getSelectedItemPosition() > 0) && (incident.getFidSuspectTransportationCategory() > 0); + isVictimAffiliationFilled = (victimAffiliation.getSelectedItemPosition() > 0) && (incident.getFidVictimBelongingCategory() > 0); + isSuspectRecoginitionFilled = (suspectRecongnition.getSelectedItemPosition() > 0) && (incident.getFidSuspectCharacteristicsCategory() > 0); + } + + mCallback.onInputFinished(isSuspectVehicleFilled && isVictimAffiliationFilled && isSuspectRecoginitionFilled); + } + + @Override + public void onResume() { + super.onResume(); + + incident = ((ReportWFActivity)getActivity()).getIncident(); + + if(incident != null){ + if(incident.getFidSuspectTransportationCategory() != 0) suspectVehicle.setSelection(incident.getFidSuspectTransportationCategory()); + if(incident.getEtcSuspectTransportationCategory() != null && !incident.getEtcSuspectTransportationCategory().equals("")) suspectVehicleEtcInput.setText(incident.getEtcSuspectTransportationCategory()); + + if(incident.getFidVictimBelongingCategory() != 0) victimAffiliation.setSelection(incident.getFidVictimBelongingCategory()); + if(incident.getEtcVictimBelongingCategory() != null && !incident.getEtcVictimBelongingCategory().equals("")) victimAffiliationEtcInput.setText(incident.getEtcVictimBelongingCategory()); + + if(incident.getFidSuspectCharacteristicsCategory() != 0) suspectRecongnition.setSelection(incident.getFidSuspectCharacteristicsCategory()); + if(incident.getEtcSuspectCharacteristicsCategory() != null && !incident.getEtcSuspectCharacteristicsCategory().equals("")) suspectRecongnitionEtcInput.setText(incident.getEtcSuspectCharacteristicsCategory()); + + if(incident.getEtcOthersCategory() != null && !incident.getEtcOthersCategory().equals("")) moreEtcInput.setText(incident.getEtcOthersCategory()); + } + + checkIfFinished(); + } + + @Override + public void onPause() { + super.onPause(); + + incident.setFidVictimOriginCategory(suspectVehicle.getSelectedItemPosition()); + incident.setEtcVictimOriginCategory(suspectVehicleEtcInput.getText().toString()); + + incident.setFidVictimBelongingCategory(victimAffiliation.getSelectedItemPosition()); + incident.setEtcVictimBelongingCategory(victimAffiliationEtcInput.getText().toString()); + + incident.setFidSuspectCharacteristicsCategory(suspectRecongnition.getSelectedItemPosition()); + incident.setEtcSuspectCharacteristicsCategory(suspectRecongnitionEtcInput.getText().toString()); + + incident.setEtcOthersCategory(moreEtcInput.getText().toString()); + + ((ReportWFActivity)getActivity()).setIncident(incident); + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + + try { + mCallback = (OnInputFinishedListener) context; + } catch (ClassCastException e) { + throw new ClassCastException(context.toString() + + " must implement OnInputFinishedListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + } + + +} + diff --git a/app/src/main/res/layout/fragment_reportwf_5.xml b/app/src/main/res/layout/fragment_reportwf_5.xml new file mode 100644 index 0000000..feaca87 --- /dev/null +++ b/app/src/main/res/layout/fragment_reportwf_5.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_reportwf_6.xml b/app/src/main/res/layout/fragment_reportwf_6.xml new file mode 100644 index 0000000..9d0bded --- /dev/null +++ b/app/src/main/res/layout/fragment_reportwf_6.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_reportwf_7.xml b/app/src/main/res/layout/fragment_reportwf_7.xml new file mode 100644 index 0000000..1e3c411 --- /dev/null +++ b/app/src/main/res/layout/fragment_reportwf_7.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_reportwf_8.xml b/app/src/main/res/layout/fragment_reportwf_8.xml new file mode 100644 index 0000000..bf9c376 --- /dev/null +++ b/app/src/main/res/layout/fragment_reportwf_8.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index fbd8bf6..e7871ee 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -132,10 +132,12 @@ Wer ist betroffen? Kommen die Opfer aus der Umgebung? Weißt du noch mehr? - Weißt du noch mehr? - Weißt du noch mehr? + Mit was sind sie unterwegs? + Haben die Opfer etwas gemeinsam? Wie erkennt man die Täter? Weiteres? + Weitere Details... + Bitte wähle zunächst einen Ort auf der Karte aus Allgemeiner Vorfall/Situation diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a9bbef6..702e8bf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -134,8 +134,8 @@ Wer ist betroffen? Kommen die Opfer aus der Umgebung? Weißt du noch mehr? - Weißt du noch mehr? - Weißt du noch mehr? + Mit was sind sie unterwegs? + Haben die Opfer etwas gemeinsam? Wie erkennt man die Täter? Weiteres? Weitere Details... @@ -300,4 +300,7 @@ Sonstiges… + + Hello blank fragment +