diff --git a/app/app.iml b/app/app.iml
index 6d8405c..98ebd3f 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -35,6 +35,7 @@
+
@@ -73,7 +74,7 @@
-
+
@@ -99,6 +100,7 @@
+
@@ -116,8 +118,8 @@
-
+
@@ -127,6 +129,7 @@
+
@@ -144,7 +147,6 @@
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index e25a6a0..78b4796 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -40,7 +40,7 @@ dependencies {
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services:7.5.0'
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
- compile 'com.beardedhen:androidbootstrap:2.0.0'
+ compile 'com.beardedhen:androidbootstrap:2.0.1'
compile 'com.mcxiaoke.volley:library:1.0.+'
compile('com.twitter.sdk.android:twitter-core:1.4.1@aar') {
transitive = true;
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c9f2f16..b89fdd0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ package="org.deke.risk.riskahead">
@@ -18,7 +18,7 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
- android:theme="@style/CustomActionBarTheme" >
+ android:theme="@style/CustomActionBarTheme">
-
-
-
+ android:label="@string/title_activity_start"
+ android:screenOrientation="portrait">
+
-
+ android:parentActivityName=".StartActivity"
+ android:screenOrientation="portrait">
-
-
-
-
+ android:theme="@android:style/Theme.Translucent.NoTitleBar">
-
-
+ android:parentActivityName=".LoginActivity"
+ android:screenOrientation="portrait">
+ android:parentActivityName=".MainActivity"
+ android:screenOrientation="portrait">
+
-
@@ -106,43 +101,37 @@
-
-
+ android:parentActivityName=".MainActivity"
+ android:screenOrientation="portrait">
-
-
+ android:label="@string/title_activity_report"
+ android:screenOrientation="portrait">
-
-
+ android:label="@string/title_activity_settings"
+ android:screenOrientation="portrait">
-
-
+ android:label="@string/title_activity_subscriptions"
+ android:screenOrientation="portrait">
+ android:parentActivityName=".ProfileActivity"
+ android:screenOrientation="portrait">
-
-
+ android:label="@string/title_activity_view_report"
+ android:screenOrientation="portrait">
+
+
diff --git a/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java b/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java
index 4475390..beb4335 100644
--- a/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java
@@ -144,7 +144,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr
@Override
public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.menu_login, menu);
+ getMenuInflater().inflate(R.menu.menu_common, menu);
return true;
}
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 b40f431..e81010e 100644
--- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java
@@ -324,6 +324,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_maps, menu);
+ getMenuInflater().inflate(R.menu.menu_common, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.location_search).getActionView();
diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java
new file mode 100644
index 0000000..533a871
--- /dev/null
+++ b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java
@@ -0,0 +1,102 @@
+package org.deke.risk.riskahead;
+
+import android.app.Fragment;
+import android.app.FragmentTransaction;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.View;
+
+import com.beardedhen.androidbootstrap.BootstrapButton;
+
+import org.deke.risk.riskahead.fragments.ReportWF_1_Fragment;
+import org.deke.risk.riskahead.fragments.ReportWF_2_Fragment;
+import org.deke.risk.riskahead.helper.BaseActivity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragment.OnInputFinishedListener, ReportWF_2_Fragment.OnInputFinishedListener {
+
+ private final static String mActivityTitle = "Report NEW";
+ private final static String TAG = ReportWFActivity.class.getSimpleName();
+
+ List fragList = new ArrayList();
+
+ Fragment frag_report_1 = new ReportWF_1_Fragment();
+ Fragment frag_report_2 = new ReportWF_2_Fragment();
+
+ BootstrapButton btnContinue;
+ BootstrapButton btnReportNow;
+
+ private int currentState = 0;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ //setContentView(R.layout.activity_report_wf);
+
+ fragList.add(frag_report_1);
+ fragList.add(frag_report_2);
+
+ initFragment(currentState);
+
+ btnContinue = (BootstrapButton) findViewById(R.id.btn_reportwf_next);
+ btnContinue.setVisibility(View.INVISIBLE);
+ btnContinue.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ initFragment(currentState+1);
+ }
+ });
+
+
+ btnReportNow = (BootstrapButton) findViewById(R.id.btn_reportwf_reportnow);
+ btnReportNow.setVisibility(View.INVISIBLE);
+ }
+
+ private void initFragment(int state) {
+ FragmentTransaction transaction = getFragmentManager().beginTransaction();
+
+ transaction.replace(R.id.fragment_reportwf, fragList.get(state));
+ transaction.addToBackStack(null);
+
+ transaction.commit();
+
+ if(state > 1) btnReportNow.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.menu_reportwf, menu);
+ getMenuInflater().inflate(R.menu.menu_common, menu);
+
+ return true;
+ }
+
+ @Override
+ protected int getLayoutResourceId() {
+ return R.layout.activity_report_wf;
+ }
+
+ @Override
+ protected String getActivityName() {
+ return mActivityTitle;
+ }
+
+ @Override
+ public void onInputFinished(boolean finished) {
+ if(finished) {
+ btnContinue.setVisibility(View.VISIBLE);
+ }else{
+ btnContinue.setVisibility(View.INVISIBLE);
+ }
+
+ if(finished && (currentState == 1)){
+ btnReportNow.setVisibility(View.VISIBLE);
+ } else if (currentState > 1) {
+ btnReportNow.setVisibility(View.VISIBLE);
+ } else {
+ btnReportNow.setVisibility(View.INVISIBLE);
+ }
+ }
+}
diff --git a/app/src/main/java/org/deke/risk/riskahead/fragments/ReportWF_1_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragments/ReportWF_1_Fragment.java
new file mode 100644
index 0000000..0e37993
--- /dev/null
+++ b/app/src/main/java/org/deke/risk/riskahead/fragments/ReportWF_1_Fragment.java
@@ -0,0 +1,185 @@
+package org.deke.risk.riskahead.fragments;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.os.Bundle;
+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 com.beardedhen.androidbootstrap.AwesomeTextView;
+
+import org.deke.risk.riskahead.R;
+import org.deke.risk.riskahead.helper.HintAdapter;
+
+/**
+ * Created by Dennis on 04.12.2015.
+ */
+public class ReportWF_1_Fragment extends Fragment{
+
+ private View mainview;
+
+ Spinner spinner_main_1;
+ Spinner spinner_sub_1;
+
+ 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) {
+ mainview = inflater.inflate(R.layout.fragment_reportwf_1, container, false);
+
+ initSpinnerOneMain();
+ initSpinnerOneSub();
+
+ return mainview;
+ }
+
+ private void isFinished(boolean isFinished){
+ if(isFinished){
+ mainview.findViewById(R.id.atv_reportwf_1_finish).setVisibility(View.VISIBLE);
+ }else{
+ mainview.findViewById(R.id.atv_reportwf_1_finish).setVisibility(View.INVISIBLE);
+ }
+
+ mCallback.onInputFinished(isFinished);
+ }
+
+ private void initSpinnerOneMain() {
+ spinner_main_1 = (Spinner) mainview.findViewById(R.id.dd_reportwf_1_cat_main);
+
+ ArrayAdapter adapter_main_1 = ArrayAdapter.createFromResource(getActivity(),
+ R.array.cat_situation_main, android.R.layout.simple_spinner_dropdown_item);
+ adapter_main_1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spinner_main_1.setAdapter(new HintAdapter(adapter_main_1, R.layout.contact_spinner_row_nothing_selected, getActivity()));
+
+ spinner_main_1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ int stringid = 0;
+
+ switch (position) {
+ case 1:
+ stringid = R.array.cat_situation_sub_general;
+ break;
+ case 2:
+ stringid = R.array.cat_situation_sub_verbal;
+ break;
+ case 3:
+ stringid = R.array.cat_situation_sub_force;
+ break;
+ case 4:
+ stringid = R.array.cat_situation_sub_force_serious;
+ break;
+ case 5:
+ stringid = R.array.cat_situation_sub_nature;
+ break;
+ case 6:
+ stringid = R.array.cat_situation_sub_infrastructure;
+ break;
+ default:
+ stringid = R.array.cat_situation_sub_general;
+ break;
+ }
+
+ Spinner spinner_sub_1 = (Spinner) mainview.findViewById(R.id.dd_reportwf_1_cat_sub);
+ ArrayAdapter adapter_sub_1 = ArrayAdapter.createFromResource(mainview.getContext(),
+ stringid, android.R.layout.simple_spinner_dropdown_item);
+ adapter_sub_1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spinner_sub_1.setAdapter(new HintAdapter(adapter_sub_1, R.layout.contact_spinner_row_nothing_selected, getActivity()));
+
+ if (((HintAdapter) spinner_main_1.getAdapter()).isInInitialState()){
+ spinner_sub_1.setVisibility(View.INVISIBLE);
+ }else{
+ spinner_sub_1.setVisibility(View.VISIBLE);
+ }
+
+ isFinished(false);
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parentView) {
+ // your code here
+ }
+ });
+ }
+
+ private void initSpinnerOneSub() {
+ spinner_sub_1 = (Spinner) mainview.findViewById(R.id.dd_reportwf_1_cat_sub);
+ spinner_sub_1.setVisibility(View.INVISIBLE);
+ spinner_sub_1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ int i = 99;
+
+ switch (((Spinner) mainview.findViewById(R.id.dd_reportwf_1_cat_main)).getSelectedItemPosition()) {
+ case 1:
+ i = 7;
+ break;
+ case 2:
+ i = 5;
+ break;
+ case 3:
+ i = 6;
+ break;
+ case 4:
+ i = 7;
+ break;
+ case 5:
+ i = 7;
+ break;
+ case 6:
+ i = 8;
+ break;
+ }
+
+ if (position == i) {
+ mainview.findViewById(R.id.txt_reportwf_1_cat_etc).setVisibility(View.VISIBLE);
+ } else {
+ mainview.findViewById(R.id.txt_reportwf_1_cat_etc).setVisibility(View.INVISIBLE);
+ }
+
+ if (((HintAdapter) spinner_sub_1.getAdapter()).isInInitialState()){
+ isFinished(false);
+ }else{
+ isFinished(true);
+ }
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parent) {
+ }
+ });
+ }
+
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+
+ try {
+ mCallback = (OnInputFinishedListener) activity;
+ } catch (ClassCastException e) {
+ throw new ClassCastException(activity.toString()
+ + " must implement OnInputFinishedListener");
+ }
+ }
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+ }
+}
diff --git a/app/src/main/java/org/deke/risk/riskahead/fragments/ReportWF_2_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragments/ReportWF_2_Fragment.java
new file mode 100644
index 0000000..de1f1d2
--- /dev/null
+++ b/app/src/main/java/org/deke/risk/riskahead/fragments/ReportWF_2_Fragment.java
@@ -0,0 +1,185 @@
+package org.deke.risk.riskahead.fragments;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.os.Bundle;
+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.RelativeLayout;
+import android.widget.Spinner;
+import android.widget.TextView;
+
+import com.beardedhen.androidbootstrap.AwesomeTextView;
+
+import org.deke.risk.riskahead.R;
+import org.deke.risk.riskahead.helper.HintAdapter;
+
+/**
+ * Created by Dennis on 08.12.2015.
+ */
+public class ReportWF_2_Fragment extends Fragment{
+
+ View mainview;
+
+ Spinner spinner_main_1;
+ Spinner spinner_sub_1;
+
+ OnInputFinishedListener mCallback;
+
+ public interface OnInputFinishedListener {
+ void onInputFinished(boolean finished);
+ }
+
+ private void isFinished(boolean isFinished){
+ if(isFinished){
+ mainview.findViewById(R.id.atv_reportwf_2_finish).setVisibility(View.VISIBLE);
+ }else{
+ mainview.findViewById(R.id.atv_reportwf_2_finish).setVisibility(View.INVISIBLE);
+ }
+
+ mCallback.onInputFinished(isFinished);
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
+ mainview = inflater.inflate(R.layout.fragment_reportwf_2, container, false);
+
+ initSpinnerOneMain();
+ initSpinnerOneSub();
+
+ initLayoutFromTime();
+ initLayoutToTime();
+
+ return mainview;
+ }
+
+ private void initLayoutToTime() {
+ RelativeLayout rlFromTime = (RelativeLayout) mainview.findViewById(R.id.ll_report_to_time);
+ rlFromTime.setVisibility(View.INVISIBLE);
+ }
+
+ private void initLayoutFromTime() {
+ RelativeLayout rlFromTime = (RelativeLayout) mainview.findViewById(R.id.ll_report_from_time);
+ rlFromTime.setVisibility(View.INVISIBLE);
+ }
+
+ private void initSpinnerOneSub() {
+ spinner_sub_1 = (Spinner) mainview.findViewById(R.id.dd_reportwf_2_time_sub);
+ spinner_sub_1.setVisibility(View.INVISIBLE);
+ spinner_sub_1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ if(((HintAdapter) spinner_sub_1.getAdapter()).isInInitialState()){
+ isFinished(false);
+ } else {
+ isFinished(true);
+ }
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parent) {
+
+ }
+ });
+ }
+
+ private void initSpinnerOneMain() {
+ spinner_main_1 = (Spinner) mainview.findViewById(R.id.dd_reportwf_2_time_main);
+
+ ArrayAdapter adapter_main_1 = ArrayAdapter.createFromResource(getActivity(),
+ R.array.cat_time_main, android.R.layout.simple_spinner_dropdown_item);
+ adapter_main_1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spinner_main_1.setAdapter(new HintAdapter(adapter_main_1, R.layout.contact_spinner_row_nothing_selected, getActivity()));
+
+ spinner_main_1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ int stringid = 0;
+
+ switch (position) {
+ case 1:
+ mainview.findViewById(R.id.ll_report_from_time).setVisibility(View.INVISIBLE);
+ mainview.findViewById(R.id.ll_report_to_time).setVisibility(View.INVISIBLE);
+ mainview.findViewById(R.id.dd_reportwf_2_time_sub).setVisibility(View.INVISIBLE);
+ isFinished(true);
+ break;
+ case 2:
+ mainview.findViewById(R.id.ll_report_from_time).setVisibility(View.INVISIBLE);
+ mainview.findViewById(R.id.ll_report_to_time).setVisibility(View.INVISIBLE);
+ stringid = R.array.cat_time_sub_periodical;
+ break;
+ case 3:
+ mainview.findViewById(R.id.ll_report_from_time).setVisibility(View.VISIBLE);
+ mainview.findViewById(R.id.ll_report_to_time).setVisibility(View.INVISIBLE);
+ mainview.findViewById(R.id.dd_reportwf_2_time_sub).setVisibility(View.INVISIBLE);
+ break;
+ case 4:
+ mainview.findViewById(R.id.ll_report_from_time).setVisibility(View.VISIBLE);
+ mainview.findViewById(R.id.ll_report_to_time).setVisibility(View.VISIBLE);
+ mainview.findViewById(R.id.dd_reportwf_2_time_sub).setVisibility(View.INVISIBLE);
+ break;
+ case 5:
+ mainview.findViewById(R.id.ll_report_from_time).setVisibility(View.INVISIBLE);
+ mainview.findViewById(R.id.ll_report_to_time).setVisibility(View.INVISIBLE);
+ mainview.findViewById(R.id.dd_reportwf_2_time_sub).setVisibility(View.INVISIBLE);
+ isFinished(true);
+ break;
+ default:
+ mainview.findViewById(R.id.ll_report_from_time).setVisibility(View.INVISIBLE);
+ mainview.findViewById(R.id.ll_report_to_time).setVisibility(View.INVISIBLE);
+ mainview.findViewById(R.id.dd_reportwf_2_time_sub).setVisibility(View.INVISIBLE);
+ isFinished(false);
+ break;
+ }
+
+ if(!((HintAdapter) spinner_main_1.getAdapter()).isInInitialState() && stringid != 0) {
+ ArrayAdapter adapter_sub_1 = ArrayAdapter.createFromResource(mainview.getContext(),
+ stringid, android.R.layout.simple_spinner_dropdown_item);
+ adapter_sub_1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spinner_sub_1.setAdapter(new HintAdapter(adapter_sub_1, R.layout.contact_spinner_row_nothing_selected, getActivity()));
+ spinner_sub_1.setVisibility(View.VISIBLE);
+ } else if(stringid == 0) {
+ spinner_sub_1.setVisibility(View.INVISIBLE);
+ }
+
+ if(((HintAdapter) spinner_main_1.getAdapter()).isInInitialState()){
+ isFinished(false);
+ }
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parentView) {
+ // your code here
+ }
+ });
+ }
+
+
+ @Override
+ public void onAttach(Activity activity) {
+ super.onAttach(activity);
+
+ try {
+ mCallback = (OnInputFinishedListener) activity;
+ } catch (ClassCastException e) {
+ throw new ClassCastException(activity.toString()
+ + " must implement OnInputFinishedListener");
+ }
+ }
+
+ @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 5d32cc7..191f96c 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
@@ -34,6 +34,7 @@ import org.deke.risk.riskahead.MapsActivity;
import org.deke.risk.riskahead.R;
import org.deke.risk.riskahead.ReportActivity;
import org.deke.risk.riskahead.ProfileActivity;
+import org.deke.risk.riskahead.ReportWFActivity;
import org.deke.risk.riskahead.ReportlistActivity;
import org.deke.risk.riskahead.SettingsActivity;
import org.deke.risk.riskahead.SubscriptionsActivity;
@@ -126,8 +127,9 @@ public abstract class BaseActivity extends AppCompatActivity {
}
public void showAd(){
+ // TODO: 03.12.2015 activate when needed
if (mInterstitialAd.isLoaded()) {
- mInterstitialAd.show();
+ // mInterstitialAd.show();
}
}
@@ -175,8 +177,6 @@ public abstract class BaseActivity extends AppCompatActivity {
setShareIntent();
*/
- getMenuInflater().inflate(R.menu.menu_login, menu);
-
return true;
}
@@ -254,13 +254,7 @@ public abstract class BaseActivity extends AppCompatActivity {
public void gotoReportActivity(){
Intent intent;
- intent = new Intent(getApplicationContext(), ReportActivity.class);
- startActivity(intent);
- }
-
- public void gotoReportlistActivity(){
- Intent intent;
- intent = new Intent(getApplicationContext(), ReportlistActivity.class);
+ intent = new Intent(getApplicationContext(), ReportWFActivity.class);
startActivity(intent);
}
@@ -271,6 +265,12 @@ public abstract class BaseActivity extends AppCompatActivity {
startActivity(intent);
}
+ public void gotoReportlistActivity(){
+ Intent intent;
+ intent = new Intent(getApplicationContext(), ReportlistActivity.class);
+ startActivity(intent);
+ }
+
public void gotoMapActivity(){
Intent intent;
intent = new Intent(getApplicationContext(), MapsActivity.class);
diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/HintAdapter.java b/app/src/main/java/org/deke/risk/riskahead/helper/HintAdapter.java
new file mode 100644
index 0000000..6414764
--- /dev/null
+++ b/app/src/main/java/org/deke/risk/riskahead/helper/HintAdapter.java
@@ -0,0 +1,171 @@
+package org.deke.risk.riskahead.helper;
+
+/**
+ * Created by Dennis on 06.12.2015.
+ */
+import android.content.Context;
+import android.database.DataSetObserver;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListAdapter;
+import android.widget.SpinnerAdapter;
+
+/**
+ * Decorator Adapter to allow a Spinner to show a 'Nothing Selected...' initially
+ * displayed instead of the first choice in the Adapter.
+ */
+public class HintAdapter implements SpinnerAdapter, ListAdapter {
+
+ protected static final int EXTRA = 1;
+ protected SpinnerAdapter adapter;
+ protected Context context;
+ protected int nothingSelectedLayout;
+ protected int nothingSelectedDropdownLayout;
+ protected LayoutInflater layoutInflater;
+ private boolean isInInitialState = false;
+
+ /**
+ * Use this constructor to have NO 'Select One...' item, instead use
+ * the standard prompt or nothing at all.
+ * @param spinnerAdapter wrapped Adapter.
+ * @param nothingSelectedLayout layout for nothing selected, perhaps
+ * you want text grayed out like a prompt...
+ * @param context
+ */
+ public HintAdapter(
+ SpinnerAdapter spinnerAdapter,
+ int nothingSelectedLayout, Context context) {
+
+ this(spinnerAdapter, nothingSelectedLayout, -1, context);
+ }
+
+ /**
+ * Use this constructor to Define your 'Select One...' layout as the first
+ * row in the returned choices.
+ * If you do this, you probably don't want a prompt on your spinner or it'll
+ * have two 'Select' rows.
+ * @param spinnerAdapter wrapped Adapter. Should probably return false for isEnabled(0)
+ * @param nothingSelectedLayout layout for nothing selected, perhaps you want
+ * text grayed out like a prompt...
+ * @param nothingSelectedDropdownLayout layout for your 'Select an Item...' in
+ * the dropdown.
+ * @param context
+ */
+ public HintAdapter(SpinnerAdapter spinnerAdapter, int nothingSelectedLayout, int nothingSelectedDropdownLayout, Context context) {
+ this.adapter = spinnerAdapter;
+ this.context = context;
+ this.nothingSelectedLayout = nothingSelectedLayout;
+ this.nothingSelectedDropdownLayout = nothingSelectedDropdownLayout;
+ layoutInflater = LayoutInflater.from(context);
+ }
+
+ @Override
+ public final View getView(int position, View convertView, ViewGroup parent) {
+ // This provides the View for the Selected Item in the Spinner, not
+ // the dropdown (unless dropdownView is not set).
+ if (position == 0) {
+ isInInitialState = true;
+ return getNothingSelectedView(parent);
+ }
+ isInInitialState = false;
+ return adapter.getView(position - EXTRA, null, parent); // Could re-use
+ // the convertView if possible.
+ }
+
+ /**
+ * View to show in Spinner with Nothing Selected
+ * Override this to do something dynamic... e.g. "37 Options Found"
+ * @param parent
+ * @return
+ */
+ protected View getNothingSelectedView(ViewGroup parent) {
+ return layoutInflater.inflate(nothingSelectedLayout, parent, false);
+ }
+
+ @Override
+ public View getDropDownView(int position, View convertView, ViewGroup parent) {
+ // Android BUG! http://code.google.com/p/android/issues/detail?id=17128 -
+ // Spinner does not support multiple view types
+ if (position == 0) {
+ return nothingSelectedDropdownLayout == -1 ?
+ new View(context) :
+ getNothingSelectedDropdownView(parent);
+ }
+
+ // Could re-use the convertView if possible, use setTag...
+ return adapter.getDropDownView(position - EXTRA, null, parent);
+ }
+
+ /**
+ * Override this to do something dynamic... For example, "Pick your favorite
+ * of these 37".
+ * @param parent
+ * @return
+ */
+ protected View getNothingSelectedDropdownView(ViewGroup parent) {
+ return layoutInflater.inflate(nothingSelectedDropdownLayout, parent, false);
+ }
+
+ @Override
+ public int getCount() {
+ int count = adapter.getCount();
+ return count == 0 ? 0 : count + EXTRA;
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return position == 0 ? null : adapter.getItem(position - EXTRA);
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ return 0;
+ }
+
+ @Override
+ public int getViewTypeCount() {
+ return 1;
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position >= EXTRA ? adapter.getItemId(position - EXTRA) : position - EXTRA;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return adapter.hasStableIds();
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return adapter.isEmpty();
+ }
+
+ @Override
+ public void registerDataSetObserver(DataSetObserver observer) {
+ adapter.registerDataSetObserver(observer);
+ }
+
+ @Override
+ public void unregisterDataSetObserver(DataSetObserver observer) {
+ adapter.unregisterDataSetObserver(observer);
+ }
+
+ public boolean isInInitialState(){
+ return isInInitialState;
+ }
+
+ @Override
+ public boolean areAllItemsEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isEnabled(int position) {
+ return position != 0; // Don't allow the 'nothing selected'
+ // item to be picked.
+ }
+
+}
diff --git a/app/src/main/res/drawable/layout_bg_gradient.xml b/app/src/main/res/drawable/layout_bg_gradient.xml
new file mode 100644
index 0000000..da03918
--- /dev/null
+++ b/app/src/main/res/drawable/layout_bg_gradient.xml
@@ -0,0 +1,12 @@
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index e4bad52..111df75 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -2,8 +2,9 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bootstrap="http://schemas.android.com/apk/res-auto"
+ style="@style/CustomActionBarTheme"
android:id="@+id/drawer_layout"
- android:background="@color/bg_common_2"
+ android:background="@drawable/layout_bg_gradient"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
@@ -37,8 +38,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="38dp"
- android:layout_centerHorizontal="true"
- android:textSize="40dp" />
+ android:textSize="40sp" />
+ android:textColor="#aa999999"/>
@@ -70,20 +69,22 @@
style="@style/wrapping_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginRight="20dp"
+ android:layout_marginEnd="20dp"
bootstrap:bootstrapText="@string/btn_main_report"
bootstrap:bootstrapBrand="danger"
- bootstrap:roundedCorners="true" />
+ bootstrap:roundedCorners="true"
+ android:layout_gravity="center_vertical" />
+ bootstrap:roundedCorners="true"
+ android:layout_gravity="center_vertical" />
diff --git a/app/src/main/res/layout/activity_report.xml b/app/src/main/res/layout/activity_report.xml
index 2af142b..a82d04e 100644
--- a/app/src/main/res/layout/activity_report.xml
+++ b/app/src/main/res/layout/activity_report.xml
@@ -35,8 +35,6 @@
android:layout_alignLeft="@+id/input_report_short"
android:layout_alignStart="@+id/input_report_short"/>
-
-
-
-
+
diff --git a/app/src/main/res/layout/activity_report_wf.xml b/app/src/main/res/layout/activity_report_wf.xml
new file mode 100644
index 0000000..2c7d252
--- /dev/null
+++ b/app/src/main/res/layout/activity_report_wf.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/contact_spinner_row_nothing_selected.xml b/app/src/main/res/layout/contact_spinner_row_nothing_selected.xml
new file mode 100644
index 0000000..8c4eaa4
--- /dev/null
+++ b/app/src/main/res/layout/contact_spinner_row_nothing_selected.xml
@@ -0,0 +1,14 @@
+
+
+
diff --git a/app/src/main/res/layout/fragment_reportwf_1.xml b/app/src/main/res/layout/fragment_reportwf_1.xml
new file mode 100644
index 0000000..bdc0147
--- /dev/null
+++ b/app/src/main/res/layout/fragment_reportwf_1.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_reportwf_2.xml b/app/src/main/res/layout/fragment_reportwf_2.xml
new file mode 100644
index 0000000..fdf23f8
--- /dev/null
+++ b/app/src/main/res/layout/fragment_reportwf_2.xml
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/map_info_window.xml b/app/src/main/res/layout/map_info_window.xml
index d4f64b4..5d64b23 100644
--- a/app/src/main/res/layout/map_info_window.xml
+++ b/app/src/main/res/layout/map_info_window.xml
@@ -1,17 +1,16 @@
+ android:padding="1dp"
+ android:background="#CCc9c9c9">
@@ -28,6 +27,7 @@
android:id="@+id/txt_infowindow_title"
android:text="Header"
android:textSize="16dp"
+ android:paddingLeft="5dp"
android:typeface="serif" />
@@ -43,7 +44,7 @@
android:layout_height="wrap_content"
android:textColor="#b9000000"
android:text="Category"
-
+ android:paddingLeft="5dp"
android:paddingBottom="10dp"
android:id="@+id/txt_infowindow_category"
android:typeface="serif" />
@@ -53,7 +54,7 @@
android:id="@+id/lay_infowindow_2"
android:background="#55151515"
android:layout_width="match_parent"
- android:layout_marginRight="5dp"
+ android:padding="3dp"
android:layout_height="match_parent">
-
+
+
+
diff --git a/app/src/main/res/menu/menu_login.xml b/app/src/main/res/menu/menu_login.xml
deleted file mode 100644
index ed0a9ea..0000000
--- a/app/src/main/res/menu/menu_login.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/app/src/main/res/menu/menu_maps.xml b/app/src/main/res/menu/menu_maps.xml
index f1e029a..ba3c426 100644
--- a/app/src/main/res/menu/menu_maps.xml
+++ b/app/src/main/res/menu/menu_maps.xml
@@ -5,16 +5,12 @@
-
-
-
+
+
diff --git a/app/src/main/res/menu/menu_reportwf.xml b/app/src/main/res/menu/menu_reportwf.xml
new file mode 100644
index 0000000..3749dc4
--- /dev/null
+++ b/app/src/main/res/menu/menu_reportwf.xml
@@ -0,0 +1,15 @@
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index b1e1d88..7c45c81 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -2,13 +2,13 @@
#26ae90
#2e3237
- #e1e1e1
+ #ececec
#0461A8
#ffffff
#ffffff
#ff0000
#ff4400
- #03518c
+ #03518c
#222222
#999999
#888888
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f4b94ae..7c235d2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -117,5 +117,97 @@
Retrieve data from server
Author
Score
+ Report NEW
+
+ Please choose...
+ From date (yyyy-MM-dd)
+ From time
+ To date (yyyy-MM-dd)
+ To time
+
+
+ - Allgemeiner Vorfall/Situation
+ - Mündliche Gewalt
+ - Leichte bis schwere körperliche Gewalt
+ - Lebensgefährliche Gewalt
+ - Naturkatastrophe
+ - Menschliche Katastrophe & Infrastruktur
+
+
+
+ - Diebstahl, Betrug
+ - Drogen in Getränk/Speise, Drogenmissbrauch
+ - Demonstration, Unruhen, Straßenblockade
+ - Checkpoint, Kontrollen
+ - Korruption, Erpressung, Schutzgeld
+ - Einflussgebiet Kriminalität, Milizen, Terroristen
+ - Sonstiges...
+
+
+
+ - Sexuelle Belästigung
+ - Beleidigung, Drohung
+ - Vernehmung/Befragung öffentlich
+ - Aufhetzung
+ - Sonstiges...
+
+
+
+ - Sexueller Übergriff
+ - Angriff auf Person allgemein
+ - Schlägerei
+ - Festnahme/Gefangennahme
+ - Zwangsarbeit
+ - Sonstiges...
+
+
+
+ - Vergewaltigung
+ - Folter, Entführung, Geiselnahme
+ - Schießerei
+ - Explosion, Selbstmordattentat
+ - Mord, Tötung, Hinrichtung
+ - Leichenzurschaustellung zur Abschreckung
+ - Sonstiges...
+
+
+
+ - Temperaturextrem
+ - Wind, Sturm, Orkan, Tornado
+ - Überschwemmung/-flutung
+ - Erdbeben, Berghang Einsturz
+ - Feuer, Rauch-, Aschewolken, Vulkanausbruch
+ - Hungersnot, Tierplage
+ - Sonstiges...
+
+
+
+ - Smog Stadt
+ - Stromausfall, Unfall
+ - Zerstörung, Einsturzgefahr Gebäude
+ - Brandkatastrophe
+ - Chemiekatastrophe, Ölpest
+ - Seuche, Krankheit
+ - Chaos Bevölkerung
+ - Sonstiges...
+
+
+
+ - Jetzt!
+ - Regelmäßig
+ - Bestimmter Zeitpunkt
+ - Bestimmter Zeitraum
+ - Weiß ich nicht
+
+
+
+ - Vormittags
+ - Tagsüber
+ - Abends
+ - Nachts
+
+
+
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index e8fac03..0f948e5 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,9 +1,4 @@
-
-