From b79b5d7f3f8d32097cb550940ba74469be4125b9 Mon Sep 17 00:00:00 2001 From: Dennis Thiessen Date: Sun, 28 May 2017 00:02:10 +0200 Subject: [PATCH] Changed Rest-Calls to new API, Many bugfixes and some improvements (especially on the map), Some minor design changes, Removed MainActivity from Menu --- app/app.iml | 2 + app/src/main/AndroidManifest.xml | 23 +- .../deke/risk/riskahead/LoginActivity.java | 109 ++++---- .../org/deke/risk/riskahead/MainActivity.java | 218 --------------- .../org/deke/risk/riskahead/MapsActivity.java | 197 +++++++++++--- .../deke/risk/riskahead/ReportWFActivity.java | 97 ++++--- .../deke/risk/riskahead/StartActivity.java | 72 ----- .../risk/riskahead/SubscriptionsActivity.java | 9 +- .../risk/riskahead/ViewReportActivity.java | 12 +- .../fragment/GooglePlusButtonFragment.java | 2 - .../fragment/ReportListFragment.java | 3 +- .../riskahead/fragment/SettingsFragment.java | 6 +- .../riskahead/fragment/Top10Fragment.java | 3 +- .../fragment/TwitterButtonFragment.java | 4 +- .../deke/risk/riskahead/helper/AppConfig.java | 66 +++-- .../risk/riskahead/helper/BaseActivity.java | 19 +- .../riskahead/helper/NotificationService.java | 50 +++- .../risk/riskahead/helper/TextValidator.java | 9 +- .../helper/ValidatedEditTextPreference.java | 7 +- app/src/main/res/layout/activity_login.xml | 248 ++++++++++-------- app/src/main/res/layout/activity_main.xml | 140 ---------- app/src/main/res/layout/activity_maps.xml | 19 +- app/src/main/res/layout/activity_profile.xml | 13 +- app/src/main/res/layout/activity_register.xml | 236 +++++++++-------- .../main/res/layout/activity_report_wf.xml | 14 +- app/src/main/res/layout/activity_settings.xml | 14 +- app/src/main/res/layout/activity_start.xml | 48 ---- .../res/layout/activity_subscriptions.xml | 7 +- .../main/res/layout/activity_view_report.xml | 2 +- .../res/layout/fragment_facebook_button.xml | 2 +- .../res/layout/fragment_googleplus_button.xml | 2 +- .../main/res/layout/fragment_reportwf_1.xml | 9 +- .../res/layout/fragment_twitter_button.xml | 2 +- .../main/res/layout/layout_toolbar_col.xml | 12 + ...t_toolbar.xml => layout_toolbar_trans.xml} | 7 +- app/src/main/res/menu/menu_reportwf.xml | 2 +- app/src/main/res/values-ar/strings.xml | 92 +++---- app/src/main/res/values-de/strings.xml | 91 +++---- app/src/main/res/values-es/strings.xml | 92 +++---- app/src/main/res/values-et/strings.xml | 92 +++---- app/src/main/res/values-fi/strings.xml | 92 +++---- app/src/main/res/values-fr/strings.xml | 92 +++---- app/src/main/res/values-lv/strings.xml | 92 +++---- app/src/main/res/values-mn/strings.xml | 94 +++---- app/src/main/res/values-nl/strings.xml | 92 +++---- app/src/main/res/values-pl/strings.xml | 92 +++---- app/src/main/res/values-pt/strings.xml | 92 +++---- app/src/main/res/values-ru/strings.xml | 92 +++---- app/src/main/res/values-tr/strings.xml | 92 +++---- app/src/main/res/values/colors.xml | 16 +- app/src/main/res/values/strings.xml | 4 +- app/src/main/res/values/styles.xml | 42 +-- app/src/main/res/xml/searchable.xml | 2 - 53 files changed, 1163 insertions(+), 1783 deletions(-) delete mode 100644 app/src/main/java/org/deke/risk/riskahead/MainActivity.java delete mode 100644 app/src/main/java/org/deke/risk/riskahead/StartActivity.java delete mode 100644 app/src/main/res/layout/activity_main.xml delete mode 100644 app/src/main/res/layout/activity_start.xml create mode 100644 app/src/main/res/layout/layout_toolbar_col.xml rename app/src/main/res/layout/{layout_toolbar.xml => layout_toolbar_trans.xml} (51%) diff --git a/app/app.iml b/app/app.iml index 95a3742..0669b3b 100644 --- a/app/app.iml +++ b/app/app.iml @@ -80,6 +80,7 @@ + @@ -90,6 +91,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b5414c9..5d3dd4b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,13 +5,11 @@ - - - - - + + + - - + - - + 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 267d29c..daf147c 100644 --- a/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java @@ -8,6 +8,7 @@ import android.content.pm.PackageManager; import android.content.res.Resources; import android.net.ConnectivityManager; import android.net.NetworkInfo; +import android.support.design.widget.TextInputLayout; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.content.Intent; @@ -43,6 +44,9 @@ import com.android.volley.Request.Method; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; +import com.beardedhen.androidbootstrap.BootstrapButton; +import com.google.android.gms.plus.Plus; +import com.google.android.gms.plus.model.people.Person; import java.util.HashMap; import java.util.Map; @@ -87,7 +91,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr SessionManager session = new SessionManager(getApplicationContext()); if (session.isLoggedIn()) { Log.d(TAG,"User found in sharedPrefs and is therefore logged in. Continue to internal Area."); - Intent intent = new Intent(LoginActivity.this, MainActivity.class); + Intent intent = new Intent(LoginActivity.this, MapsActivity.class); startActivity(intent); finish(); } @@ -133,18 +137,22 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr setContentView(R.layout.activity_login); input_email = (TextView) findViewById(R.id.input_register_email); + TextInputLayout inputLayoutEmail = (TextInputLayout) findViewById(R.id.input_layout_email); + input_password = (TextView) findViewById(R.id.input_register_password); + TextInputLayout inputLayoutPassword = (TextInputLayout) findViewById(R.id.input_layout_password); + TextView btn_requestPW = (TextView) findViewById(R.id.lbl_login_resendPW); - Button btn_switchtoregistration = (Button) findViewById(R.id.btn_switchtoregistration); - btn_switchtoregistration.setOnClickListener(new View.OnClickListener() { + BootstrapButton btn_gotoregistration = (BootstrapButton) findViewById(R.id.btn_switchtoregistration); + btn_gotoregistration.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { gotoRegister(v); } }); - Button btn_login = (Button) findViewById(R.id.btn_login); + BootstrapButton btn_login = (BootstrapButton) findViewById(R.id.btn_login); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -161,20 +169,24 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } }); - input_email.addTextChangedListener(new TextValidator(input_email, getApplicationContext()) { + input_email.addTextChangedListener(new TextValidator(input_email, inputLayoutEmail, getApplicationContext()) { @Override - public void validate(TextView textView, String text) { + public void validate(TextView textView, TextInputLayout inputLayout, String text) { if (!Patterns.EMAIL_ADDRESS.matcher(text).matches()) { - textView.setError(getString(R.string.error_email)); + inputLayout.setError(getString(R.string.error_email)); + } else { + inputLayout.setErrorEnabled(false); } } }); - input_password.addTextChangedListener(new TextValidator(input_password, getApplicationContext()) { + input_password.addTextChangedListener(new TextValidator(input_password, inputLayoutPassword,getApplicationContext()) { @Override - public void validate(TextView textView, String text) { + public void validate(TextView textView, TextInputLayout inputLayout,String text) { if (text.length() < 5) { - textView.setError(getString(R.string.error_password)); + inputLayout.setError(getString(R.string.error_password)); + } else { + inputLayout.setErrorEnabled(false); } } }); @@ -191,40 +203,43 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr setContentView(R.layout.activity_register); input_username = (TextView) findViewById(R.id.input_register_name); + TextInputLayout inputLayoutUsername = (TextInputLayout) findViewById(R.id.input_layout_username); input_email = (TextView) findViewById(R.id.input_register_email); + TextInputLayout inputLayoutEmail = (TextInputLayout) findViewById(R.id.input_layout_email); input_password = (TextView) findViewById(R.id.input_register_password); - Button btn_login = (Button) findViewById(R.id.btn_register); + TextInputLayout inputLayoutPassword = (TextInputLayout) findViewById(R.id.input_layout_password); + BootstrapButton btn_login = (BootstrapButton) findViewById(R.id.btn_register); TextView btn_switchtologin = (TextView) findViewById(R.id.lbl_register_switchtologin); - input_username.addTextChangedListener(new TextValidator(input_username, getApplicationContext()) { + input_username.addTextChangedListener(new TextValidator(input_username, inputLayoutUsername, getApplicationContext()) { @Override - public void validate(TextView textView, String text) { + public void validate(TextView textView, TextInputLayout inputLayout, String text) { if (text.trim().length() < 5) { - textView.setError(getString(R.string.error_anytext)); + inputLayout.setError(getString(R.string.error_anytext)); } else { - textView.setError(null); + inputLayout.setErrorEnabled(false); } } }); - input_email.addTextChangedListener(new TextValidator(input_email, getApplicationContext()) { + input_email.addTextChangedListener(new TextValidator(input_email, inputLayoutEmail, getApplicationContext()) { @Override - public void validate(TextView textView, String text) { + public void validate(TextView textView, TextInputLayout inputLayout, String text) { if (!Patterns.EMAIL_ADDRESS.matcher(text).matches()) { - textView.setError(getString(R.string.error_email)); + inputLayout.setError(getString(R.string.error_email)); }else{ - textView.setError(null); + inputLayout.setErrorEnabled(false); } } }); - input_password.addTextChangedListener(new TextValidator(input_password, getApplicationContext()) { + input_password.addTextChangedListener(new TextValidator(input_password, inputLayoutPassword, getApplicationContext()) { @Override - public void validate(TextView textView, String text) { + public void validate(TextView textView, TextInputLayout inputLayout, String text) { if (text.length() < 5) { - textView.setError(getString(R.string.error_password)); + inputLayout.setError(getString(R.string.error_password)); } else { - textView.setError(null); + inputLayout.setErrorEnabled(false); } } }); @@ -270,11 +285,11 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestCheckForMaintenance() { - return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.REST_CHECK_MAINTENANCE, new Response.Listener() { @Override public void onResponse(String response) { - Log.d(TAG, "Check User Exists Response: " + response); + Log.d(TAG, "Check for Maintenance Response: " + response); hideDialog(); try { @@ -300,7 +315,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_CHECK_MAINTENANCE); return params; } @@ -326,11 +340,11 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestCheckIfVersionSupported() { - return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.REST_CHECK_VERSION, new Response.Listener() { @Override public void onResponse(String response) { - Log.d(TAG, "Check User Exists Response: " + response); + Log.d(TAG, "Check Version Response: " + response); hideDialog(); try { @@ -366,7 +380,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr e.printStackTrace(); } - params.put("tag", AppConfig.REST_CHECK_VERSION); params.put("version", Integer.toString(versionCode)); return params; } @@ -436,7 +449,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr if(session.isLoggedIn()){ Intent intent = new Intent( LoginActivity.this, - MainActivity.class); + MapsActivity.class); intent.putExtra(AppConfig.EXTRA_MESSAGE, AppConfig.INTENT_SOCIALMEDIALOGIN); startActivity(intent); finish(); @@ -486,7 +499,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestSocialMediaLogin(final String key, final String providerType, final String username, final String email) { - return new StringRequest(Method.POST,AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST,AppConfig.REST_LOGIN_SOCIAL, new Response.Listener() { @Override public void onResponse(String response) { @@ -532,7 +545,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr Intent intent = new Intent( LoginActivity.this, - MainActivity.class); + MapsActivity.class); intent.putExtra(AppConfig.EXTRA_MESSAGE, AppConfig.INTENT_SOCIALMEDIALOGIN); startActivity(intent); finish(); @@ -559,9 +572,8 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_LOGIN_SOCIAL); params.put("key", key); - params.put("providerType", providerType); + params.put("providertype", providerType); params.put("username", username); params.put("email",email); @@ -572,7 +584,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestLogin(final String email, final String password) { - return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.REST_LOGIN, new Response.Listener() { @Override public void onResponse(String response) { @@ -639,7 +651,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr hideDialog(); - Intent intent = new Intent(LoginActivity.this, MainActivity.class); + Intent intent = new Intent(LoginActivity.this, MapsActivity.class); startActivity(intent); finish(); } @@ -665,7 +677,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_LOGIN); params.put("email", email); params.put("password", password); @@ -675,7 +686,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestCheckUserExists(final String username, final String email, final String password) { - return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.REST_USEREXISTS, new Response.Listener() { @Override public void onResponse(String response) { @@ -718,7 +729,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_LOGIN_EXISTS); params.put("email", email); return params; @@ -727,11 +737,11 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestCheckSocialUserExists(final String key, final String providerType, final String username, final String email) { - return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.REST_USEREXISTS, new Response.Listener() { @Override public void onResponse(String response) { - Log.d(TAG, "Check User Exists Response: " + response); + Log.d(TAG, "Check Social User Exists Response: " + response); hideDialog(); try { @@ -745,8 +755,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr createAndShowPrivacyDialogForSocialUser( key,providerType, username, email); } - - } else { String errorMsg = jObj.getString("error_msg"); Log.e(TAG, "Error occured: "+errorMsg); @@ -770,7 +778,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_LOGIN_EXISTS); params.put("key", key); return params; @@ -900,7 +907,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestResetPW(final String email) { - return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.REST_REQUESTPWRESET, new Response.Listener() { @Override public void onResponse(String response) { @@ -937,7 +944,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_REQUESTPWRESET); params.put("email", email); return params; @@ -946,7 +952,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestActivationLinkUser(final String email) { - return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.REST_SENDACTIVATIONMAIL, new Response.Listener() { @Override public void onResponse(String response) { @@ -960,7 +966,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr String errorMsg = jObj.getString("error_msg"); Log.e(TAG,"Resend E-Mail returned error value: "+errorMsg); Toast.makeText(getApplicationContext(), - getResources().getString(R.string.txt_errormsg_getactivationlink), Toast.LENGTH_LONG).show(); + getResources().getString(R.string.txt_errormsg_getactivationlink) + ":"+errorMsg, Toast.LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); @@ -971,7 +977,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override public void onErrorResponse(VolleyError error) { - Log.e(TAG, "E-Mail pw resend Error: " + error.getMessage()); + Log.e(TAG, "E-Mail pw resend error: " + error.getMessage()); Toast.makeText(getApplicationContext(), getResources().getString(R.string.txt_errormsg_getactivationlink), Toast.LENGTH_LONG).show(); hideDialog(); @@ -981,7 +987,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_RESENDACTIVATIONMAIL); params.put("email", email); return params; @@ -990,7 +995,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestRegisterUser(final String username, final String email, final String password) { - return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.REST_REGISTER, new Response.Listener() { @Override public void onResponse(String response) { @@ -1039,7 +1044,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_REGISTER); params.put("username", username); params.put("email", email); params.put("password", password); @@ -1113,4 +1117,5 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } } + } diff --git a/app/src/main/java/org/deke/risk/riskahead/MainActivity.java b/app/src/main/java/org/deke/risk/riskahead/MainActivity.java deleted file mode 100644 index b497cf8..0000000 --- a/app/src/main/java/org/deke/risk/riskahead/MainActivity.java +++ /dev/null @@ -1,218 +0,0 @@ -package org.deke.risk.riskahead; - -import android.graphics.drawable.Drawable; -import android.os.Bundle; -import android.os.Handler; -import android.support.v4.content.ContextCompat; -import android.util.Log; -import android.view.View; -import android.widget.Button; -import android.widget.ImageView; -import android.widget.TextView; - -import com.android.volley.Request; -import com.android.volley.Response; -import com.android.volley.VolleyError; -import com.android.volley.toolbox.StringRequest; -import com.mikepenz.google_material_typeface_library.GoogleMaterial; -import com.mikepenz.iconics.IconicsDrawable; - -import org.deke.risk.riskahead.helper.AppConfig; -import org.deke.risk.riskahead.helper.AppController; -import org.deke.risk.riskahead.helper.BaseActivity; -import org.deke.risk.riskahead.helper.SessionManager; -import org.json.JSONException; -import org.json.JSONObject; - -import java.text.DecimalFormat; -import java.util.HashMap; -import java.util.Map; - -/** - * - * (C) Copyright 2016 RiskAhead (http://www.riskahead.net) - * Developer & Contributor: Dennis Thießen (dennis.thiessen@riskahead.net) - * Date of Release: 10.02.2016 - * - */ -public class MainActivity extends BaseActivity{ - - private final static String TAG = MainActivity.class.getSimpleName(); - - private Handler mHandler = new Handler(); - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - userHasToBeLoggedIn(); - showDialog(); - - initButtons(); - } - - private void initButtons() { - runOnUiThread(new Runnable() { - @Override - public void run() { - ImageView bg = (ImageView) findViewById(R.id.imageView); - bg.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.bg_withlogo_2)); - - - Button report = (Button) findViewById(R.id.btn_main_report); - report.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - gotoReportActivity(); - } - }); - - Drawable reportIcon = new IconicsDrawable(getApplicationContext()) - .icon(GoogleMaterial.Icon.gmd_room) - .color(ContextCompat.getColor(getApplicationContext(), R.color.white)) - .sizeDp(24); - - report.setCompoundDrawables(reportIcon, null, null, null); - report.setBackgroundResource(R.drawable.activity_main_button); - - Button map = (Button) findViewById(R.id.btn_main_viewmap); - - map.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - gotoMapActivity(); - } - }); - - Drawable mapIcon = new IconicsDrawable(getApplicationContext()) - .icon(GoogleMaterial.Icon.gmd_map) - .color(ContextCompat.getColor(getApplicationContext(), R.color.white)) - .sizeDp(24); - - map.setCompoundDrawables(null, null, mapIcon, null); - map.setBackgroundResource(R.drawable.activity_main_button); - } - }); - } - - Runnable mHandlerTask = new Runnable() - { - @Override - public void run() { - requestNumberOfIncidents(); - - TextView notificationStatus = (TextView) findViewById(R.id.lbl_main_notifystatus_status); - if(session.getNotificationEnabled()){ - if(session.getNotificationServiceReady()){ - notificationStatus.setText(getString(R.string.txt_notifystatus_activated)); - - notificationStatus.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.md_green_400)); - }else{ - notificationStatus.setText(getString(R.string.txt_notifystatus_activatedbutnotready)); - notificationStatus.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.md_yellow_400)); - } - }else{ - notificationStatus.setText(getString(R.string.txt_notifystatus_deactivated)); - notificationStatus.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.md_red_400)); - } - - mHandler.postDelayed(mHandlerTask, AppConfig.UPDATE_COUNT_INTERVAL); - } - }; - - private void requestNumberOfIncidents() { - StringRequest strReq = getStringRequestIncidentCount(); - String tag_string_req = "req_incidents"; - AppController.getInstance().addToRequestQueue(strReq, tag_string_req); - } - - private StringRequest getStringRequestIncidentCount() { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { - - @Override - public void onResponse(String response) { - hideDialog(); - Log.d(TAG, "Incident count: " + response); - - try { - JSONObject jObj = new JSONObject(response); - boolean error = jObj.getBoolean("error"); - - if (!error) { - JSONObject jCount = jObj.getJSONObject("msg"); - - displayNumberOfIncidents(jCount); - } else { - String errorMsg = jObj.getString("error_msg"); - Log.e(TAG, "Error getting incident count (server returned error): " + errorMsg); - } - } catch (JSONException e) { - e.printStackTrace(); - } - - } - }, new Response.ErrorListener() { - - @Override - public void onErrorResponse(VolleyError error) { - Log.e(TAG, "Error getting incident count: " + error.getMessage()); - handleVolleyErrorResponse(); - stopRepeatingTask(); - hideDialog(); - } - }) { - - @Override - protected Map getParams() { - Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_GET_NUMOFINCIDENTS); - params.put("uid", user.get(SessionManager.KEY_UID)); - params.put("token", user.get(SessionManager.TOKEN)); - return params; - } - }; - } - - private void displayNumberOfIncidents(JSONObject jCount) throws JSONException { - TextView count = (TextView) findViewById(R.id.txt_main_incidents); - DecimalFormat nf = new DecimalFormat(); - String decimalNumber = nf.format(jCount.getInt("total")); - count.setText(decimalNumber); - } - - void startRepeatingTask() - { - mHandlerTask.run(); - } - - void stopRepeatingTask() - { - mHandler.removeCallbacks(mHandlerTask); - } - - @Override - protected void onResume(){ - super.onResume(); - navDrawer.setSelection(mainAvtivityID, false); - startRepeatingTask(); - } - - @Override - protected void onPause(){ - super.onPause(); - stopRepeatingTask(); - } - - @Override - protected int getLayoutResourceId() { - return R.layout.activity_main; - } - - @Override - protected String getActivityName() { - return getResources().getString(R.string.title_activity_start); - } - - - -} 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 b07dc97..7d76470 100644 --- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java @@ -9,6 +9,8 @@ import android.content.res.ColorStateList; import android.database.Cursor; import android.graphics.Color; import android.graphics.drawable.Drawable; +import android.location.Location; +import android.location.LocationManager; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.v4.app.ActivityCompat; @@ -23,11 +25,14 @@ import android.view.View; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RatingBar; +import android.widget.RelativeLayout; import android.widget.TextView; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.VolleyError; +import android.location.LocationListener; + import com.android.volley.toolbox.StringRequest; import com.google.android.gms.maps.CameraUpdate; import com.google.android.gms.maps.CameraUpdateFactory; @@ -96,6 +101,11 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa private Marker markerShowingInfoWindow; private IncidentReport clickedClusterItem; + protected LocationManager locationManager; + Location location; + private static final int MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters + private static final int MIN_TIME_BW_UPDATES = 1000 * 60; // 1 minute + private LatLng myLocation; private LatLng markedLocation; private LatLng curNortheastBounds; @@ -111,7 +121,6 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa super.onCreate(savedInstanceState); userHasToBeLoggedIn(); - if (session.getSubsPremium()) { MIN_ZOOM_LEVEL = 7; } else { @@ -122,9 +131,9 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa mapFragment.getMapAsync(this); findViewById(R.id.fab_reportwf_map).setVisibility(View.INVISIBLE); - } + @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; @@ -141,33 +150,60 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { + Log.d(TAG,"Getting permission results..."); switch (requestCode) { case MY_PERMISSIONS_REQUEST_LOCATION: { - // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + Log.d(TAG,"Permission was granted by user"); try{ mMap.setMyLocationEnabled(true); - }catch(SecurityException e){ - Log.e(TAG,"Security Exception: "+e.toString()); + }catch (SecurityException e){ + Log.e(TAG,"Security Exception:"+e.getMessage()); + } + + getLocation(); + }else{ + Log.d(TAG,"Permission was not granted by user"); + + String sDefSystemLanguage = Locale.getDefault().getLanguage(); + + switch (sDefSystemLanguage) { + case "en": + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( + new LatLng(51.507351, -0.127758), DEFAULT_ZOOM_LEVEL)); + break; + case "de": + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( + new LatLng(52.518594, 13.376188), DEFAULT_ZOOM_LEVEL)); + break; + default: + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( + new LatLng(19.410704, -99.132385), DEFAULT_ZOOM_LEVEL)); + break; + } + + try{ + mMap.setMyLocationEnabled(false); + }catch (SecurityException e){ + Log.e(TAG,"Security Exception:"+e.getMessage()); } } } - - // other 'case' lines to check for other - // permissions this app might request } } - private void initMap() { + Log.d(TAG,"Init Map"); mMap.getUiSettings().setZoomControlsEnabled(true); - if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION,android.Manifest.permission.ACCESS_COARSE_LOCATION},1); - }else{ - mMap.setMyLocationEnabled(true); - } + mMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() { + @Override + public boolean onMyLocationButtonClick() { + getLocation(); + return true; + } + }); mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @Override @@ -399,7 +435,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa } private StringRequest getStringRequestGetAllIncidentsForHeatMapFromBound(final LatLng northeast, final LatLng southwest) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_GET_INCIDENTS_FROMBOUND_FORHEATMAP, new Response.Listener() { @Override public void onResponse(String response) { @@ -433,7 +469,6 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_GET_INCIDENTS_FROMBOUND_FORHEATMAP); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("nelat", Double.toString(northeast.latitude)); @@ -447,7 +482,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa } private StringRequest getStringRequestGetAllIncidentsFromBound(final LatLng northeast, final LatLng southwest) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_GET_INCIDENTS_FROMBOUND, new Response.Listener() { @Override public void onResponse(String response) { @@ -481,7 +516,6 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_GET_INCIDENTS_FROMBOUND); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("nelat", Double.toString(northeast.latitude)); @@ -529,7 +563,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa } private StringRequest getStringRequestGetIncidentScoreForInfoWindow(final View infoView, final String incidentID) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_GET_INCIDENT, new Response.Listener() { @Override public void onResponse(String response) { @@ -574,7 +608,6 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", "getincidentfromincidentid"); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentID); @@ -585,7 +618,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa } - public class MyCustomAdapterForItems implements GoogleMap.InfoWindowAdapter { + private class MyCustomAdapterForItems implements GoogleMap.InfoWindowAdapter { private final View myContentsView; @@ -653,25 +686,9 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa { mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(myPosition.latitude, myPosition.longitude), DEFAULT_ZOOM_LEVEL)); }else{ - String sDefSystemLanguage = Locale.getDefault().getLanguage(); - - switch (sDefSystemLanguage) { - case "en": - mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( - new LatLng(51.507351, -0.127758), DEFAULT_ZOOM_LEVEL)); - break; - case "de": - mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( - new LatLng(52.518594, 13.376188), DEFAULT_ZOOM_LEVEL)); - break; - default: - mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( - new LatLng(19.410704, -99.132385), DEFAULT_ZOOM_LEVEL)); - break; - } + getLocation(); } } - } } @@ -742,6 +759,105 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa } + private class MyLocationListener implements LocationListener { + + @Override + public void onLocationChanged(Location loc) { + if(loc.getLongitude() != 0.0 && loc.getLatitude() != 0.0) { + Log.d(TAG, "Save GPS as new location..."); + if(session.getLocation() == null || session.getLocation().latitude == 0.0 || session.getLocation().longitude == 0.0){ + session.setLocation(Double.doubleToRawLongBits(loc.getLatitude()), Double.doubleToRawLongBits(loc.getLongitude())); + }else{ + session.setLocation(Double.doubleToRawLongBits(loc.getLatitude()), Double.doubleToRawLongBits(loc.getLongitude())); + } + + session.setNotificationServiceReady(true); + } + } + + @Override + public void onProviderDisabled(String provider) {} + + @Override + public void onProviderEnabled(String provider) {} + + @Override + public void onStatusChanged(String provider, int status, Bundle extras) {} + } + + private boolean isLocationEnabled() { + return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) || + locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); + } + + public Location getLocation() { + //check for permission + if (ActivityCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED){ + Log.d(TAG,"Permission for GPS not granted yet - ask for permission now"); + ActivityCompat.requestPermissions(this,new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION,android.Manifest.permission.ACCESS_COARSE_LOCATION},MY_PERMISSIONS_REQUEST_LOCATION); + }else{ + Log.d(TAG,"Permission for GPS granted - get position"); + mMap.setMyLocationEnabled(true); + MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.frag_maps_map); + View locationButton = ((View) mapFragment.getView().findViewById(Integer.parseInt("1")).getParent()).findViewById(Integer.parseInt("2")); + RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) locationButton.getLayoutParams(); + rlp.setMargins(0, 200, 30, 30); + + try { + locationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE); + LocationListener locationListener = new MyLocationListener(); + + + if (!isLocationEnabled()) { + showMessage("Please activate GPS in your android settings."); + Log.d(TAG,"Locationservice not enabled"); + } else { + Log.d(TAG,"Locationservice enabled - check type"); + + // if GPS Enabled get lat/long using GPS Services + if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { + Log.d(TAG,"Locationservice enabled - GPS Provider Found"); + if (location == null) { + locationManager.requestLocationUpdates( + LocationManager.GPS_PROVIDER, + MIN_TIME_BW_UPDATES, + MIN_DISTANCE_CHANGE_FOR_UPDATES, locationListener); + Log.d("GPS Enabled", "GPS Enabled"); + if (locationManager != null) { + location = locationManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (location != null) { + myLocation = new LatLng(location.getLatitude(),location.getLongitude()); + } + } + } + }else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { + // get location from Network Provider + Log.d(TAG,"Locationservice enabled - Network Provider Found"); + locationManager.requestLocationUpdates( + LocationManager.NETWORK_PROVIDER, + 22, + 33, locationListener); + Log.d("Network", "Network"); + if (locationManager != null) { + location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); + if (location != null) { + myLocation = new LatLng(location.getLatitude(),location.getLongitude()); + } + } + } + + mMap.moveCamera(CameraUpdateFactory.newLatLng(myLocation)); + + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + + return location; + } + @Override public void onLoadFinished(Loader arg0, Cursor c) { showLocations(c); @@ -759,8 +875,8 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa EditText txtSearch = ((EditText)searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text)); txtSearch.setHint(getResources().getString(R.string.search_hint)); - txtSearch.setHintTextColor(Color.LTGRAY); - txtSearch.setTextColor(Color.WHITE); + txtSearch.setHintTextColor(Color.DKGRAY); + txtSearch.setTextColor(Color.BLACK); return true; } @@ -769,7 +885,6 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa protected void onPause(){ super.onPause(); if(showAdd) showAd(); - } @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 c883ea6..28a8c7c 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java @@ -29,8 +29,6 @@ import com.android.volley.toolbox.StringRequest; import com.beardedhen.androidbootstrap.BootstrapButton; import com.beardedhen.androidbootstrap.api.defaults.DefaultBootstrapBrand; import com.google.android.gms.maps.model.LatLng; -import com.google.android.gms.plus.Plus; -import com.google.android.gms.plus.model.people.Person; import com.google.gson.Gson; import org.deke.risk.riskahead.fragment.BaseReportWFFragment; @@ -123,7 +121,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen private void initButtonsAndElements() { btnContinue = (BootstrapButton) findViewById(R.id.btn_reportwf_next); - btnContinue.setVisibility(View.INVISIBLE); + btnContinue.setEnabled(false); btnContinue.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -133,7 +131,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen }); btnReportNow = (BootstrapButton) findViewById(R.id.btn_reportwf_reportnow); - btnReportNow.setVisibility(View.INVISIBLE); + btnReportNow.setEnabled(false); btnReportNow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -171,8 +169,8 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen } if(state == (fragList.size()-1)){ - btnContinue.setVisibility(View.INVISIBLE); - btnReportNow.setVisibility(View.INVISIBLE); + btnContinue.setEnabled(false); + btnReportNow.setEnabled(false); siteIndicator.setVisibility(View.INVISIBLE); }else{ siteIndicator.setVisibility(View.VISIBLE); @@ -254,15 +252,15 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen } if((currentState == 1 && finished) || (currentState > 1)){ - btnReportNow.setVisibility(View.VISIBLE); + btnReportNow.setEnabled(true); }else{ - btnReportNow.setVisibility(View.INVISIBLE); + btnReportNow.setEnabled(false); } if(finished || currentState > 1){ - btnContinue.setVisibility(View.VISIBLE); + btnContinue.setEnabled(true); }else{ - btnContinue.setVisibility(View.INVISIBLE); + btnContinue.setEnabled(false); } } @@ -315,7 +313,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen private StringRequest getStringRequestAddIncidentWithPosition(final IncidentReport incident) { showDialog(); - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_ADD_INCIDENT_WITHPOSITION, new Response.Listener() { @Override public void onResponse(String response) { @@ -327,8 +325,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen if (!error) { showMessage(getString(R.string.txt_success_addreport)); - - showDialogWhenReportAdded(incident); + showShareDialog(incident); } else { String errorMsg = jObj.getString("error_msg"); Log.e(TAG, "Error adding incident (Server returned error): " + errorMsg); @@ -352,7 +349,6 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_ADD_INCIDENT_WITHPOSITION); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("latitude", Double.toString(incident.getPosition().latitude)); @@ -389,33 +385,20 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen }; } - private void showDialogWhenReportAdded(final IncidentReport incident) { - if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_STORAGE); - return; - }else{ - showShareDialog(incident); - } + private void requestPermission(){ + ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_STORAGE); } @Override - public void onRequestPermissionsResult(int requestCode, - String permissions[], int[] grantResults) { + public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case MY_PERMISSIONS_REQUEST_STORAGE: { - // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - - showShareDialog(incident); - + startShareIncidentIntent(incident); } else { finishReportAndGotoMap(incident); } - return; } - - // other 'case' lines to check for other - // permissions this app might request } } @@ -425,13 +408,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen .setMessage(R.string.txt_share_message) .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { - resetStateAndIncident(); - gotoMapActivity(incident.getPosition().latitude + ":" + incident.getPosition().longitude); - - startShareIncidentIntent(incident); - - } }) .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { @@ -441,23 +418,43 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen }) .setIcon(android.R.drawable.ic_dialog_alert) .show(); + } private void startShareIncidentIntent(IncidentReport incident) { - Intent sharingIntent = new Intent(Intent.ACTION_SEND); - Bitmap icon = BitmapFactory.decodeResource(getApplicationContext().getResources(), - R.drawable.ra_qrcode); - String text = getString(R.string.txt_share_hint) - +getString(R.string.txt_share_hint2)+": "+ incident.getIncidentCategoryName(getApplicationContext()) - +" - "+incident.getIncidentSubCategoryName(getApplicationContext())+"\n" - +getString(R.string.txt_share_hint3)+": "+ incident.getIncidentPositionDescription().split("\\n")[0] + " - " + incident.getIncidentPositionDescription().split("\\n")[1] + "\n" - +getString(R.string.txt_share_page); + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - sharingIntent.putExtra(Intent.EXTRA_TEXT, text); - sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(MediaStore.Images.Media.insertImage(getApplicationContext().getContentResolver(), icon, "Share incident", null))); - sharingIntent.setType("image/*"); - sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - startActivity(Intent.createChooser(sharingIntent, getString(R.string.txt_share_acttitle))); + AlertDialog alertDialog = new AlertDialog.Builder(this).create(); + alertDialog.setTitle("Request Permission"); + alertDialog.setMessage("If you want to use the sharing feature in the future we need storage permission to generate the message which should be shared."); + alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + requestPermission(); + } + }); + alertDialog.show(); + + }else{ + resetStateAndIncident(); + gotoMapActivity(incident.getPosition().latitude + ":" + incident.getPosition().longitude); + + Intent sharingIntent = new Intent(Intent.ACTION_SEND); + Bitmap icon = BitmapFactory.decodeResource(getApplicationContext().getResources(), + R.drawable.ra_qrcode); + String text = getString(R.string.txt_share_hint) + +getString(R.string.txt_share_hint2)+": "+ incident.getIncidentCategoryName(getApplicationContext()) + +" - "+incident.getIncidentSubCategoryName(getApplicationContext())+"\n" + +getString(R.string.txt_share_hint3)+": "+ incident.getIncidentPositionDescription().split("\\n")[0] + " - " + incident.getIncidentPositionDescription().split("\\n")[1] + "\n" + +getString(R.string.txt_share_page); + + sharingIntent.putExtra(Intent.EXTRA_TEXT, text); + sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(MediaStore.Images.Media.insertImage(getApplicationContext().getContentResolver(), icon, "Share incident", null))); + sharingIntent.setType("image/*"); + sharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + startActivity(Intent.createChooser(sharingIntent, getString(R.string.txt_share_acttitle))); + } } private void finishReportAndGotoMap(IncidentReport incident) { diff --git a/app/src/main/java/org/deke/risk/riskahead/StartActivity.java b/app/src/main/java/org/deke/risk/riskahead/StartActivity.java deleted file mode 100644 index 9d45151..0000000 --- a/app/src/main/java/org/deke/risk/riskahead/StartActivity.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.deke.risk.riskahead; - -import android.content.Intent; -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.Button; - -import org.deke.risk.riskahead.helper.AppConfig; -import org.deke.risk.riskahead.helper.SessionManager; - -/** - * - * (C) Copyright 2016 RiskAhead (http://www.riskahead.net) - * Developer & Contributor: Dennis Thießen (dennis.thiessen@riskahead.net) - * Date of Release: 10.02.2016 - * - */ -public class StartActivity extends AppCompatActivity { - - private final static String TAG = StartActivity.class.getSimpleName(); - - Button btnLogin; - Button btnRegister; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - Log.d(TAG,"RiskAhead started."); - - setContentView(R.layout.activity_start); - - btnLogin = (Button) findViewById(R.id.btn_start_login); - btnRegister = (Button) findViewById(R.id.btn_start_register); - - SessionManager session = new SessionManager(getApplicationContext()); - if (session.isLoggedIn()) { - Log.d(TAG,"User found in sharedPrefs and is therefore logged in. Continue to internal Area."); - Intent intent = new Intent(StartActivity.this, MainActivity.class); - startActivity(intent); - finish(); - } - } - - public void gotoLogin(View view) { - Intent intent = new Intent(this, LoginActivity.class); - intent.putExtra(AppConfig.EXTRA_MESSAGE, AppConfig.INTENT_LOGIN); - startActivity(intent); - } - - public void gotoRegister(View view) { - Intent intent = new Intent(this, LoginActivity.class); - intent.putExtra(AppConfig.EXTRA_MESSAGE, AppConfig.INTENT_REGISTER); - startActivity(intent); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.menu_common, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - return super.onOptionsItemSelected(item); - } - -} diff --git a/app/src/main/java/org/deke/risk/riskahead/SubscriptionsActivity.java b/app/src/main/java/org/deke/risk/riskahead/SubscriptionsActivity.java index 560d0be..2a6c350 100644 --- a/app/src/main/java/org/deke/risk/riskahead/SubscriptionsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/SubscriptionsActivity.java @@ -309,7 +309,7 @@ public class SubscriptionsActivity extends BaseActivity{ } private StringRequest getStringAddSubscription(final String productId, final String type, final String price, final String currency) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_ADD_SUBSCRIPTIONS, new Response.Listener() { @Override public void onResponse(String response) { @@ -345,7 +345,6 @@ public class SubscriptionsActivity extends BaseActivity{ @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", "addsubscription"); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("productid", productId); @@ -365,7 +364,7 @@ public class SubscriptionsActivity extends BaseActivity{ } private StringRequest getStringGetSubscriptions(final String userId) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_GET_SUBSCRIPTIONS, new Response.Listener() { @Override public void onResponse(String response) { @@ -407,7 +406,6 @@ public class SubscriptionsActivity extends BaseActivity{ @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", "getsubscriptions"); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("userid", userId); @@ -426,7 +424,7 @@ public class SubscriptionsActivity extends BaseActivity{ } private StringRequest getStringDeactivateSubscriptions(final String subscriptionId) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_DEACTIVATE_SUBSCRIPTIONS, new Response.Listener() { @Override public void onResponse(String response) { @@ -457,7 +455,6 @@ public class SubscriptionsActivity extends BaseActivity{ @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", "deactivatesubscription"); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("subid", subscriptionId); 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 ce5da86..830dd9e 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java @@ -158,7 +158,7 @@ public class ViewReportActivity extends BaseActivity { } private StringRequest getStringRequestDeleteIncident(final Integer incidentid) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_DEACTIVATE_INCIDENT, new Response.Listener() { @Override public void onResponse(String response) { @@ -194,7 +194,6 @@ public class ViewReportActivity extends BaseActivity { @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_DEACTIVATE_INCIDENT); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentid.toString()); @@ -213,7 +212,7 @@ public class ViewReportActivity extends BaseActivity { } private StringRequest getStringRequestGetIncidentWithPositionFromID(final Integer incidentid) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_GET_INCIDENT, new Response.Listener() { @Override public void onResponse(String response) { @@ -253,7 +252,6 @@ public class ViewReportActivity extends BaseActivity { protected Map getParams() { // Posting parameters to login url Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_GET_INCIDENTS_FROMINCIDENTID); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentid.toString()); @@ -447,7 +445,7 @@ public class ViewReportActivity extends BaseActivity { } private StringRequest getStringRequestAddVote(final Integer incidentid, final String votetype) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_ADD_VOTE, new Response.Listener() { @Override public void onResponse(String response) { @@ -484,7 +482,6 @@ public class ViewReportActivity extends BaseActivity { @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_ADD_VOTE); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentid.toString()); @@ -502,7 +499,7 @@ public class ViewReportActivity extends BaseActivity { } private StringRequest getStringRequestDeleteVote(final Integer incidentid) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_DELETE_VOTE, new Response.Listener() { @Override public void onResponse(String response) { @@ -537,7 +534,6 @@ public class ViewReportActivity extends BaseActivity { @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_DELETE_VOTE); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("incidentid", incidentid.toString()); diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/GooglePlusButtonFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/GooglePlusButtonFragment.java index f1d8b82..0ebfaef 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/GooglePlusButtonFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/GooglePlusButtonFragment.java @@ -3,7 +3,6 @@ package org.deke.risk.riskahead.fragment; import android.Manifest; import android.app.Activity; import android.app.AlertDialog; -import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -29,7 +28,6 @@ import com.google.android.gms.plus.Plus; import com.google.android.gms.plus.model.people.Person; import org.deke.risk.riskahead.LoginActivity; -import org.deke.risk.riskahead.MainActivity; import org.deke.risk.riskahead.R; /** diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportListFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportListFragment.java index 61282aa..e16cb8a 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportListFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportListFragment.java @@ -86,7 +86,7 @@ public class ReportListFragment extends Fragment{ } private StringRequest getStringRequestGetIncidentsWithPositionFromUserID() { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_GET_INCIDENTS_FROMUSERID, new Response.Listener() { @Override public void onResponse(String response) { @@ -136,7 +136,6 @@ public class ReportListFragment extends Fragment{ @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_GET_INCIDENTS_FROMUSERID); params.put("uid", parent.user.get(SessionManager.KEY_UID)); params.put("token", parent.user.get(SessionManager.TOKEN)); params.put("userincidentid", uid); diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/SettingsFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/SettingsFragment.java index 9f5ba0d..1ef3bf5 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/SettingsFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/SettingsFragment.java @@ -239,7 +239,7 @@ public class SettingsFragment extends PreferenceFragment { private StringRequest getStringRequestResetPW(final String email) { ((SettingsActivity) getActivity()).showDialog(); - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_REQUESTPWRESET, new Response.Listener() { @Override public void onResponse(String response) { @@ -275,7 +275,6 @@ public class SettingsFragment extends PreferenceFragment { @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_REQUESTPWRESET); params.put("email", email); return params; @@ -304,7 +303,7 @@ public class SettingsFragment extends PreferenceFragment { } private StringRequest getStringChangeUserSettings(final String username, final String name, final String surname, final String email) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_UPDATE_USER, new Response.Listener() { @Override public void onResponse(String response) { @@ -364,7 +363,6 @@ public class SettingsFragment extends PreferenceFragment { @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_UPDATE_USER); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("username", username); diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/Top10Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/Top10Fragment.java index b1c3f03..dca2368 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/Top10Fragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/Top10Fragment.java @@ -79,7 +79,7 @@ public class Top10Fragment extends Fragment { private StringRequest getStringRequestTop10() { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_GET_TOP10, new Response.Listener() { @Override public void onResponse(String response) { @@ -129,7 +129,6 @@ public class Top10Fragment extends Fragment { @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_GET_TOP10); params.put("uid", parent.user.get(SessionManager.KEY_UID)); params.put("token", parent.user.get(SessionManager.TOKEN)); diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/TwitterButtonFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/TwitterButtonFragment.java index 2784940..d900267 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/TwitterButtonFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/TwitterButtonFragment.java @@ -87,8 +87,8 @@ public class TwitterButtonFragment extends Fragment { @Override public void failure(TwitterException exception) { - Log.e("Debug", "onFailure wird ausgeführt"); - showMessage("Twitter Login failed with exception " + exception.getMessage()); + Log.e("Twitter", "onFailure wird ausgeführt: "+exception); + showMessage("Could not log in with Twitter. Please use E-Mail instead or try again later."); } }); } diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/AppConfig.java b/app/src/main/java/org/deke/risk/riskahead/helper/AppConfig.java index d55c04d..d26bcac 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/AppConfig.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/AppConfig.java @@ -11,10 +11,8 @@ public class AppConfig { /** GENERAL **/ public final static String APP_PNAME = "org.deke.risk.riskahead"; - /** URLs **/ - public final static String URL_ENCRYPTED = "https://www.riskahead.de/helper/rest/"; - public final static String URL_DEFAULT = "http://www.riskahead.de/helper/rest/"; + public final static String URL_ENCRYPTED = "https://www.riskahead.de/api/v1"; public final static String URL_ABOUT = "https://www.riskahead.net/about/"; public final static String URL_CONTACT = "https://www.riskahead.net/contact/"; @@ -39,27 +37,45 @@ public class AppConfig { public final static int VOTETYPE_DOWNVOTE = 2; /** REST WEBSERVICE **/ - public final static String REST_LOGIN = "login"; - public final static String REST_LOGIN_SOCIAL = "sociallogin"; - public final static String REST_LOGIN_EXISTS= "checkifuserexists"; - public final static String REST_REGISTER = "register"; - public final static String REST_RESENDACTIVATIONMAIL = "resendactivationusermail"; - public final static String REST_REQUESTPWRESET = "requestpwreset"; - public final static String REST_GET_NUMOFINCIDENTS = "getincidentcount"; - public final static String REST_GET_INCIDENTS_FROMBOUND = "getincidentsfrombound"; - public final static String REST_GET_INCIDENTS_FROMBOUND_FORHEATMAP = "getincidentsforheatmapfrombound"; - public final static String REST_GET_INCIDENTS_FROMUSERID = "getincidentsfromuserid"; - public final static String REST_GET_INCIDENTS_FROMINCIDENTID = "getincidentfromincidentid"; - public final static String REST_ADD_INCIDENT_WITHPOSITION = "addincidentwithposition"; - public final static String REST_UPDATE_USER = "updateuser"; - public final static String REST_GET_USERSTATS = "getuserstats"; - public final static String REST_GET_INCIDENTS_FROMAREATIME = "getincidentsinareaandtime"; - public final static String REST_GET_TOP10 = "gettop10"; - public final static String REST_ADD_VOTE = "addvote"; - public final static String REST_DELETE_VOTE = "deletevote"; - public final static String REST_SEND_FEEDBACK = "sendfeedback"; - public final static String REST_DEACTIVATE_INCIDENT = "deactivateincident"; + public final static String ROUTE_PUB = "/public"; + public final static String ROUTE_AUTH = "/auth"; - public static final String REST_CHECK_MAINTENANCE = "checkformaintenance"; - public static final String REST_CHECK_VERSION= "checkifversionvalid"; + public final static String ROUTE_GROUP_USERS = "/users"; + public final static String ROUTE_GROUP_SOCIALMEDIAS = "/socialmedias"; + public final static String ROUTE_GROUP_VALIDATIONS = "/validations"; + public final static String ROUTE_GROUP_INCIDENTS = "/incidents"; + public final static String ROUTE_GROUP_SUBSCRIPTIONS = "/subscriptions"; + public final static String ROUTE_GROUP_VOTES = "/votes"; + + public final static String REST_LOGIN = URL_ENCRYPTED + ROUTE_PUB + ROUTE_GROUP_USERS + "/login/"; + public final static String REST_REGISTER = URL_ENCRYPTED + ROUTE_PUB + ROUTE_GROUP_USERS + "/register/"; + public final static String REST_USEREXISTS = URL_ENCRYPTED + ROUTE_PUB + ROUTE_GROUP_USERS + "/exists/"; + public final static String REST_LOGIN_SOCIAL = URL_ENCRYPTED + ROUTE_PUB + ROUTE_GROUP_SOCIALMEDIAS + "/login/"; + + public final static String REST_SENDACTIVATIONMAIL = URL_ENCRYPTED + ROUTE_PUB + ROUTE_GROUP_USERS + "/sendactivation/"; + public final static String REST_REQUESTPWRESET = URL_ENCRYPTED + ROUTE_PUB + ROUTE_GROUP_USERS + "/sendpwreset/"; + + public final static String REST_GET_NUMOFINCIDENTS = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_INCIDENTS + "/get/number/"; + public final static String REST_GET_INCIDENT = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_INCIDENTS + "/get/incidentid/"; + public final static String REST_GET_INCIDENTS_FROMUSERID = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_INCIDENTS + "/get/userid/"; + public final static String REST_GET_INCIDENTS_FROMBOUND = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_INCIDENTS + "/get/activefrombound/"; + public final static String REST_GET_INCIDENTS_FROMBOUND_FORHEATMAP = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_INCIDENTS + "/get/activefromboundreduced/"; + public final static String REST_GET_INCIDENTS_FROMAREATIME = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_INCIDENTS + "/get/boundandtime/"; + + public final static String REST_DEACTIVATE_INCIDENT = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_INCIDENTS + "/deactivate/"; + public final static String REST_ADD_INCIDENT_WITHPOSITION = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_INCIDENTS + "/add/withposition/"; + + public final static String REST_UPDATE_USER = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + "/update/"; + public final static String REST_GET_USERSTATS = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + "/statistics/"; + public final static String REST_GET_TOP10 = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + "/top10/"; + public final static String REST_SEND_FEEDBACK = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + "/feedback/"; + public final static String REST_GET_SUBSCRIPTIONS = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + ROUTE_GROUP_SUBSCRIPTIONS + "/"; + public final static String REST_ADD_SUBSCRIPTIONS = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + ROUTE_GROUP_SUBSCRIPTIONS + "/add/"; + public final static String REST_DEACTIVATE_SUBSCRIPTIONS = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + ROUTE_GROUP_SUBSCRIPTIONS + "/deactivate/"; + + public final static String REST_ADD_VOTE = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + ROUTE_GROUP_VOTES + "/add/"; + public final static String REST_DELETE_VOTE = URL_ENCRYPTED + ROUTE_AUTH + ROUTE_GROUP_USERS + ROUTE_GROUP_VOTES + "/delete/"; + + public static final String REST_CHECK_MAINTENANCE = URL_ENCRYPTED + ROUTE_PUB + ROUTE_GROUP_VALIDATIONS + "/maintenance/"; + public static final String REST_CHECK_VERSION = URL_ENCRYPTED + ROUTE_PUB + ROUTE_GROUP_VALIDATIONS + "/version/"; } 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 d2a6a78..46e4ce5 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 @@ -56,7 +56,6 @@ import com.mikepenz.materialdrawer.model.ProfileDrawerItem; import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; import org.deke.risk.riskahead.LoginActivity; -import org.deke.risk.riskahead.MainActivity; import org.deke.risk.riskahead.MapsActivity; import org.deke.risk.riskahead.R; import org.deke.risk.riskahead.ProfileActivity; @@ -254,11 +253,6 @@ public abstract class BaseActivity extends AppCompatActivity { } private void initNavigationDrawer(Bundle savedInstanceState) { - PrimaryDrawerItem item1 = new PrimaryDrawerItem() - .withName(R.string.navigation_start) - .withIdentifier(mainAvtivityID) - .withIcon(GoogleMaterial.Icon.gmd_home); - PrimaryDrawerItem item2 = new PrimaryDrawerItem() .withName(R.string.navigation_report) .withIdentifier(reportAvtivityID) @@ -322,7 +316,6 @@ public abstract class BaseActivity extends AppCompatActivity { .withSavedInstance(savedInstanceState) .withSelectedItem(-1) .addDrawerItems( - item1, item2, item3, new DividerDrawerItem(), @@ -336,9 +329,6 @@ public abstract class BaseActivity extends AppCompatActivity { switch ((int)drawerItem.getIdentifier()) { - case 1: - gotoMainActivity(); - return false; case 2: gotoReportActivity(); return false; @@ -451,12 +441,6 @@ public abstract class BaseActivity extends AppCompatActivity { return true; } - public void gotoMainActivity(){ - Intent intent; - intent = new Intent(getApplicationContext(), MainActivity.class); - startActivity(intent); - } - public void gotoReportActivity(){ Intent intent; intent = new Intent(getApplicationContext(), ReportWFActivity.class); @@ -723,7 +707,7 @@ public abstract class BaseActivity extends AppCompatActivity { } private StringRequest getStringRequestSendFeedback(final String feedback, final String sysprop) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_SEND_FEEDBACK, new Response.Listener() { @Override public void onResponse(String response) { @@ -755,7 +739,6 @@ public abstract class BaseActivity extends AppCompatActivity { @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_SEND_FEEDBACK); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("feedback", feedback); diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/NotificationService.java b/app/src/main/java/org/deke/risk/riskahead/helper/NotificationService.java index afaf392..ead2885 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/NotificationService.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/NotificationService.java @@ -49,6 +49,9 @@ public class NotificationService extends Service { Handler mNotifyHandler = new Handler(); NotificationManager mNotificationManager; + private static final int MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters + private static final int MIN_TIME_BW_UPDATES = 1000 * 60; // 1 minute + public SessionManager session; public HashMap user; @@ -70,26 +73,50 @@ public class NotificationService extends Service { locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); LocationListener locationListener = new MyLocationListener(); - if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - //ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION},1); - }else{ + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { + Log.d(TAG,"Locationservice enabled - GPS Provider Found"); + + locationManager.requestLocationUpdates( + LocationManager.GPS_PROVIDER, + MIN_TIME_BW_UPDATES, + MIN_DISTANCE_CHANGE_FOR_UPDATES, locationListener); + Log.d("GPS Enabled", "GPS Enabled"); + + if (locationManager != null) { + Location tmpLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (tmpLocation != null) { + session.setLocation(Double.doubleToRawLongBits(tmpLocation.getLatitude()),Double.doubleToRawLongBits(tmpLocation.getLongitude())); + } + } + }else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { + // get location from Network Provider + Log.d(TAG,"Locationservice enabled - Network Provider Found"); + locationManager.requestLocationUpdates( + LocationManager.NETWORK_PROVIDER, + 22, + 33, locationListener); + Log.d("Network", "Network"); + if (locationManager != null) { + Location tmpLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (tmpLocation != null) { + session.setLocation(Double.doubleToRawLongBits(tmpLocation.getLatitude()),Double.doubleToRawLongBits(tmpLocation.getLongitude())); + } + } + } + + + locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 10, locationListener); } - Log.d(TAG, "Service Created. Starting notification task..."); mNotifyTask.run(); } private class MyLocationListener implements LocationListener { - @Override public void onLocationChanged(Location loc) { - String longitude = "Longitude: " + loc.getLongitude(); - Log.v(TAG, longitude); - String latitude = "Latitude: " + loc.getLatitude(); - Log.v(TAG, latitude); - if(session.isGPSForNotificationsEnabled() && loc.getLongitude() != 0.0 && loc.getLatitude() != 0.0) { Log.d(TAG, "Save GPS as new location..."); if(session.getLocation() == null || session.getLocation().latitude == 0.0 || session.getLocation().longitude == 0.0){ @@ -162,7 +189,7 @@ public class NotificationService extends Service { }; private StringRequest getStringRequestIncidentsFromAreaAndTime(final Double latitude, final Double longitude, final int radius, final String time) { - return new StringRequest(Request.Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.REST_GET_INCIDENTS_FROMAREATIME, new Response.Listener() { @Override public void onResponse(String response) { @@ -196,7 +223,6 @@ public class NotificationService extends Service { @Override protected Map getParams() { Map params = new HashMap<>(); - params.put("tag", AppConfig.REST_GET_INCIDENTS_FROMAREATIME); params.put("uid", user.get(SessionManager.KEY_UID)); params.put("token", user.get(SessionManager.TOKEN)); params.put("latitude", Double.toString(latitude)); diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/TextValidator.java b/app/src/main/java/org/deke/risk/riskahead/helper/TextValidator.java index 3eaf504..371e401 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/TextValidator.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/TextValidator.java @@ -1,6 +1,7 @@ package org.deke.risk.riskahead.helper; import android.content.Context; +import android.support.design.widget.TextInputLayout; import android.text.Editable; import android.text.TextWatcher; import android.widget.TextView; @@ -14,12 +15,14 @@ import android.widget.TextView; */ public abstract class TextValidator implements TextWatcher { private final TextView textView; + private final TextInputLayout textLayout; - public TextValidator(TextView textView, Context context) { + public TextValidator(TextView textView, TextInputLayout textLayout, Context context) { this.textView = textView; + this.textLayout = textLayout; } - public abstract void validate(TextView textView, String text); + public abstract void validate(TextView textView, TextInputLayout textLayout, String text); @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { @@ -33,6 +36,6 @@ public abstract class TextValidator implements TextWatcher { @Override public void afterTextChanged(Editable s) { String text = textView.getText().toString(); - validate(textView, text); + validate(textView, textLayout, text); } } diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/ValidatedEditTextPreference.java b/app/src/main/java/org/deke/risk/riskahead/helper/ValidatedEditTextPreference.java index e979ab9..d1b177c 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/ValidatedEditTextPreference.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/ValidatedEditTextPreference.java @@ -5,6 +5,7 @@ import android.content.Context; import android.os.Bundle; import android.preference.EditTextPreference; import android.app.AlertDialog; +import android.support.design.widget.TextInputLayout; import android.text.Editable; import android.text.InputType; import android.text.TextWatcher; @@ -62,7 +63,9 @@ public class ValidatedEditTextPreference extends EditTextPreference if((getEditText().getInputType() & InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS) != 0){ if (!Patterns.EMAIL_ADDRESS.matcher(value).matches()) { - getEditText().setError(getEditText().getContext().getResources().getString(R.string.error_email)); + ((TextInputLayout) getEditText().getParent()).setError(getEditText().getContext().getResources().getString(R.string.error_email)); + + // getEditText().setError(getEditText().getContext().getResources().getString(R.string.error_email)); enable = false; } }else{ @@ -81,7 +84,6 @@ public class ValidatedEditTextPreference extends EditTextPreference Dialog dlg = getDialog(); - if(dlg instanceof AlertDialog){ AlertDialog alertDlg = (AlertDialog)dlg; Button btn = alertDlg.getButton(AlertDialog.BUTTON_POSITIVE); @@ -89,7 +91,6 @@ public class ValidatedEditTextPreference extends EditTextPreference Log.d("SettingValidator", "btnSetEnable durchgeführt: "+btn.isEnabled()); } - } @Override diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 2a542b1..aebbbdd 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,138 +1,158 @@ - - - - - - -