diff --git a/mobile/com.sap.sailing.android.shared/res/values/preferences.xml b/mobile/com.sap.sailing.android.shared/res/values/preferences.xml
index bfa77307b4e..0fbf93666e0 100644
--- a/mobile/com.sap.sailing.android.shared/res/values/preferences.xml
+++ b/mobile/com.sap.sailing.android.shared/res/values/preferences.xml
@@ -17,9 +17,12 @@
competitor
-1
-
+ ‚
+ lastScannedQRCode
+
com.sap.sailing
com.sap.sailing.android.shared.action.sendSavedIntents
com.sap.sailing.android.shared.action.sendMessage
+
diff --git a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/util/BaseAppPreferences.java b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/util/BaseAppPreferences.java
new file mode 100644
index 00000000000..e9c2e3a08b2
--- /dev/null
+++ b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/util/BaseAppPreferences.java
@@ -0,0 +1,31 @@
+package com.sap.sailing.android.shared.util;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import com.sap.sailing.android.shared.R;
+
+public class BaseAppPreferences {
+ protected final Context context;
+ protected final SharedPreferences preferences;
+
+ public BaseAppPreferences(Context context) {
+ this.context = context;
+ //multi process mode so that services read consistent values
+ preferences = context.getSharedPreferences(BaseAppPreferences.class.getName(), Context.MODE_MULTI_PROCESS);
+ }
+
+ public String getDeviceIdentifier() {
+ return UniqueDeviceUuid.getUniqueId(context);
+ }
+
+ public String getLastScannedQRCode()
+ {
+ return preferences.getString(context.getString(R.string.preference_last_scanned_qr_code), null);
+ }
+
+ public void setLastScannedQRCode(String lastQRCode)
+ {
+ preferences.edit().putString(context.getString(R.string.preference_last_scanned_qr_code), lastQRCode).commit();
+ }
+}
diff --git a/mobile/com.sap.sailing.android.tracking.app/res/layout-land/fragment_compass.xml b/mobile/com.sap.sailing.android.tracking.app/res/layout-land/fragment_compass.xml
index b472184950a..d4f25699ecc 100644
--- a/mobile/com.sap.sailing.android.tracking.app/res/layout-land/fragment_compass.xml
+++ b/mobile/com.sap.sailing.android.tracking.app/res/layout-land/fragment_compass.xml
@@ -21,7 +21,7 @@
android:paddingTop="15dp"
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
- trackingTimerStarted
trackerIsTracking
trackerIsTrackingCheckinDigest
- lastScannedQRCode
On
Off
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/RegattaActivity.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/RegattaActivity.java
index 1421ded7d6a..602998c3923 100755
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/RegattaActivity.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/RegattaActivity.java
@@ -25,16 +25,16 @@ import com.sap.sailing.android.tracking.app.R;
import com.sap.sailing.android.tracking.app.ui.fragments.RegattaFragment;
import com.sap.sailing.android.tracking.app.utils.CheckinManager;
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper;
-import com.sap.sailing.android.tracking.app.utils.NetworkHelper;
-import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperError;
-import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperFailureListener;
-import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperSuccessListener;
-import com.sap.sailing.android.tracking.app.utils.UniqueDeviceUuid;
+import com.sap.sailing.android.shared.util.NetworkHelper;
+import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperError;
+import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperFailureListener;
+import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperSuccessListener;
+import com.sap.sailing.android.shared.util.UniqueDeviceUuid;
import com.sap.sailing.android.tracking.app.valueobjects.CheckinData;
import com.sap.sailing.android.tracking.app.valueobjects.CheckinUrlInfo;
import com.sap.sailing.android.tracking.app.valueobjects.CompetitorInfo;
import com.sap.sailing.android.tracking.app.valueobjects.EventInfo;
-import com.sap.sailing.android.tracking.app.valueobjects.LeaderboardInfo;
+import com.sap.sailing.android.shared.data.LeaderboardInfo;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/HomeFragment.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/HomeFragment.java
index eaf454aac43..e762cbe0a46 100644
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/HomeFragment.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/HomeFragment.java
@@ -27,7 +27,7 @@ import com.sap.sailing.android.shared.data.http.HttpJsonPostRequest;
import com.sap.sailing.android.shared.logging.ExLog;
import com.sap.sailing.android.tracking.app.BuildConfig;
import com.sap.sailing.android.tracking.app.R;
-import com.sap.sailing.android.tracking.app.adapter.RegattaAdapter;
+import com.sap.sailing.android.shared.ui.adapters.RegattaAdapter;
import com.sap.sailing.android.tracking.app.provider.AnalyticsContract;
import com.sap.sailing.android.tracking.app.ui.activities.RegattaActivity;
import com.sap.sailing.android.tracking.app.ui.activities.StartActivity;
@@ -36,10 +36,10 @@ import com.sap.sailing.android.tracking.app.utils.CheckinHelper;
import com.sap.sailing.android.tracking.app.utils.CheckinManager;
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper;
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper.GeneralDatabaseHelperException;
-import com.sap.sailing.android.tracking.app.utils.NetworkHelper;
-import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperError;
-import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperFailureListener;
-import com.sap.sailing.android.tracking.app.utils.NetworkHelper.NetworkHelperSuccessListener;
+import com.sap.sailing.android.shared.util.NetworkHelper;
+import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperError;
+import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperFailureListener;
+import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperSuccessListener;
import com.sap.sailing.android.tracking.app.valueobjects.CheckinData;
import org.json.JSONException;
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/TrackingFragment.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/TrackingFragment.java
index 77e33277588..6a3ff4c7049 100644
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/TrackingFragment.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/TrackingFragment.java
@@ -18,7 +18,7 @@ import com.sap.sailing.android.shared.logging.ExLog;
import com.sap.sailing.android.shared.services.sending.MessageSendingService.APIConnectivity;
import com.sap.sailing.android.tracking.app.BuildConfig;
import com.sap.sailing.android.tracking.app.R;
-import com.sap.sailing.android.tracking.app.customviews.SignalQualityIndicatorView;
+import com.sap.sailing.android.shared.ui.customviews.SignalQualityIndicatorView;
import com.sap.sailing.android.tracking.app.services.TrackingService.GPSQuality;
import com.sap.sailing.android.tracking.app.ui.activities.TrackingActivity;
import com.sap.sailing.android.tracking.app.utils.AppPreferences;
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/preference/GeneralPreferenceFragment.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/preference/GeneralPreferenceFragment.java
index 249cb001d88..7e3e592d563 100644
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/preference/GeneralPreferenceFragment.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/preference/GeneralPreferenceFragment.java
@@ -8,7 +8,7 @@ import android.preference.SwitchPreference;
import com.sap.sailing.android.shared.ui.fragments.preference.BasePreferenceFragment;
import com.sap.sailing.android.tracking.app.R;
import com.sap.sailing.android.tracking.app.utils.AppPreferences;
-import com.sap.sailing.android.tracking.app.utils.UniqueDeviceUuid;
+import com.sap.sailing.android.shared.util.UniqueDeviceUuid;
public class GeneralPreferenceFragment extends BasePreferenceFragment {
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/AppPreferences.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/AppPreferences.java
index 1fc261160a4..3726faae147 100644
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/AppPreferences.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/AppPreferences.java
@@ -1,33 +1,22 @@
package com.sap.sailing.android.tracking.app.utils;
import android.content.Context;
-import android.content.SharedPreferences;
import com.sap.sailing.android.shared.util.PrefUtils;
import com.sap.sailing.android.tracking.app.R;
+import com.sap.sailing.android.shared.util.BaseAppPreferences;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
-public class AppPreferences {
- protected final Context context;
- protected final SharedPreferences preferences;
- public static final AbstractLogEventAuthor raceLogEventAuthor = new LogEventAuthorImpl("Tracking App", 0);
-
- public AppPreferences(Context context) {
- this.context = context;
- //multi process mode so that services read consistent values
- this.preferences = context.getSharedPreferences(AppPreferences.class.getName(), Context.MODE_MULTI_PROCESS);
- }
-
- public void setDeviceIdentifier(String deviceId)
- {
- preferences.edit().putString(context.getString(R.string.preference_device_identifier_key), deviceId).commit();
+public class AppPreferences extends BaseAppPreferences {
+
+ public AppPreferences(Context context){
+ super(context);
}
- public String getDeviceIdentifier() {
- return UniqueDeviceUuid.getUniqueId(context);
- }
+ public static final AbstractLogEventAuthor raceLogEventAuthor = new LogEventAuthorImpl("Tracking App", 0);
+
public String getServerUploadTeamImagePath() {
return PrefUtils.getString(context, R.string.preference_server_team_image_upload_path, R.string.preference_server_team_image_upload_path);
}
@@ -145,16 +134,6 @@ public class AppPreferences {
return false;
}
- public String getLastScannedQRCode()
- {
- return preferences.getString(context.getString(R.string.preference_last_scanned_qr_code), null);
- }
-
- public void setLastScannedQRCode(String lastQRCode)
- {
- preferences.edit().putString(context.getString(R.string.preference_last_scanned_qr_code), lastQRCode).commit();
- }
-
public void setMessageResendInterval(int interval)
{
preferences.edit().putInt(context.getString(R.string.preference_messageResendIntervalMillis_key), interval).commit();
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
index ac55cab5245..f0166431234 100644
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/CheckinManager.java
@@ -7,6 +7,8 @@ import android.widget.Toast;
import com.sap.sailing.android.shared.data.http.HttpGetRequest;
import com.sap.sailing.android.shared.logging.ExLog;
+import com.sap.sailing.android.shared.util.NetworkHelper;
+import com.sap.sailing.android.shared.util.UniqueDeviceUuid;
import com.sap.sailing.android.tracking.app.R;
import com.sap.sailing.android.tracking.app.ui.activities.CheckinDataActivity;
import com.sap.sailing.android.tracking.app.valueobjects.CheckinData;
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/DatabaseHelper.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/DatabaseHelper.java
index 83455c8698f..54ad387bc05 100644
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/DatabaseHelper.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/utils/DatabaseHelper.java
@@ -20,7 +20,7 @@ import com.sap.sailing.android.tracking.app.provider.AnalyticsContract.CheckinUr
import com.sap.sailing.android.tracking.app.valueobjects.CheckinUrlInfo;
import com.sap.sailing.android.tracking.app.valueobjects.CompetitorInfo;
import com.sap.sailing.android.tracking.app.valueobjects.EventInfo;
-import com.sap.sailing.android.tracking.app.valueobjects.LeaderboardInfo;
+import com.sap.sailing.android.shared.data.LeaderboardInfo;
import java.util.ArrayList;
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/valueobjects/CheckinData.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/valueobjects/CheckinData.java
index 10b81acc82e..3aeb9a78891 100644
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/valueobjects/CheckinData.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/valueobjects/CheckinData.java
@@ -1,5 +1,7 @@
package com.sap.sailing.android.tracking.app.valueobjects;
+import com.sap.sailing.android.shared.data.LeaderboardInfo;
+
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;