Merge remote-tracking branch 'origin/master' into bug2346

This commit is contained in:
Tim Hessenmüller
2021-01-18 14:37:09 +01:00
145 changed files with 5671 additions and 3730 deletions
@@ -6,4 +6,28 @@ public interface LeaderboardNameConstants {
static final String DEFAULT_FLEET_NAME = "Default";
static final String DEFAULT_SERIES_NAME = "Default";
}
static final String NAME = "name";
static final String DISPLAYNAME = "displayName";
static final String ISMETALEADERBOARD = "isMetaLeaderboard";
static final String ISREGATTALEADERBOARD = "isRegattaLeaderboard";
static final String SCORINGSCHEME = "scoringScheme";
static final String SCORINGCOMMENT = "scoringComment";
static final String LASTSCORINGUPDATE = "lastScoringUpdate";
static final String REGATTANAME = "regattaName";
static final String SERIES = "series";
static final String ISMEDALSERIES = "isMedalSeries";
static final String FLEETS = "fleets";
static final String COLOR = "color";
static final String ORDERING = "ordering";
static final String RACES = "races";
static final String ISMEDALRACE = "isMedalRace";
static final String ISTRACKED = "isTracked";
static final String TRACKEDRACENAME = "trackedRaceName";
static final String TRACKINGPROVIDERTYPE = "trackingProviderType";
static final String RACEID = "raceId";
static final String RACEVIEWERURLS = "raceViewerUrls";
static final String HASGPSDATA = "hasGpsData";
static final String HASWINDDATA = "hasWindData";
}
@@ -7,12 +7,21 @@ import java.util.UUID;
/**
* This class is used by our backend, in GWT-client code and by the Android app. Therefore we cannot use classes like
* {@link URLEncoder} to help us with the encoding.
* {@link URLEncoder} to help us with the encoding.<p>
*
* Example URL:<pre>
* https://racemanager-app.sapsailing.com/invite?server_url=https://dev.sapsailing.com/&device_config_identifier=D-Labs+Test&device_config_uuid=6fb0e2e3-23e6-4d2e-b66a-77d98feb7fdd&token=KY5G48LdOiTysCCiRfvFIVO87Ljbfzo3a4%2Bal63H%2Fvw%3D&event_id=8c3bdd16-a3d1-4a38-bf82-29d98ce18bec&course_area_uuid=fe96623a-d570-4dc5-8cc4-7fe8c5e7e2c0&priority=2
* </pre>
*/
public class DeviceConfigurationQRCodeUtils {
public static final String deviceIdentifierKey = "identifier";
private static final String BASE_INVITATION_URL = "https://racemanager-app.sapsailing.com/invite";
public static final String serverUrl = "server_url";
public static final String eventId = "event_id";
public static final String courseAreaId = "course_area_uuid";
public static final String priority = "priority";
public static final String deviceIdentifierKey = "device_config_identifier";
public static final String deviceUuidKey = "device_config_uuid";
public static final String accessTokenKey = "token";
public static final String deviceUuidKey = "uuid";
public static class DeviceConfigurationDetails {
private final String url;
@@ -45,9 +54,17 @@ public class DeviceConfigurationQRCodeUtils {
String decode(String encodedURL);
}
public static String composeQRContent(String urlEncodedDeviceConfigName, String url, String accessToken, String urlEncodedDeviceIdAsString) {
return url + "#" + deviceIdentifierKey + "=" + urlEncodedDeviceConfigName + "&" + deviceUuidKey + "="
+ urlEncodedDeviceIdAsString + "&" + accessTokenKey + "=" + accessToken;
public static String composeQRContent(String serverUrlWithoutFinalSlash, String urlEncodedDeviceConfigName,
String urlEncodedDeviceIdAsString, UUID eventId, UUID courseAreaId, Integer priority,
String accessToken) {
return BASE_INVITATION_URL
+ "?"+serverUrl+"="+serverUrlWithoutFinalSlash
+ "&" + deviceIdentifierKey + "=" + urlEncodedDeviceConfigName
+ "&" + deviceUuidKey + "=" + urlEncodedDeviceIdAsString
+ (eventId != null ? ("&" + DeviceConfigurationQRCodeUtils.eventId + "=" + eventId) : "")
+ (courseAreaId != null ? ("&" + DeviceConfigurationQRCodeUtils.courseAreaId + "=" + courseAreaId) : "")
+ (priority != null ? ("&" + DeviceConfigurationQRCodeUtils.priority + "=" + priority) : "")
+ (accessToken != null ? ("&" + accessTokenKey + "=" + accessToken) : "");
}
public static DeviceConfigurationDetails splitQRContent(String qrCodeContent, URLDecoder urlDecoder) {