make FileSystemAdapter use DraggableRow

This commit is contained in:
Adrian Ulrich 2016-07-24 14:36:47 +02:00
parent 9c47a3b90c
commit de0247b04a
3 changed files with 16 additions and 33 deletions

View File

@ -108,16 +108,6 @@ 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

View File

@ -191,33 +191,30 @@ public class FileSystemAdapter
@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);
holder = new ViewHolder();
holder.text = (TextView)view.findViewById(R.id.text);
holder.divider = (View)view.findViewById(R.id.divider);
holder.cover = (LazyCoverView)view.findViewById(R.id.cover);
holder.arrow = (ImageView)view.findViewById(R.id.arrow);
row = (DraggableRow)mInflater.inflate(R.layout.draggable_row, null);
row.setupLayout(DraggableRow.LAYOUT_LISTVIEW);
holder.cover.setImageDrawable(mFolderIcon);
holder.arrow.setOnClickListener(this);
view.setTag(holder);
holder = new ViewHolder();
row.setTag(holder);
row.setOnClickListener(this);
row.getCoverView().setImageDrawable(mFolderIcon);
} else {
view = convertView;
holder = (ViewHolder)view.getTag();
row = (DraggableRow)convertView;
holder = (ViewHolder)row.getTag();
}
File file = mFiles[pos];
boolean isDirectory = file.isDirectory();
holder.id = pos;
holder.text.setText(file.getName());
holder.arrow.setVisibility(isDirectory ? View.VISIBLE : View.GONE);
holder.divider.setVisibility(isDirectory ? View.VISIBLE : View.GONE);
holder.cover.setVisibility(isDirectory ? View.VISIBLE : View.GONE);
return view;
row.getTextView().setText(file.getName());
row.getCoverView().setVisibility(isDirectory ? View.VISIBLE : View.GONE);
row.showDragger(isDirectory);
return row;
}
@Override
@ -295,7 +292,7 @@ public class FileSystemAdapter
Intent intent = new Intent();
intent.putExtra(LibraryAdapter.DATA_TYPE, MediaUtils.TYPE_FILE);
intent.putExtra(LibraryAdapter.DATA_ID, holder.id);
intent.putExtra(LibraryAdapter.DATA_TITLE, holder.text.getText().toString());
intent.putExtra(LibraryAdapter.DATA_TITLE, ((DraggableRow)view).getTextView().getText().toString());
intent.putExtra(LibraryAdapter.DATA_EXPANDABLE, file.isDirectory());
String path;
@ -311,10 +308,6 @@ public class FileSystemAdapter
@Override
public void onClick(View view) {
onHandleRowClick((View)view.getParent());
}
public void onHandleRowClick(View view) {
Intent intent = createData(view);
boolean isFolder = intent.getBooleanExtra(LibraryAdapter.DATA_EXPANDABLE, false);

View File

@ -844,7 +844,7 @@ public class LibraryPagerAdapter
public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
int type = (Integer)parent.getTag();
if (type == MediaUtils.TYPE_FILE) {
mFilesAdapter.onHandleRowClick(view);
mFilesAdapter.onClick(view);
} else {
Intent intent = id == -1 ? createHeaderIntent(view) : mCurrentAdapter.createData(view);
mActivity.onItemClicked(intent);