Merge branch 'ubilabs--rcapp--master'

Conflicts:
	mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/LoginBackdrop.java
This commit is contained in:
Axel Uhl committed 2015-08-12 20:31:06 +02:00
commit beab5ecdb3
6 files changed
+59 -55

No files matched your search

@@ -4,9 +4,7 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
@@ -1,11 +1,12 @@
package com.sap.sailing.racecommittee.app.data;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.util.*;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import android.content.Context;
import android.util.Log;
import com.sap.sailing.android.shared.util.CollectionUtils;
import com.sap.sailing.domain.abstractlog.race.SimpleRaceLogIdentifier;
import com.sap.sailing.domain.abstractlog.race.impl.SimpleRaceLogIdentifierImpl;
@@ -16,18 +17,14 @@ import com.sap.sailing.domain.base.Mark;
import com.sap.sailing.domain.base.SharedDomainFactory;
import com.sap.sailing.domain.base.impl.SharedDomainFactoryImpl;
import com.sap.sailing.domain.base.racegroup.RaceGroup;
import com.sap.sailing.racecommittee.app.AppConstants;
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier;
import com.sap.sailing.racecommittee.app.domain.impl.FleetIdentifierImpl;
import com.sap.sailing.racecommittee.app.utils.UrlHelper;
import com.sap.sse.common.Util;
import com.sap.sse.common.Util.Triple;
public enum InMemoryDataStore implements DataStore {
INSTANCE;
private static String TAG = InMemoryDataStore.class.getName();
private HashMap<Serializable, EventBase> eventsById;
private HashMap<SimpleRaceLogIdentifier, ManagedRace> managedRaceById;
private HashMap<Serializable, Mark> marksById;
@@ -13,8 +13,8 @@ import android.app.LoaderManager.LoaderCallbacks;
import android.content.Context;
import android.content.Loader;
import android.os.Bundle;
import android.util.Log;
import com.sap.sailing.android.shared.logging.ExLog;
import com.sap.sailing.android.shared.services.sending.MessageSendingService;
import com.sap.sailing.domain.abstractlog.race.SimpleRaceLogIdentifier;
@@ -122,7 +122,7 @@ public class OnlineDataManager extends DataManager {
// ExLog.i(context, TAG, "getEventsLoader created new loader...");
URL url = UrlHelper.generateUrl(preferences.getServerBaseURL(), "/sailingserver/events", new ArrayList<Util.Pair>());
URL url = UrlHelper.generateUrl(preferences.getServerBaseURL(), "/sailingserver/events", null);
return new OnlineDataLoader<Collection<EventBase>>(context,
url, parser, handler);
}
@@ -178,10 +178,10 @@ public class OnlineDataManager extends DataManager {
globalConfiguration, RaceGroupDeserializer.create(domainFactory,
RegattaConfigurationJsonDeserializer.create()));
DataHandler<Collection<ManagedRace>> handler = new ManagedRacesDataHandler(OnlineDataManager.this);
List<Util.Pair> params = new ArrayList<>();
params.add(new Util.Pair(RaceLogServletConstants.PARAM_COURSE_AREA_FILTER, courseAreaId.toString()));
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_CLIENT_UUID, MessageSendingService.uuid));
URL url = UrlHelper.generateUrl(preferences.getServerBaseURL(), "/sailingserver/rc/racegroups",params);
List<Util.Pair<String, Object>> params = new ArrayList<>();
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAM_COURSE_AREA_FILTER, courseAreaId.toString()));
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_CLIENT_UUID, MessageSendingService.uuid));
URL url = UrlHelper.generateUrl(preferences.getServerBaseURL(), "/sailingserver/rc/racegroups", params);
return new OnlineDataLoader<Collection<ManagedRace>>(context, url, parser, handler);
}
}, getContext());
@@ -204,10 +204,10 @@ public class OnlineDataManager extends DataManager {
String raceColumnName = URLEncoder.encode(identifier.getRaceName(), MessageSendingService.charsetName);
String fleetName = URLEncoder.encode(identifier.getFleet().getName(), MessageSendingService.charsetName);
List<Util.Pair> params = new ArrayList<>();
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_LEADERBOARD_NAME, raceGroupName));
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_RACE_COLUMN_NAME, raceColumnName));
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_RACE_FLEET_NAME, fleetName));
List<Util.Pair<String, Object>> params = new ArrayList<>();
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_LEADERBOARD_NAME, raceGroupName));
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_RACE_COLUMN_NAME, raceColumnName));
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_RACE_FLEET_NAME, fleetName));
URL url = UrlHelper.generateUrl(preferences.getServerBaseURL(), "/sailingserver/rc/marks", params);
return new OnlineDataLoader<Collection<Mark>>(context, url, parser, handler);
}
@@ -233,10 +233,10 @@ public class OnlineDataManager extends DataManager {
String raceColumnName = URLEncoder.encode(identifier.getRaceName(), MessageSendingService.charsetName);
String fleetName = URLEncoder.encode(identifier.getFleet().getName(), MessageSendingService.charsetName);
List<Util.Pair> params = new ArrayList<>();
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_LEADERBOARD_NAME, raceGroupName));
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_RACE_COLUMN_NAME, raceColumnName));
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_RACE_FLEET_NAME, fleetName));
List<Util.Pair<String, Object>> params = new ArrayList<>();
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_LEADERBOARD_NAME, raceGroupName));
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_RACE_COLUMN_NAME, raceColumnName));
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_RACE_FLEET_NAME, fleetName));
URL url = UrlHelper.generateUrl(preferences.getServerBaseURL(), "/sailingserver/rc/currentcourse", params);
return new OnlineDataLoader<CourseBase>(context, url, parser, handler);
@@ -265,10 +265,10 @@ public class OnlineDataManager extends DataManager {
String raceColumnName = URLEncoder.encode(identifier.getRaceName(), MessageSendingService.charsetName);
String fleetName = URLEncoder.encode(identifier.getFleet().getName(), MessageSendingService.charsetName);
List<Util.Pair> params = new ArrayList<>();
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_LEADERBOARD_NAME, raceGroupName));
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_RACE_COLUMN_NAME, raceColumnName));
params.add(new Util.Pair(RaceLogServletConstants.PARAMS_RACE_FLEET_NAME, fleetName));
List<Util.Pair<String, Object>> params = new ArrayList<>();
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_LEADERBOARD_NAME, raceGroupName));
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_RACE_COLUMN_NAME, raceColumnName));
params.add(new Util.Pair<String, Object>(RaceLogServletConstants.PARAMS_RACE_FLEET_NAME, fleetName));
URL url = UrlHelper.generateUrl(preferences.getServerBaseURL(), "/sailingserver/rc/competitors", params);
return new OnlineDataLoader<Collection<Competitor>>(context, url, parser, handler);
}
@@ -290,8 +290,8 @@ public class OnlineDataManager extends DataManager {
String encodedIdentifier = URLEncoder.encode(identifier.getClientIdentifier(), MessageSendingService.charsetName);
encodedIdentifier = encodedIdentifier.replace("+", "%20");
List<Util.Pair> params = new ArrayList<>();
params.add(new Util.Pair("client", encodedIdentifier));
List<Util.Pair<String, Object>> params = new ArrayList<>();
params.add(new Util.Pair<String, Object>("client", encodedIdentifier));
URL url = UrlHelper.generateUrl(preferences.getServerBaseURL(), "/sailingserver/rc/configuration", params);
return new OnlineDataLoader<DeviceConfiguration>(context,
url, parser, handler);
@@ -312,15 +312,15 @@ public class OnlineDataManager extends DataManager {
// get simple race log identifier
Util.Triple<String, String, String> triple = FleetIdentifierImpl.unescape(race.getId());
SimpleRaceLogIdentifier identifier = new SimpleRaceLogIdentifierImpl(triple.getA(), triple.getB(), triple.getC());
List<Util.Pair> params = new ArrayList<>();
params.add(new Util.Pair("regattaLikeName", identifier.getRegattaLikeParentName()));
params.add(new Util.Pair("raceColumnName", identifier.getRaceColumnName()));
params.add(new Util.Pair("fleetName", identifier.getFleetName()));
params.add(new Util.Pair("eventId", eventId));
params.add(new Util.Pair("viewShowWindChart", showWindCharts));
params.add(new Util.Pair("viewShowStreamlets", showStreamlets));
params.add(new Util.Pair("viewShowSimulation", showSimulation));
params.add(new Util.Pair("viewShowMapControls", showMapControls));
List<Util.Pair<String, Object>> params = new ArrayList<>();
params.add(new Util.Pair<String, Object>("regattaLikeName", identifier.getRegattaLikeParentName()));
params.add(new Util.Pair<String, Object>("raceColumnName", identifier.getRaceColumnName()));
params.add(new Util.Pair<String, Object>("fleetName", identifier.getFleetName()));
params.add(new Util.Pair<String, Object>("eventId", eventId));
params.add(new Util.Pair<String, Object>("viewShowWindChart", showWindCharts));
params.add(new Util.Pair<String, Object>("viewShowStreamlets", showStreamlets));
params.add(new Util.Pair<String, Object>("viewShowSimulation", showSimulation));
params.add(new Util.Pair<String, Object>("viewShowMapControls", showMapControls));
try {
url = UrlHelper.generateUrl(AppPreferences.on(context).getServerBaseURL(), AppConstants.GWT_MAP_AND_WIND_CHART_HTML, params).toString();
@@ -62,6 +62,10 @@ public class LoginBackdrop extends Fragment {
ImageView more = ViewHelper.get(layout, R.id.more);
if (more != null) {
more.setOnClickListener(new View.OnClickListener() {
//Because of massive usage of reflection (try {} catch ())
//Don't know how to fix the warning a better way
@SuppressWarnings("unchecked")
@Override
public void onClick(View view) {
PopupMenu popupMenu = new PopupMenu(getActivity(), view);
@@ -1,18 +1,21 @@
package com.sap.sailing.racecommittee.app.utils;
import android.net.Uri;
import com.sap.sse.common.Util;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import android.net.Uri;
import com.sap.sse.common.Util;
public class UrlHelper {
public static URL generateUrl(String baseURL, String path, List<Util.Pair> params) throws MalformedURLException {
public static URL generateUrl(String baseURL, String path, List<Util.Pair<String, Object>> params) throws MalformedURLException {
Uri.Builder builder = Uri.parse(baseURL).buildUpon();
builder.path(path);
for (Util.Pair param : params){
builder.appendQueryParameter("" + param.getA(), "" + param.getB());
if (params != null) {
for (Util.Pair<String, Object> param : params) {
builder.appendQueryParameter("" + param.getA(), "" + param.getB());
}
}
return new URL(builder.build().toString());
}
@@ -1,9 +1,19 @@
package com.sap.sailing.racecommittee.app.utils;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.content.Intent;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import com.sap.sailing.android.shared.data.http.HttpGetRequest;
import com.sap.sailing.android.shared.util.NetworkHelper;
import com.sap.sailing.racecommittee.app.AppConstants;
@@ -15,14 +25,6 @@ import com.sap.sailing.racecommittee.app.data.ReadonlyDataManager;
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
import com.sap.sailing.racecommittee.app.domain.impl.FleetIdentifierImpl;
import com.sap.sse.common.Util;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class WindHelper {
private static String TAG = WindHelper.class.getName();
@@ -31,8 +33,8 @@ public class WindHelper {
try {
Util.Triple<String, String, String> triple = FleetIdentifierImpl.unescape(race.getId());
String path = "/sailingserver/api/v1/events/"+ getEventId(context) + "/racestates";
List<Util.Pair> params = new ArrayList<>();
params.add(new Util.Pair("filterByLeaderboard", triple.getA()));
List<Util.Pair<String, Object>> params = new ArrayList<>();
params.add(new Util.Pair<String, Object>("filterByLeaderboard", triple.getA()));
URL serverUrl = UrlHelper.generateUrl(getBaseUrl(context), path, params);
HttpGetRequest request = new HttpGetRequest(serverUrl, context);