DT @25.01.2016: 1.7 release

This commit is contained in:
Dennis Thießen
2016-01-25 13:00:22 +01:00
parent e96350f61f
commit 84d659c8c0
41 changed files with 336 additions and 251 deletions

Binary file not shown.

View File

@@ -19,8 +19,8 @@ android {
applicationId "org.deke.risk.riskahead" applicationId "org.deke.risk.riskahead"
minSdkVersion 15 minSdkVersion 15
targetSdkVersion 22 targetSdkVersion 22
versionCode 11 versionCode 12
versionName "1.6.2" versionName "1.7"
} }
buildTypes { buildTypes {
release { release {

View File

@@ -34,6 +34,7 @@ public class MainActivity extends BaseActivity{
private final static String TAG = MainActivity.class.getSimpleName(); private final static String TAG = MainActivity.class.getSimpleName();
private Handler mHandler = new Handler(); private Handler mHandler = new Handler();
private TextView notificationStatus;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -85,6 +86,21 @@ public class MainActivity extends BaseActivity{
@Override @Override
public void run() { public void run() {
requestNumberOfIncidents(); requestNumberOfIncidents();
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(getResources().getColor(R.color.md_green_400));
}else{
notificationStatus.setText(getString(R.string.txt_notifystatus_activatedbutnotready));
notificationStatus.setTextColor(getResources().getColor(R.color.md_yellow_400));
}
}else{
notificationStatus.setText(getString(R.string.txt_notifystatus_deactivated));
notificationStatus.setTextColor(getResources().getColor(R.color.md_red_400));
}
mHandler.postDelayed(mHandlerTask, AppConfig.UPDATE_COUNT_INTERVAL); mHandler.postDelayed(mHandlerTask, AppConfig.UPDATE_COUNT_INTERVAL);
} }
}; };
@@ -95,7 +111,6 @@ public class MainActivity extends BaseActivity{
AppController.getInstance().addToRequestQueue(strReq, tag_string_req); AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
} }
private StringRequest getStringRequestIncidentCount() { private StringRequest getStringRequestIncidentCount() {
return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener<String>() { return new StringRequest(Request.Method.POST, AppConfig.URL_DEFAULT, new Response.Listener<String>() {

View File

@@ -93,6 +93,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
private LatLng curSouthwestBounds; private LatLng curSouthwestBounds;
private boolean markersShown = false; private boolean markersShown = false;
private boolean showAdd = true;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -108,6 +109,8 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
MIN_ZOOM_LEVEL = 9; MIN_ZOOM_LEVEL = 9;
} }
showAdd = true;
MapFragment mapFragment = (MapFragment) getFragmentManager() MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.frag_maps_map); .findFragmentById(R.id.frag_maps_map);
mapFragment.getMapAsync(this); mapFragment.getMapAsync(this);
@@ -158,7 +161,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
if (getIntent().hasExtra(AppConfig.EXTRA_MAP_TYPE)) { if (getIntent().hasExtra(AppConfig.EXTRA_MAP_TYPE)) {
if (getIntent().getStringExtra(AppConfig.EXTRA_MAP_TYPE).equals(AppConfig.INTENT_MAP_GETINCLOC)) { if (getIntent().getStringExtra(AppConfig.EXTRA_MAP_TYPE).equals(AppConfig.INTENT_MAP_GETINCLOC)) {
addButton.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.md_green_400))); addButton.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.md_green_400)));
showAdd = false;
Drawable identityIcon = new IconicsDrawable(getApplicationContext()) Drawable identityIcon = new IconicsDrawable(getApplicationContext())
.icon(GoogleMaterial.Icon.gmd_done) .icon(GoogleMaterial.Icon.gmd_done)
.color(ContextCompat.getColor(getApplicationContext(), R.color.white)) .color(ContextCompat.getColor(getApplicationContext(), R.color.white))
@@ -174,7 +177,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
}); });
} else if (getIntent().getStringExtra(AppConfig.EXTRA_MAP_TYPE).equals(AppConfig.INTENT_MAP_GETNOTIFY)) { } else if (getIntent().getStringExtra(AppConfig.EXTRA_MAP_TYPE).equals(AppConfig.INTENT_MAP_GETNOTIFY)) {
addButton.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.md_green_400))); addButton.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.md_green_400)));
showAdd = false;
Drawable identityIcon = new IconicsDrawable(getApplicationContext()) Drawable identityIcon = new IconicsDrawable(getApplicationContext())
.icon(GoogleMaterial.Icon.gmd_done) .icon(GoogleMaterial.Icon.gmd_done)
.color(ContextCompat.getColor(getApplicationContext(), R.color.white)) .color(ContextCompat.getColor(getApplicationContext(), R.color.white))
@@ -205,9 +208,9 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
{ {
mClusterManager.onCameraChange(position); mClusterManager.onCameraChange(position);
if(position.zoom < MIN_ZOOM_LEVEL) { if((position.zoom < MIN_ZOOM_LEVEL) && !session.getSubsPremium()) {
mMap.animateCamera(CameraUpdateFactory.zoomTo(MIN_ZOOM_LEVEL)); mMap.animateCamera(CameraUpdateFactory.zoomTo(MIN_ZOOM_LEVEL));
showMessage("Get Premiuim to view the Full Map!"); showMessage(getString(R.string.txt_map_zoomoutpremium));
return; return;
} }
@@ -594,7 +597,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(point, DEFAULT_ZOOM_LEVEL)); mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(point, DEFAULT_ZOOM_LEVEL));
if(getIntent().hasExtra(AppConfig.EXTRA_MAP_TYPE)) mMarker = mMap.addMarker(new MarkerOptions().position(point)); if(getIntent().hasExtra(AppConfig.EXTRA_MAP_TYPE)) mMarker = mMap.addMarker(new MarkerOptions().position(point));
} else { } else {
myPosition = session.getLocation(); LatLng myPosition = session.getLocation();
if ((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0)) if ((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0))
{ {
@@ -715,8 +718,8 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
@Override @Override
protected void onPause(){ protected void onPause(){
super.onPause(); super.onPause();
if(showAdd) showAd();
showAd();
} }
@Override @Override

View File

@@ -121,7 +121,13 @@ public class SubscriptionsActivity extends BaseActivity{
private void syncWithDatabase(ArrayList<String> ownedSkus) { private void syncWithDatabase(ArrayList<String> ownedSkus) {
Log.d(TAG, "Sync subs with database..."); Log.d(TAG, "Sync subs with database...");
if(dbItems != null){
Log.d(TAG, "Database shows following active subs: "+dbItems.toString()); Log.d(TAG, "Database shows following active subs: "+dbItems.toString());
}else{
Log.d(TAG, "No active subs in Database");
}
ArrayList<String> subs = new ArrayList<>(); ArrayList<String> subs = new ArrayList<>();
subs.add("extra_functions_01"); subs.add("extra_functions_01");
@@ -130,10 +136,9 @@ public class SubscriptionsActivity extends BaseActivity{
subs.add("no_ads_02"); subs.add("no_ads_02");
for(String sub : subs){ for(String sub : subs){
boolean itemFound = false; boolean itemFound = false;
if(dbItems.containsKey(sub)){ if(dbItems != null && dbItems.containsKey(sub)){
for(String sku : ownedSkus){ for(String sku : ownedSkus){
itemFound = itemFound || sku.equals(sub); itemFound = itemFound || sku.equals(sub);
} }
@@ -145,8 +150,14 @@ public class SubscriptionsActivity extends BaseActivity{
} }
} }
for(String sku : ownedSkus){
if(dbItems != null && dbItems.containsKey(sku)){
// everything in sync
}else{
Log.d(TAG, "Subscription "+sku+" not found in DB, add subscription!");
addSubscription(sku, "subs", "0", "0");
}
}
} }
private void initBillingOptions() { private void initBillingOptions() {
@@ -332,11 +343,13 @@ public class SubscriptionsActivity extends BaseActivity{
try { try {
JSONObject jObj = new JSONObject(response); JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error"); boolean error = jObj.getBoolean("error");
dbItems = new HashMap<>();
if (error) { if (error) {
String errorMsg = jObj.getString("error_msg"); String errorMsg = jObj.getString("error_msg");
Log.e(TAG, "Error getting subscription (Server returned error): " + errorMsg); Log.d(TAG, "Error getting subscription (Server returned error): " + errorMsg);
dbItems = null; dbItems = null;
}else{ }else{
JSONArray subs = jObj.getJSONArray("msg"); JSONArray subs = jObj.getJSONArray("msg");
Log.d(TAG, "SUB FROM DB RECEIVED"); Log.d(TAG, "SUB FROM DB RECEIVED");
@@ -344,9 +357,9 @@ public class SubscriptionsActivity extends BaseActivity{
for(int i = 0;i < subs.length();i++){ for(int i = 0;i < subs.length();i++){
dbItems.put(subs.getJSONObject(i).getString("productId"),subs.getJSONObject(i).getString("id")); dbItems.put(subs.getJSONObject(i).getString("productId"),subs.getJSONObject(i).getString("id"));
} }
}
syncWithDatabase(ownedSkus); syncWithDatabase(ownedSkus);
}
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();

View File

@@ -105,17 +105,17 @@ public class ProfileStatisticsFragment extends Fragment {
if(jSubs.getJSONObject(i).getString("productId").contains("no_ads")){ if(jSubs.getJSONObject(i).getString("productId").contains("no_ads")){
btnMembershipType.setBootstrapBrand(DefaultBootstrapBrand.PRIMARY); btnMembershipType.setBootstrapBrand(DefaultBootstrapBrand.PRIMARY);
btnMembershipType.setText(getResources().getString(R.string.lbl_membershiptype_addfree)); btnMembershipType.setText(getResources().getString(R.string.lbl_membershiptype_addfree));
((ProfileActivity) getActivity()).session.setSubsPremium(true); ((ProfileActivity) getActivity()).session.setSubsNoAds(true);
}else{ }else{
((ProfileActivity) getActivity()).session.setSubsPremium(false); ((ProfileActivity) getActivity()).session.setSubsNoAds(false);
} }
if(jSubs.getJSONObject(i).getString("productId").contains("extra_functions")){ if(jSubs.getJSONObject(i).getString("productId").contains("extra_functions")){
btnMembershipType.setBootstrapBrand(DefaultBootstrapBrand.WARNING); btnMembershipType.setBootstrapBrand(DefaultBootstrapBrand.WARNING);
btnMembershipType.setText(getResources().getString(R.string.lbl_membershiptype_premium)); btnMembershipType.setText(getResources().getString(R.string.lbl_membershiptype_premium));
((ProfileActivity) getActivity()).session.setSubsNoAds(true); ((ProfileActivity) getActivity()).session.setSubsPremium(true);
}else{ }else{
((ProfileActivity) getActivity()).session.setSubsNoAds(false); ((ProfileActivity) getActivity()).session.setSubsPremium(false);
} }
} }
} }

View File

@@ -130,6 +130,8 @@ public class SettingsFragment extends PreferenceFragment {
prefGPSENabled.setEnabled(false); prefGPSENabled.setEnabled(false);
prefLocation.setEnabled(false); prefLocation.setEnabled(false);
session.setGPSForNotificationsEnabled(true);
prefGPSENabled.setTitle(prefGPSENabled.getTitle() + " " + getResources().getString(R.string.txt_premium_only)); prefGPSENabled.setTitle(prefGPSENabled.getTitle() + " " + getResources().getString(R.string.txt_premium_only));
prefLocation.setTitle(prefLocation.getTitle() + " " + getResources().getString(R.string.txt_premium_only)); prefLocation.setTitle(prefLocation.getTitle() + " " + getResources().getString(R.string.txt_premium_only));
} }

View File

@@ -51,7 +51,7 @@ public class AppRater {
alert.setTitle(R.string.txt_rate_title); alert.setTitle(R.string.txt_rate_title);
alert.setMessage(R.string.txt_rate_message); alert.setMessage(R.string.txt_rate_message);
alert.setIcon(R.drawable.logo_512w); alert.setIcon(R.drawable.logo_380);
alert.setCancelable(true); alert.setCancelable(true);
alert.setPositiveButton(R.string.txt_rate_retenowbtn, alert.setPositiveButton(R.string.txt_rate_retenowbtn,
new DialogInterface.OnClickListener() { new DialogInterface.OnClickListener() {

View File

@@ -1,21 +1,16 @@
package org.deke.risk.riskahead.helper; package org.deke.risk.riskahead.helper;
import android.app.ActionBar;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.AlarmManager; import android.app.AlarmManager;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.net.Uri; import android.net.Uri;
@@ -91,9 +86,6 @@ public abstract class BaseActivity extends AppCompatActivity {
public Drawer navDrawer = null; public Drawer navDrawer = null;
public Toolbar mToolbar; public Toolbar mToolbar;
public LocationManager locationManager;
public LatLng myPosition;
private static final int TIME_INTERVAL = 2000; // # milliseconds, desired time passed between two back presses. private static final int TIME_INTERVAL = 2000; // # milliseconds, desired time passed between two back presses.
private long mBackPressed; private long mBackPressed;
@@ -125,11 +117,6 @@ public abstract class BaseActivity extends AppCompatActivity {
setSupportActionBar(mToolbar); setSupportActionBar(mToolbar);
initNavigationDrawer(savedInstanceState); initNavigationDrawer(savedInstanceState);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 5000, 10, locationListener);
overridePendingTransition(R.anim.fade_in_anim, R.anim.fade_out_anim); overridePendingTransition(R.anim.fade_in_anim, R.anim.fade_out_anim);
if(!isMyNotificationServiceRunning()){ if(!isMyNotificationServiceRunning()){
@@ -169,41 +156,7 @@ public abstract class BaseActivity extends AppCompatActivity {
}, intentFilter); }, intentFilter);
} }
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()) {
Log.d(TAG,"Save GPS as new location...");
session.setLocation(Double.doubleToRawLongBits(loc.getLatitude()), Double.doubleToRawLongBits(loc.getLongitude()));
}else{
Log.d(TAG,"Don't Save GPS as new location because GPS for notifications is disabled...");
}
}
@Override
public void onProviderDisabled(String provider) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
private void initProgressDialog() { private void initProgressDialog() {
/*
pDialog = new ProgressDialog(this);
pDialog = new ProgressDialog(this);
pDialog.setCancelable(false);
pDialog.setTitle(getString(R.string.progress_getdata_title));
pDialog.setMessage(getString(R.string.progress_getdata_text));*/
pDialog = new Dialog(this); pDialog = new Dialog(this);
pDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); pDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
pDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); pDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
@@ -262,9 +215,9 @@ public abstract class BaseActivity extends AppCompatActivity {
AccountHeader headerResult = new AccountHeaderBuilder() AccountHeader headerResult = new AccountHeaderBuilder()
.withActivity(this) .withActivity(this)
.withHeaderBackground(R.drawable.header) .withHeaderBackground(R.drawable.header2)
.addProfiles( .addProfiles(
new ProfileDrawerItem().withName(user.get("username")).withEmail(user.get("email")).withIcon(ContextCompat.getDrawable(getApplicationContext(), R.drawable.logo_riskahead)) new ProfileDrawerItem().withName(user.get("username")).withEmail(user.get("email")).withIcon(ContextCompat.getDrawable(getApplicationContext(), R.drawable.logo_riskahead_header))
) )
.build(); .build();
@@ -351,8 +304,11 @@ public abstract class BaseActivity extends AppCompatActivity {
public void showAd(){ public void showAd(){
if (mInterstitialAd.isLoaded()) { if (mInterstitialAd.isLoaded()) {
if(!session.getSubsNoAds()){ Log.d(TAG,"Loading Add...");
if(!session.getSubsNoAds() || !session.getSubsPremium()){
mInterstitialAd.show(); mInterstitialAd.show();
}else{
Log.d(TAG,"Add not shown because user has status.");
} }
} }
} }
@@ -517,7 +473,7 @@ public abstract class BaseActivity extends AppCompatActivity {
private void showFeedbackDialog() { private void showFeedbackDialog() {
AlertDialog.Builder alert=new AlertDialog.Builder(this); AlertDialog.Builder alert=new AlertDialog.Builder(this);
alert.setTitle(R.string.txt_feedback_title); alert.setTitle(R.string.menu_action_feedback);
alert.setMessage(R.string.txt_feedback_message); alert.setMessage(R.string.txt_feedback_message);
final EditText input = new EditText(BaseActivity.this); final EditText input = new EditText(BaseActivity.this);
@@ -532,7 +488,7 @@ public abstract class BaseActivity extends AppCompatActivity {
input.setGravity(Gravity.TOP); input.setGravity(Gravity.TOP);
input.setHint(R.string.txt_feedback_hint); input.setHint(R.string.txt_feedback_hint);
alert.setIcon(R.drawable.logo_512w); alert.setIcon(R.drawable.logo_380);
alert.setCancelable(true); alert.setCancelable(true);
alert.setPositiveButton(R.string.txt_feedback_sendbtn, alert.setPositiveButton(R.string.txt_feedback_sendbtn,
new DialogInterface.OnClickListener() { new DialogInterface.OnClickListener() {

View File

@@ -6,6 +6,9 @@ import android.app.PendingIntent;
import android.app.Service; import android.app.Service;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.*; import android.os.*;
import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder; import android.support.v4.app.TaskStackBuilder;
@@ -39,6 +42,9 @@ public class NotificationService extends Service {
public SessionManager session; public SessionManager session;
public HashMap<String, String> user; public HashMap<String, String> user;
public LocationManager locationManager;
public LatLng myPosition;
public NotificationService() { public NotificationService() {
super(); super();
} }
@@ -51,9 +57,50 @@ public class NotificationService extends Service {
session = new SessionManager(getApplicationContext()); session = new SessionManager(getApplicationContext());
user = session.getUserDetails(); user = session.getUserDetails();
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 5000, 10, locationListener);
mNotifyTask.run(); 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){
session.setLocation(Double.doubleToRawLongBits(loc.getLatitude()), Double.doubleToRawLongBits(loc.getLongitude()));
mNotifyHandler.removeCallbacksAndMessages(null);
mNotifyTask.run();
}else{
session.setLocation(Double.doubleToRawLongBits(loc.getLatitude()), Double.doubleToRawLongBits(loc.getLongitude()));
}
session.setNotificationServiceReady(true);
}else{
Log.d(TAG,"Don't Save GPS as new location because GPS for notifications is disabled...: "+session.isGPSForNotificationsEnabled());
}
}
@Override
public void onProviderDisabled(String provider) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
@Override @Override
public IBinder onBind(Intent intent) { public IBinder onBind(Intent intent) {
return null; return null;
@@ -71,8 +118,9 @@ public class NotificationService extends Service {
Log.d(this.toString(), "Run Notification Task. Notifications enabled = " + notifyEnabled); Log.d(this.toString(), "Run Notification Task. Notifications enabled = " + notifyEnabled);
if(notifyEnabled){
if ((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0)) { if ((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0)) {
session.setNotificationServiceReady(true);
String lastNotificationTime; String lastNotificationTime;
if (session.getLastNotification().equals("")) { if (session.getLastNotification().equals("")) {
@@ -86,7 +134,12 @@ public class NotificationService extends Service {
StringRequest strReq = getStringRequestIncidentsFromAreaAndTime(myPosition.latitude, myPosition.longitude, radius, lastNotificationTime); StringRequest strReq = getStringRequestIncidentsFromAreaAndTime(myPosition.latitude, myPosition.longitude, radius, lastNotificationTime);
String tag_string_req = "req_incidents"; String tag_string_req = "req_incidents";
AppController.getInstance().addToRequestQueue(strReq, tag_string_req); AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}else{
Log.d(TAG,"No position found. No notification send.");
session.setNotificationServiceReady(false);
} }
}
mNotifyHandler.postDelayed(mNotifyTask, pollFrequency); mNotifyHandler.postDelayed(mNotifyTask, pollFrequency);
} }

View File

@@ -47,6 +47,7 @@ public class SessionManager {
public static final String KEY_NOTIFY_RADIUS = "notifyRadius"; public static final String KEY_NOTIFY_RADIUS = "notifyRadius";
public static final String KEY_NOTIFY_POLLINGFREQ = "notifyPollingfreq"; public static final String KEY_NOTIFY_POLLINGFREQ = "notifyPollingfreq";
public static final String KEY_NOTIFY_GPS = "notifyGPSEnabled"; public static final String KEY_NOTIFY_GPS = "notifyGPSEnabled";
public static final String KEY_NOTIFY_READY = "notifyReady";
public static final String KEY_SUBS_NOADS = "subs_noads"; public static final String KEY_SUBS_NOADS = "subs_noads";
public static final String KEY_SUBS_PREMIUM = "subs_premium"; public static final String KEY_SUBS_PREMIUM = "subs_premium";
@@ -86,7 +87,7 @@ public class SessionManager {
} }
public boolean isGPSForNotificationsEnabled(){ public boolean isGPSForNotificationsEnabled(){
return status.getBoolean(KEY_NOTIFY_GPS, false); return status.getBoolean(KEY_NOTIFY_GPS, true);
} }
public void setLastNotification(String time){ public void setLastNotification(String time){
@@ -103,6 +104,15 @@ public class SessionManager {
statusEditor.apply(); statusEditor.apply();
} }
public void setNotificationServiceReady(boolean isReady) {
statusEditor.putBoolean(KEY_NOTIFY_READY, isReady);
statusEditor.apply();
}
public boolean getNotificationServiceReady(){
return status.getBoolean(KEY_NOTIFY_READY, false);
}
public void setNotificationPollFreq(int pollingFreqInMinutes){ public void setNotificationPollFreq(int pollingFreqInMinutes){
statusEditor.putInt(KEY_NOTIFY_POLLINGFREQ, pollingFreqInMinutes); statusEditor.putInt(KEY_NOTIFY_POLLINGFREQ, pollingFreqInMinutes);
statusEditor.apply(); statusEditor.apply();
@@ -188,4 +198,6 @@ public class SessionManager {
public void removeUser(){ public void removeUser(){
userdata.edit().clear().apply(); userdata.edit().clear().apply();
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -20,7 +20,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="match_parent"
android:id="@+id/imageView" android:id="@+id/imageView"
android:src="@drawable/bg_main_map" android:src="@drawable/bg_withlogo_2"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:alpha="0.9" /> android:alpha="0.9" />
@@ -71,15 +71,34 @@
</LinearLayout> </LinearLayout>
<ImageView <LinearLayout
android:layout_width="200dp" android:id="@+id/layoutNotifications"
android:layout_height="200dp" android:gravity="center"
android:id="@+id/imageView3" android:orientation="horizontal"
android:src="@drawable/logo_512w" android:layout_height="wrap_content"
android:scaleType="centerCrop" android:layout_width="match_parent"
android:layout_centerInParent="true" android:layout_above="@+id/layoutFooter">
android:layout_below="@+id/linearLayout"
android:alpha="0.8" /> <TextView
android:id="@+id/lbl_main_notifystatus"
android:text="@string/txt_notifystatus_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/white"/>
<TextView
android:id="@+id/lbl_main_notifystatus_status"
android:text="AUS"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/white"/>
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/layoutFooter" android:id="@+id/layoutFooter"

View File

@@ -30,7 +30,6 @@
android:text="@string/btn_start_login" android:text="@string/btn_start_login"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:backgroundTint="@color/bg_common_trans"
android:layout_weight="1" android:layout_weight="1"
android:onClick="gotoLogin" /> android:onClick="gotoLogin" />
@@ -39,7 +38,6 @@
android:text="@string/btn_start_register" android:text="@string/btn_start_register"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:backgroundTint="@color/bg_common_trans"
android:layout_weight="1" android:layout_weight="1"
android:onClick="gotoRegister" /> android:onClick="gotoRegister" />

View File

@@ -30,6 +30,7 @@
<string name="menu_action_about">Info</string> <string name="menu_action_about">Info</string>
<string name="menu_action_help">Hilfe &amp; Kontakt</string> <string name="menu_action_help">Hilfe &amp; Kontakt</string>
<string name="menu_action_exit">Beenden</string> <string name="menu_action_exit">Beenden</string>
<string name="menu_action_refresh">Karte aktualisieren</string>
<string name="lbl_main_txt1">Wir haben aktuell &#8230;</string> <string name="lbl_main_txt1">Wir haben aktuell &#8230;</string>
<string name="lbl_main_txt2">&#8230; gemeldete Vorfälle</string> <string name="lbl_main_txt2">&#8230; gemeldete Vorfälle</string>
@@ -125,7 +126,6 @@
<string name="lbl_profile_points_someone">hat aktuell &#8230;</string> <string name="lbl_profile_points_someone">hat aktuell &#8230;</string>
<string name="lbl_profile_ranking_someone">und sein Rang ist &#8230;</string> <string name="lbl_profile_ranking_someone">und sein Rang ist &#8230;</string>
<string name="lbl_profile_membersince_someone">unterstützt RiskAhead seit</string> <string name="lbl_profile_membersince_someone">unterstützt RiskAhead seit</string>
<string name="lbl_profile_top10">Top 10</string> <string name="lbl_profile_top10">Top 10</string>
<string name="lbl_profile_stats">Statistik</string> <string name="lbl_profile_stats">Statistik</string>
<string name="lbl_profile_reports">Meldungen</string> <string name="lbl_profile_reports">Meldungen</string>
@@ -143,7 +143,6 @@
<string name="txt_notification_title_multi">Neue Vorfälle in deiner Nähe gemeldet!</string> <string name="txt_notification_title_multi">Neue Vorfälle in deiner Nähe gemeldet!</string>
<string name="txt_notification_context"> neuer Vorfall. Pass auf!</string> <string name="txt_notification_context"> neuer Vorfall. Pass auf!</string>
<string name="txt_notification_context_multi"> neue Vorfälle. Pass auf!</string> <string name="txt_notification_context_multi"> neue Vorfälle. Pass auf!</string>
<string name="btn_reportwf_reportnow">Jetzt melden!</string> <string name="btn_reportwf_reportnow">Jetzt melden!</string>
<string name="btn_reportwf_next">Weiter</string> <string name="btn_reportwf_next">Weiter</string>
@@ -154,6 +153,7 @@
<string name="txt_viewreport_deletetitle">Vorfall löschen?</string> <string name="txt_viewreport_deletetitle">Vorfall löschen?</string>
<string name="txt_viewreport_deletetext">Willst du wirklich diesen Vorfall löschen? Ein gelöschter Vorfall kann nicht wiederhergestellt werden.</string> <string name="txt_viewreport_deletetext">Willst du wirklich diesen Vorfall löschen? Ein gelöschter Vorfall kann nicht wiederhergestellt werden.</string>
<string name="txt_errormsg_suffix">Bitte versuche es später erneut oder schreibe dem RiskAhead Support.</string> <string name="txt_errormsg_suffix">Bitte versuche es später erneut oder schreibe dem RiskAhead Support.</string>
<string name="txt_errormsg_login">Anmeldung ist fehlgeschlagen.</string> <string name="txt_errormsg_login">Anmeldung ist fehlgeschlagen.</string>
<string name="txt_errormsg_register">Registrierung ist fehlgeschlagen.</string> <string name="txt_errormsg_register">Registrierung ist fehlgeschlagen.</string>
@@ -204,9 +204,8 @@
<string name="txt_top10_membersince">Mitglied seit</string> <string name="txt_top10_membersince">Mitglied seit</string>
<string name="menu_action_feedback">Feedback</string> <string name="menu_action_feedback">Feedback</string>
<string name="txt_feedback_title">Feedback</string> <string name="txt_feedback_message">Sende uns dein Feedback um uns dabei zu helfen RiskAhead besser zu machen</string>
<string name="txt_feedback_message">Sende uns Verbesserungsvorschläge, Lob und Kritik um uns dabei zu helfen RiskAhead zu verbessern.</string> <string name="txt_feedback_hint">Hier dein Feedback eingeben</string>
<string name="txt_feedback_hint">Trage dein Feedback hier ein</string>
<string name="txt_feedback_sendbtn">Senden</string> <string name="txt_feedback_sendbtn">Senden</string>
<string name="txt_feedback_cancelbtn">Abbrechen</string> <string name="txt_feedback_cancelbtn">Abbrechen</string>
<string name="txt_feedback_response">Danke für dein Feedback!</string> <string name="txt_feedback_response">Danke für dein Feedback!</string>
@@ -225,6 +224,11 @@
<string name="txt_share_acttitle">Vorfall teilen…</string> <string name="txt_share_acttitle">Vorfall teilen…</string>
<string name="txt_viewreport_noinput">Keine Angaben</string> <string name="txt_viewreport_noinput">Keine Angaben</string>
<string name="txt_backpressed_msg">Drücke erneut Zurück um die RiskAhead zu schließen</string> <string name="txt_backpressed_msg">Drücke erneut Zurück um die RiskAhead zu schließen</string>
<string name="txt_notifystatus_txt">Benachrichtigungen: </string>
<string name="txt_notifystatus_activated">AN</string>
<string name="txt_notifystatus_activatedbutnotready">NICHT BEREIT (GPS FEHLT)</string>
<string name="txt_notifystatus_deactivated">AUS</string>
<string name="txt_map_zoomoutpremium">Hole dir die Premium-Mitgliedschaft um die ganze Karte zu sehen!</string>
<string-array name="cat_situation_main"> <string-array name="cat_situation_main">
<item>Allgemeiner Vorfall/Situation</item> <item>Allgemeiner Vorfall/Situation</item>
@@ -268,7 +272,7 @@
<item>Schießerei</item> <item>Schießerei</item>
<item>Explosion, Selbstmordattentat</item> <item>Explosion, Selbstmordattentat</item>
<item>Mord, Tötung, Hinrichtung</item> <item>Mord, Tötung, Hinrichtung</item>
<item>Leiche in Öffentlichkeit</item> <item>Leichenfund</item>
<item>Sonstiges &#8230;</item> <item>Sonstiges &#8230;</item>
</string-array> </string-array>
@@ -386,10 +390,10 @@
</string-array> </string-array>
<string-array name="notification_radius"> <string-array name="notification_radius">
<item>1 KM</item> <item>1 km</item>
<item>5 KM</item> <item>5 km</item>
<item>10 KM</item> <item>10 km</item>
<item>15 KM</item> <item>15 km</item>
</string-array> </string-array>
<string-array name="notification_radius_entry"> <string-array name="notification_radius_entry">
@@ -416,3 +420,4 @@
</string-array> </string-array>
</resources> </resources>

View File

@@ -1,4 +1,5 @@
<resources> <resources>
<string name="app_name">RiskAhead</string> <string name="app_name">RiskAhead</string>
<string name="facebook_app_id">658657714234846</string> <string name="facebook_app_id">658657714234846</string>
<string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string> <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
@@ -31,6 +32,7 @@
<string name="menu_action_about">About</string> <string name="menu_action_about">About</string>
<string name="menu_action_help">Help &amp; Contact</string> <string name="menu_action_help">Help &amp; Contact</string>
<string name="menu_action_exit">Exit</string> <string name="menu_action_exit">Exit</string>
<string name="menu_action_refresh">Refresh Map</string>
<string name="lbl_main_txt1">We have currently &#8230;</string> <string name="lbl_main_txt1">We have currently &#8230;</string>
<string name="lbl_main_txt2">&#8230; reported incidents</string> <string name="lbl_main_txt2">&#8230; reported incidents</string>
@@ -55,13 +57,13 @@
<string name="message_enteremail">Enter your E-Mail to reset your password</string> <string name="message_enteremail">Enter your E-Mail to reset your password</string>
<string name="alert_passwordreset_title">Send Password Reset E-Mail</string> <string name="alert_passwordreset_title">Send Password Reset E-Mail</string>
<string name="alert_passwordreset_text">Do you really want to reset your password? An E-Mail will be send to your address. Please follow the instructions to reset your password.</string> <string name="alert_passwordreset_text">Do you really want to reset your password? An E-Mail will be sent to your address. Please follow the instructions to reset your password.</string>
<string name="alert_passwordreset_confirmation">E-Mail was sent to your e-mail address</string> <string name="alert_passwordreset_confirmation">E-Mail was sent to your e-mail address</string>
<string name="alert_accactivation_title">Activate your account</string> <string name="alert_accactivation_title">Activate your account</string>
<string name="alert_accactivation_text">Your account is not activated yet. Please follow the instructions in your E-Mail. Do you want to resent the E-Mail?</string> <string name="alert_accactivation_text">Your account is not activated yet. Please follow the instructions in your E-Mail. Do you want to resend the E-Mail?</string>
<string name="alert_accactivation_confirmation">E-Mail was sent to your e-mail address</string> <string name="alert_accactivation_confirmation">E-Mail was sent to your e-mail address</string>
<string name="alert_accregistration_title">Activation E-Mail</string> <string name="alert_accregistration_title">Activation E-Mail</string>
<string name="alert_accregistration_text">An activation link was send to your e-mail address. Please follow the instructions to activate your account. Thank you!</string> <string name="alert_accregistration_text">An activation link was sent to your e-mail address. Please follow the instructions to activate your account. Thank you!</string>
<string name="alert_internetconnection_title">No Internet Connection</string> <string name="alert_internetconnection_title">No Internet Connection</string>
<string name="alert_internetconnection_text">You need an active internet connection to use this app. Please turn on your internet connection and login again.</string> <string name="alert_internetconnection_text">You need an active internet connection to use this app. Please turn on your internet connection and login again.</string>
@@ -84,32 +86,32 @@
<string name="lbl_report_to_date">To date (yyyy-MM-dd)</string> <string name="lbl_report_to_date">To date (yyyy-MM-dd)</string>
<string name="lbl_report_to_time">To time</string> <string name="lbl_report_to_time">To time</string>
<string name="lbl_reportwf_finish_msg">Du hast alles ausgefüllt!</string> <string name="lbl_reportwf_finish_msg">You have filed everything!</string>
<string name="lbl_reportwf_finish_thx">Wir danken dir für deine Unterstützung!</string> <string name="lbl_reportwf_finish_thx">Thank you for your support!</string>
<string name="lbl_reportwf_newreport">New</string> <string name="lbl_reportwf_newreport">New</string>
<string name="btn_reportwf_finish_send">Abschicken!</string> <string name="btn_reportwf_finish_send">Send!</string>
<string name="lbl_viewreport_incidentcategory">Incident Category</string> <string name="lbl_viewreport_incidentcategory">Incident Category</string>
<string name="lbl_viewreport_incidentsubcategory">Incident Subcategory</string> <string name="lbl_viewreport_incidentsubcategory">Incident Subcategory</string>
<string name="lbl_viewreport_etcetc">More Details</string> <string name="lbl_viewreport_etcetc">More details</string>
<string name="lbl_viewreport_reportedfrom">Reported from user</string> <string name="lbl_viewreport_reportedfrom">Reported by user</string>
<string name="lbl_question_situation">Was ist passiert?</string> <string name="lbl_question_situation">What is happening?</string>
<string name="lbl_question_place">Wo passiert es?</string> <string name="lbl_question_place">Where does it happen?</string>
<string name="lbl_question_time">Wann passiert es?</string> <string name="lbl_question_time">When does it happen?</string>
<string name="lbl_question_suspect">Wer tut das?</string> <string name="lbl_question_suspect">Who does it or is a likely suspect?</string>
<string name="lbl_question_weapon">Mit welchen Waffen passiert es?</string> <string name="lbl_question_weapon">Are there weapons involved?</string>
<string name="lbl_question_count">Wie viele tun das?</string> <string name="lbl_question_count">How many perpetrators are there?</string>
<string name="lbl_question_victim">Wer ist betroffen?</string> <string name="lbl_question_victim">Who is affected?</string>
<string name="lbl_question_victimorigin">Kommen die Opfer aus der Umgebung?</string> <string name="lbl_question_victimorigin">Where do the victims come from?</string>
<string name="lbl_question_etc">Weißt du noch mehr?</string> <string name="lbl_question_etc">Do you know anything more?</string>
<string name="lbl_question_etc_vehicle">Mit was sind sie unterwegs?</string> <string name="lbl_question_etc_vehicle">How do they travel?</string>
<string name="lbl_question_etc_victimaff">Haben die Opfer etwas gemeinsam?</string> <string name="lbl_question_etc_victimaff">Do the victims have anything in common?</string>
<string name="lbl_question_etc_recon">Wie erkennt man die Täter?</string> <string name="lbl_question_etc_recon">How would you categorize the perpetrators?</string>
<string name="lbl_question_etc_etc">Weiteres?</string> <string name="lbl_question_etc_etc">Further information?</string>
<string name="cat_hint">Weitere Details &#8230;</string> <string name="cat_hint">Further details &#8230;</string>
<string name="hint_place">Bitte wähle zunächst einen Ort auf der Karte aus</string> <string name="hint_place">Please choose a location on the map first</string>
<string name="lbl_viewreport_time">Time</string> <string name="lbl_viewreport_time">Time</string>
<string name="lbl_viewreport_suspect">Suspect</string> <string name="lbl_viewreport_suspect">Suspect</string>
<string name="lbl_viewreport_victim">Victim</string> <string name="lbl_viewreport_victim">Victim</string>
@@ -130,7 +132,6 @@
<string name="lbl_profile_points_someone">has currently &#8230;</string> <string name="lbl_profile_points_someone">has currently &#8230;</string>
<string name="lbl_profile_ranking_someone">and his/her rank is &#8230;</string> <string name="lbl_profile_ranking_someone">and his/her rank is &#8230;</string>
<string name="lbl_profile_membersince_someone">is supporting RiskAhead since</string> <string name="lbl_profile_membersince_someone">is supporting RiskAhead since</string>
<string name="lbl_profile_top10">Top 10</string> <string name="lbl_profile_top10">Top 10</string>
<string name="lbl_profile_stats">Statistics</string> <string name="lbl_profile_stats">Statistics</string>
<string name="lbl_profile_reports">Reports</string> <string name="lbl_profile_reports">Reports</string>
@@ -145,12 +146,14 @@
<string name="lbl_dropdown_pleaseselect">Please select &#8230;</string> <string name="lbl_dropdown_pleaseselect">Please select &#8230;</string>
<string name="txt_notification_title">New incident reported in your area!</string> <string name="txt_notification_title">New incident reported in your area!</string>
<string name="txt_notification_title_multi">New incidents reported in your area!</string> <string name="txt_notification_title_multi">New incidents reported in your area!</string>
<string name="txt_notification_context"> new incident near your last location. Watch out!</string> <string name="txt_notification_context"> New incident near your last location. Watch out!</string>
<string name="txt_notification_context_multi"> new incidents near your last location. Watch out!</string> <string name="txt_notification_context_multi"> New incidents near your last location. Watch out!</string>
<string name="btn_reportwf_reportnow">Report NOW!</string> <string name="btn_reportwf_reportnow">Report NOW!</string>
<string name="btn_reportwf_next">Next</string> <string name="btn_reportwf_next">Next</string>
<string name="menu_send_feedback">Send Feedback</string>
<string name="txt_reportwf_newincidenttitle">Create new incident?</string> <string name="txt_reportwf_newincidenttitle">Create new incident?</string>
<string name="txt_reportwf_newincidenttext">Do you want to reset all values and create a new incident?</string> <string name="txt_reportwf_newincidenttext">Do you want to reset all values and create a new incident?</string>
<string name="txt_subs_youbought">You have bought</string> <string name="txt_subs_youbought">You have bought</string>
@@ -160,12 +163,12 @@
<string name="txt_errormsg_suffix">Please try again later or contact RiskAhead support.</string> <string name="txt_errormsg_suffix">Please try again later or contact RiskAhead support.</string>
<string name="txt_errormsg_login">Could not log-in. .</string> <string name="txt_errormsg_login">Could not log-in. .</string>
<string name="txt_errormsg_register">Could not registrate.</string> <string name="txt_errormsg_register">Could not register.</string>
<string name="txt_errormsg_getpwreset">Could not send E-Mail.</string> <string name="txt_errormsg_getpwreset">Could not send E-Mail.</string>
<string name="txt_errormsg_getactivationlink">Could not send you an activation link.</string> <string name="txt_errormsg_getactivationlink">Could not send you an activation link.</string>
<string name="txt_errormsg_getinfowindow">Could not load info window values.</string> <string name="txt_errormsg_getinfowindow">Could not load info window values.</string>
<string name="txt_errormsg_createincident">Could not save your incident.</string> <string name="txt_errormsg_createincident">Could not save your incident.</string>
<string name="txt_errormsg_subs">There was an error parsing your purchase data.</string> <string name="txt_errormsg_subs">There was an error processing your purchase data.</string>
<string name="txt_errormsg_deleteincident">Could not delete this incident.</string> <string name="txt_errormsg_deleteincident">Could not delete this incident.</string>
<string name="txt_errormsg_getincidentdetail">Could not retrieve incident details.</string> <string name="txt_errormsg_getincidentdetail">Could not retrieve incident details.</string>
<string name="txt_errormsg_cannotvoteowninc">You can not vote your own incident.</string> <string name="txt_errormsg_cannotvoteowninc">You can not vote your own incident.</string>
@@ -208,12 +211,12 @@
<string name="txt_top10_membersince">Member since</string> <string name="txt_top10_membersince">Member since</string>
<string name="menu_action_feedback">Feedback</string> <string name="menu_action_feedback">Feedback</string>
<string name="txt_feedback_title">FeedBack</string>
<string name="txt_feedback_message">Give us your feedback to help us improve RiskAhead</string> <string name="txt_feedback_message">Give us your feedback to help us improve RiskAhead</string>
<string name="txt_feedback_hint">Enter Feedback here</string> <string name="txt_feedback_hint">Enter Feedback here</string>
<string name="txt_feedback_sendbtn">Send</string> <string name="txt_feedback_sendbtn">Send</string>
<string name="txt_feedback_cancelbtn">Cancel</string> <string name="txt_feedback_cancelbtn">Cancel</string>
<string name="txt_feedback_response">Thank you for your feedback!</string> <string name="txt_feedback_response">Thank you for your feedback!</string>
<string name="txt_rate_title">Rate RiskAhead</string> <string name="txt_rate_title">Rate RiskAhead</string>
<string name="txt_rate_message">If you enjoy using RiskAhead, please take a moment to rate it. Thanks for your support!</string> <string name="txt_rate_message">If you enjoy using RiskAhead, please take a moment to rate it. Thanks for your support!</string>
<string name="txt_rate_retenowbtn">Rate Now!</string> <string name="txt_rate_retenowbtn">Rate Now!</string>
@@ -228,171 +231,176 @@
<string name="txt_share_acttitle">Share incident…</string> <string name="txt_share_acttitle">Share incident…</string>
<string name="txt_viewreport_noinput">No Value</string> <string name="txt_viewreport_noinput">No Value</string>
<string name="txt_backpressed_msg">Tap back button again in order to exit RiskAhead</string> <string name="txt_backpressed_msg">Tap back button again in order to exit RiskAhead</string>
<string name="txt_notifystatus_txt">Notifications: </string>
<string name="txt_notifystatus_activated">ON</string>
<string name="txt_notifystatus_activatedbutnotready">NOT READY (NO GPS)</string>
<string name="txt_notifystatus_deactivated">OFF</string>
<string name="txt_map_zoomoutpremium">Get Premiuim to view the Full Map!</string>
<string-array name="cat_situation_main"> <string-array name="cat_situation_main">
<item>Allgemeiner Vorfall/Situation</item> <item> A Threatening Incident or Situation</item>
<item>Mündliche Gewalt</item> <item>Verbal Violence</item>
<item>Leichte / schwere körperliche Gewalt</item> <item>Light to Heavy Physical Violence</item>
<item>Lebensgefährliche Gewalt</item> <item>Life-Threatening Violence</item>
<item>Naturkatastrophe</item> <item>Natural Disaster</item>
<item>Menschl. Katastrophe &amp; Infrastruktur</item> <item>Human Disasters &amp; Infrastructure</item>
</string-array> </string-array>
<string-array name="cat_situation_sub_general"> <string-array name="cat_situation_sub_general">
<item>Diebstahl, Betrug</item> <item>Fraud, Theft, Mugging or Burglary</item>
<item>Drogenmissbrauch z.B.Getränk</item> <item>Drug Abuse eg Drink spiked</item>
<item>Protest, Unruhe, Straßenblockade</item> <item>Demonstration, Riot or Road Blockade</item>
<item>Checkpoint, Kontrollen</item> <item>Checkpoints, Controls</item>
<item>Korruption, Erpressung</item> <item>Corruption, Extortion</item>
<item>Einfluss Kriminalität, Milizen, Terror</item> <item>Crime, Militia or Terrorist Activities</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_situation_sub_verbal"> <string-array name="cat_situation_sub_verbal">
<item>Sexuelle Belästigung</item> <item>Sexual Harassment</item>
<item>Beleidigung, Drohung</item> <item>Insulting or Threatening Language</item>
<item>Nötigung/Vernehmung</item> <item>Interrogation, Pressuring or Coercing</item>
<item>Aufhetzung</item> <item>Incitement</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_situation_sub_force"> <string-array name="cat_situation_sub_force">
<item>Sexueller Übergriff</item> <item>Sexual Assault</item>
<item>Angriff auf Person allgemein</item> <item>Physical Attack in general</item>
<item>Schlägerei</item> <item>A Fight or Brawl</item>
<item>Festnahme/Gefangennahme </item> <item>Arrest or Capture </item>
<item>Zwangsarbeit</item> <item>Forced Labour</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_situation_sub_force_serious"> <string-array name="cat_situation_sub_force_serious">
<item>Vergewaltigung</item> <item>Rape</item>
<item>Folter, Entführung, Geiselnahme</item> <item>Torture, Kidnapping, Hostage-Taking</item>
<item>Schießerei</item> <item>Shooting</item>
<item>Explosion, Selbstmordattentat</item> <item>Bomb or Suicide Attack</item>
<item>Mord, Tötung, Hinrichtung</item> <item>Murder, Public Execution</item>
<item>Leiche in Öffentlichkeit</item> <item>Display of Corpse or Corpse Parts </item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_situation_sub_nature"> <string-array name="cat_situation_sub_nature">
<item>Temperaturextrem</item> <item>Extreme Temperaturs</item>
<item>Wind, Sturm, Orkan, Tornado</item> <item>Storm, Hurricane, Tornado</item>
<item>Überschwemmung/-flutung, Tsunami</item> <item>Flooding, Tsunami</item>
<item>Erdbeben, Berghang Einsturz</item> <item>Earthquake, Landslide</item>
<item>Feuer, Rauch, Vulkanausbruch</item> <item>Fire, Smoke, Volcanic Eruption</item>
<item>Hungersnot, Tierplage</item> <item>Famine, Drought, Animal Plague </item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_situation_sub_infrastructure"> <string-array name="cat_situation_sub_infrastructure">
<item>Smog Stadt</item> <item>Air Pollution</item>
<item>Stromausfall, Unfall</item> <item>Power Failure or General Accident</item>
<item>Zerstörung, Einsturzgefahr Gebäude</item> <item>Collapsing Buildings or Destruction</item>
<item>Brandkatastrophe</item> <item>Widespread Fire</item>
<item>Chemiekatastrophe, Ölpest</item> <item>Chemical Disaster or Oil Spill</item>
<item>Seuche, Krankheit</item> <item>Disease Outbreak or Epidemic</item>
<item>Chaos Bevölkerung, Anarchie</item> <item>Chaos, Anarchy</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_time_main"> <string-array name="cat_time_main">
<item>Jetzt!</item> <item>Right now!</item>
<item>Regelmäßig</item> <item>Periodically</item>
<item>Bestimmter Zeitpunkt</item> <item>Exact Time</item>
<item>Bestimmter Zeitraum</item> <item>Exact Time Period</item>
</string-array> </string-array>
<string-array name="cat_time_sub_periodical"> <string-array name="cat_time_sub_periodical">
<item>Morgens</item> <item>Morning</item>
<item>Mittags</item> <item>During the Day</item>
<item>Abends</item> <item>Evening</item>
<item>Nachts</item> <item>Night</item>
</string-array> </string-array>
<string-array name="cat_suspect_main"> <string-array name="cat_suspect_main">
<item>Kriminelle/Gangs </item> <item>Street Criminal or Gang </item>
<item>Polizei</item> <item>The Police</item>
<item>Volksmenge</item> <item>Large Crowd</item>
<item>Auftragskiller, Kartell, Miliz, Guerilla</item> <item>Hit Man, Cartel, Militia, Guerilla</item>
<item>Soldaten (Militär)</item> <item>Soldiers, The Military</item>
<item>Terroristen (religiöse oder politische)</item> <item>Terrorists (religious or political)</item>
<item>Weiß ich nicht</item> <item>I do not know</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_suspect_sub_location"> <string-array name="cat_suspect_sub_location">
<item>Lokale aus dem Land</item> <item>Local</item>
<item>Ausländische</item> <item>Foreign</item>
</string-array> </string-array>
<string-array name="cat_suspect_weapons"> <string-array name="cat_suspect_weapons">
<item>Alltagsgegenstände</item> <item>Everyday Objects</item>
<item>Schusswaffe</item> <item>Firearms</item>
<item>Explosionswaffen oder Sprengkörper</item> <item>Explosive Devices</item>
<item>Großwaffen z.B. Panzer, Flugbombe</item> <item>Very Heavy or Military Grade System</item>
<item>Weiß ich nicht</item> <item>I do not know</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_suspect_count"> <string-array name="cat_suspect_count">
<item>Einzelperson</item> <item>Individual</item>
<item>Kleine Gruppe (25)</item> <item>Small group(25)</item>
<item>Große Gruppe (mehr als 5)</item> <item>Large group (more than 5)</item>
<item>Weiß ich nicht</item> <item>I do not know</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_victim"> <string-array name="cat_victim">
<item>Frauen</item> <item>Women</item>
<item>Kinder</item> <item>Children</item>
<item>Männer</item> <item>Men</item>
<item>Jede Person</item> <item>Each Person</item>
<item>Tiere</item> <item>Animals</item>
<item>Gebäude/Infrastruktur</item> <item>Buildings/Infrastructure</item>
</string-array> </string-array>
<string-array name="cat_victim_origin"> <string-array name="cat_victim_origin">
<item>Heimische Bevölkerung</item> <item>The Local population</item>
<item>Touristen</item> <item>Tourists</item>
<item>Ausländer, der dort arbeitet z.B. Expat</item> <item>Long-term Resident Foreigners, Expat</item>
<item>Weiß ich nicht</item> <item>I do not know</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_details_vehicle"> <string-array name="cat_details_vehicle">
<item>Zu Fuß</item> <item>By Foot</item>
<item>Motorrad</item> <item>Motor Bike</item>
<item>Auto, Jeep, Pick-up</item> <item>Car, Jeep, Pick-up</item>
<item>Lkw, Bus</item> <item>Truck, Bus</item>
<item>Militärfahrzeug, Panzer</item> <item>Military Vehicle, Tank</item>
<item>Flugzeug, Helikopter</item> <item>Airplane, Helicopter</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_details_victimaff"> <string-array name="cat_details_victimaff">
<item>Religion</item> <item>Religion</item>
<item>Volksgruppe/Ethnie z.B. Hautfarbe</item> <item>Ethnic Origin eg Skin Colour</item>
<item>Politische Zugehörigkeit</item> <item>Political Affiliation</item>
<item>Soziale Gruppe z.B. Einwanderer</item> <item>Social Group eg Immigrants</item>
<item>Beruf z.B. Journalisten, Prostituierte</item> <item>Profession eg Journalist, Prostitute</item>
<item>Sprachzugehörigkeit</item> <item>Language</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="cat_details_suspect_recon"> <string-array name="cat_details_suspect_recon">
<item>Männer</item> <item>Men</item>
<item>Frauen</item> <item>Women</item>
<item>Kinder</item> <item>Children</item>
<item>Tiere</item> <item>Animals</item>
<item>Sonstiges &#8230;</item> <item>Other &#8230;</item>
</string-array> </string-array>
<string-array name="notification_radius"> <string-array name="notification_radius">
<item>1 KM</item> <item>1 km</item>
<item>5 KM</item> <item>5 km</item>
<item>10 KM</item> <item>10 km</item>
<item>15 KM</item> <item>15 km</item>
</string-array> </string-array>
<string-array name="notification_radius_entry"> <string-array name="notification_radius_entry">
@@ -418,4 +426,5 @@
<item>60</item> <item>60</item>
</string-array> </string-array>
</resources> </resources>