worked on drag and drop facility so that only when a certain symbol is

pressed the item moves
This commit is contained in:
Armin Zamani committed 2013-04-05 01:46:52 +02:00
1 parent a056ccdb31
commit 1a3f016d71
8 files changed
+83 -8

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

@@ -97,8 +97,12 @@
dslv:float_alpha="0.6"
dslv:slide_shuffle_speed="0.3"
dslv:track_drag_sort="false"
dslv:use_default_controller="true"
dslv:float_background_color="@color/welter_light_gray"
dslv:use_default_controller="false" />
dslv:drag_handle_id="@id/drag_handle"
dslv:drag_start_mode="onDrag"
dslv:remove_enabled="true"
dslv:remove_mode="flingRemove" />
<ListView
android:id="@+id/gridViewCompetitors"
@@ -7,7 +7,7 @@
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="6dip" >
<TextView
android:id="@+id/Welter.Cell.OneRowTwoColumns.columnOne.txtTitle"
android:layout_width="20dp"
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Welter.Cell.Positioning"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="@drawable/list_selector"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="6dip" >
<ImageView
android:id="@id/drag_handle"
android:layout_width="40dp"
android:layout_height="50dp"
android:layout_weight="0"
android:background="@drawable/drag_symbol"
android:contentDescription="@string/drag_handle_description" />
<TextView
android:id="@+id/Welter.Cell.Positioning.columnOne.txtTitle"
android:layout_marginLeft="10dp"
android:layout_width="20dp"
android:layout_height="50dp"
android:gravity="center_horizontal|center_vertical"
android:padding="5dp"
android:textColor="@drawable/text_selector"
android:textSize="9pt"
android:textIsSelectable="false" />
<TextView
android:id="@+id/Welter.Cell.Positioning.columnTwo.txtTitle"
android:layout_width="130dp"
android:layout_height="50dp"
android:gravity="center_horizontal|center_vertical"
android:padding="5dp"
android:textColor="@drawable/text_selector"
android:textSize="9pt"
android:textIsSelectable="false" />
</LinearLayout>
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="id" name="drag_handle" />
<item type="id" name="fling_remove" />
<item type="id" name="click_remove" />
</resources>
@@ -150,5 +150,6 @@
<string name="positionings">Positioning</string>
<string name="availableFinishingCompetitors">Competitors</string>
<string name="choose_blue_flag_finishing">Finish race</string>
<string name="drag_handle_description">Drag handle</string>
</resources>
@@ -24,14 +24,14 @@ public class CompetitorPositioningListAdapter extends ArrayAdapter<Competitor> {
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());
@@ -66,7 +66,7 @@ public class FinishingRaceFragment extends RaceFragment implements TickListener
positionedCompetitors = new ArrayList<Competitor>();
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);