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.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
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 java.util.Set;
|
||||
|
||||
import com.google.android.gms.common.ConnectionResult;
|
||||
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.util.AppUtils;
|
||||
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.impl.CurrentRaceFilterImpl;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
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.WindHelper;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
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 {
|
||||
|
||||
private final static String TAG = WindFragment.class.getName();
|
||||
@@ -415,10 +422,8 @@ public class WindFragment extends BaseFragment implements CompassDirectionListen
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
|
||||
// disconnect googleApiClient and unregister position poller
|
||||
pauseApiClient();
|
||||
|
||||
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mReceiver);
|
||||
sendIntent(AppConstants.INTENT_ACTION_TIME_SHOW);
|
||||
}
|
||||
@@ -427,7 +432,13 @@ public class WindFragment extends BaseFragment implements CompassDirectionListen
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
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<>();
|
||||
sendIntent(AppConstants.INTENT_ACTION_TIME_HIDE);
|
||||
// connect googleApiClient and register position poller
|
||||
@@ -523,10 +534,10 @@ public class WindFragment extends BaseFragment implements CompassDirectionListen
|
||||
mSelectedRaces.clear();
|
||||
mSelectedRaces.addAll(RaceHelper.getPreSelectedRaces(mRacesByGroup, getRace()));
|
||||
boolean[] selected = new boolean[mManagedRaces.size()];
|
||||
for (int i = 0; i < mManagedRaces.size(); i++) {
|
||||
selected[i] = mSelectedRaces.contains(mManagedRaces.get(i));
|
||||
int i=0;
|
||||
for (final ManagedRace r : mManagedRaces) {
|
||||
selected[i++] = mSelectedRaces.contains(r);
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
||||
builder.setTitle(getString(R.string.wind_select_race));
|
||||
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))) {
|
||||
maxElements -= 1;
|
||||
}
|
||||
if (maxElements == 1 && fleetName.equals(getFleetName(race2.getFleet(), delimiter))) {
|
||||
maxElements -= 1;
|
||||
}
|
||||
if (maxElements >= 1) {
|
||||
raceName += fleetName;
|
||||
}
|
||||
@@ -160,12 +157,10 @@ public class RaceHelper {
|
||||
|
||||
public static String getSeriesName(@Nullable SeriesBase series, @Nullable String delimiter) {
|
||||
delimiter = getDefaultDelimiter(delimiter);
|
||||
|
||||
String seriesName = "";
|
||||
if (series != null && !LeaderboardNameConstants.DEFAULT_SERIES_NAME.equals(series.getName())) {
|
||||
seriesName = delimiter + series.getName();
|
||||
}
|
||||
|
||||
return seriesName;
|
||||
}
|
||||
|
||||
@@ -175,12 +170,10 @@ public class RaceHelper {
|
||||
|
||||
public static String getFleetName(@Nullable Fleet fleet, @Nullable String delimiter) {
|
||||
delimiter = getDefaultDelimiter(delimiter);
|
||||
|
||||
String fleetName = "";
|
||||
if (fleet != null && !LeaderboardNameConstants.DEFAULT_FLEET_NAME.equals(fleet.getName())) {
|
||||
fleetName = delimiter + fleet.getName();
|
||||
}
|
||||
|
||||
return fleetName;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user