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"
minSdkVersion 15
targetSdkVersion 22
versionCode 11
versionName "1.6.2"
versionCode 12
versionName "1.7"
}
buildTypes {
release {

View File

@@ -34,6 +34,7 @@ public class MainActivity extends BaseActivity{
private final static String TAG = MainActivity.class.getSimpleName();
private Handler mHandler = new Handler();
private TextView notificationStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -85,6 +86,21 @@ public class MainActivity extends BaseActivity{
@Override
public void run() {
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);
}
};
@@ -95,7 +111,6 @@ public class MainActivity extends BaseActivity{
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
private StringRequest getStringRequestIncidentCount() {
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 boolean markersShown = false;
private boolean showAdd = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -108,6 +109,8 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
MIN_ZOOM_LEVEL = 9;
}
showAdd = true;
MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.frag_maps_map);
mapFragment.getMapAsync(this);
@@ -158,7 +161,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
if (getIntent().hasExtra(AppConfig.EXTRA_MAP_TYPE)) {
if (getIntent().getStringExtra(AppConfig.EXTRA_MAP_TYPE).equals(AppConfig.INTENT_MAP_GETINCLOC)) {
addButton.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.md_green_400)));
showAdd = false;
Drawable identityIcon = new IconicsDrawable(getApplicationContext())
.icon(GoogleMaterial.Icon.gmd_done)
.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)) {
addButton.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(getApplicationContext(), R.color.md_green_400)));
showAdd = false;
Drawable identityIcon = new IconicsDrawable(getApplicationContext())
.icon(GoogleMaterial.Icon.gmd_done)
.color(ContextCompat.getColor(getApplicationContext(), R.color.white))
@@ -205,9 +208,9 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
{
mClusterManager.onCameraChange(position);
if(position.zoom < MIN_ZOOM_LEVEL) {
if((position.zoom < MIN_ZOOM_LEVEL) && !session.getSubsPremium()) {
mMap.animateCamera(CameraUpdateFactory.zoomTo(MIN_ZOOM_LEVEL));
showMessage("Get Premiuim to view the Full Map!");
showMessage(getString(R.string.txt_map_zoomoutpremium));
return;
}
@@ -594,7 +597,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(point, DEFAULT_ZOOM_LEVEL));
if(getIntent().hasExtra(AppConfig.EXTRA_MAP_TYPE)) mMarker = mMap.addMarker(new MarkerOptions().position(point));
} else {
myPosition = session.getLocation();
LatLng myPosition = session.getLocation();
if ((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0))
{
@@ -715,8 +718,8 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
@Override
protected void onPause(){
super.onPause();
if(showAdd) showAd();
showAd();
}
@Override

View File

@@ -121,7 +121,13 @@ public class SubscriptionsActivity extends BaseActivity{
private void syncWithDatabase(ArrayList<String> ownedSkus) {
Log.d(TAG, "Sync subs with database...");
Log.d(TAG, "Database shows following active subs: "+dbItems.toString());
if(dbItems != null){
Log.d(TAG, "Database shows following active subs: "+dbItems.toString());
}else{
Log.d(TAG, "No active subs in Database");
}
ArrayList<String> subs = new ArrayList<>();
subs.add("extra_functions_01");
@@ -130,10 +136,9 @@ public class SubscriptionsActivity extends BaseActivity{
subs.add("no_ads_02");
for(String sub : subs){
boolean itemFound = false;
if(dbItems.containsKey(sub)){
if(dbItems != null && dbItems.containsKey(sub)){
for(String sku : ownedSkus){
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() {
@@ -332,22 +343,24 @@ public class SubscriptionsActivity extends BaseActivity{
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
dbItems = new HashMap<>();
if (error) {
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;
}else{
JSONArray subs = jObj.getJSONArray("msg");
Log.d(TAG,"SUB FROM DB RECEIVED");
Log.d(TAG, "SUB FROM DB RECEIVED");
for(int i = 0;i < subs.length();i++){
dbItems.put(subs.getJSONObject(i).getString("productId"),subs.getJSONObject(i).getString("id"));
}
syncWithDatabase(ownedSkus);
}
syncWithDatabase(ownedSkus);
} catch (JSONException e) {
e.printStackTrace();
}

View File

@@ -105,17 +105,17 @@ public class ProfileStatisticsFragment extends Fragment {
if(jSubs.getJSONObject(i).getString("productId").contains("no_ads")){
btnMembershipType.setBootstrapBrand(DefaultBootstrapBrand.PRIMARY);
btnMembershipType.setText(getResources().getString(R.string.lbl_membershiptype_addfree));
((ProfileActivity) getActivity()).session.setSubsPremium(true);
((ProfileActivity) getActivity()).session.setSubsNoAds(true);
}else{
((ProfileActivity) getActivity()).session.setSubsPremium(false);
((ProfileActivity) getActivity()).session.setSubsNoAds(false);
}
if(jSubs.getJSONObject(i).getString("productId").contains("extra_functions")){
btnMembershipType.setBootstrapBrand(DefaultBootstrapBrand.WARNING);
btnMembershipType.setText(getResources().getString(R.string.lbl_membershiptype_premium));
((ProfileActivity) getActivity()).session.setSubsNoAds(true);
((ProfileActivity) getActivity()).session.setSubsPremium(true);
}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);
prefLocation.setEnabled(false);
session.setGPSForNotificationsEnabled(true);
prefGPSENabled.setTitle(prefGPSENabled.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.setMessage(R.string.txt_rate_message);
alert.setIcon(R.drawable.logo_512w);
alert.setIcon(R.drawable.logo_380);
alert.setCancelable(true);
alert.setPositiveButton(R.string.txt_rate_retenowbtn,
new DialogInterface.OnClickListener() {

View File

@@ -1,21 +1,16 @@
package org.deke.risk.riskahead.helper;
import android.app.ActionBar;
import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.ColorDrawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
@@ -91,9 +86,6 @@ public abstract class BaseActivity extends AppCompatActivity {
public Drawer navDrawer = null;
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 long mBackPressed;
@@ -125,11 +117,6 @@ public abstract class BaseActivity extends AppCompatActivity {
setSupportActionBar(mToolbar);
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);
if(!isMyNotificationServiceRunning()){
@@ -169,41 +156,7 @@ public abstract class BaseActivity extends AppCompatActivity {
}, 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() {
/*
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.requestWindowFeature(Window.FEATURE_NO_TITLE);
pDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
@@ -262,9 +215,9 @@ public abstract class BaseActivity extends AppCompatActivity {
AccountHeader headerResult = new AccountHeaderBuilder()
.withActivity(this)
.withHeaderBackground(R.drawable.header)
.withHeaderBackground(R.drawable.header2)
.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();
@@ -351,8 +304,11 @@ public abstract class BaseActivity extends AppCompatActivity {
public void showAd(){
if (mInterstitialAd.isLoaded()) {
if(!session.getSubsNoAds()){
Log.d(TAG,"Loading Add...");
if(!session.getSubsNoAds() || !session.getSubsPremium()){
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() {
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);
final EditText input = new EditText(BaseActivity.this);
@@ -532,7 +488,7 @@ public abstract class BaseActivity extends AppCompatActivity {
input.setGravity(Gravity.TOP);
input.setHint(R.string.txt_feedback_hint);
alert.setIcon(R.drawable.logo_512w);
alert.setIcon(R.drawable.logo_380);
alert.setCancelable(true);
alert.setPositiveButton(R.string.txt_feedback_sendbtn,
new DialogInterface.OnClickListener() {

View File

@@ -6,6 +6,9 @@ import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.*;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
@@ -39,6 +42,9 @@ public class NotificationService extends Service {
public SessionManager session;
public HashMap<String, String> user;
public LocationManager locationManager;
public LatLng myPosition;
public NotificationService() {
super();
}
@@ -51,9 +57,50 @@ public class NotificationService extends Service {
session = new SessionManager(getApplicationContext());
user = session.getUserDetails();
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 5000, 10, locationListener);
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
public IBinder onBind(Intent intent) {
return null;
@@ -69,25 +116,31 @@ public class NotificationService extends Service {
int pollFrequency = session.getNotificationPollFreq() * 1000 * 60;
boolean notifyEnabled = session.getNotificationEnabled();
Log.d(this.toString(), "Run Notification Task. Notifications enabled = "+ notifyEnabled);
Log.d(this.toString(), "Run Notification Task. Notifications enabled = " + notifyEnabled);
if ((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0)) {
if(notifyEnabled){
if ((myPosition != null) && (myPosition.latitude != 0.0) && (myPosition.longitude != 0.0)) {
session.setNotificationServiceReady(true);
String lastNotificationTime;
String lastNotificationTime;
if (session.getLastNotification().equals("")) {
lastNotificationTime = user.get(SessionManager.KEY_LASTLOGIN_AT);
} else {
lastNotificationTime = session.getLastNotification();
}
if (session.getLastNotification().equals("")) {
lastNotificationTime = user.get(SessionManager.KEY_LASTLOGIN_AT);
} else {
lastNotificationTime = session.getLastNotification();
Log.d(this.toString(), "Lookup location with position: " + myPosition + " Radius: "+ radius +" PollFrequency: "+ pollFrequency +" lastNotifyTime: " + lastNotificationTime);
StringRequest strReq = getStringRequestIncidentsFromAreaAndTime(myPosition.latitude, myPosition.longitude, radius, lastNotificationTime);
String tag_string_req = "req_incidents";
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}else{
Log.d(TAG,"No position found. No notification send.");
session.setNotificationServiceReady(false);
}
Log.d(this.toString(), "Lookup location with position: " + myPosition + " Radius: "+ radius +" PollFrequency: "+ pollFrequency +" lastNotifyTime: " + lastNotificationTime);
StringRequest strReq = getStringRequestIncidentsFromAreaAndTime(myPosition.latitude, myPosition.longitude, radius, lastNotificationTime);
String tag_string_req = "req_incidents";
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
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_POLLINGFREQ = "notifyPollingfreq";
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_PREMIUM = "subs_premium";
@@ -86,7 +87,7 @@ public class SessionManager {
}
public boolean isGPSForNotificationsEnabled(){
return status.getBoolean(KEY_NOTIFY_GPS, false);
return status.getBoolean(KEY_NOTIFY_GPS, true);
}
public void setLastNotification(String time){
@@ -103,6 +104,15 @@ public class SessionManager {
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){
statusEditor.putInt(KEY_NOTIFY_POLLINGFREQ, pollingFreqInMinutes);
statusEditor.apply();
@@ -188,4 +198,6 @@ public class SessionManager {
public void removeUser(){
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_height="match_parent"
android:id="@+id/imageView"
android:src="@drawable/bg_main_map"
android:src="@drawable/bg_withlogo_2"
android:scaleType="centerCrop"
android:layout_alignParentTop="true"
android:alpha="0.9" />
@@ -71,15 +71,34 @@
</LinearLayout>
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/imageView3"
android:src="@drawable/logo_512w"
android:scaleType="centerCrop"
android:layout_centerInParent="true"
android:layout_below="@+id/linearLayout"
android:alpha="0.8" />
<LinearLayout
android:id="@+id/layoutNotifications"
android:gravity="center"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_above="@+id/layoutFooter">
<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
android:id="@+id/layoutFooter"

View File

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

View File

@@ -30,6 +30,7 @@
<string name="menu_action_about">Info</string>
<string name="menu_action_help">Hilfe &amp; Kontakt</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_txt2">&#8230; gemeldete Vorfälle</string>
@@ -125,7 +126,6 @@
<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_membersince_someone">unterstützt RiskAhead seit</string>
<string name="lbl_profile_top10">Top 10</string>
<string name="lbl_profile_stats">Statistik</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_context"> neuer Vorfall. 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_next">Weiter</string>
@@ -154,6 +153,7 @@
<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_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_register">Registrierung ist fehlgeschlagen.</string>
@@ -204,9 +204,8 @@
<string name="txt_top10_membersince">Mitglied seit</string>
<string name="menu_action_feedback">Feedback</string>
<string name="txt_feedback_title">Feedback</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">Trage dein Feedback hier ein</string>
<string name="txt_feedback_message">Sende uns dein Feedback um uns dabei zu helfen RiskAhead besser zu machen</string>
<string name="txt_feedback_hint">Hier dein Feedback eingeben</string>
<string name="txt_feedback_sendbtn">Senden</string>
<string name="txt_feedback_cancelbtn">Abbrechen</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_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_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">
<item>Allgemeiner Vorfall/Situation</item>
@@ -237,7 +241,7 @@
<string-array name="cat_situation_sub_general">
<item>Diebstahl, Betrug, Einbruch</item>
<item>Drogenmissbrauch z.B.Getränk</item>
<item>Drogenmissbrauch z.B. Getränk</item>
<item>Protest, Unruhe, Straßenblockade</item>
<item>Checkpoint, Kontrollen</item>
<item>Korruption, Erpressung</item>
@@ -268,7 +272,7 @@
<item>Schießerei</item>
<item>Explosion, Selbstmordattentat</item>
<item>Mord, Tötung, Hinrichtung</item>
<item>Leiche in Öffentlichkeit</item>
<item>Leichenfund</item>
<item>Sonstiges &#8230;</item>
</string-array>
@@ -386,10 +390,10 @@
</string-array>
<string-array name="notification_radius">
<item>1 KM</item>
<item>5 KM</item>
<item>10 KM</item>
<item>15 KM</item>
<item>1 km</item>
<item>5 km</item>
<item>10 km</item>
<item>15 km</item>
</string-array>
<string-array name="notification_radius_entry">
@@ -416,3 +420,4 @@
</string-array>
</resources>

View File

@@ -1,4 +1,5 @@
<resources>
<string name="app_name">RiskAhead</string>
<string name="facebook_app_id">658657714234846</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_help">Help &amp; Contact</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_txt2">&#8230; reported incidents</string>
@@ -55,13 +57,13 @@
<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_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_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_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_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_time">To time</string>
<string name="lbl_reportwf_finish_msg">Du hast alles ausgefüllt!</string>
<string name="lbl_reportwf_finish_thx">Wir danken dir für deine Unterstützung!</string>
<string name="lbl_reportwf_finish_msg">You have filed everything!</string>
<string name="lbl_reportwf_finish_thx">Thank you for your support!</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_incidentsubcategory">Incident Subcategory</string>
<string name="lbl_viewreport_etcetc">More Details</string>
<string name="lbl_viewreport_reportedfrom">Reported from user</string>
<string name="lbl_viewreport_etcetc">More details</string>
<string name="lbl_viewreport_reportedfrom">Reported by user</string>
<string name="lbl_question_situation">Was ist passiert?</string>
<string name="lbl_question_place">Wo passiert es?</string>
<string name="lbl_question_time">Wann passiert es?</string>
<string name="lbl_question_suspect">Wer tut das?</string>
<string name="lbl_question_weapon">Mit welchen Waffen passiert es?</string>
<string name="lbl_question_count">Wie viele tun das?</string>
<string name="lbl_question_victim">Wer ist betroffen?</string>
<string name="lbl_question_victimorigin">Kommen die Opfer aus der Umgebung?</string>
<string name="lbl_question_etc">Weißt du noch mehr?</string>
<string name="lbl_question_etc_vehicle">Mit was sind sie unterwegs?</string>
<string name="lbl_question_etc_victimaff">Haben die Opfer etwas gemeinsam?</string>
<string name="lbl_question_etc_recon">Wie erkennt man die Täter?</string>
<string name="lbl_question_etc_etc">Weiteres?</string>
<string name="cat_hint">Weitere Details &#8230;</string>
<string name="lbl_question_situation">What is happening?</string>
<string name="lbl_question_place">Where does it happen?</string>
<string name="lbl_question_time">When does it happen?</string>
<string name="lbl_question_suspect">Who does it or is a likely suspect?</string>
<string name="lbl_question_weapon">Are there weapons involved?</string>
<string name="lbl_question_count">How many perpetrators are there?</string>
<string name="lbl_question_victim">Who is affected?</string>
<string name="lbl_question_victimorigin">Where do the victims come from?</string>
<string name="lbl_question_etc">Do you know anything more?</string>
<string name="lbl_question_etc_vehicle">How do they travel?</string>
<string name="lbl_question_etc_victimaff">Do the victims have anything in common?</string>
<string name="lbl_question_etc_recon">How would you categorize the perpetrators?</string>
<string name="lbl_question_etc_etc">Further information?</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_suspect">Suspect</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_ranking_someone">and his/her rank is &#8230;</string>
<string name="lbl_profile_membersince_someone">is supporting RiskAhead since</string>
<string name="lbl_profile_top10">Top 10</string>
<string name="lbl_profile_stats">Statistics</string>
<string name="lbl_profile_reports">Reports</string>
@@ -145,12 +146,14 @@
<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_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_multi"> new incidents 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="btn_reportwf_reportnow">Report NOW!</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_newincidenttext">Do you want to reset all values and create a new incident?</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_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_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_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_getincidentdetail">Could not retrieve incident details.</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="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_hint">Enter Feedback here</string>
<string name="txt_feedback_sendbtn">Send</string>
<string name="txt_feedback_cancelbtn">Cancel</string>
<string name="txt_feedback_response">Thank you for your feedback!</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_retenowbtn">Rate Now!</string>
@@ -228,171 +231,176 @@
<string name="txt_share_acttitle">Share incident…</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_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">
<item>Allgemeiner Vorfall/Situation</item>
<item>Mündliche Gewalt</item>
<item>Leichte / schwere körperliche Gewalt</item>
<item>Lebensgefährliche Gewalt</item>
<item>Naturkatastrophe</item>
<item>Menschl. Katastrophe &amp; Infrastruktur</item>
<item> A Threatening Incident or Situation</item>
<item>Verbal Violence</item>
<item>Light to Heavy Physical Violence</item>
<item>Life-Threatening Violence</item>
<item>Natural Disaster</item>
<item>Human Disasters &amp; Infrastructure</item>
</string-array>
<string-array name="cat_situation_sub_general">
<item>Diebstahl, Betrug</item>
<item>Drogenmissbrauch z.B.Getränk</item>
<item>Protest, Unruhe, Straßenblockade</item>
<item>Checkpoint, Kontrollen</item>
<item>Korruption, Erpressung</item>
<item>Einfluss Kriminalität, Milizen, Terror</item>
<item>Sonstiges &#8230;</item>
<item>Fraud, Theft, Mugging or Burglary</item>
<item>Drug Abuse eg Drink spiked</item>
<item>Demonstration, Riot or Road Blockade</item>
<item>Checkpoints, Controls</item>
<item>Corruption, Extortion</item>
<item>Crime, Militia or Terrorist Activities</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_situation_sub_verbal">
<item>Sexuelle Belästigung</item>
<item>Beleidigung, Drohung</item>
<item>Nötigung/Vernehmung</item>
<item>Aufhetzung</item>
<item>Sonstiges &#8230;</item>
<item>Sexual Harassment</item>
<item>Insulting or Threatening Language</item>
<item>Interrogation, Pressuring or Coercing</item>
<item>Incitement</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_situation_sub_force">
<item>Sexueller Übergriff</item>
<item>Angriff auf Person allgemein</item>
<item>Schlägerei</item>
<item>Festnahme/Gefangennahme </item>
<item>Zwangsarbeit</item>
<item>Sonstiges &#8230;</item>
<item>Sexual Assault</item>
<item>Physical Attack in general</item>
<item>A Fight or Brawl</item>
<item>Arrest or Capture </item>
<item>Forced Labour</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_situation_sub_force_serious">
<item>Vergewaltigung</item>
<item>Folter, Entführung, Geiselnahme</item>
<item>Schießerei</item>
<item>Explosion, Selbstmordattentat</item>
<item>Mord, Tötung, Hinrichtung</item>
<item>Leiche in Öffentlichkeit</item>
<item>Sonstiges &#8230;</item>
<item>Rape</item>
<item>Torture, Kidnapping, Hostage-Taking</item>
<item>Shooting</item>
<item>Bomb or Suicide Attack</item>
<item>Murder, Public Execution</item>
<item>Display of Corpse or Corpse Parts </item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_situation_sub_nature">
<item>Temperaturextrem</item>
<item>Wind, Sturm, Orkan, Tornado</item>
<item>Überschwemmung/-flutung, Tsunami</item>
<item>Erdbeben, Berghang Einsturz</item>
<item>Feuer, Rauch, Vulkanausbruch</item>
<item>Hungersnot, Tierplage</item>
<item>Sonstiges &#8230;</item>
<item>Extreme Temperaturs</item>
<item>Storm, Hurricane, Tornado</item>
<item>Flooding, Tsunami</item>
<item>Earthquake, Landslide</item>
<item>Fire, Smoke, Volcanic Eruption</item>
<item>Famine, Drought, Animal Plague </item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_situation_sub_infrastructure">
<item>Smog Stadt</item>
<item>Stromausfall, Unfall</item>
<item>Zerstörung, Einsturzgefahr Gebäude</item>
<item>Brandkatastrophe</item>
<item>Chemiekatastrophe, Ölpest</item>
<item>Seuche, Krankheit</item>
<item>Chaos Bevölkerung, Anarchie</item>
<item>Sonstiges &#8230;</item>
<item>Air Pollution</item>
<item>Power Failure or General Accident</item>
<item>Collapsing Buildings or Destruction</item>
<item>Widespread Fire</item>
<item>Chemical Disaster or Oil Spill</item>
<item>Disease Outbreak or Epidemic</item>
<item>Chaos, Anarchy</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_time_main">
<item>Jetzt!</item>
<item>Regelmäßig</item>
<item>Bestimmter Zeitpunkt</item>
<item>Bestimmter Zeitraum</item>
<item>Right now!</item>
<item>Periodically</item>
<item>Exact Time</item>
<item>Exact Time Period</item>
</string-array>
<string-array name="cat_time_sub_periodical">
<item>Morgens</item>
<item>Mittags</item>
<item>Abends</item>
<item>Nachts</item>
<item>Morning</item>
<item>During the Day</item>
<item>Evening</item>
<item>Night</item>
</string-array>
<string-array name="cat_suspect_main">
<item>Kriminelle/Gangs </item>
<item>Polizei</item>
<item>Volksmenge</item>
<item>Auftragskiller, Kartell, Miliz, Guerilla</item>
<item>Soldaten (Militär)</item>
<item>Terroristen (religiöse oder politische)</item>
<item>Weiß ich nicht</item>
<item>Sonstiges &#8230;</item>
<item>Street Criminal or Gang </item>
<item>The Police</item>
<item>Large Crowd</item>
<item>Hit Man, Cartel, Militia, Guerilla</item>
<item>Soldiers, The Military</item>
<item>Terrorists (religious or political)</item>
<item>I do not know</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_suspect_sub_location">
<item>Lokale aus dem Land</item>
<item>Ausländische</item>
<item>Local</item>
<item>Foreign</item>
</string-array>
<string-array name="cat_suspect_weapons">
<item>Alltagsgegenstände</item>
<item>Schusswaffe</item>
<item>Explosionswaffen oder Sprengkörper</item>
<item>Großwaffen z.B. Panzer, Flugbombe</item>
<item>Weiß ich nicht</item>
<item>Sonstiges &#8230;</item>
<item>Everyday Objects</item>
<item>Firearms</item>
<item>Explosive Devices</item>
<item>Very Heavy or Military Grade System</item>
<item>I do not know</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_suspect_count">
<item>Einzelperson</item>
<item>Kleine Gruppe (25)</item>
<item>Große Gruppe (mehr als 5)</item>
<item>Weiß ich nicht</item>
<item>Sonstiges &#8230;</item>
<item>Individual</item>
<item>Small group(25)</item>
<item>Large group (more than 5)</item>
<item>I do not know</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_victim">
<item>Frauen</item>
<item>Kinder</item>
<item>Männer</item>
<item>Jede Person</item>
<item>Tiere</item>
<item>Gebäude/Infrastruktur</item>
<item>Women</item>
<item>Children</item>
<item>Men</item>
<item>Each Person</item>
<item>Animals</item>
<item>Buildings/Infrastructure</item>
</string-array>
<string-array name="cat_victim_origin">
<item>Heimische Bevölkerung</item>
<item>Touristen</item>
<item>Ausländer, der dort arbeitet z.B. Expat</item>
<item>Weiß ich nicht</item>
<item>Sonstiges &#8230;</item>
<item>The Local population</item>
<item>Tourists</item>
<item>Long-term Resident Foreigners, Expat</item>
<item>I do not know</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_details_vehicle">
<item>Zu Fuß</item>
<item>Motorrad</item>
<item>Auto, Jeep, Pick-up</item>
<item>Lkw, Bus</item>
<item>Militärfahrzeug, Panzer</item>
<item>Flugzeug, Helikopter</item>
<item>Sonstiges &#8230;</item>
<item>By Foot</item>
<item>Motor Bike</item>
<item>Car, Jeep, Pick-up</item>
<item>Truck, Bus</item>
<item>Military Vehicle, Tank</item>
<item>Airplane, Helicopter</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_details_victimaff">
<item>Religion</item>
<item>Volksgruppe/Ethnie z.B. Hautfarbe</item>
<item>Politische Zugehörigkeit</item>
<item>Soziale Gruppe z.B. Einwanderer</item>
<item>Beruf z.B. Journalisten, Prostituierte</item>
<item>Sprachzugehörigkeit</item>
<item>Sonstiges &#8230;</item>
<item>Ethnic Origin eg Skin Colour</item>
<item>Political Affiliation</item>
<item>Social Group eg Immigrants</item>
<item>Profession eg Journalist, Prostitute</item>
<item>Language</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="cat_details_suspect_recon">
<item>Männer</item>
<item>Frauen</item>
<item>Kinder</item>
<item>Tiere</item>
<item>Sonstiges &#8230;</item>
<item>Men</item>
<item>Women</item>
<item>Children</item>
<item>Animals</item>
<item>Other &#8230;</item>
</string-array>
<string-array name="notification_radius">
<item>1 KM</item>
<item>5 KM</item>
<item>10 KM</item>
<item>15 KM</item>
<item>1 km</item>
<item>5 km</item>
<item>10 km</item>
<item>15 km</item>
</string-array>
<string-array name="notification_radius_entry">
@@ -418,4 +426,5 @@
<item>60</item>
</string-array>
</resources>
</resources>