make FileSystemAdapter use DraggableRow
This commit is contained in:
parent
9c47a3b90c
commit
de0247b04a
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user