tracking list while finishing phase

This commit is contained in:
Peter Siegmund
2016-02-17 17:18:29 +01:00
parent e0f3b53133
commit 4c90b5e242
12 changed files with 146 additions and 149 deletions
@@ -7,7 +7,7 @@
android:clickable="true">
<RelativeLayout
android:id="@+id/tracking_header"
android:id="@+id/protest_header"
android:layout_width="match_parent"
android:layout_height="@dimen/selector_header_height"
android:background="?attr/sap_gray"
@@ -78,7 +78,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottom_bar"
android:layout_below="@+id/tracking_header"
android:layout_below="@id/protest_header"
android:background="?attr/sap_gray_black_30">
<RelativeLayout
@@ -20,7 +20,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textAppearance="?attr/textSmall"
tools:text="GDR001"/>
tools:text="GDR001" />
<TextView
android:id="@+id/competitor"
@@ -33,7 +33,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/tracking_list"
android:text="@string/tracking_list_01"
android:textAppearance="?attr/textHeader"/>
</LinearLayout>
@@ -126,9 +126,7 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/panel_switcher"
android:paddingLeft="@dimen/side_padding"
android:paddingRight="@dimen/side_padding">
android:layout_above="@id/panel_switcher">
<android.support.v7.widget.RecyclerView
android:id="@+id/list_positioning_chosen"
@@ -21,7 +21,7 @@
android:layout_marginLeft="@dimen/default_margin_half"
android:layout_weight="1"
android:gravity="center"
android:text="@string/availableFinishingCompetitors"
android:text="@string/tracking_list_01"
android:textAppearance="?attr/textNormal"/>
<Space
@@ -34,7 +34,7 @@
android:layout_marginRight="@dimen/default_margin_half"
android:layout_weight="1"
android:gravity="center"
android:text="@string/tracking_list"
android:text="@string/tracking_list_02"
android:textAppearance="?attr/textNormal"/>
</LinearLayout>
@@ -67,7 +67,8 @@
android:layout_marginLeft="@dimen/side_padding"
android:layout_marginRight="@dimen/side_padding"
android:gravity="center"
android:orientation="horizontal">
android:orientation="horizontal"
android:layout_marginBottom="@dimen/default_margin_half">
<android.support.v7.widget.RecyclerView
android:id="@+id/list_positioning_all"
@@ -95,7 +95,8 @@
<string name="retry">Wiederholen</string>
<string name="yes">Ja</string>
<string name="no">Nein</string>
<string name="tracking_list">Ergebnisliste</string>
<string name="tracking_list_01">Teilnehmerliste</string>
<string name="tracking_list_02">Ergebnisliste</string>
<string name="set_tracking_list">Ergebnisliste füllen</string>
<string name="confirm_tracking_list">Ergebnisliste bestätigen</string>
<string name="availableFinishingCompetitors">Segler</string>
@@ -463,5 +464,6 @@
<string name="onboarding_input">Manuelle Eingabe</string>
<string name="race_group">Group Race</string>
<string name="wind_select_race">Select Race</string>
<string name="added_to_result_list">\'%1$s\' zur Ergebnisliste hinzugefügt an Position %2$s</string>
</resources>
@@ -108,7 +108,8 @@
<string name="retry">Retry</string>
<string name="yes">Yes</string>
<string name="no">No</string>
<string name="tracking_list">Tracking List</string>
<string name="tracking_list_01">Competitor List</string>
<string name="tracking_list_02">Tracking List</string>
<string name="availableFinishingCompetitors">Competitors</string>
<string name="choose_blue_flag_finishing">Finish race</string>
<string name="drag_handle_description">Drag handle</string>
@@ -490,5 +491,6 @@
<string name="onboarding_input">Manual Input</string>
<string name="race_group">Group Racing</string>
<string name="wind_select_race">Select Race</string>
<string name="added_to_result_list">Added \'%1$s\' to result list at position %2$s</string>
</resources>
@@ -0,0 +1,30 @@
package com.sap.sailing.racecommittee.app.domain.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.race.CompetitorResult;
import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultImpl;
import com.sap.sailing.domain.common.MaxPointsReason;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util;
public class CompetitorResultWithIdImpl extends CompetitorResultImpl {
private long mId;
public CompetitorResultWithIdImpl(long id, CompetitorResult result) {
this(id, result.getCompetitorId(), result.getCompetitorDisplayName(), result.getOneBasedRank(),
result.getMaxPointsReason(), result.getScore(), result.getFinishingTime(), result.getComment());
}
public CompetitorResultWithIdImpl(long id, Serializable competitorId, String competitorDisplayName,
int oneBasedRank, MaxPointsReason maxPointsReason, Double score,
TimePoint finishingTime, String comment) {
super(competitorId, competitorDisplayName, oneBasedRank, maxPointsReason, score, finishingTime, comment);
mId = id;
}
public long getId() {
return mId;
}
}
@@ -1,49 +0,0 @@
package com.sap.sailing.racecommittee.app.domain.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.race.CompetitorResult;
import com.sap.sailing.domain.common.MaxPointsReason;
import com.sap.sse.common.Util;
public class CompetitorsWithIdImpl {
private long mId;
private Serializable mKey;
private String mText;
private MaxPointsReason mReason;
public CompetitorsWithIdImpl(long id, Serializable key, String text, MaxPointsReason reason) {
mId = id;
mKey = key;
mText = text;
mReason = reason;
}
public CompetitorsWithIdImpl(long id, CompetitorResult triple) {
mId = id;
mKey = triple.getCompetitorId();
mText = triple.getCompetitorDisplayName();
mReason = triple.getMaxPointsReason();
}
public long getId() {
return mId;
}
public Serializable getKey() {
return mKey;
}
public String getText() {
return mText;
}
public MaxPointsReason getReason() {
return mReason;
}
public Util.Triple<Serializable, String, MaxPointsReason> getData() {
return new Util.Triple<>(mKey, mText, mReason);
}
}
@@ -66,6 +66,7 @@ import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.BaseFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceFinishingFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceFlagViewerFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceSummaryFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.TrackingListFragment;
import com.sap.sailing.racecommittee.app.ui.views.PanelButton;
import com.sap.sailing.racecommittee.app.utils.BitmapHelper;
import com.sap.sailing.racecommittee.app.utils.RaceHelper;
@@ -516,7 +517,7 @@ public class RacingActivity extends SessionActivity implements RaceListCallbacks
if (mSelectedRace.getStatus() != RaceLogRaceStatus.FINISHING) {
content = RaceFlagViewerFragment.newInstance();
} else {
content = RaceFinishingFragment.newInstance();
content = TrackingListFragment.newInstance(args, 1);
}
content.setArguments(args);
transaction.replace(R.id.race_content, content);
@@ -7,7 +7,6 @@ import java.util.List;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v4.view.ViewCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -21,7 +20,7 @@ import com.sap.sailing.android.shared.util.ViewHelper;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.MaxPointsReason;
import com.sap.sailing.racecommittee.app.R;
import com.sap.sailing.racecommittee.app.domain.impl.CompetitorsWithIdImpl;
import com.sap.sailing.racecommittee.app.domain.impl.CompetitorResultWithIdImpl;
import com.sap.sailing.racecommittee.app.utils.BitmapHelper;
import com.sap.sailing.racecommittee.app.utils.ThemeHelper;
@@ -30,25 +29,19 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
private final static String TAG = FinishListAdapter.class.getName();
private Context mContext;
private List<Competitor> mCompetitors;
private ArrayList<CompetitorsWithIdImpl> mCompetitor;
private ArrayList<CompetitorResultWithIdImpl> mCompetitor;
private FinishEvents mListener;
public FinishListAdapter(Context context, ArrayList<CompetitorsWithIdImpl> competitor) {
public FinishListAdapter(Context context, ArrayList<CompetitorResultWithIdImpl> competitor) {
setHasStableIds(true);
mContext = context;
mCompetitor = competitor;
setHasStableIds(true);
}
public void setListener(FinishEvents listener) {
mListener = listener;
}
public void setCompetitors(Collection<Competitor> competitors) {
mCompetitors = new ArrayList<>();
mCompetitors.addAll(competitors);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View layout = LayoutInflater.from(mContext).inflate(R.layout.race_tracking_list_draggable_item, parent, false);
@@ -57,24 +50,14 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
CompetitorsWithIdImpl item = mCompetitor.get(position);
CompetitorResultWithIdImpl item = mCompetitor.get(position);
if (item.getReason().equals(MaxPointsReason.NONE)) {
if (item.getMaxPointsReason().equals(MaxPointsReason.NONE)) {
holder.position.setText(String.valueOf(position + 1));
} else {
holder.position.setText(item.getReason().name());
holder.position.setText(item.getMaxPointsReason().name());
}
String name = "";
for (Competitor competitor : mCompetitors) {
if (competitor.getId() == item.getKey()) {
if (competitor.getBoat() != null) {
name = competitor.getBoat().getSailID() + " - ";
}
break;
}
}
name += item.getText();
holder.competitor.setText(name);
holder.competitor.setText(item.getCompetitorDisplayName());
int dragState = holder.getDragStateFlags();
@@ -104,8 +87,6 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
@Override
public boolean onCheckCanStartDrag(ViewHolder holder, int x, int y) {
ExLog.i(mContext, TAG, "onCheckCanStartDrag() called with: " + "holder = [" + holder + "], x = [" + x + "], y = [" + y + "]");
// x, y --- relative from the itemView's top-left
View containerView = holder.container;
View dragHandleView = holder.dragHandle;
@@ -123,13 +104,11 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
@Override
public void onMoveItem(int fromPosition, int toPosition) {
ExLog.i(mContext, TAG, "onMoveItem() called with: " + "fromPosition = [" + fromPosition + "], toPosition = [" + toPosition + "]");
if (fromPosition == toPosition) {
return;
}
CompetitorsWithIdImpl item = mCompetitor.get(fromPosition);
CompetitorResultWithIdImpl item = mCompetitor.get(fromPosition);
mCompetitor.remove(item);
mCompetitor.add(toPosition, item);
if (mListener != null) {
@@ -201,9 +180,9 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
public interface FinishEvents {
void afterMoved();
void onItemRemoved(CompetitorsWithIdImpl item);
void onItemRemoved(CompetitorResultWithIdImpl item);
void onLongClick(CompetitorsWithIdImpl item);
void onLongClick(CompetitorResultWithIdImpl item);
}
public class ViewHolder extends BaseDraggableSwipeViewHolder implements View.OnLongClickListener {
@@ -180,7 +180,7 @@ public class FinishedButtonFragment extends BasePanelFragment {
break;
case LEVEL_TOGGLED:
replaceFragment(TrackingListFragment.newInstance(getRecentArguments()), getFrameId(getActivity(), R.id.finished_edit, R.id.finished_content, true));
replaceFragment(TrackingListFragment.newInstance(getRecentArguments(), 0), getFrameId(getActivity(), R.id.finished_edit, R.id.finished_content, true));
break;
default:
@@ -1,11 +1,5 @@
package com.sap.sailing.racecommittee.app.ui.fragments.raceinfo;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import android.content.DialogInterface;
import android.content.Loader;
import android.graphics.drawable.NinePatchDrawable;
@@ -19,6 +13,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.h6ah4i.android.widget.advrecyclerview.animator.SwipeDismissItemAnimator;
@@ -26,8 +21,8 @@ import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropM
import com.h6ah4i.android.widget.advrecyclerview.swipeable.RecyclerViewSwipeManager;
import com.h6ah4i.android.widget.advrecyclerview.touchguard.RecyclerViewTouchActionGuardManager;
import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils;
import com.sap.sailing.domain.abstractlog.race.CompetitorResult;
import com.sap.sailing.android.shared.util.ViewHelper;
import com.sap.sailing.domain.abstractlog.race.CompetitorResult;
import com.sap.sailing.domain.abstractlog.race.CompetitorResults;
import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultImpl;
import com.sap.sailing.domain.abstractlog.race.impl.CompetitorResultsImpl;
@@ -41,13 +36,18 @@ import com.sap.sailing.racecommittee.app.data.DataManager;
import com.sap.sailing.racecommittee.app.data.OnlineDataManager;
import com.sap.sailing.racecommittee.app.data.ReadonlyDataManager;
import com.sap.sailing.racecommittee.app.data.clients.LoadClient;
import com.sap.sailing.racecommittee.app.domain.impl.CompetitorsWithIdImpl;
import com.sap.sailing.racecommittee.app.domain.impl.CompetitorResultWithIdImpl;
import com.sap.sailing.racecommittee.app.ui.adapters.CompetitorAdapter;
import com.sap.sailing.racecommittee.app.ui.adapters.FinishListAdapter;
import com.sap.sailing.racecommittee.app.ui.comparators.NaturalNamedComparator;
import com.sap.sse.common.Util;
import com.sap.sse.common.impl.MillisecondsTimePoint;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class TrackingListFragment extends BaseFragment
implements CompetitorAdapter.CompetitorClick, FinishListAdapter.FinishEvents, View.OnClickListener {
@@ -58,18 +58,19 @@ public class TrackingListFragment extends BaseFragment
private Button mConfirm;
private RecyclerView.Adapter<FinishListAdapter.ViewHolder> mFinishedAdapter;
private FinishListAdapter mAdapter;
private CompetitorAdapter mCompetitorAdapter;
private ArrayList<CompetitorsWithIdImpl> mFinishedData;
private ArrayList<CompetitorResultWithIdImpl> mFinishedData;
private ArrayList<Competitor> mCompetitorData;
private long mId = 0;
private int mId = 0;
private TextView mHeader;
public TrackingListFragment() {
mCompetitorData = new ArrayList<>();
}
public static TrackingListFragment newInstance(Bundle args) {
public static TrackingListFragment newInstance(Bundle args, int startMode) {
TrackingListFragment fragment = new TrackingListFragment();
args.putInt(START_MODE, startMode);
fragment.setArguments(args);
return fragment;
}
@@ -78,6 +79,8 @@ public class TrackingListFragment extends BaseFragment
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.race_tracking_list, container, false);
mHeader = ViewHelper.get(layout, R.id.header_caption);
mDots = new ArrayList<>();
mPanels = new ArrayList<>();
@@ -112,6 +115,18 @@ public class TrackingListFragment extends BaseFragment
});
}
if (getArguments().getInt(START_MODE, 0) != 0) {
View header = ViewHelper.get(layout, R.id.tracking_header);
if (header != null) {
header.setVisibility(View.GONE);
}
View buttonBar = ViewHelper.get(layout, R.id.bottom_bar);
if (buttonBar != null) {
buttonBar.setVisibility(View.GONE);
}
}
return layout;
}
@@ -148,11 +163,11 @@ public class TrackingListFragment extends BaseFragment
mSwipeManager = new RecyclerViewSwipeManager();
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
mAdapter = new FinishListAdapter(getActivity(), mFinishedData);
mAdapter.setListener(this);
FinishListAdapter adapter = new FinishListAdapter(getActivity(), mFinishedData);
adapter.setListener(this);
@SuppressWarnings("unchecked")
RecyclerView.Adapter<FinishListAdapter.ViewHolder> dragManager = mDragDropManager.createWrappedAdapter(mAdapter);
RecyclerView.Adapter<FinishListAdapter.ViewHolder> dragManager = mDragDropManager.createWrappedAdapter(adapter);
mFinishedAdapter = dragManager;
@SuppressWarnings("unchecked")
@@ -181,12 +196,17 @@ public class TrackingListFragment extends BaseFragment
}
});
}
if (getArguments().getInt(START_MODE, 0) == 0) {
onClick(ViewHelper.get(getView(), R.id.nav_next));
} else {
viewPanel(MOVE_NONE);
}
}
Util.addAll(getRace().getCompetitors(), mCompetitorData);
Collections.sort(mCompetitorData, new NaturalNamedComparator());
mCompetitorAdapter.notifyDataSetChanged();
viewPanel(MOVE_NONE);
}
@Override
@@ -226,7 +246,6 @@ public class TrackingListFragment extends BaseFragment
super.onDestroy();
}
private void loadCompetitors() {
// invalidate all competitors of this race
ReadonlyDataManager dataManager = OnlineDataManager.create(getActivity());
@@ -240,9 +259,7 @@ public class TrackingListFragment extends BaseFragment
@Override
public void onLoadFailed(Exception reason) {
String toastText = getString(R.string.marks_w_placeholder);
Toast.makeText(getActivity(), String.format(toastText, reason.toString()), Toast.LENGTH_LONG)
.show();
Toast.makeText(getActivity(), getString(R.string.competitor_load_error, reason.toString()), Toast.LENGTH_LONG).show();
}
@Override
@@ -264,26 +281,21 @@ public class TrackingListFragment extends BaseFragment
deleteCompetitorsFromFinishedList(data);
deleteCompetitorsFromCompetitorList();
mCompetitorAdapter.notifyDataSetChanged();
mAdapter.setCompetitors(getRace().getCompetitors());
mFinishedAdapter.notifyDataSetChanged();
}
private void deleteCompetitorsFromFinishedList(Collection<Competitor> validCompetitors) {
List<Util.Triple<Serializable, String, MaxPointsReason>> toBeDeleted = new ArrayList<>();
for (CompetitorsWithIdImpl item : mFinishedData) {
Util.Triple<Serializable, String, MaxPointsReason> positionedItem = item.getData();
if (!validCompetitors.contains(getCompetitorStore().getExistingCompetitorById(positionedItem.getA()))) {
toBeDeleted.add(positionedItem);
List<CompetitorResultWithIdImpl> toBeDeleted = new ArrayList<>();
for (CompetitorResultWithIdImpl item : mFinishedData) {
if (!validCompetitors.contains(getCompetitorStore().getExistingCompetitorById(item.getCompetitorId()))) {
toBeDeleted.add(item);
}
}
mFinishedData.removeAll(toBeDeleted);
}
private void deleteCompetitorsFromCompetitorList() {
for (CompetitorsWithIdImpl item : mFinishedData) {
Util.Triple<Serializable, String, MaxPointsReason> positionedItem = item.getData();
Competitor competitor = getCompetitorStore().getExistingCompetitorById(positionedItem.getA());
for (CompetitorResultWithIdImpl item : mFinishedData) {
Competitor competitor = getCompetitorStore().getExistingCompetitorById(item.getCompetitorId());
mCompetitorData.remove(competitor);
}
}
@@ -292,11 +304,11 @@ public class TrackingListFragment extends BaseFragment
return DataManager.create(getActivity()).getDataStore().getDomainFactory().getCompetitorStore();
}
private ArrayList<CompetitorsWithIdImpl> initializeFinishList() {
ArrayList<CompetitorsWithIdImpl> positioning = new ArrayList<>();
private ArrayList<CompetitorResultWithIdImpl> initializeFinishList() {
ArrayList<CompetitorResultWithIdImpl> positioning = new ArrayList<>();
if (getRaceState() != null && getRaceState().getFinishPositioningList() != null) {
for (CompetitorResult results : getRaceState().getFinishPositioningList()) {
positioning.add(new CompetitorsWithIdImpl(mId, results));
positioning.add(new CompetitorResultWithIdImpl(mId, results));
mId++;
}
}
@@ -311,10 +323,19 @@ public class TrackingListFragment extends BaseFragment
}
private void moveCompetitorToFinishList(Competitor competitor) {
String name = "";
if (competitor.getBoat() != null) {
name += competitor.getBoat().getSailID();
}
name += " - " + competitor.getName();
mFinishedData.add(
new CompetitorsWithIdImpl(mId, competitor.getId(), competitor.getName(), MaxPointsReason.NONE));
new CompetitorResultWithIdImpl(mId, competitor.getId(), name, mFinishedData.size() + 1, MaxPointsReason.NONE,
/* score */ null, /* finishingTime */ null, /* comment */ null));
mId++;
mFinishedAdapter.notifyDataSetChanged();
if (mDots.size() > 0) {
Toast.makeText(getActivity(), getString(R.string.added_to_result_list, name, mFinishedData.size()), Toast.LENGTH_SHORT).show();
}
}
private void removeCompetitorFromList(Competitor competitor) {
@@ -329,8 +350,8 @@ public class TrackingListFragment extends BaseFragment
}
@Override
public void onItemRemoved(CompetitorsWithIdImpl item) {
Competitor competitor = getCompetitorStore().getExistingCompetitorById(item.getKey());
public void onItemRemoved(CompetitorResultWithIdImpl item) {
Competitor competitor = getCompetitorStore().getExistingCompetitorById(item.getCompetitorId());
if (competitor != null) {
addNewCompetitorToCompetitorList(competitor);
}
@@ -344,7 +365,7 @@ public class TrackingListFragment extends BaseFragment
}
@Override
public void onLongClick(final CompetitorsWithIdImpl item) {
public void onLongClick(final CompetitorResultWithIdImpl item) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
final CharSequence[] maxPointsReasons = getAllMaxPointsReasons();
builder.setTitle(R.string.select_penalty_reason)
@@ -365,10 +386,10 @@ public class TrackingListFragment extends BaseFragment
return result.toArray(new CharSequence[result.size()]);
}
protected void setMaxPointsReasonForItem(CompetitorsWithIdImpl item, CharSequence maxPointsReasonName) {
protected void setMaxPointsReasonForItem(CompetitorResultWithIdImpl item, CharSequence maxPointsReasonName) {
MaxPointsReason maxPointsReason = MaxPointsReason.valueOf(maxPointsReasonName.toString());
CompetitorsWithIdImpl newItem = new CompetitorsWithIdImpl(item.getId(), item.getKey(), item.getText(),
maxPointsReason);
CompetitorResultWithIdImpl newItem = new CompetitorResultWithIdImpl(item.getId(), item.getCompetitorId(), item.getCompetitorDisplayName(),
item.getOneBasedRank(), maxPointsReason, item.getScore(), item.getFinishingTime(), item.getComment());
int currentIndexOfItem = mFinishedData.indexOf(item);
replaceItemInPositioningList(currentIndexOfItem, item, newItem);
@@ -378,12 +399,12 @@ public class TrackingListFragment extends BaseFragment
getRaceState().setFinishPositioningListChanged(MillisecondsTimePoint.now(), getCompetitorResults());
}
private void replaceItemInPositioningList(int index, CompetitorsWithIdImpl item, CompetitorsWithIdImpl newItem) {
private void replaceItemInPositioningList(int index, CompetitorResultWithIdImpl item, CompetitorResultWithIdImpl newItem) {
mFinishedData.remove(item);
mFinishedData.add(index, newItem);
}
private void setCompetitorToBottomOfPositioningList(CompetitorsWithIdImpl item) {
private void setCompetitorToBottomOfPositioningList(CompetitorResultWithIdImpl item) {
int lastIndex = Util.size(getCompetitorResults()) - 1;
mFinishedData.remove(item);
mFinishedData.add(lastIndex, item);
@@ -392,24 +413,36 @@ public class TrackingListFragment extends BaseFragment
private CompetitorResults getCompetitorResults() {
CompetitorResults result = new CompetitorResultsImpl();
int oneBasedRank = 1;
for (CompetitorsWithIdImpl item : mFinishedData) {
result.add(new CompetitorResultImpl(item.getKey(), item.getText(), oneBasedRank++, item.getReason(),
/* score */ null, /* finishingTime */ null, /* comment */ null));
for (CompetitorResultWithIdImpl item : mFinishedData) {
result.add(new CompetitorResultImpl(item.getCompetitorId(), item.getCompetitorDisplayName(), oneBasedRank++, item.getMaxPointsReason(),
item.getScore(), item.getFinishingTime(), item.getComment()));
}
return result;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.nav_prev:
viewPanel(MOVE_DOWN);
break;
if (v != null) {
switch (v.getId()) {
case R.id.nav_prev:
viewPanel(MOVE_DOWN);
break;
case R.id.nav_next:
viewPanel(MOVE_UP);
break;
case R.id.nav_next:
viewPanel(MOVE_UP);
break;
}
}
mConfirm.setEnabled(mActivePage != 0);
if (mHeader != null) {
switch (mActivePage) {
case 0:
mHeader.setText(R.string.tracking_list_01);
break;
default:
mHeader.setText(R.string.tracking_list_02);
}
}
mConfirm.setEnabled(mActivePage != 0 || mDots.size() == 0);
}
}