make filebrowserstart use draggablerow
This commit is contained in:
parent
e95580acf9
commit
9c47a3b90c
@ -52,6 +52,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
android:layout_marginLeft="@dimen/text_padding"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<View
|
||||
android:id="@+id/divider"
|
||||
android:layout_width="@dimen/divider_size"
|
||||
android:layout_height="fill_parent"
|
||||
android:visibility="gone"
|
||||
android:background="?android:attr/dividerHorizontal" />
|
||||
|
||||
<CheckedTextView
|
||||
android:id="@+id/checkbox"
|
||||
android:visibility="gone"
|
||||
|
@ -52,13 +52,12 @@ THE SOFTWARE.
|
||||
android:background="?android:attr/dividerHorizontal"
|
||||
/>
|
||||
|
||||
<ListView
|
||||
android:id="@+id/list"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:listSelector="?android:attr/selectableItemBackground"
|
||||
android:divider="@drawable/inset_divider"
|
||||
android:dividerHeight="1dip" />
|
||||
<ListView
|
||||
android:id="@+id/list"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:listSelector="?android:attr/selectableItemBackground"
|
||||
android:divider="@null" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -46,7 +46,8 @@ public class DraggableRow extends LinearLayout implements Checkable {
|
||||
* Layout types for use with setupLayout
|
||||
*/
|
||||
public static final int LAYOUT_CHECKBOXES = 1;
|
||||
public static final int LAYOUT_COVERVIEW = 2;
|
||||
public static final int LAYOUT_DRAGGABLE = 2;
|
||||
public static final int LAYOUT_LISTVIEW = 3;
|
||||
|
||||
|
||||
public DraggableRow(Context context, AttributeSet attrs) {
|
||||
@ -76,10 +77,14 @@ public class DraggableRow extends LinearLayout implements Checkable {
|
||||
mCheckBox.setVisibility(View.VISIBLE);
|
||||
showDragger(true);
|
||||
break;
|
||||
case LAYOUT_COVERVIEW:
|
||||
case LAYOUT_DRAGGABLE:
|
||||
mCoverView.setVisibility(View.VISIBLE);
|
||||
showDragger(true);
|
||||
break;
|
||||
case LAYOUT_LISTVIEW:
|
||||
mCoverView.setVisibility(View.VISIBLE);
|
||||
mDragger.setImageResource(R.drawable.arrow);
|
||||
break;
|
||||
default:
|
||||
break; // do not care
|
||||
}
|
||||
@ -103,6 +108,30 @@ public class DraggableRow extends LinearLayout implements Checkable {
|
||||
setChecked(!mChecked);
|
||||
}
|
||||
|
||||
/**
|
||||
* Only make interesting parts clickable
|
||||
*/
|
||||
@Override
|
||||
public void setOnClickListener(View.OnClickListener listener) {
|
||||
mTextView.setOnClickListener(listener);
|
||||
mCoverView.setOnClickListener(listener);
|
||||
mDragger.setOnClickListener(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* We glue tags to the text view to make getTag() simpler and consistent
|
||||
* with the on click listener interception
|
||||
*/
|
||||
@Override
|
||||
public void setTag(Object tag) {
|
||||
mTextView.setTag(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getTag() {
|
||||
return mTextView.getTag();
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks a row as highlighted
|
||||
* @param state Enable or disable highlighting
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2015 Adrian Ulrich <adrian@blinkenlights.ch>
|
||||
* Copyright (C) 2013-2016 Adrian Ulrich <adrian@blinkenlights.ch>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -47,36 +47,32 @@ public class FilebrowserStartAdapter
|
||||
|
||||
@Override
|
||||
public View getView(int pos, View convertView, ViewGroup parent) {
|
||||
View view;
|
||||
DraggableRow row;
|
||||
ViewHolder holder;
|
||||
|
||||
if (convertView == null) {
|
||||
view = mInflater.inflate(R.layout.library_row_expandable, null);
|
||||
row = (DraggableRow)mInflater.inflate(R.layout.draggable_row, null);
|
||||
row.setupLayout(DraggableRow.LAYOUT_LISTVIEW);
|
||||
|
||||
row.getCoverView().setImageDrawable(mFolderIcon);
|
||||
row.setOnClickListener(this);
|
||||
|
||||
holder = new ViewHolder();
|
||||
holder.text = (TextView)view.findViewById(R.id.text);
|
||||
holder.divider = view.findViewById(R.id.divider);
|
||||
holder.cover = (LazyCoverView)view.findViewById(R.id.cover);
|
||||
|
||||
holder.arrow = (ImageView)view.findViewById(R.id.arrow);
|
||||
|
||||
holder.cover.setImageDrawable(mFolderIcon);
|
||||
holder.text.setOnClickListener(this);
|
||||
holder.cover.setVisibility(View.VISIBLE);
|
||||
view.setTag(holder);
|
||||
row.setTag(holder);
|
||||
} else {
|
||||
view = convertView;
|
||||
holder = (ViewHolder)view.getTag();
|
||||
row = (DraggableRow)convertView;
|
||||
holder = (ViewHolder)row.getTag();
|
||||
}
|
||||
|
||||
String label = getItem(pos);
|
||||
holder.id = pos;
|
||||
holder.text.setText(label);
|
||||
return view;
|
||||
row.getTextView().setText(label);
|
||||
return row;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
ViewHolder holder = (ViewHolder)((View)view.getParent()).getTag();
|
||||
ViewHolder holder = (ViewHolder)view.getTag();
|
||||
mActivity.onDirectoryClicked((int)holder.id);
|
||||
}
|
||||
|
||||
|
@ -108,7 +108,7 @@ public class PlaylistAdapter extends CursorAdapter implements Handler.Callback {
|
||||
public void bindView(View view, Context context, Cursor cursor)
|
||||
{
|
||||
DraggableRow dview = (DraggableRow)view;
|
||||
dview.setupLayout(DraggableRow.LAYOUT_COVERVIEW);
|
||||
dview.setupLayout(DraggableRow.LAYOUT_DRAGGABLE);
|
||||
dview.showDragger(mEditable);
|
||||
|
||||
TextView textView = dview.getTextView();
|
||||
|
@ -64,7 +64,7 @@ public class ShowQueueAdapter
|
||||
} else {
|
||||
LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
|
||||
row = (DraggableRow)inflater.inflate(mResource, parent, false);
|
||||
row.setupLayout(DraggableRow.LAYOUT_COVERVIEW);
|
||||
row.setupLayout(DraggableRow.LAYOUT_DRAGGABLE);
|
||||
}
|
||||
|
||||
Song song = getItem(position);
|
||||
|
Loading…
x
Reference in New Issue
Block a user