/*
* Copyright (c) 2014. Marshal Chen.
*/
package com.marshalchen.common.demoofui.dragSortListview;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.view.MotionEvent;
import com.marshalchen.common.demoofui.R;
import com.marshalchen.common.uimodule.dragSortListView.DragSortListView;
import com.marshalchen.common.uimodule.dragSortListView.DragSortController;
public class DSLVFragmentBGHandle extends DSLVFragment {
@Override
public int getItemLayout() {
return R.layout.drag_sort_listview_list_item_bg_handle;
}
@Override
public void setListAdapter() {
String[] array = getResources().getStringArray(R.array.jazz_artist_names);
ArrayList<String> list = new ArrayList<String>(Arrays.asList(array));
adapter = new MyAdapter(list);
setListAdapter(adapter);
}
@Override
public DragSortController buildController(DragSortListView dslv) {
MyDSController c = new MyDSController(dslv);
return c;
}
private class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(List<String> artists) {
super(getActivity(), getItemLayout(), R.id.text, artists);
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
v.getBackground().setLevel(3000);
return v;
}
}
private class MyDSController extends DragSortController {
DragSortListView mDslv;
public MyDSController(DragSortListView dslv) {
super(dslv);
setDragHandleId(R.id.text);
mDslv = dslv;
}
@Override
public View onCreateFloatView(int position) {
View v = adapter.getView(position, null, mDslv);
v.getBackground().setLevel(10000);
return v;
}
@Override
public void onDestroyFloatView(View floatView) {
//do nothing; block super from crashing
}
@Override
public int startDragPosition(MotionEvent ev) {
int res = super.dragHandleHitPosition(ev);
int width = mDslv.getWidth();
if ((int) ev.getX() < width / 3) {
return res;
} else {
return DragSortController.MISS;
}
}
}
}