diff --git a/app/app-release.apk b/app/app-release.apk index 04c13b3..551eb6d 100644 Binary files a/app/app-release.apk and b/app/app-release.apk differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index acc3f37..ac3a5a2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -120,6 +120,9 @@ + + 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 fcc3e63..cdaabf3 100644 --- a/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/LoginActivity.java @@ -48,6 +48,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr private TextView input_email; private TextView input_username; private TextView input_password; + private TextView btn_requestPW; private ProgressDialog pDialog; private SessionManager session; @@ -56,51 +57,94 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + session = new SessionManager(getApplicationContext()); + + pDialog = new ProgressDialog(this); + pDialog.setMessage("Sending data..."); + pDialog.setCancelable(false); + Intent intent = getIntent(); msg_intent = intent.getStringExtra(LoginActivity.EXTRA_MESSAGE); - pDialog = new ProgressDialog(this); - pDialog.setCancelable(false); - - session = new SessionManager(getApplicationContext()); - if(msg_intent.equals("login")){ - setContentView(R.layout.activity_login); + initLoginView(); }else if(msg_intent.equals("register")){ - setContentView(R.layout.activity_register); - input_username = (TextView) findViewById(R.id.input_register_name); - - input_username.addTextChangedListener(new TextValidator(input_username,getApplicationContext()) { - @Override - public void validate(TextView textView, String text) { - if (text.length() < 5) { - textView.setError(getString(R.string.error_anytext)); - } - } - }); + initRegisterView(); } + initSocialLoginButtons(); + initMyLoginButton(); + } + + private void initLoginView() { + setContentView(R.layout.activity_login); + input_email = (TextView) findViewById(R.id.input_register_email); input_password = (TextView) findViewById(R.id.input_register_password); + btn_requestPW = (TextView) findViewById(R.id.lbl_login_resendPW); - input_email.addTextChangedListener(new TextValidator(input_email,getApplicationContext()) { + input_email.addTextChangedListener(new TextValidator(input_email, getApplicationContext()) { @Override public void validate(TextView textView, String text) { - if(!Patterns.EMAIL_ADDRESS.matcher(text).matches()){ + if (!Patterns.EMAIL_ADDRESS.matcher(text).matches()) { textView.setError(getString(R.string.error_email)); } } }); - input_password.addTextChangedListener(new TextValidator(input_password,getApplicationContext()) { + input_password.addTextChangedListener(new TextValidator(input_password, getApplicationContext()) { @Override public void validate(TextView textView, String text) { - if(text.length() < 5) { + if (text.length() < 5) { textView.setError(getString(R.string.error_password)); } } }); + btn_requestPW.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onRequestNewPasswordClick(v); + } + }); + } + + private void initRegisterView() { + setContentView(R.layout.activity_register); + + input_username = (TextView) findViewById(R.id.input_register_name); + input_email = (TextView) findViewById(R.id.input_register_email); + input_password = (TextView) findViewById(R.id.input_register_password); + + input_username.addTextChangedListener(new TextValidator(input_username,getApplicationContext()) { + @Override + public void validate(TextView textView, String text) { + if (text.length() < 5) { + textView.setError(getString(R.string.error_anytext)); + } + } + }); + + input_email.addTextChangedListener(new TextValidator(input_email, getApplicationContext()) { + @Override + public void validate(TextView textView, String text) { + if (!Patterns.EMAIL_ADDRESS.matcher(text).matches()) { + textView.setError(getString(R.string.error_email)); + } + } + }); + + input_password.addTextChangedListener(new TextValidator(input_password, getApplicationContext()) { + @Override + public void validate(TextView textView, String text) { + if (text.length() < 5) { + textView.setError(getString(R.string.error_password)); + } + } + }); + } + + private void initSocialLoginButtons() { FragmentManager fragmentManager = getSupportFragmentManager(); FacebookButtonFragment fragmentFB = new FacebookButtonFragment(); GooglePlusButtonFragment fragmentGP = new GooglePlusButtonFragment(); @@ -108,11 +152,9 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.add(R.id.frag_login_btnGP, fragmentGP); transaction.commit(); - - initMySigninButton(); } - private void initMySigninButton() { + private void initMyLoginButton() { btn_login = (Button) findViewById(R.id.btn_register); btn_login.setOnClickListener(new View.OnClickListener() { @Override @@ -126,7 +168,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr showMessage(getString(R.string.error_validation)); } else { showDialog(); - checkLogin(email, password); + performLogin(email, password); } } else if (msg_intent.equals("register")) { String name = input_username.getText().toString(); @@ -134,7 +176,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr showMessage(getString(R.string.error_validation)); } else { showDialog(); - registerUser(name, email, password); + performRegistration(name, email, password); } } } @@ -142,52 +184,16 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr }); } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.menu_common, menu); - return true; + private void performLogin(final String email, final String password) { + String tag_string_req = "req_login"; + StringRequest strReq = getStringRequestLogin(email, password); + AppController.getInstance().addToRequestQueue(strReq, tag_string_req); } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - - if((id == R.id.menu_action_exit)){ - Intent intent = new Intent(Intent.ACTION_MAIN); - intent.addCategory(Intent.CATEGORY_HOME); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); - }else if((id == R.id.menu_action_about)){ - Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.riskahead.net/about/")); - startActivity(browserIntent); - }else if((id == R.id.menu_action_help)){ - Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.riskahead.net/contact/")); - startActivity(browserIntent); - } - - return super.onOptionsItemSelected(item); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - - if (requestCode == GooglePlusButtonFragment.RC_SIGN_IN) { - GooglePlusButtonFragment fragment = (GooglePlusButtonFragment) getSupportFragmentManager().findFragmentById(R.id.frag_login_btnGP); - fragment.onActivityResult(requestCode, resultCode, data); - } - - TwitterButtonFragment twitter_fragment = (TwitterButtonFragment) getSupportFragmentManager().findFragmentById(R.id.frag_login_btnTW); - if (twitter_fragment != null) { - twitter_fragment.onActivityResult(requestCode, resultCode, data); - } - - FacebookButtonFragment facebook_fragment = (FacebookButtonFragment) getSupportFragmentManager().findFragmentById(R.id.frag_login_btnFB); - if (facebook_fragment != null) { - facebook_fragment.onActivityResult(requestCode, resultCode, data); - } - - Log.d("Test","GOT ACTIVITY RESULT!!!:"+requestCode+" : "+resultCode); + private void performRegistration(final String username, final String email, final String password) { + String tag_string_req = "req_register"; + StringRequest strReq = getStringRequestRegisterUser(username, email, password); + AppController.getInstance().addToRequestQueue(strReq, tag_string_req); } public void handleSocialMediaLogin(final String key, final String providerType, final String username, final String email){ @@ -207,19 +213,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr AppController.getInstance().addToRequestQueue(strReq, tag_string_req); } - private void checkLogin(final String email, final String password) { - String tag_string_req = "req_login"; - StringRequest strReq = getStringRequestLogin(email, password); - AppController.getInstance().addToRequestQueue(strReq, tag_string_req); - } - - private void registerUser(final String username, final String email,final String password) { - String tag_string_req = "req_register"; - StringRequest strReq = getStringRequestRegisterUser(username, email, password); - AppController.getInstance().addToRequestQueue(strReq, tag_string_req); - } - - public void onClick(View view){ + public void onRequestNewPasswordClick(View view){ if(input_email.getText() != null && input_email.getText().toString().isEmpty()){ showMessage(getString(R.string.message_enteremail)); return; @@ -230,11 +224,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr .setMessage(getString(R.string.alert_passwordreset_text)) .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { - String tag_string_req = "requestpwreset"; - StringRequest strReq = getStringRequestResetPW(input_email.getText().toString()); - AppController.getInstance().addToRequestQueue(strReq, tag_string_req); - - showMessage(getString(R.string.alert_passwordreset_confirmation)); + performRequestNewPassword(); } }) .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() { @@ -246,8 +236,14 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr .show(); } + private void performRequestNewPassword() { + String tag_string_req = "requestpwreset"; + StringRequest strReq = getStringRequestResetPW(input_email.getText().toString()); + AppController.getInstance().addToRequestQueue(strReq, tag_string_req); + } + private StringRequest getStringRequestSocialMediaLogin(final String key, final String providerType, final String username, final String email) { - return new StringRequest(Method.POST,AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Method.POST,AppConfig.URL_ENCRYPTED, new Response.Listener() { @Override public void onResponse(String response) { @@ -319,7 +315,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestLogin(final String email, final String password) { - return new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { @Override public void onResponse(String response) { @@ -407,7 +403,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_REGISTER, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { @Override public void onResponse(String response) { @@ -468,7 +464,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestResetPW(final String email) { - return new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { @Override public void onResponse(String response) { @@ -479,6 +475,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr JSONObject jObj = new JSONObject(response); boolean error = jObj.getBoolean("error"); if (!error) { + showMessage(getString(R.string.alert_passwordreset_confirmation)); } else { String errorMsg = jObj.getString("error_msg"); Toast.makeText(getApplicationContext(), @@ -513,7 +510,7 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } private StringRequest getStringRequestActivationLinkUser(final String email) { - return new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Method.POST, AppConfig.URL_ENCRYPTED, new Response.Listener() { @Override public void onResponse(String response) { @@ -560,7 +557,6 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr } public void onFragmentInteraction(Uri uri){ - //you can leave it empty } private void showDialog() { @@ -568,18 +564,56 @@ public class LoginActivity extends AppCompatActivity implements FacebookButtonFr pDialog.show(); } - @Override - public void onBackPressed() { - Intent intent = new Intent( - LoginActivity.this, - StartActivity.class); - startActivity(intent); - finish(); - } - private void hideDialog() { if (pDialog.isShowing()) pDialog.dismiss(); } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_common, menu); + return true; + } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + if((id == R.id.menu_action_exit)){ + Intent intent = new Intent(Intent.ACTION_MAIN); + intent.addCategory(Intent.CATEGORY_HOME); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + }else if((id == R.id.menu_action_about)){ + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.riskahead.net/about/")); + startActivity(browserIntent); + }else if((id == R.id.menu_action_help)){ + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.riskahead.net/contact/")); + startActivity(browserIntent); + } + + return super.onOptionsItemSelected(item); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + + if (requestCode == GooglePlusButtonFragment.RC_SIGN_IN) { + GooglePlusButtonFragment fragment = (GooglePlusButtonFragment) getSupportFragmentManager().findFragmentById(R.id.frag_login_btnGP); + fragment.onActivityResult(requestCode, resultCode, data); + } + + TwitterButtonFragment twitter_fragment = (TwitterButtonFragment) getSupportFragmentManager().findFragmentById(R.id.frag_login_btnTW); + if (twitter_fragment != null) { + twitter_fragment.onActivityResult(requestCode, resultCode, data); + } + + FacebookButtonFragment facebook_fragment = (FacebookButtonFragment) getSupportFragmentManager().findFragmentById(R.id.frag_login_btnFB); + if (facebook_fragment != null) { + facebook_fragment.onActivityResult(requestCode, resultCode, data); + } + + Log.d("Test", "GOT ACTIVITY RESULT!!!:" + requestCode + " : " + resultCode); + } } diff --git a/app/src/main/java/org/deke/risk/riskahead/MainActivity.java b/app/src/main/java/org/deke/risk/riskahead/MainActivity.java index d99ff63..ad25cc5 100644 --- a/app/src/main/java/org/deke/risk/riskahead/MainActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/MainActivity.java @@ -1,15 +1,10 @@ package org.deke.risk.riskahead; -import android.app.NotificationManager; -import android.app.PendingIntent; -import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.FragmentManager; -import android.support.v4.app.NotificationCompat; -import android.support.v4.app.TaskStackBuilder; import android.util.Log; import android.view.View; import android.widget.Button; @@ -26,13 +21,10 @@ 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.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.text.DecimalFormat; -import java.text.SimpleDateFormat; -import java.util.Calendar; import java.util.HashMap; import java.util.Map; @@ -93,7 +85,7 @@ public class MainActivity extends BaseActivity{ .color(getResources().getColor(R.color.white)) .sizeDp(24); - map.setCompoundDrawables(null,null, mapIcon, null); + map.setCompoundDrawables(null, null, mapIcon, null); } @@ -150,7 +142,7 @@ public class MainActivity extends BaseActivity{ } private StringRequest getStringRequestIncidentCount() { - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { 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 efad316..d507773 100644 --- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java @@ -127,11 +127,14 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(point, DEFAULT_ZOOM_LEVEL)); findViewById(R.id.fab_reportwf_map).setVisibility(View.VISIBLE); - if(getIntent().getStringExtra(EXTRA_MESSAGE).equals("NoIncident")){ + String intentMessage = getIntent().getStringExtra(EXTRA_MESSAGE); + if(session.getNotificationPositionRequest()){ findViewById(R.id.fab_reportwf_map).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - session.setLocation((long)markedLocation.latitude,(long)markedLocation.longitude); + session.setLocation(Double.doubleToRawLongBits(markedLocation.latitude), Double.doubleToRawLongBits(markedLocation.longitude)); + Log.d(TAG, "MARKED LOCATION: " + markedLocation.latitude + " " + markedLocation.longitude); + session.setNotificationPositionRequest(false); gotoSettingsActivity(); } }); @@ -293,7 +296,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_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { @@ -340,7 +343,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_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { @@ -419,7 +422,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_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { @@ -522,10 +525,10 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa } else if(Intent.ACTION_VIEW.equals(intent.getAction())) { getPlace(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY)); } else { - String pos = intent.getStringExtra(EXTRA_MESSAGE); + String intentMessage = intent.getStringExtra(EXTRA_MESSAGE); - if(pos != null) { - String[] position = pos.split(":"); + if(intentMessage != null && intentMessage.contains(":")) { + String[] position = intentMessage.split(":"); String latitude = position[0]; String longitude = position[1]; @@ -534,6 +537,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(point, DEFAULT_ZOOM_LEVEL)); } else { myPosition = session.getLocation(); + if ((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0)) { mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( @@ -543,13 +547,13 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa if(sDefSystemLanguage.equals("en")){ mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( - new LatLng(52.603048, -2.298889), DEFAULT_ZOOM_LEVEL)); + new LatLng(51.507351, -0.127758), DEFAULT_ZOOM_LEVEL)); } else if (sDefSystemLanguage.equals("de")){ mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( - new LatLng(53.090725, 14.268494), DEFAULT_ZOOM_LEVEL)); + new LatLng(52.518594, 13.376188), DEFAULT_ZOOM_LEVEL)); } else { mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( - new LatLng(19.432608, -99.133209), DEFAULT_ZOOM_LEVEL)); + new LatLng(19.410704, -99.132385), DEFAULT_ZOOM_LEVEL)); } } } @@ -660,6 +664,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.id.frag_maps_map)).commitAllowingStateLoss(); mMap = null; } + session.setNotificationPositionRequest(false); super.onDestroy(); } @@ -672,4 +677,10 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa protected String getActivityName() { return mActivityTitle; } + + public void onBackPressed(){ + session.setNotificationPositionRequest(false); + super.onBackPressed(); + + } } 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 e42d8f7..1088ab8 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java @@ -308,7 +308,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_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { 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 d179b6c..0b23b17 100644 --- a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java +++ b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java @@ -48,6 +48,7 @@ public class ViewReportActivity extends BaseActivity { private EditText txtSuspectTransport; private EditText txtVictimAffiliation; private EditText txtSuspectRecognition; + private EditText txtEtcEtc; private BootstrapLabel scorelabel; @@ -71,6 +72,7 @@ public class ViewReportActivity extends BaseActivity { txtSuspectTransport = (EditText) findViewById(R.id.txt_viewreport_suspecttransport); txtVictimAffiliation = (EditText) findViewById(R.id.txt_viewreport_victimaff); txtSuspectRecognition = (EditText) findViewById(R.id.txt_viewreport_suspectrecon); + txtEtcEtc = (EditText) findViewById(R.id.txt_viewreport_etcetc); Intent intent = getIntent(); final Integer id = intent.getIntExtra(BaseActivity.EXTRA_MESSAGE, 0); @@ -141,7 +143,7 @@ public class ViewReportActivity extends BaseActivity { private StringRequest getStringRequestDeleteIncident(final Integer incidentid) { showDialog(); - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { @@ -191,7 +193,7 @@ public class ViewReportActivity extends BaseActivity { private StringRequest getStringRequestGetIncidentWithPositionFromID(final Integer incidentid) { showDialog(); - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { @@ -241,21 +243,32 @@ public class ViewReportActivity extends BaseActivity { }; } + private String checkIfTextEmptyAndReturnString(String input){ + String formattedString = "Keine Angaben"; + + if(input.trim().length() > 0){ + formattedString = input; + } + + return formattedString; + } + private void initReport(IncidentReport incident) { Context tmpContext = getApplicationContext(); scorelabel.setText(Integer.toString(incident.getVotedScore())); txtIncidentCategory.setText(incident.getIncidentCategoryName(tmpContext)); - txtIncidentSubCategory.setText(incident.getIncidentSubCategoryName(tmpContext)); - txtTime.setText(incident.getTimeString(tmpContext)); - txtSuspect.setText(incident.getSuspectString(tmpContext)); - txtWeapons.setText(incident.getSuspectWeaponsString(tmpContext)); - txtNumOfSuspects.setText(incident.getSuspectNoOfString(tmpContext)); - txtVictim.setText(incident.getVictimString(tmpContext)); - txtVictimOrigin.setText(incident.getVictimOriginString(tmpContext)); - txtSuspectTransport.setText(incident.getSuspectTransportString(tmpContext)); - txtVictimAffiliation.setText(incident.getVictimAffiliationString(tmpContext)); - txtSuspectRecognition.setText(incident.getSuspectRecognitionString(tmpContext)); + txtIncidentSubCategory.setText(checkIfTextEmptyAndReturnString(incident.getIncidentSubCategoryName(tmpContext))); + txtTime.setText(checkIfTextEmptyAndReturnString(incident.getTimeString(tmpContext))); + txtSuspect.setText(checkIfTextEmptyAndReturnString(incident.getSuspectString(tmpContext))); + txtWeapons.setText(checkIfTextEmptyAndReturnString(incident.getSuspectWeaponsString(tmpContext))); + txtNumOfSuspects.setText(checkIfTextEmptyAndReturnString(incident.getSuspectNoOfString(tmpContext))); + txtVictim.setText(checkIfTextEmptyAndReturnString(incident.getVictimString(tmpContext))); + txtVictimOrigin.setText(checkIfTextEmptyAndReturnString(incident.getVictimOriginString(tmpContext))); + txtSuspectTransport.setText(checkIfTextEmptyAndReturnString(incident.getSuspectTransportString(tmpContext))); + txtVictimAffiliation.setText(checkIfTextEmptyAndReturnString(incident.getVictimAffiliationString(tmpContext))); + txtSuspectRecognition.setText(checkIfTextEmptyAndReturnString(incident.getSuspectRecognitionString(tmpContext))); + txtEtcEtc.setText(checkIfTextEmptyAndReturnString(incident.getEtcOthersCategory())); this.incident = incident; @@ -316,7 +329,7 @@ public class ViewReportActivity extends BaseActivity { } private StringRequest getStringRequestAddVote(final Integer incidentid, final String votetype) { - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ProfileStatisticsFragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ProfileStatisticsFragment.java index 01b3de0..0c7805d 100644 --- a/app/src/main/java/org/deke/risk/riskahead/fragment/ProfileStatisticsFragment.java +++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ProfileStatisticsFragment.java @@ -62,7 +62,7 @@ public class ProfileStatisticsFragment extends Fragment { } private StringRequest getStringRequestProfileStats() { - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { 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 cc07c08..0877352 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 @@ -74,7 +74,7 @@ public class ReportListFragment extends Fragment{ } private StringRequest getStringRequestGetIncidentsWithPositionFromUserID() { - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { 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 c7fdf33..01e3a85 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 @@ -1,24 +1,14 @@ package org.deke.risk.riskahead.fragment; -import android.content.Context; import android.content.DialogInterface; -import android.net.Uri; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.SwitchPreference; -import android.support.v4.app.Fragment; import android.support.v7.app.AlertDialog; -import android.text.method.PasswordTransformationMethod; import android.util.Log; -import android.util.Patterns; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.TextView; import com.android.volley.Request; import com.android.volley.Response; @@ -30,12 +20,11 @@ import org.deke.risk.riskahead.SettingsActivity; import org.deke.risk.riskahead.helper.AppConfig; import org.deke.risk.riskahead.helper.AppController; import org.deke.risk.riskahead.helper.SessionManager; -import org.deke.risk.riskahead.helper.TextValidator; +import org.deke.risk.riskahead.helper.ValidatedEditTextPreference; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -45,10 +34,10 @@ public class SettingsFragment extends PreferenceFragment { private final static String TAG = SettingsFragment.class.getSimpleName(); - private EditTextPreference prefUsername; + private ValidatedEditTextPreference prefUsername; private EditTextPreference prefSurname; private EditTextPreference prefName; - private EditTextPreference prefEmail; + private ValidatedEditTextPreference prefEmail; private Preference btnRequestPW; private SwitchPreference prefNotifications; @@ -57,8 +46,6 @@ public class SettingsFragment extends PreferenceFragment { private SwitchPreference prefGPSENabled; private Preference prefLocation; - - public SessionManager session; public HashMap user; @@ -73,11 +60,18 @@ public class SettingsFragment extends PreferenceFragment { initAccountPrefs(); + initNotificationPrefs(); + + + updatePrefs(); + } + + private void initNotificationPrefs() { prefNotifications = (SwitchPreference) getPreferenceManager().findPreference("notifyEnable"); prefRadius = (ListPreference) getPreferenceManager().findPreference("notifyRadius"); prefFrequency = (ListPreference) getPreferenceManager().findPreference("notifyFrequency"); prefGPSENabled = (SwitchPreference) getPreferenceManager().findPreference("notifyEnableGPS"); - prefLocation = (Preference) getPreferenceManager().findPreference("notifyChooseLocation"); + prefLocation = getPreferenceManager().findPreference("notifyChooseLocation"); prefNotifications.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override @@ -94,7 +88,7 @@ public class SettingsFragment extends PreferenceFragment { String newStringValue = newValue.toString(); session.setNotificationRadius(Integer.valueOf(newStringValue)); ((ListPreference)preference).setValue(newValue.toString()); - ((ListPreference)preference).setSummary(prefRadius.getEntry()); + preference.setSummary(prefRadius.getEntry()); return true; } }); @@ -105,7 +99,7 @@ public class SettingsFragment extends PreferenceFragment { String newStringValue = newValue.toString(); session.setNotificationPollFreq(Integer.valueOf(newStringValue)); ((ListPreference)preference).setValue(newValue.toString()); - ((ListPreference)preference).setSummary(prefFrequency.getEntry()); + preference.setSummary(prefFrequency.getEntry()); return true; } }); @@ -115,6 +109,7 @@ public class SettingsFragment extends PreferenceFragment { public boolean onPreferenceChange(Preference preference, Object newValue) { String newStringValue = newValue.toString(); session.setGPSForNotificationsEnabled(Boolean.valueOf(newStringValue)); + updatePrefs(); return true; } }); @@ -122,23 +117,21 @@ public class SettingsFragment extends PreferenceFragment { prefLocation.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - ((SettingsActivity)getActivity()).gotoMapActivity("NoIncident"); + session.setNotificationPositionRequest(true); + ((SettingsActivity)getActivity()).gotoMapActivity(); return true; } }); - - - updatePrefs(); } private void initAccountPrefs() { - prefUsername = (EditTextPreference) getPreferenceManager().findPreference("usernamePref"); + prefUsername = (ValidatedEditTextPreference) getPreferenceManager().findPreference("usernamePref"); prefSurname = (EditTextPreference) getPreferenceManager().findPreference("surnamePref"); prefName = (EditTextPreference) getPreferenceManager().findPreference("namePref"); - prefEmail = (EditTextPreference) getPreferenceManager().findPreference("emailPref"); - btnRequestPW = (Preference) getPreferenceManager().findPreference("resetPassword"); - + prefEmail = (ValidatedEditTextPreference) getPreferenceManager().findPreference("emailPref"); + btnRequestPW = getPreferenceManager().findPreference("resetPassword"); +/* prefUsername.getEditText().addTextChangedListener(new TextValidator(prefUsername.getEditText(), getActivity().getApplicationContext()) { @Override public void validate(TextView textView, String text) { @@ -157,6 +150,7 @@ public class SettingsFragment extends PreferenceFragment { } } }); +*/ Preference.OnPreferenceChangeListener changeListener = new Preference.OnPreferenceChangeListener() { @Override @@ -220,12 +214,12 @@ public class SettingsFragment extends PreferenceFragment { prefRadius.setValue(Integer.toString(session.getNotificationRadius())); prefRadius.setSummary(prefRadius.getEntry()); prefGPSENabled.setChecked(session.isGPSForNotificationsEnabled()); - + prefLocation.setSummary("Your Location (Latitude/Longitude):\n"+Double.toString(session.getLocation().latitude)+" : "+Double.toString(session.getLocation().longitude)); if(session.isGPSForNotificationsEnabled()){ - btnRequestPW.setEnabled(false); + prefLocation.setEnabled(false); }else{ - btnRequestPW.setEnabled(true); + prefLocation.setEnabled(true); } } @@ -239,7 +233,7 @@ public class SettingsFragment extends PreferenceFragment { private StringRequest getStringRequestResetPW(final String email) { ((SettingsActivity) getActivity()).showDialog(); - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { @@ -303,7 +297,7 @@ public class SettingsFragment extends PreferenceFragment { private StringRequest getStringChangeUserSettings(final String username, final String name, final String surname, final String email) { ((SettingsActivity) getActivity()).showDialog(); - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { 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 a895fc0..955f09e 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 @@ -64,7 +64,7 @@ public class Top10Fragment extends Fragment { private StringRequest getStringRequestTop10() { - return new StringRequest(Request.Method.POST, AppConfig.URL_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { 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 abc3d4a..7c8d0d6 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 @@ -4,9 +4,7 @@ package org.deke.risk.riskahead.helper; * Created by Dennis on 09.08.2015. */ public class AppConfig { - // Server user login url - public static String URL_LOGIN = "http://www.riskahead.de/helper/rest/"; + public static String URL_ENCRYPTED = "https://www.riskahead.de/helper/rest/"; - // Server user register url - public static String URL_REGISTER = "http://www.riskahead.de/helper/rest/"; + public static String URL_DEFAULT = "http://www.riskahead.de/helper/rest/"; } 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 b689f76..5fc8429 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 @@ -278,6 +278,7 @@ public abstract class BaseActivity extends AppCompatActivity { Log.d("Unknown switch page: ", Integer.toString(position)); break; } + session.setNotificationPositionRequest(false); if(intent != null) BaseActivity.this.startActivity(intent); return false; } 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 6d52a30..0556e23 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 @@ -102,7 +102,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_REGISTER, new Response.Listener() { + return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener() { @Override public void onResponse(String response) { diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/SessionManager.java b/app/src/main/java/org/deke/risk/riskahead/helper/SessionManager.java index 04f872e..c48c4f9 100644 --- a/app/src/main/java/org/deke/risk/riskahead/helper/SessionManager.java +++ b/app/src/main/java/org/deke/risk/riskahead/helper/SessionManager.java @@ -47,6 +47,7 @@ public class SessionManager { public static final String KEY_NOTIFY_RADIUS = "notifyRadius"; public static final String KEY_NOTIFY_POLLINGFREQ = "notifyPollingfreq"; public static final String KEY_NOTIFY_GPS = "notifyGPSEnabled"; + public static final String KEY_NOTIFY_REQUEST_POS = "notifyGPSPositionRequest"; @@ -95,10 +96,7 @@ public class SessionManager { return status.getString(KEY_LAST_NOTIFICATION, ""); } - public void setNotificationEnabled(boolean isEnabled){ - statusEditor.putBoolean(KEY_NOTIFY_ENABLED, isEnabled); - statusEditor.apply(); - } + public void setNotificationRadius(int radius){ statusEditor.putInt(KEY_NOTIFY_RADIUS, radius); @@ -110,10 +108,24 @@ public class SessionManager { statusEditor.apply(); } + public void setNotificationEnabled(boolean isEnabled){ + statusEditor.putBoolean(KEY_NOTIFY_ENABLED, isEnabled); + statusEditor.apply(); + } + public Boolean getNotificationEnabled(){ return status.getBoolean(KEY_NOTIFY_ENABLED, true); } + public void setNotificationPositionRequest(boolean isEnabled){ + statusEditor.putBoolean(KEY_NOTIFY_REQUEST_POS, isEnabled); + statusEditor.apply(); + } + + public Boolean getNotificationPositionRequest(){ + return status.getBoolean(KEY_NOTIFY_REQUEST_POS, false); + } + public int getNotificationRadius(){ return status.getInt(KEY_NOTIFY_RADIUS, 5); } 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 new file mode 100644 index 0000000..24543ce --- /dev/null +++ b/app/src/main/java/org/deke/risk/riskahead/helper/ValidatedEditTextPreference.java @@ -0,0 +1,102 @@ +package org.deke.risk.riskahead.helper; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.preference.EditTextPreference; +import android.app.AlertDialog; +import android.text.Editable; +import android.text.InputType; +import android.text.TextWatcher; +import android.util.AttributeSet; +import android.util.Log; +import android.util.Patterns; +import android.widget.Button; + +/** + * Copyright 2015 RiskAhead Dennis Thiessen + *

+ * Created by Dennis Thiessen on 06.01.2016. + */ +public class ValidatedEditTextPreference extends EditTextPreference +{ + + private final static int TYPE_VARIATION_EMAIL_ADDRESS = 33; + + public ValidatedEditTextPreference(Context ctx, AttributeSet attrs, int defStyle) + { + super(ctx, attrs, defStyle); + } + + public ValidatedEditTextPreference(Context ctx, AttributeSet attrs) + { + super(ctx, attrs); + } + + private class EditTextWatcher implements TextWatcher + { + @Override + public void onTextChanged(CharSequence s, int start, int before, int count){} + + @Override + public void beforeTextChanged(CharSequence s, int start, int before, int count){} + + @Override + public void afterTextChanged(Editable s) + { + onEditTextChanged(); + } + } + EditTextWatcher m_watcher = new EditTextWatcher(); + + /** + * Return true in order to enable positive button or false to disable it. + */ + protected boolean onCheckValue(String value) + { + boolean enable = true; + + if((getEditText().getInputType() & InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS) != 0){ + if (!Patterns.EMAIL_ADDRESS.matcher(value).matches()) { + getEditText().setError("Please enter a valid email address\n" + + "e.g.: text@abc.de"); + enable = false; + } + }else{ + if (value.length() < 5) { + getEditText().setError("Your username must be at least\n" + + "5 characters in length."); + enable = false; + } + } + Log.d("SettingValidator", "inputtype: "+getEditText().getInputType()); + return enable; + } + + protected void onEditTextChanged() + { + boolean enable = onCheckValue(getEditText().getText().toString()); + + Dialog dlg = getDialog(); + + + if(dlg instanceof AlertDialog){ + AlertDialog alertDlg = (AlertDialog)dlg; + Button btn = alertDlg.getButton(AlertDialog.BUTTON_POSITIVE); + btn.setEnabled(enable); + Log.d("SettingValidator", "btnSetEnable durchgeführt: "+btn.isEnabled()); + } + + + } + + @Override + protected void showDialog(Bundle state) + { + super.showDialog(state); + + getEditText().removeTextChangedListener(m_watcher); + getEditText().addTextChangedListener(m_watcher); + onEditTextChanged(); + } +} diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 476d834..3f2ab4f 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -124,8 +124,6 @@ android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_below="@+id/btn_register" - android:clickable="true" - android:onClick="onClick" android:text="@string/lbl_login_resendPW" android:textAppearance="?android:attr/textAppearanceSmall" /> diff --git a/app/src/main/res/layout/activity_view_report.xml b/app/src/main/res/layout/activity_view_report.xml index 4e40bdb..bcf63a7 100644 --- a/app/src/main/res/layout/activity_view_report.xml +++ b/app/src/main/res/layout/activity_view_report.xml @@ -220,6 +220,21 @@ + + + + + + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7d0447b..b5bc407 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1,6 +1,7 @@ RiskAhead + Login Register @@ -17,6 +18,9 @@ Signing in... Signing out... + RiskAhead + RiskAhead + Open navigation drawer Close navigation drawer @@ -25,8 +29,6 @@ Location Search Settings - RiskAhead - RiskAhead Base User Profile Risk Map @@ -35,7 +37,6 @@ Subscriptions View Report Report List - Report Incident About Language @@ -77,7 +78,6 @@ {fa_search} View Posts Top 10 - {fa_paint_brush} Report this position! Home @@ -112,6 +112,7 @@ Could not retrieve data from server. Please check internet connection. Please wait... Retrieve data from server + Report Incident Author: Rating: @@ -119,13 +120,13 @@ Victim: Time: - Please choose... From date (yyyy-MM-dd) From time To date (yyyy-MM-dd) To time - + Incident Category + Incident Subcategory Was ist passiert? Wo passiert es? @@ -141,9 +142,17 @@ Wie erkennt man die Täter? Weiteres? Weitere Details... + Bitte wähle zunächst einen Ort auf der Karte aus + Time Suspect Victim + Weapons + Quantity + Origin of victim + Vehicle + Victim affiliation + Suspect attributes Allgemeiner Vorfall/Situation @@ -167,7 +176,7 @@ Sexuelle Belästigung Beleidigung, Drohung - Vernehmung/Befragung öffentlich + Nötigung/Vernehmung Aufhetzung Sonstiges... @@ -194,7 +203,7 @@ Temperaturextrem Wind, Sturm, Orkan, Tornado - Überschwemmung/-flutung + Überschwemmung/-flutung, Tsunami Erdbeben, Berghang Einsturz Feuer, Rauch, Vulkanausbruch Hungersnot, Tierplage @@ -208,7 +217,7 @@ Brandkatastrophe Chemiekatastrophe, Ölpest Seuche, Krankheit - Chaos Bevölkerung + Chaos Bevölkerung, Anarchie Sonstiges... @@ -221,8 +230,8 @@ - Vormittags - Tagsüber + Morgens + Mittags Abends Nachts @@ -247,7 +256,7 @@ Alltagsgegenstände Schusswaffe Explosionswaffen oder Sprengkörper - Großkaliber z.B. Panzer, Flugbombe + Großwaffen z.B. Panzer, Flugbombe Sonstiges… Weiß ich nicht @@ -264,7 +273,8 @@ Frauen Kinder Männer - Tieren + Jede Person + Tiere Gebäude/Infrastruktur @@ -303,6 +313,98 @@ Tiere Sonstiges… + Settings + + + + + General + + Enable social recommendations + Recommendations for people to contact + based on your message history + + + Display name + John Smith + + Add friends to messages + + Always + When possible + Never + + + 1 + 0 + -1 + + + + Data & sync + + Sync frequency + + 15 minutes + 30 minutes + 1 hour + 3 hours + 6 hours + Never + + + 15 + 30 + 60 + 180 + 360 + -1 + + + System sync settings + + + Notifications + + New message notifications + + Ringtone + Silent + + Vibrate + Settings + More Details + + + 1 KM + 5 KM + 10 KM + 15 KM + + + + 1 + 5 + 10 + 15 + + + + Every 5 Minutes + Every 10 Minutes + Every 15 Minutes + Every 30 Minutes + Every hour + + + + 5 + 10 + 15 + 30 + 60 + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 82ccc0a..0e7f0b2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -177,7 +177,7 @@ Sexuelle Belästigung Beleidigung, Drohung - Vernehmung/Befragung öffentlich + Nötigung/Vernehmung Aufhetzung Sonstiges... @@ -204,7 +204,7 @@ Temperaturextrem Wind, Sturm, Orkan, Tornado - Überschwemmung/-flutung + Überschwemmung/-flutung, Tsunami Erdbeben, Berghang Einsturz Feuer, Rauch, Vulkanausbruch Hungersnot, Tierplage @@ -218,7 +218,7 @@ Brandkatastrophe Chemiekatastrophe, Ölpest Seuche, Krankheit - Chaos Bevölkerung + Chaos Bevölkerung, Anarchie Sonstiges... @@ -231,8 +231,8 @@ - Vormittags - Tagsüber + Morgens + Mittags Abends Nachts @@ -257,7 +257,7 @@ Alltagsgegenstände Schusswaffe Explosionswaffen oder Sprengkörper - Großkaliber z.B. Panzer, Flugbombe + Großwaffen z.B. Panzer, Flugbombe Sonstiges… Weiß ich nicht @@ -274,7 +274,8 @@ Frauen Kinder Männer - Tieren + Jede Person + Tiere Gebäude/Infrastruktur @@ -373,6 +374,7 @@ Vibrate Settings + More Details 1 KM diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index 705beff..b7a0680 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -5,7 +5,7 @@ - -