mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 22:37:15 +00:00
Removed warning (sorry for the @SuppressWarnings("unchecked") in LoginBackdrop - it's because of the usage of reflection)
This commit is contained in:
1 parent
7f0fb0f89b
commit
4a5bc79cd4
6 files changed
+62
-62
No files matched your search
-2
@@ -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;
|
||||
|
||||
+5
-8
@@ -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;
|
||||
|
||||
+29
-29
@@ -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();
|
||||
|
||||
+7
-7
@@ -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);
|
||||
@@ -89,32 +93,28 @@ public class LoginBackdrop extends Fragment {
|
||||
// Try to force some vertical offset
|
||||
try {
|
||||
Object menuHelper;
|
||||
Class[] argTypes;
|
||||
Class<? extends Integer>[] argTypes;
|
||||
Field fMenuHelper = PopupMenu.class.getDeclaredField("mPopup");
|
||||
fMenuHelper.setAccessible(true);
|
||||
menuHelper = fMenuHelper.get(popupMenu);
|
||||
Field fListPopup = menuHelper.getClass().getDeclaredField("mPopup");
|
||||
fListPopup.setAccessible(true);
|
||||
Object listPopup = fListPopup.get(menuHelper);
|
||||
argTypes = new Class[] { int.class };
|
||||
Class listPopupClass = listPopup.getClass();
|
||||
argTypes = new Class[] { Integer.class };
|
||||
Class<? extends Object> listPopupClass = listPopup.getClass();
|
||||
|
||||
int height = view.getHeight();
|
||||
// Invoke setVerticalOffset() with the negative height to move up by that distance
|
||||
@SuppressWarnings("unchecked")
|
||||
Method setVerticalOffset = listPopupClass.getDeclaredMethod("setVerticalOffset", argTypes);
|
||||
setVerticalOffset.invoke(listPopup, -height);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
int width = (Integer) listPopupClass.getDeclaredMethod("getWidth").invoke(listPopup);
|
||||
width -= view.getWidth();
|
||||
// Invoke setHorizontalOffset() with the negative height to move up by that distance
|
||||
@SuppressWarnings("unchecked")
|
||||
Method setHorizontalOffset = listPopupClass.getDeclaredMethod("setHorizontalOffset", argTypes);
|
||||
setHorizontalOffset.invoke(listPopup, -width);
|
||||
|
||||
// Invoke show() to update the window's position
|
||||
@SuppressWarnings("unchecked")
|
||||
Method show = listPopupClass.getDeclaredMethod("show");
|
||||
show.invoke(listPopup);
|
||||
} catch (Exception e) {
|
||||
|
||||
+9
-6
@@ -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());
|
||||
}
|
||||
|
||||
+12
-10
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user