From 1a3f016d71336dd85d0b7b13643b82d394eb6e47 Mon Sep 17 00:00:00 2001 From: Armin Zamani Date: Fri, 5 Apr 2013 01:46:52 +0200 Subject: [PATCH] worked on drag and drop facility so that only when a certain symbol is pressed the item moves --- .../res/drawable/drag_symbol.png | Bin 0 -> 640 bytes .../res/layout/race_finishing_view.xml | 6 ++- .../res/layout/welter_one_row_two_columns.xml | 2 +- .../res/layout/welter_positioning_item.xml | 40 ++++++++++++++++++ .../res/values/ids.xml | 6 +++ .../res/values/strings.xml | 1 + .../CompetitorPositioningListAdapter.java | 6 +-- .../raceinfo/FinishingRaceFragment.java | 30 +++++++++++-- 8 files changed, 83 insertions(+), 8 deletions(-) create mode 100644 mobile/com.sap.sailing.racecommittee.app/res/drawable/drag_symbol.png create mode 100644 mobile/com.sap.sailing.racecommittee.app/res/layout/welter_positioning_item.xml create mode 100644 mobile/com.sap.sailing.racecommittee.app/res/values/ids.xml diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable/drag_symbol.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable/drag_symbol.png new file mode 100644 index 0000000000000000000000000000000000000000..c90a6a4f873f0e72a9d4e4a18931034595abfc19 GIT binary patch literal 640 zcmeAS@N?(olHy`uVBq!ia0vp^E{( zJaZG%Q-e|yQz{EjrrIztFe!PuIEGZ*dNao``;ddk@%LFG*}*RsE!B|a@|vEP=k)Tz zNza4&53cY(xpMNPZ-Dr6zNIB4uY-hMM6FVos^xWY$@?!^rdt*s4LJX!{)2&>;*-C7 zeyi>*D7w9Erq)5r<(D`9v^t;It|_wmfWnMxZ!=4a<`Ebh7Xx>R@m`TK&+|DI1Mv{G@hRen}1;dAZU#I0_3mPq-j2r14# zJi~e7*0#G1EH}Qn9^mD;@1ziO^S6K~lLG?_0);Rt$yM&1k^3o_pOKem=6vVi%xkfn z3ajN5X8Oc^{ry)t_WFF^%X{Ls=00vrF`8MefBTy3InQUpzv?_^Z?Au;!hL%gd+vWp z@sQ8FSO2KI-fqgzmsNGAZ8gslu9Z%!CTQWMcFi=by~)eN?Qld&bkE=TcZv%b+IQS( zfAH46ilc!6hE{N + dslv:drag_handle_id="@id/drag_handle" + dslv:drag_start_mode="onDrag" + dslv:remove_enabled="true" + dslv:remove_mode="flingRemove" /> - + + + + + + + + + + \ No newline at end of file diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values/ids.xml b/mobile/com.sap.sailing.racecommittee.app/res/values/ids.xml new file mode 100644 index 00000000000..7c7d8e23418 --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app/res/values/ids.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values/strings.xml b/mobile/com.sap.sailing.racecommittee.app/res/values/strings.xml index c66d9ae1b4a..ea7c9451182 100644 --- a/mobile/com.sap.sailing.racecommittee.app/res/values/strings.xml +++ b/mobile/com.sap.sailing.racecommittee.app/res/values/strings.xml @@ -150,5 +150,6 @@ Positioning Competitors Finish race + Drag handle diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/finishing/CompetitorPositioningListAdapter.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/finishing/CompetitorPositioningListAdapter.java index b0bdd9780b3..7546a4a6afd 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/finishing/CompetitorPositioningListAdapter.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/finishing/CompetitorPositioningListAdapter.java @@ -24,14 +24,14 @@ public class CompetitorPositioningListAdapter extends ArrayAdapter { if (convertView == null) { LayoutInflater li = (LayoutInflater) (getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)); - view = li.inflate(R.layout.welter_one_row_two_columns, null); + view = li.inflate(R.layout.welter_positioning_item, null); } Competitor competitor = getItem(position); - TextView positionText = (TextView) view.findViewById(R.id.Welter_Cell_OneRowTwoColumns_columnOne_txtTitle); + TextView positionText = (TextView) view.findViewById(R.id.Welter_Cell_Positioning_columnOne_txtTitle); - TextView title = (TextView) view.findViewById(R.id.Welter_Cell_OneRowTwoColumns_columnTwo_txtTitle); + TextView title = (TextView) view.findViewById(R.id.Welter_Cell_Positioning_columnTwo_txtTitle); positionText.setText(String.valueOf(position + 1)); title.setText(competitor.getName()); diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java index 706e3389081..43dc1376ec4 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java @@ -66,7 +66,7 @@ public class FinishingRaceFragment extends RaceFragment implements TickListener positionedCompetitors = new ArrayList(); competitorsAdapter = new CompetitorsAdapter(getActivity(), R.layout.welter_grid_competitor_cell, competitors); - positioningAdapter = new CompetitorPositioningListAdapter(getActivity(), R.layout.welter_one_row_two_columns, positionedCompetitors); + positioningAdapter = new CompetitorPositioningListAdapter(getActivity(), R.layout.welter_positioning_item, positionedCompetitors); positioningListView = (DragSortListView) getView().findViewById(R.id.listViewPositioningList); positioningListView.setAdapter(positioningAdapter); @@ -81,6 +81,15 @@ public class FinishingRaceFragment extends RaceFragment implements TickListener } } }); + + positioningListView.setRemoveListener(new DragSortListView.RemoveListener() { + + @Override + public void remove(int toBeRemoved) { + Competitor item = positioningAdapter.getItem(toBeRemoved); + onCompetitorRemovedFromPositioningList(item); + } + }); competitorListView = (ListView) getView().findViewById(R.id.gridViewCompetitors); competitorListView.setAdapter(competitorsAdapter); @@ -124,7 +133,7 @@ public class FinishingRaceFragment extends RaceFragment implements TickListener } protected void onCompetitorClickedOnGrid(Competitor competitor) { - addNewCompetitorToList(competitor); + addNewCompetitorToPositioningList(competitor); removeCompetitorFromGrid(competitor); } @@ -133,10 +142,25 @@ public class FinishingRaceFragment extends RaceFragment implements TickListener competitorsAdapter.notifyDataSetChanged(); } - private void addNewCompetitorToList(Competitor competitor) { + private void addNewCompetitorToPositioningList(Competitor competitor) { positionedCompetitors.add(competitor); positioningAdapter.notifyDataSetChanged(); } + + protected void onCompetitorRemovedFromPositioningList(Competitor competitor) { + addNewCompetitorToCompetitorList(competitor); + removeCompetitorFromPositionings(competitor); + } + + private void addNewCompetitorToCompetitorList(Competitor competitor) { + competitors.add(competitor); + competitorsAdapter.notifyDataSetChanged(); + } + + protected void removeCompetitorFromPositionings(Competitor competitor) { + positionedCompetitors.remove(competitor); + positioningAdapter.notifyDataSetChanged(); + } protected void setCountdownLabels(long millisecondsSinceStart) { setStarttimeCountupLabel(millisecondsSinceStart);