mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-22 03:53:56 +00:00
position can't be set between penalty item
This commit is contained in:
1 parent
88621e5905
commit
659a1b9de7
3 files changed
+11
-8
No files matched your search
+2
-2
@@ -105,7 +105,7 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
|
|||||||
@Override
|
@Override
|
||||||
public ItemDraggableRange onGetItemDraggableRange(ViewHolder viewHolder, int position) {
|
public ItemDraggableRange onGetItemDraggableRange(ViewHolder viewHolder, int position) {
|
||||||
final int start = 0;
|
final int start = 0;
|
||||||
final int end = getFirstPenalty() - 1;
|
final int end = getFirstPenaltyPosition() - 1;
|
||||||
|
|
||||||
return new GroupPositionItemDraggableRange(start, end);
|
return new GroupPositionItemDraggableRange(start, end);
|
||||||
}
|
}
|
||||||
@@ -120,7 +120,7 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getFirstPenalty() {
|
public int getFirstPenaltyPosition() {
|
||||||
int result = getItemCount();
|
int result = getItemCount();
|
||||||
for (int i = 0; i < getItemCount(); i++) {
|
for (int i = 0; i < getItemCount(); i++) {
|
||||||
if (!mCompetitor.get(i).getMaxPointsReason().equals(MaxPointsReason.NONE)) {
|
if (!mCompetitor.get(i).getMaxPointsReason().equals(MaxPointsReason.NONE)) {
|
||||||
|
|||||||
+6
-6
@@ -500,7 +500,7 @@ public class TrackingListFragment extends BaseFragment
|
|||||||
name += competitor.getBoat().getSailID();
|
name += competitor.getBoat().getSailID();
|
||||||
}
|
}
|
||||||
name += " - " + competitor.getName();
|
name += " - " + competitor.getName();
|
||||||
int pos = mAdapter.getFirstPenalty();
|
int pos = mAdapter.getFirstPenaltyPosition();
|
||||||
// FIXME mFinishedData.size()+1 also counts penalized competitors before which the competitor is to be inserted! I just wonder how the position shown in the app seems correct...
|
// FIXME mFinishedData.size()+1 also counts penalized competitors before which the competitor is to be inserted! I just wonder how the position shown in the app seems correct...
|
||||||
int greatestOneBasedRankSoFar = 0;
|
int greatestOneBasedRankSoFar = 0;
|
||||||
for (final CompetitorResultWithIdImpl result : mFinishedData) {
|
for (final CompetitorResultWithIdImpl result : mFinishedData) {
|
||||||
@@ -601,7 +601,7 @@ public class TrackingListFragment extends BaseFragment
|
|||||||
AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AppTheme_AlertDialog);
|
AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AppTheme_AlertDialog);
|
||||||
builder.setTitle(item.getCompetitorDisplayName());
|
builder.setTitle(item.getCompetitorDisplayName());
|
||||||
final CompetitorEditLayout layout = new CompetitorEditLayout(getActivity(), getRace().getState()
|
final CompetitorEditLayout layout = new CompetitorEditLayout(getActivity(), getRace().getState()
|
||||||
.getFinishingTime(), item, mFinishedAdapter.getItemCount(), false);
|
.getFinishingTime(), item, mAdapter.getFirstPenaltyPosition(), false);
|
||||||
builder.setView(layout);
|
builder.setView(layout);
|
||||||
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -616,11 +616,11 @@ public class TrackingListFragment extends BaseFragment
|
|||||||
replaceItemInPositioningList(index, item, newItem);
|
replaceItemInPositioningList(index, item, newItem);
|
||||||
onItemMove(mFinishedData.indexOf(newItem), newItem.getOneBasedRank() - 1);
|
onItemMove(mFinishedData.indexOf(newItem), newItem.getOneBasedRank() - 1);
|
||||||
} else {
|
} else {
|
||||||
onItemRemove(mFinishedData.indexOf(item));
|
onItemRemove(index);
|
||||||
}
|
}
|
||||||
} else { // same rank
|
} else { // same rank
|
||||||
if (newItem.getOneBasedRank() == 0) { // empty rank -> remove
|
if (newItem.getOneBasedRank() == 0) { // empty rank -> remove
|
||||||
onItemRemove(mFinishedData.indexOf(item));
|
onItemRemove(index);
|
||||||
} else {
|
} else {
|
||||||
replaceItemInPositioningList(index, item, newItem);
|
replaceItemInPositioningList(index, item, newItem);
|
||||||
}
|
}
|
||||||
@@ -657,8 +657,8 @@ public class TrackingListFragment extends BaseFragment
|
|||||||
getRaceState().setFinishPositioningListChanged(MillisecondsTimePoint.now(), getCompetitorResults());
|
getRaceState().setFinishPositioningListChanged(MillisecondsTimePoint.now(), getCompetitorResults());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void replaceItemInPositioningList(int index, CompetitorResultWithIdImpl item, CompetitorResultWithIdImpl newItem) {
|
private void replaceItemInPositioningList(int index, CompetitorResultWithIdImpl oldItem, CompetitorResultWithIdImpl newItem) {
|
||||||
mFinishedData.remove(item);
|
mFinishedData.remove(oldItem);
|
||||||
mFinishedData.add(index, newItem);
|
mFinishedData.add(index, newItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
@@ -84,6 +84,9 @@ public class CompetitorEditLayout extends ScrollView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mCompetitor = competitor;
|
mCompetitor = competitor;
|
||||||
|
if (!mCompetitor.getMaxPointsReason().equals(MaxPointsReason.NONE)) {
|
||||||
|
maxPos++;
|
||||||
|
}
|
||||||
|
|
||||||
mCalendar = (GregorianCalendar) GregorianCalendar.getInstance();
|
mCalendar = (GregorianCalendar) GregorianCalendar.getInstance();
|
||||||
if (mCompetitor.getFinishingTime() != null) {
|
if (mCompetitor.getFinishingTime() != null) {
|
||||||
|
|||||||
Reference in new issue
Block a user