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_marginLeft="@dimen/text_padding"
|
||||||
android:layout_weight="1" />
|
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
|
<CheckedTextView
|
||||||
android:id="@+id/checkbox"
|
android:id="@+id/checkbox"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
@ -52,13 +52,12 @@ THE SOFTWARE.
|
|||||||
android:background="?android:attr/dividerHorizontal"
|
android:background="?android:attr/dividerHorizontal"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ListView
|
<ListView
|
||||||
android:id="@+id/list"
|
android:id="@+id/list"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:listSelector="?android:attr/selectableItemBackground"
|
android:listSelector="?android:attr/selectableItemBackground"
|
||||||
android:divider="@drawable/inset_divider"
|
android:divider="@null" />
|
||||||
android:dividerHeight="1dip" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
@ -46,7 +46,8 @@ public class DraggableRow extends LinearLayout implements Checkable {
|
|||||||
* Layout types for use with setupLayout
|
* Layout types for use with setupLayout
|
||||||
*/
|
*/
|
||||||
public static final int LAYOUT_CHECKBOXES = 1;
|
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) {
|
public DraggableRow(Context context, AttributeSet attrs) {
|
||||||
@ -76,10 +77,14 @@ public class DraggableRow extends LinearLayout implements Checkable {
|
|||||||
mCheckBox.setVisibility(View.VISIBLE);
|
mCheckBox.setVisibility(View.VISIBLE);
|
||||||
showDragger(true);
|
showDragger(true);
|
||||||
break;
|
break;
|
||||||
case LAYOUT_COVERVIEW:
|
case LAYOUT_DRAGGABLE:
|
||||||
mCoverView.setVisibility(View.VISIBLE);
|
mCoverView.setVisibility(View.VISIBLE);
|
||||||
showDragger(true);
|
showDragger(true);
|
||||||
break;
|
break;
|
||||||
|
case LAYOUT_LISTVIEW:
|
||||||
|
mCoverView.setVisibility(View.VISIBLE);
|
||||||
|
mDragger.setImageResource(R.drawable.arrow);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break; // do not care
|
break; // do not care
|
||||||
}
|
}
|
||||||
@ -103,6 +108,30 @@ public class DraggableRow extends LinearLayout implements Checkable {
|
|||||||
setChecked(!mChecked);
|
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
|
* Marks a row as highlighted
|
||||||
* @param state Enable or disable highlighting
|
* @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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -47,36 +47,32 @@ public class FilebrowserStartAdapter
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View getView(int pos, View convertView, ViewGroup parent) {
|
public View getView(int pos, View convertView, ViewGroup parent) {
|
||||||
View view;
|
DraggableRow row;
|
||||||
ViewHolder holder;
|
ViewHolder holder;
|
||||||
|
|
||||||
if (convertView == null) {
|
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 = new ViewHolder();
|
||||||
holder.text = (TextView)view.findViewById(R.id.text);
|
row.setTag(holder);
|
||||||
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);
|
|
||||||
} else {
|
} else {
|
||||||
view = convertView;
|
row = (DraggableRow)convertView;
|
||||||
holder = (ViewHolder)view.getTag();
|
holder = (ViewHolder)row.getTag();
|
||||||
}
|
}
|
||||||
|
|
||||||
String label = getItem(pos);
|
String label = getItem(pos);
|
||||||
holder.id = pos;
|
holder.id = pos;
|
||||||
holder.text.setText(label);
|
row.getTextView().setText(label);
|
||||||
return view;
|
return row;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
ViewHolder holder = (ViewHolder)((View)view.getParent()).getTag();
|
ViewHolder holder = (ViewHolder)view.getTag();
|
||||||
mActivity.onDirectoryClicked((int)holder.id);
|
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)
|
public void bindView(View view, Context context, Cursor cursor)
|
||||||
{
|
{
|
||||||
DraggableRow dview = (DraggableRow)view;
|
DraggableRow dview = (DraggableRow)view;
|
||||||
dview.setupLayout(DraggableRow.LAYOUT_COVERVIEW);
|
dview.setupLayout(DraggableRow.LAYOUT_DRAGGABLE);
|
||||||
dview.showDragger(mEditable);
|
dview.showDragger(mEditable);
|
||||||
|
|
||||||
TextView textView = dview.getTextView();
|
TextView textView = dview.getTextView();
|
||||||
|
@ -64,7 +64,7 @@ public class ShowQueueAdapter
|
|||||||
} else {
|
} else {
|
||||||
LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
|
LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
|
||||||
row = (DraggableRow)inflater.inflate(mResource, parent, false);
|
row = (DraggableRow)inflater.inflate(mResource, parent, false);
|
||||||
row.setupLayout(DraggableRow.LAYOUT_COVERVIEW);
|
row.setupLayout(DraggableRow.LAYOUT_DRAGGABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Song song = getItem(position);
|
Song song = getItem(position);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user