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:
Axel Uhl committed 2016-04-24 13:07:09 +02:00
1 parent d9ea36c516
commit bbf267e781
2 files changed
+41 -37

No files matched your search

@@ -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() {
@@ -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;
}