diff --git a/mobile/com.sap.sailing.android.shared/.settings/org.eclipse.jdt.core.prefs b/mobile/com.sap.sailing.android.shared/.settings/org.eclipse.jdt.core.prefs
index 54e493c07c9..980b98c1d5f 100644
--- a/mobile/com.sap.sailing.android.shared/.settings/org.eclipse.jdt.core.prefs
+++ b/mobile/com.sap.sailing.android.shared/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/mobile/com.sap.sailing.android.shared/AndroidManifest.xml b/mobile/com.sap.sailing.android.shared/AndroidManifest.xml
index a623b7ef3fe..d6035afee9f 100644
--- a/mobile/com.sap.sailing.android.shared/AndroidManifest.xml
+++ b/mobile/com.sap.sailing.android.shared/AndroidManifest.xml
@@ -3,6 +3,6 @@
android:versionCode="1"
android:versionName="1.0">
-
+
diff --git a/mobile/com.sap.sailing.android.shared/pom.xml b/mobile/com.sap.sailing.android.shared/pom.xml
index 3b828640040..f8b9b21d2cd 100644
--- a/mobile/com.sap.sailing.android.shared/pom.xml
+++ b/mobile/com.sap.sailing.android.shared/pom.xml
@@ -69,7 +69,7 @@
android-maven-plugin
- 13
+ 19
diff --git a/mobile/com.sap.sailing.android.shared/project.properties b/mobile/com.sap.sailing.android.shared/project.properties
index 47854331abc..369bd645175 100755
--- a/mobile/com.sap.sailing.android.shared/project.properties
+++ b/mobile/com.sap.sailing.android.shared/project.properties
@@ -11,6 +11,6 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
-target=android-13
+target=android-19
android.library=true
diff --git a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/ConnectivityChangedReceiver.java b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/ConnectivityChangedReceiver.java
index 9e8b57626d0..679bcadbeb3 100644
--- a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/ConnectivityChangedReceiver.java
+++ b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/ConnectivityChangedReceiver.java
@@ -35,7 +35,9 @@ public class ConnectivityChangedReceiver extends BroadcastReceiver {
*/
@Override
public void onReceive(Context context, Intent intent) {
- NetworkInfo networkInfo = (NetworkInfo)intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
+ ConnectivityManager cService = (ConnectivityManager)
+ context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo networkInfo = (NetworkInfo) cService.getActiveNetworkInfo();
if (!networkInfo.isConnected())
return;
context.startService(MessageSendingService.createSendDelayedIntent(context));
diff --git a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/MessagePersistenceManager.java b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/MessagePersistenceManager.java
index 9ff8aae8a8f..eb37655aadf 100644
--- a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/MessagePersistenceManager.java
+++ b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/MessagePersistenceManager.java
@@ -4,6 +4,7 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
@@ -38,7 +39,7 @@ public class MessagePersistenceManager {
return !persistedMessages.isEmpty();
}
- public void persistIntent(Intent intent) {
+ public void persistIntent(Intent intent) throws UnsupportedEncodingException {
Bundle extras = intent.getExtras();
String callbackPayload = extras.getString(MessageSendingService.CALLBACK_PAYLOAD);
String url = extras.getString(MessageSendingService.URL);
@@ -47,7 +48,7 @@ public class MessagePersistenceManager {
persistMessage(url, callbackPayload, payload, callbackClass);
}
- private void persistMessage(String url, String callbackPayload, String payload, String callbackClass) {
+ private void persistMessage(String url, String callbackPayload, String payload, String callbackClass) throws UnsupportedEncodingException {
String messageLine = getSerializedIntentForPersistence(url, callbackPayload, payload, callbackClass);
ExLog.i(context, TAG, String.format("Persisting message \"%s\".", messageLine));
if (persistedMessages.contains(messageLine)) {
@@ -59,15 +60,17 @@ public class MessagePersistenceManager {
/**
* @param payload will be URL-encoded to ensure that the resulting string does not contain newlines
+ * @throws UnsupportedEncodingException
*/
private String getSerializedIntentForPersistence(String url, String callbackPayload,
- String payload, String callbackClass) {
- String messageLine = String.format("%s;%s;%s;%s", callbackPayload, URLEncoder.encode(payload),
+ String payload, String callbackClass) throws UnsupportedEncodingException {
+ String messageLine = String.format("%s;%s;%s;%s", callbackPayload, URLEncoder.encode(payload,
+ MessageSendingService.charsetName),
url, callbackClass);
return messageLine;
}
- public void removeIntent(Intent intent) {
+ public void removeIntent(Intent intent) throws UnsupportedEncodingException {
Bundle extras = intent.getExtras();
String url = extras.getString(MessageSendingService.URL);
String callbackPayload = extras.getString(MessageSendingService.CALLBACK_PAYLOAD);
@@ -76,7 +79,7 @@ public class MessagePersistenceManager {
removeMessage(url, callbackPayload, payload, callbackClass);
}
- private void removeMessage(String url, String callbackPayload, String payload, String callbackClass) {
+ private void removeMessage(String url, String callbackPayload, String payload, String callbackClass) throws UnsupportedEncodingException {
if (!persistedMessages.isEmpty()) {
ExLog.i(context, TAG, String.format("Removing message \"%s\".", payload));
String messageLine = getSerializedIntentForPersistence(url, callbackPayload, payload, callbackClass);
@@ -112,13 +115,13 @@ public class MessagePersistenceManager {
void restoreMessage(Context context, Intent messageIntent);
}
- public List restoreMessages() {
+ public List restoreMessages() throws UnsupportedEncodingException {
List delayedIntents = new ArrayList();
for (String persistedMessage : persistedMessages) {
String[] lineParts = persistedMessage.split(";");
String url = lineParts[2];
String callbackPayload = lineParts[0];
- String payload = URLDecoder.decode(lineParts[1]);
+ String payload = URLDecoder.decode(lineParts[1], MessageSendingService.charsetName);
String callbackClassString = lineParts[3];
Class extends ServerReplyCallback> callbackClass = null;
diff --git a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/MessageSendingService.java b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/MessageSendingService.java
index 6b19eb0ee6b..50845320c3c 100644
--- a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/MessageSendingService.java
+++ b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/services/sending/MessageSendingService.java
@@ -2,6 +2,7 @@ package com.sap.sailing.android.shared.services.sending;
import java.io.InputStream;
import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Calendar;
import java.util.Date;
@@ -61,6 +62,8 @@ public class MessageSendingService extends Service implements MessageSendingList
public final static String CALLBACK_CLASS = "callback";
public final static String CALLBACK_PAYLOAD = "callbackPayload"; // passed back to callback
public final static String MESSAGE_ID = "messageId";
+
+ public static final String charsetName = "UTF=8";
protected final static String TAG = MessageSendingService.class.getName();
@@ -225,7 +228,11 @@ public class MessageSendingService extends Service implements MessageSendingList
ExLog.i(this, TAG, String.format("Trying to send a message..."));
if (!isConnected()) {
ExLog.i(this, TAG, String.format("Send aborted because there is no connection."));
- persistenceManager.persistIntent(intent);
+ try {
+ persistenceManager.persistIntent(intent);
+ } catch (UnsupportedEncodingException e) {
+ ExLog.e(this, TAG, "Could not persist message (unsupported encoding)");
+ }
ConnectivityChangedReceiver.enable(this);
serviceLogger.onMessageSentFailed();
} else {
@@ -246,10 +253,14 @@ public class MessageSendingService extends Service implements MessageSendingList
}
private void sendDelayedMessages() {
- List delayedIntents = persistenceManager.restoreMessages();
- ExLog.i(this, TAG, String.format("Resending %d messages...", delayedIntents.size()));
- for (Intent intent : delayedIntents) {
- sendMessage(intent);
+ try {
+ List delayedIntents = persistenceManager.restoreMessages();
+ ExLog.i(this, TAG, String.format("Resending %d messages...", delayedIntents.size()));
+ for (Intent intent : delayedIntents) {
+ sendMessage(intent);
+ }
+ } catch (UnsupportedEncodingException e) {
+ ExLog.e(this, TAG, "Could not restore messages (unsupported encoding)");
}
}
@@ -276,7 +287,11 @@ public class MessageSendingService extends Service implements MessageSendingList
R.integer.preference_messageResendIntervalMillis_default);
if (!success) {
ExLog.w(this, TAG, "Error while posting intent to server. Will persist intent...");
- persistenceManager.persistIntent(intent);
+ try {
+ persistenceManager.persistIntent(intent);
+ } catch (UnsupportedEncodingException e) {
+ ExLog.e(this, TAG, "Could not store message (unsupported encoding)");
+ }
if (!isHandlerSet) {
SendDelayedMessagesCaller delayedCaller = new SendDelayedMessagesCaller(this);
handler.postDelayed(delayedCaller, resendMillis); // after 30 sec, try the sending again
@@ -286,7 +301,11 @@ public class MessageSendingService extends Service implements MessageSendingList
} else {
ExLog.i(this, TAG, "Message successfully sent.");
if (persistenceManager.areIntentsDelayed()) {
- persistenceManager.removeIntent(intent);
+ try {
+ persistenceManager.removeIntent(intent);
+ } catch (UnsupportedEncodingException e) {
+ ExLog.e(this, TAG, "Could not remove message (unsupported encoding)");
+ }
}
lastSuccessfulSend = Calendar.getInstance().getTime();
serviceLogger.onMessageSentSuccessful();
@@ -327,15 +346,15 @@ public class MessageSendingService extends Service implements MessageSendingList
public final static UUID uuid = UUID.randomUUID();
public static String getRaceLogEventSendAndReceiveUrl(Context context, final String raceGroupName,
- final String raceName, final String fleetName) {
+ final String raceName, final String fleetName) throws UnsupportedEncodingException {
String url = String.format("%s/sailingserver/rc/racelog?"+
RaceLogServletConstants.PARAMS_LEADERBOARD_NAME+"=%s&"+
RaceLogServletConstants.PARAMS_RACE_COLUMN_NAME+"=%s&"+
RaceLogServletConstants.PARAMS_RACE_FLEET_NAME+"=%s&"+
RaceLogServletConstants.PARAMS_CLIENT_UUID+"=%s",
PrefUtils.getString(context, R.string.preference_server_url_key, R.string.preference_server_url_default),
- URLEncoder.encode(raceGroupName),
- URLEncoder.encode(raceName), URLEncoder.encode(fleetName), uuid);
+ URLEncoder.encode(raceGroupName, charsetName),
+ URLEncoder.encode(raceName, charsetName), URLEncoder.encode(fleetName, charsetName), uuid);
return url;
}
}
diff --git a/mobile/com.sap.sailing.android.tracking.app/.settings/org.eclipse.jdt.core.prefs b/mobile/com.sap.sailing.android.tracking.app/.settings/org.eclipse.jdt.core.prefs
index b080d2ddc88..d17b6724d17 100644
--- a/mobile/com.sap.sailing.android.tracking.app/.settings/org.eclipse.jdt.core.prefs
+++ b/mobile/com.sap.sailing.android.tracking.app/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,12 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/mobile/com.sap.sailing.android.tracking.app/AndroidManifest.xml b/mobile/com.sap.sailing.android.tracking.app/AndroidManifest.xml
index bf9082551ff..f4c6bd71d2c 100644
--- a/mobile/com.sap.sailing.android.tracking.app/AndroidManifest.xml
+++ b/mobile/com.sap.sailing.android.tracking.app/AndroidManifest.xml
@@ -5,8 +5,8 @@
android:versionName="1 - Altitude" >
+ android:minSdkVersion="19"
+ android:targetSdkVersion="21" />
diff --git a/mobile/com.sap.sailing.android.tracking.app/project.properties b/mobile/com.sap.sailing.android.tracking.app/project.properties
index 5186891db89..6e3def9a6b2 100644
--- a/mobile/com.sap.sailing.android.tracking.app/project.properties
+++ b/mobile/com.sap.sailing.android.tracking.app/project.properties
@@ -11,6 +11,6 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
-target=Google Inc.:Google APIs:13
+target=Google Inc.:Google APIs:19
android.library.reference.1=../google-play-services_lib
android.library.reference.2=../com.sap.sailing.android.shared
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/services/TrackingService.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/services/TrackingService.java
index 2332d865031..bb15dd27a06 100644
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/services/TrackingService.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/services/TrackingService.java
@@ -144,11 +144,17 @@ public class TrackingService extends Service implements ConnectionCallbacks, OnC
private void showNotification() {
CharSequence text = getText(R.string.tracker_started);
- Notification notification = new Notification(R.drawable.icon, text, System.currentTimeMillis());
Intent i = new Intent(this, LaunchActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pi = PendingIntent.getActivity(this, 0, i, 0);
- notification.setLatestEventInfo(this, getText(R.string.app_name), text, pi);
+ Notification notification = new Notification.Builder(this)
+ .setSmallIcon(R.drawable.icon)
+ .setTicker(text)
+ .setWhen(System.currentTimeMillis())
+ .setContentTitle(getText(R.string.app_name))
+ .setContentText(text)
+ .setContentIntent(pi)
+ .build();
notification.flags |= Notification.FLAG_NO_CLEAR;
startForeground(NOTIFICATION_ID, notification);
}
diff --git a/mobile/com.sap.sailing.racecommittee.app/.settings/org.eclipse.jdt.core.prefs b/mobile/com.sap.sailing.racecommittee.app/.settings/org.eclipse.jdt.core.prefs
index b080d2ddc88..d17b6724d17 100644
--- a/mobile/com.sap.sailing.racecommittee.app/.settings/org.eclipse.jdt.core.prefs
+++ b/mobile/com.sap.sailing.racecommittee.app/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,12 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/mobile/com.sap.sailing.racecommittee.app/AndroidManifest.xml b/mobile/com.sap.sailing.racecommittee.app/AndroidManifest.xml
index 46d905b3b47..a93e148ec32 100644
--- a/mobile/com.sap.sailing.racecommittee.app/AndroidManifest.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/AndroidManifest.xml
@@ -2,12 +2,11 @@
+ android:versionName="6 - Laser" xmlns:tools="http://schemas.android.com/tools">
+ android:minSdkVersion="19"
+ android:targetSdkVersion="19" tools:ignore="OldTargetApi"/>
>(context, new URL(preferences.getServerBaseURL() +
"/sailingserver/rc/marks?"+RaceLogServletConstants.PARAMS_LEADERBOARD_NAME + "=" + raceGroupName +
@@ -188,9 +188,9 @@ public class OnlineDataManager extends DataManager {
ManagedRaceIdentifier identifier = managedRace.getIdentifier();
- String raceGroupName = URLEncoder.encode(identifier.getRaceGroup().getName());
- String raceColumnName = URLEncoder.encode(identifier.getRaceName());
- String fleetName = URLEncoder.encode(identifier.getFleet().getName());
+ String raceGroupName = URLEncoder.encode(identifier.getRaceGroup().getName(), MessageSendingService.charsetName);
+ String raceColumnName = URLEncoder.encode(identifier.getRaceName(), MessageSendingService.charsetName);
+ String fleetName = URLEncoder.encode(identifier.getFleet().getName(), MessageSendingService.charsetName);
return new OnlineDataLoader(context, new URL(preferences.getServerBaseURL()
+ "/sailingserver/rc/currentcourse?" + RaceLogServletConstants.PARAMS_LEADERBOARD_NAME + "="
@@ -216,9 +216,9 @@ public class OnlineDataManager extends DataManager {
ManagedRaceIdentifier identifier = managedRace.getIdentifier();
- String raceGroupName = URLEncoder.encode(identifier.getRaceGroup().getName());
- String raceColumnName = URLEncoder.encode(identifier.getRaceName());
- String fleetName = URLEncoder.encode(identifier.getFleet().getName());
+ String raceGroupName = URLEncoder.encode(identifier.getRaceGroup().getName(), MessageSendingService.charsetName);
+ String raceColumnName = URLEncoder.encode(identifier.getRaceName(), MessageSendingService.charsetName);
+ String fleetName = URLEncoder.encode(identifier.getFleet().getName(), MessageSendingService.charsetName);
return new OnlineDataLoader>(context, new URL(
preferences.getServerBaseURL() + "/sailingserver/rc/competitors?"
@@ -240,7 +240,7 @@ public class OnlineDataManager extends DataManager {
DataHandler handler = new NullDataHandler();
DataParser parser = new DeviceConfigurationParser(DeviceConfigurationJsonDeserializer.create());
- String encodedIdentifier = URLEncoder.encode(identifier.getClientIdentifier());
+ String encodedIdentifier = URLEncoder.encode(identifier.getClientIdentifier(), MessageSendingService.charsetName);
encodedIdentifier = encodedIdentifier.replace("+", "%20");
return new OnlineDataLoader(
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPoller.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPoller.java
index f1778bca1d1..4d2431adc18 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPoller.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPoller.java
@@ -2,6 +2,7 @@ package com.sap.sailing.racecommittee.app.services.polling;
import java.io.InputStream;
import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -64,12 +65,12 @@ public class RaceLogPoller implements PollingActiveChangedListener {
this.hasRacesToPoll = true;
ExLog.i(context, TAG, String.format("Registered race %s for polling, will start in %d milliseconds.", race.getId(),
pollingInterval));
- } catch (MalformedURLException e) {
+ } catch (MalformedURLException | UnsupportedEncodingException e) {
ExLog.e(context, TAG, String.format("Unable to create polling URL for race %s: %s", race.getId(), e.getMessage()));
}
}
- private URL createURL(ManagedRace race) throws MalformedURLException {
+ private URL createURL(ManagedRace race) throws MalformedURLException, UnsupportedEncodingException {
return new URL(MessageSendingService.getRaceLogEventSendAndReceiveUrl(context, race.getRaceGroup().getName(),
race.getName(), race.getFleet().getName()));
}
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPollerTask.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPollerTask.java
index 328fb13e39d..4e75e342359 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPollerTask.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPollerTask.java
@@ -27,6 +27,7 @@ public class RaceLogPollerTask extends AsyncTask, P
this.context = context;
}
+ @SuppressWarnings("unchecked")
@Override
protected Void doInBackground(Util.Pair... queries) {
for (Util.Pair query : queries) {
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/EventSendingServiceUtil.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/EventSendingServiceUtil.java
index d0aac21ab1e..98de3887f0a 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/EventSendingServiceUtil.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/EventSendingServiceUtil.java
@@ -1,6 +1,7 @@
package com.sap.sailing.racecommittee.app.services.sending;
import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
import android.content.Context;
import android.content.Intent;
@@ -25,7 +26,7 @@ public class EventSendingServiceUtil {
* @return the intent that shall be sent to the EventSendingService
*/
public static Intent createEventIntent(Context context, ManagedRace race, Serializable eventId, String serializedEventAsJson,
- Class extends ServerReplyCallback> callbackClass) {
+ Class extends ServerReplyCallback> callbackClass) throws UnsupportedEncodingException {
String url = MessageSendingService.getRaceLogEventSendAndReceiveUrl(context,
race.getRaceGroup().getName(), race.getName(), race.getFleet().getName());
return MessageSendingService.createMessageIntent(context, url, race.getId(), eventId, serializedEventAsJson, callbackClass);
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/RaceEventSender.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/RaceEventSender.java
index e441be43ea5..38e760c0b0a 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/RaceEventSender.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/RaceEventSender.java
@@ -1,9 +1,12 @@
package com.sap.sailing.racecommittee.app.services.sending;
+import java.io.UnsupportedEncodingException;
+
import org.json.simple.JSONObject;
import android.app.Service;
+import com.sap.sailing.android.shared.logging.ExLog;
import com.sap.sailing.domain.abstractlog.race.RaceLogChangedListener;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
@@ -11,6 +14,7 @@ import com.sap.sailing.racecommittee.app.domain.racelog.impl.RaceLogEventsCallba
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class RaceEventSender implements RaceLogChangedListener {
+ private static final String TAG = RaceEventSender.class.getName();
private final Service service;
private final JsonSerializer serializer;
@@ -25,7 +29,11 @@ public class RaceEventSender implements RaceLogChangedListener {
@Override
public void eventAdded(RaceLogEvent event) {
JSONObject serializedEvent = serializer.serialize(event);
- service.startService(EventSendingServiceUtil.createEventIntent(service, race, event.getId(),
- serializedEvent.toJSONString(), RaceLogEventsCallback.class));
+ try {
+ service.startService(EventSendingServiceUtil.createEventIntent(service, race, event.getId(),
+ serializedEvent.toJSONString(), RaceLogEventsCallback.class));
+ } catch (UnsupportedEncodingException e) {
+ ExLog.e(service, TAG, "Could not create racelog event message (unsupported encoding)");
+ }
}
}
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/views/CameraView.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/views/CameraView.java
index 0fd7cb1877b..66eeee88fab 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/views/CameraView.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/views/CameraView.java
@@ -28,7 +28,6 @@ public class CameraView extends SurfaceView implements SurfaceHolder.Callback {
// underlying surface is created and destroyed.
surfaceHolder = getHolder();
surfaceHolder.addCallback(this);
- surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void snap(final PictureCallback pictureHandler) {
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterChecker.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterChecker.java
index 590fe52dd5b..78109ce58ea 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterChecker.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterChecker.java
@@ -44,7 +44,8 @@ public class AutoUpdaterChecker {
this.dialog = new ProgressDialog(context);
dialog.setTitle(context.getString(R.string.auto_update));
dialog.setCancelable(true);
- dialog.setButton(context.getString(android.R.string.cancel), new DialogInterface.OnClickListener() {
+ dialog.setButton(DialogInterface.BUTTON_POSITIVE,
+ context.getString(android.R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
dialog.cancel();