mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 13:20:57 +00:00
competitor is moved to the last position if the MaxPointReason is set
This commit is contained in:
1 parent
660765f243
commit
a774947d4f
3 files changed
+17
-14
No files matched your search
+2
-2
@@ -178,7 +178,7 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
|
||||
|
||||
void onLongClick(CompetitorResultWithIdImpl item);
|
||||
|
||||
void onEditItem(CompetitorResultWithIdImpl item);
|
||||
void onEditItem(CompetitorResultWithIdImpl item, int position);
|
||||
}
|
||||
|
||||
public class ViewHolder extends BaseDraggableSwipeViewHolder implements View.OnLongClickListener {
|
||||
@@ -200,7 +200,7 @@ public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapt
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (mListener != null) {
|
||||
mListener.onEditItem(mCompetitor.get(getAdapterPosition()));
|
||||
mListener.onEditItem(mCompetitor.get(getAdapterPosition()), getAdapterPosition() + 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+11
-8
@@ -379,25 +379,28 @@ public class TrackingListFragment extends BaseFragment
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEditItem(final CompetitorResultWithIdImpl item) {
|
||||
public void onEditItem(final CompetitorResultWithIdImpl item, int position) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppTheme_AlertDialog);
|
||||
builder.setTitle(item.getCompetitorDisplayName());
|
||||
final CompetitorEditLayout layout = new CompetitorEditLayout(getActivity(), item, mFinishedAdapter.getItemCount());
|
||||
final CompetitorEditLayout layout = new CompetitorEditLayout(getActivity(), item, position, mFinishedAdapter.getItemCount());
|
||||
builder.setView(layout);
|
||||
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
CompetitorResultWithIdImpl newData = layout.getValue();
|
||||
CompetitorResultWithIdImpl newItem = layout.getValue();
|
||||
int index = mFinishedData.indexOf(item);
|
||||
if (item.getOneBasedRank() != newData.getOneBasedRank()) {
|
||||
int newPos = newData.getOneBasedRank();
|
||||
if (item.getMaxPointsReason() != newItem.getMaxPointsReason() && item.getMaxPointsReason() == MaxPointsReason.NONE) {
|
||||
mFinishedData.remove(item);
|
||||
mFinishedData.add(mFinishedData.size(), newItem);
|
||||
} else if (item.getOneBasedRank() != newItem.getOneBasedRank()) {
|
||||
int newPos = newItem.getOneBasedRank();
|
||||
if (newPos > 0) {
|
||||
newPos -= 1;
|
||||
}
|
||||
mFinishedData.remove(index);
|
||||
mFinishedData.add(newPos, newData);
|
||||
mFinishedData.remove(item);
|
||||
mFinishedData.add(newPos, newItem);
|
||||
} else {
|
||||
replaceItemInPositioningList(index, item, newData);
|
||||
replaceItemInPositioningList(index, item, newItem);
|
||||
}
|
||||
mFinishedAdapter.notifyDataSetChanged();
|
||||
getRaceState().setFinishPositioningListChanged(MillisecondsTimePoint.now(), getCompetitorResults());
|
||||
|
||||
+4
-4
@@ -41,12 +41,12 @@ public class CompetitorEditLayout extends FrameLayout {
|
||||
private NumberPicker mSeconds;
|
||||
private EditText mComment;
|
||||
|
||||
public CompetitorEditLayout(Context context, CompetitorResultWithIdImpl competitor, int maxPos) {
|
||||
public CompetitorEditLayout(Context context, CompetitorResultWithIdImpl competitor, int currentPos, int maxPos) {
|
||||
super(context);
|
||||
init(competitor, maxPos);
|
||||
init(competitor, currentPos, maxPos);
|
||||
}
|
||||
|
||||
private void init(CompetitorResultWithIdImpl competitor, int maxPos) {
|
||||
private void init(CompetitorResultWithIdImpl competitor, int currentPos, int maxPos) {
|
||||
View layout = LayoutInflater.from(getContext()).inflate(R.layout.race_tracking_list_competitor_edit, this, false);
|
||||
|
||||
mCompetitor = competitor;
|
||||
@@ -79,7 +79,7 @@ public class CompetitorEditLayout extends FrameLayout {
|
||||
StringArraySpinnerAdapter positionAdapter = new StringArraySpinnerAdapter(getPositionList(maxPos));
|
||||
mPosition.setAdapter(positionAdapter);
|
||||
mPosition.setOnItemSelectedListener(new SpinnerSelectedListener(positionAdapter));
|
||||
mPosition.setSelection(mCompetitor.getOneBasedRank());
|
||||
mPosition.setSelection(currentPos);
|
||||
}
|
||||
|
||||
mPenalty = ViewHelper.get(layout, R.id.competitor_penalty);
|
||||
|
||||
Reference in new issue
Block a user