diff --git a/app/app-release.apk b/app/app-release.apk
index a78bf3b..61f059a 100644
Binary files a/app/app-release.apk and b/app/app-release.apk differ
diff --git a/app/build.gradle b/app/build.gradle
index fbd56ab..f5c710d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -19,8 +19,8 @@ android {
applicationId "org.deke.risk.riskahead"
minSdkVersion 15
targetSdkVersion 22
- versionCode 4
- versionName "1.3"
+ versionCode 5
+ versionName "1.4"
}
buildTypes {
release {
diff --git a/app/src/main/java/org/deke/risk/riskahead/MainActivity.java b/app/src/main/java/org/deke/risk/riskahead/MainActivity.java
index 334b468..2dfc933 100644
--- a/app/src/main/java/org/deke/risk/riskahead/MainActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/MainActivity.java
@@ -38,6 +38,7 @@ public class MainActivity extends BaseActivity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
userHasToBeLoggedIn();
+ registerBroadcastReceiver();
initButtons();
}
diff --git a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java
index 61bbb0f..0573c6b 100644
--- a/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/MapsActivity.java
@@ -63,7 +63,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
private final static String mActivityTitle = "Risk Map";
private static final String TAG = MapsActivity.class.getSimpleName();
- private static final Double PRELOAD_PERCENTAGE = 0.3;
+ private Double PRELOAD_PERCENTAGE = 0.3;
private static final int DEFAULT_ZOOM_LEVEL = 14;
private static final int THRESHOLD_ZOOM_LEVEL = 10;
private int MIN_ZOOM_LEVEL = 9;
@@ -89,6 +89,7 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
userHasToBeLoggedIn();
+ registerBroadcastReceiver();
navDrawer.setSelection(mapAvtivityID, false);
@@ -173,6 +174,12 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
return;
}
+ if(position.zoom > 13) {
+ PRELOAD_PERCENTAGE = 0.7;
+ }else{
+ PRELOAD_PERCENTAGE = 0.3;
+ }
+
LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
Log.d("OnCameraChangeListener", "Position: "+bounds.getCenter()+" Zoom: "+position.zoom + " Bounds: NE:" + bounds.northeast + " SW: " + bounds.southwest);
@@ -673,16 +680,6 @@ public class MapsActivity extends BaseActivity implements LoaderManager.LoaderCa
showAd();
}
- @Override
- public void onDestroy() {
- if (mMap != null) {
- getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.id.frag_maps_map)).commitAllowingStateLoss();
- mMap = null;
- }
- session.setNotificationPositionRequest(false);
- super.onDestroy();
- }
-
@Override
protected int getLayoutResourceId() {
return R.layout.activity_maps;
diff --git a/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java b/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java
index d79c8c5..e51d81e 100644
--- a/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/ProfileActivity.java
@@ -20,7 +20,7 @@ public class ProfileActivity extends BaseActivity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
userHasToBeLoggedIn();
-
+ registerBroadcastReceiver();
Intent intent = getIntent();
diff --git a/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java
index c358ce2..474ff23 100644
--- a/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/ReportWFActivity.java
@@ -84,6 +84,7 @@ public class ReportWFActivity extends BaseActivity implements ReportWF_1_Fragmen
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ registerBroadcastReceiver();
initFragments();
initButtonsAndElements();
diff --git a/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java b/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java
index 04e61c6..cd68975 100644
--- a/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/SettingsActivity.java
@@ -15,6 +15,7 @@ public class SettingsActivity extends BaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
userHasToBeLoggedIn();
+ registerBroadcastReceiver();
getFragmentManager().beginTransaction().replace(R.id.fragment_content, new SettingsFragment()).commit();
}
diff --git a/app/src/main/java/org/deke/risk/riskahead/SubscriptionsActivity.java b/app/src/main/java/org/deke/risk/riskahead/SubscriptionsActivity.java
index 2efa3a0..f080f0f 100644
--- a/app/src/main/java/org/deke/risk/riskahead/SubscriptionsActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/SubscriptionsActivity.java
@@ -57,6 +57,7 @@ public class SubscriptionsActivity extends BaseActivity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
userHasToBeLoggedIn();
+ registerBroadcastReceiver();
tblBillings = (TableLayout) findViewById(R.id.tbl_billing);
getSubscriptions(user.get(SessionManager.KEY_UID));
diff --git a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java
index 7d7ab0b..4155733 100644
--- a/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/ViewReportActivity.java
@@ -63,7 +63,8 @@ public class ViewReportActivity extends BaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
userHasToBeLoggedIn();
-
+ registerBroadcastReceiver();
+
txtIncidentCategory = (EditText) findViewById(R.id.txt_viewreport_incidentcategory);
txtIncidentSubCategory = (EditText) findViewById(R.id.txt_viewreport_incidentsubcategory);
txtPosition = (EditText) findViewById(R.id.txt_viewreport_position);
diff --git a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_2_Fragment.java b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_2_Fragment.java
index 889f803..41d3f1a 100644
--- a/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_2_Fragment.java
+++ b/app/src/main/java/org/deke/risk/riskahead/fragment/ReportWF_2_Fragment.java
@@ -24,8 +24,10 @@ import org.deke.risk.riskahead.ReportWFActivity;
import org.deke.risk.riskahead.helper.IncidentReport;
import org.deke.risk.riskahead.adapter.SpinnerHintAdapter;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Date;
/**
* @author Dennis Thießen
@@ -229,8 +231,13 @@ public class ReportWF_2_Fragment extends Fragment {
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
- tmpInput.setText(new StringBuilder().append(hourOfDay)
- .append(":").append(minute).append(" "));
+ try {
+ SimpleDateFormat df = new SimpleDateFormat("hh:mm");
+ Date tmpTime = df.parse(hourOfDay + ":" + minute);
+ tmpInput.setText(df.format(tmpTime));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
checkIfFinished();
}
@@ -254,10 +261,13 @@ public class ReportWF_2_Fragment extends Fragment {
}
public void onDateSet(DatePicker view, int year, int month, int day) {
- tmpInput.setText(new StringBuilder()
- .append(year).append("-").append(month + 1).append("-")
- .append(day).append(" "));
-
+ try {
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+ Date tmpTime = df.parse(year + "-" + month + 1 + "-" + day);
+ tmpInput.setText(df.format(tmpTime));
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
checkIfFinished();
}
}
@@ -298,6 +308,8 @@ public class ReportWF_2_Fragment extends Fragment {
}
}
+ saveInput();
+ ((ReportWFActivity)getActivity()).setIncident(incident);
mCallback.onInputFinished(isTimeCategoryFilled && isSubCategoryFilled && isFromDateFilled && isToDateFilled);
}
@@ -346,14 +358,18 @@ public class ReportWF_2_Fragment extends Fragment {
public void onPause() {
super.onPause();
+ saveInput();
+
+ ((ReportWFActivity)getActivity()).setIncident(incident);
+ }
+
+ private void saveInput() {
incident.setFidTimeCategory(timeCategory.getSelectedItemPosition());
incident.setFidTimeSubCategory(timeSubCategory.getSelectedItemPosition());
incident.setFromDate(inputDateFrom.getText().toString());
incident.setFromTime(inputTimeFrom.getText().toString());
incident.setToDate(inputDateTo.getText().toString());
incident.setToTime(inputTimeTo.getText().toString());
-
- ((ReportWFActivity)getActivity()).setIncident(incident);
}
@Override
diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/AppConfig.java b/app/src/main/java/org/deke/risk/riskahead/helper/AppConfig.java
index 1224339..5116b8e 100644
--- a/app/src/main/java/org/deke/risk/riskahead/helper/AppConfig.java
+++ b/app/src/main/java/org/deke/risk/riskahead/helper/AppConfig.java
@@ -17,6 +17,7 @@ public class AppConfig {
public final static String INTENT_REGISTER = "register";
public final static String INTENT_NORMALLOGIN = "normallogin";
public final static String INTENT_SOCIALMEDIALOGIN = "socialmedialogin";
+ public final static String INTENT_LOGOUT = "org.deke.risk.riskahead.ACTION_LOGOUT";
/** HANDLER INTERVALS **/
public final static int UPDATE_COUNT_INTERVAL = 1000 * 30; //30 seconds
diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java b/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java
index 1848545..9dfdd01 100644
--- a/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java
+++ b/app/src/main/java/org/deke/risk/riskahead/helper/BaseActivity.java
@@ -3,9 +3,11 @@ package org.deke.risk.riskahead.helper;
import android.app.ActivityManager;
import android.app.AlertDialog;
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.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
@@ -120,6 +122,20 @@ public abstract class BaseActivity extends AppCompatActivity {
}else{
Log.d(TAG,"onCreate: NotificationService already running. Not starting more services.");
}
+
+
+ }
+
+ public void registerBroadcastReceiver(){
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(AppConfig.INTENT_LOGOUT);
+ registerReceiver(new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.d("onReceive", "Logout in progress");
+ finish();
+ }
+ }, intentFilter);
}
private class MyLocationListener implements LocationListener {
@@ -328,8 +344,12 @@ public abstract class BaseActivity extends AppCompatActivity {
session.setLogin(false);
Intent intent = new Intent(BaseActivity.this, LoginActivity.class);
- intent.putExtra(EXTRA_MESSAGE, "login");
+ intent.putExtra(EXTRA_MESSAGE, AppConfig.INTENT_LOGIN);
BaseActivity.this.startActivity(intent);
+
+ Intent broadcastIntent = new Intent();
+ broadcastIntent.setAction(AppConfig.INTENT_LOGOUT);
+ sendBroadcast(broadcastIntent);
finish();
}
diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/IncidentReport.java b/app/src/main/java/org/deke/risk/riskahead/helper/IncidentReport.java
index e4f0490..17e49c7 100644
--- a/app/src/main/java/org/deke/risk/riskahead/helper/IncidentReport.java
+++ b/app/src/main/java/org/deke/risk/riskahead/helper/IncidentReport.java
@@ -142,11 +142,17 @@ public class IncidentReport implements ClusterItem {
int mIcon;
Date tmpFromDate = null;
- Date today = new Date();
+ SimpleDateFormat simpleDateFormat = null;
+ Date today = new Date(System.currentTimeMillis()-1*60*60*1000);
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
- tmpFromDate = simpleDateFormat.parse(this.fromDate);
+ if(this.fromTime != null){
+ simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+ tmpFromDate = simpleDateFormat.parse(this.fromDate+" "+this.fromTime);
+ }else{
+ simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ tmpFromDate = simpleDateFormat.parse(this.fromDate);
+ }
} catch (ParseException e) {
e.printStackTrace();
}
diff --git a/app/src/main/java/org/deke/risk/riskahead/helper/NotificationService.java b/app/src/main/java/org/deke/risk/riskahead/helper/NotificationService.java
index 6e5a9af..6d0f01f 100644
--- a/app/src/main/java/org/deke/risk/riskahead/helper/NotificationService.java
+++ b/app/src/main/java/org/deke/risk/riskahead/helper/NotificationService.java
@@ -149,13 +149,22 @@ public class NotificationService extends Service {
}
private void sentNotification(JSONArray notification) {
+ String title = "";
+ String context = "";
+
+ if(notification.length() == 1){
+ title = getString(R.string.txt_notification_title);
+ context = notification.length() + " " + getString(R.string.txt_notification_context);
+ }else{
+ title = getString(R.string.txt_notification_title_multi);
+ context = notification.length() + " " + getString(R.string.txt_notification_context_multi);
+ }
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.drawable.logo_riskahead_header)
- .setContentTitle("New incidents reported in your area!")
- .setContentText(notification.length() + " new incidents near your last location. Watch out!");
-
-
+ .setAutoCancel(true)
+ .setContentTitle(title)
+ .setContentText(context);
Intent resultIntent = new Intent(this, MapsActivity.class);
diff --git a/app/src/main/res/anim/fade_in_anim.xml b/app/src/main/res/anim/fade_in_anim.xml
index 03a7fc8..ee9288f 100644
--- a/app/src/main/res/anim/fade_in_anim.xml
+++ b/app/src/main/res/anim/fade_in_anim.xml
@@ -8,6 +8,6 @@
android:repeatCount="0" />
-->
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/fade_out_anim.xml b/app/src/main/res/anim/fade_out_anim.xml
index 3e3d9f9..6c07221 100644
--- a/app/src/main/res/anim/fade_out_anim.xml
+++ b/app/src/main/res/anim/fade_out_anim.xml
@@ -8,6 +8,6 @@
android:repeatCount="0" />
-->
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/header2.jpg b/app/src/main/res/drawable/header2.jpg
deleted file mode 100644
index 57a8cad..0000000
Binary files a/app/src/main/res/drawable/header2.jpg and /dev/null differ
diff --git a/app/src/main/res/drawable/logo_riskahead_header.png b/app/src/main/res/drawable/logo_riskahead_header.png
deleted file mode 100644
index ebd9d6b..0000000
Binary files a/app/src/main/res/drawable/logo_riskahead_header.png and /dev/null differ
diff --git a/app/src/main/res/menu/menu_maps.xml b/app/src/main/res/menu/menu_maps.xml
index aaebe9a..8a16239 100644
--- a/app/src/main/res/menu/menu_maps.xml
+++ b/app/src/main/res/menu/menu_maps.xml
@@ -3,9 +3,6 @@
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.deke.risk.riskahead.MapsActivity">
-
-
- Suche
Bitte wählen …
-
+ Neuer Vorfall in deiner Nähe gemeldet!
+ Neue Vorfälle in deiner Nähe gemeldet!
+ neuer Vorfall. Pass auf!
+ neue Vorfälle. Pass auf!
- Allgemeiner Vorfall/Situation
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5b111d3..525f640 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -140,6 +140,10 @@
Help us by purchasing subscriptions. This allows us to maintain and enhance RiskAhead in the future.
Please select …
+ New incident reported in your area!
+ New incidents reported in your area!
+ new incident near your last location. Watch out!
+ new incidents near your last location. Watch out!
- Allgemeiner Vorfall/Situation