mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-04 10:09:42 +00:00
use CurrentRaceFilter to determine the races to show for the wind fragment; always show fleet name in popup
Change-Id: I7a3d28b8d13af883769a285f77ad3ae36dad964d
This commit is contained in:
1 parent
d9ea36c516
commit
bbf267e781
2 files changed
+41
-37
No files matched your search
+41
-30
@@ -3,33 +3,12 @@ package com.sap.sailing.racecommittee.app.ui.fragments.raceinfo;
|
|||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Set;
|
||||||
import android.annotation.SuppressLint;
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.IntentFilter;
|
|
||||||
import android.location.Location;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.annotation.ColorInt;
|
|
||||||
import android.support.v4.content.LocalBroadcastManager;
|
|
||||||
import android.support.v7.app.AlertDialog;
|
|
||||||
import android.text.InputFilter;
|
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.webkit.WebSettings;
|
|
||||||
import android.webkit.WebView;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.NumberPicker;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.google.android.gms.common.ConnectionResult;
|
import com.google.android.gms.common.ConnectionResult;
|
||||||
import com.google.android.gms.common.api.GoogleApiClient;
|
import com.google.android.gms.common.api.GoogleApiClient;
|
||||||
@@ -39,7 +18,10 @@ import com.google.android.gms.location.LocationServices;
|
|||||||
import com.sap.sailing.android.shared.logging.ExLog;
|
import com.sap.sailing.android.shared.logging.ExLog;
|
||||||
import com.sap.sailing.android.shared.util.AppUtils;
|
import com.sap.sailing.android.shared.util.AppUtils;
|
||||||
import com.sap.sailing.android.shared.util.ViewHelper;
|
import com.sap.sailing.android.shared.util.ViewHelper;
|
||||||
|
import com.sap.sailing.domain.base.racegroup.CurrentRaceComparator;
|
||||||
|
import com.sap.sailing.domain.base.racegroup.CurrentRaceFilter;
|
||||||
import com.sap.sailing.domain.base.racegroup.RaceGroupSeriesFleet;
|
import com.sap.sailing.domain.base.racegroup.RaceGroupSeriesFleet;
|
||||||
|
import com.sap.sailing.domain.base.racegroup.impl.CurrentRaceFilterImpl;
|
||||||
import com.sap.sailing.domain.common.Bearing;
|
import com.sap.sailing.domain.common.Bearing;
|
||||||
import com.sap.sailing.domain.common.Position;
|
import com.sap.sailing.domain.common.Position;
|
||||||
import com.sap.sailing.domain.common.SpeedWithBearing;
|
import com.sap.sailing.domain.common.SpeedWithBearing;
|
||||||
@@ -64,8 +46,33 @@ import com.sap.sailing.racecommittee.app.utils.ThemeHelper;
|
|||||||
import com.sap.sailing.racecommittee.app.utils.TimeUtils;
|
import com.sap.sailing.racecommittee.app.utils.TimeUtils;
|
||||||
import com.sap.sailing.racecommittee.app.utils.WindHelper;
|
import com.sap.sailing.racecommittee.app.utils.WindHelper;
|
||||||
import com.sap.sse.common.TimePoint;
|
import com.sap.sse.common.TimePoint;
|
||||||
|
import com.sap.sse.common.Util;
|
||||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
|
import android.location.Location;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.support.annotation.ColorInt;
|
||||||
|
import android.support.v4.content.LocalBroadcastManager;
|
||||||
|
import android.support.v7.app.AlertDialog;
|
||||||
|
import android.text.InputFilter;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.webkit.WebSettings;
|
||||||
|
import android.webkit.WebView;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.NumberPicker;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
public class WindFragment extends BaseFragment implements CompassDirectionListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener, OnRaceUpdatedListener {
|
public class WindFragment extends BaseFragment implements CompassDirectionListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener, OnRaceUpdatedListener {
|
||||||
|
|
||||||
private final static String TAG = WindFragment.class.getName();
|
private final static String TAG = WindFragment.class.getName();
|
||||||
@@ -415,10 +422,8 @@ public class WindFragment extends BaseFragment implements CompassDirectionListen
|
|||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
|
||||||
// disconnect googleApiClient and unregister position poller
|
// disconnect googleApiClient and unregister position poller
|
||||||
pauseApiClient();
|
pauseApiClient();
|
||||||
|
|
||||||
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mReceiver);
|
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mReceiver);
|
||||||
sendIntent(AppConstants.INTENT_ACTION_TIME_SHOW);
|
sendIntent(AppConstants.INTENT_ACTION_TIME_SHOW);
|
||||||
}
|
}
|
||||||
@@ -427,7 +432,13 @@ public class WindFragment extends BaseFragment implements CompassDirectionListen
|
|||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
mRacesByGroup = ((RacingActivity) getActivity()).getRacesByGroup();
|
mRacesByGroup = ((RacingActivity) getActivity()).getRacesByGroup();
|
||||||
mManagedRaces = RaceHelper.getManagedRacesAsList(mRacesByGroup, getRace());
|
final Set<ManagedRace> allRaces = new HashSet<>();
|
||||||
|
for (final Iterable<ManagedRace> racesInGroup : mRacesByGroup.values()) {
|
||||||
|
Util.addAll(racesInGroup, allRaces);
|
||||||
|
}
|
||||||
|
final CurrentRaceFilter<ManagedRace> raceFilter = new CurrentRaceFilterImpl<>(allRaces);
|
||||||
|
mManagedRaces = new ArrayList<>(raceFilter.getCurrentRaces());
|
||||||
|
Collections.sort(mManagedRaces, new CurrentRaceComparator());
|
||||||
mSelectedRaces = new ArrayList<>();
|
mSelectedRaces = new ArrayList<>();
|
||||||
sendIntent(AppConstants.INTENT_ACTION_TIME_HIDE);
|
sendIntent(AppConstants.INTENT_ACTION_TIME_HIDE);
|
||||||
// connect googleApiClient and register position poller
|
// connect googleApiClient and register position poller
|
||||||
@@ -523,10 +534,10 @@ public class WindFragment extends BaseFragment implements CompassDirectionListen
|
|||||||
mSelectedRaces.clear();
|
mSelectedRaces.clear();
|
||||||
mSelectedRaces.addAll(RaceHelper.getPreSelectedRaces(mRacesByGroup, getRace()));
|
mSelectedRaces.addAll(RaceHelper.getPreSelectedRaces(mRacesByGroup, getRace()));
|
||||||
boolean[] selected = new boolean[mManagedRaces.size()];
|
boolean[] selected = new boolean[mManagedRaces.size()];
|
||||||
for (int i = 0; i < mManagedRaces.size(); i++) {
|
int i=0;
|
||||||
selected[i] = mSelectedRaces.contains(mManagedRaces.get(i));
|
for (final ManagedRace r : mManagedRaces) {
|
||||||
|
selected[i++] = mSelectedRaces.contains(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
||||||
builder.setTitle(getString(R.string.wind_select_race));
|
builder.setTitle(getString(R.string.wind_select_race));
|
||||||
builder.setMultiChoiceItems(races.toArray(new String[races.size()]), selected, new DialogInterface.OnMultiChoiceClickListener() {
|
builder.setMultiChoiceItems(races.toArray(new String[races.size()]), selected, new DialogInterface.OnMultiChoiceClickListener() {
|
||||||
|
|||||||
-7
@@ -91,9 +91,6 @@ public class RaceHelper {
|
|||||||
if (maxElements == 2 && seriesName.equals(getSeriesName(race2.getSeries(), delimiter))) {
|
if (maxElements == 2 && seriesName.equals(getSeriesName(race2.getSeries(), delimiter))) {
|
||||||
maxElements -= 1;
|
maxElements -= 1;
|
||||||
}
|
}
|
||||||
if (maxElements == 1 && fleetName.equals(getFleetName(race2.getFleet(), delimiter))) {
|
|
||||||
maxElements -= 1;
|
|
||||||
}
|
|
||||||
if (maxElements >= 1) {
|
if (maxElements >= 1) {
|
||||||
raceName += fleetName;
|
raceName += fleetName;
|
||||||
}
|
}
|
||||||
@@ -160,12 +157,10 @@ public class RaceHelper {
|
|||||||
|
|
||||||
public static String getSeriesName(@Nullable SeriesBase series, @Nullable String delimiter) {
|
public static String getSeriesName(@Nullable SeriesBase series, @Nullable String delimiter) {
|
||||||
delimiter = getDefaultDelimiter(delimiter);
|
delimiter = getDefaultDelimiter(delimiter);
|
||||||
|
|
||||||
String seriesName = "";
|
String seriesName = "";
|
||||||
if (series != null && !LeaderboardNameConstants.DEFAULT_SERIES_NAME.equals(series.getName())) {
|
if (series != null && !LeaderboardNameConstants.DEFAULT_SERIES_NAME.equals(series.getName())) {
|
||||||
seriesName = delimiter + series.getName();
|
seriesName = delimiter + series.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
return seriesName;
|
return seriesName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,12 +170,10 @@ public class RaceHelper {
|
|||||||
|
|
||||||
public static String getFleetName(@Nullable Fleet fleet, @Nullable String delimiter) {
|
public static String getFleetName(@Nullable Fleet fleet, @Nullable String delimiter) {
|
||||||
delimiter = getDefaultDelimiter(delimiter);
|
delimiter = getDefaultDelimiter(delimiter);
|
||||||
|
|
||||||
String fleetName = "";
|
String fleetName = "";
|
||||||
if (fleet != null && !LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleet.getName())) {
|
if (fleet != null && !LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleet.getName())) {
|
||||||
fleetName = delimiter + fleet.getName();
|
fleetName = delimiter + fleet.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
return fleetName;
|
return fleetName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user