package com.smartisanos.sidebar.view;
import java.io.File;
import com.smartisanos.sidebar.R;
import com.smartisanos.sidebar.util.FileInfo;
import com.smartisanos.sidebar.util.Tracker;
import com.smartisanos.sidebar.util.Utils;
import android.content.Context;
import android.content.res.Configuration;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.onestep.OneStepDragUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class RecentFileItemView extends LinearLayout {
private TextView mDateText;
private View mFileItemGroup;
private ImageView mIcon;
private TextView mFileName;
private TextView mMoreLabel;
public RecentFileItemView(Context context) {
this(context, null);
}
public RecentFileItemView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public RecentFileItemView(Context context, AttributeSet attrs,
int defStyleAttr) {
this(context, attrs, defStyleAttr, 0);
}
public RecentFileItemView(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
//set layout
setOrientation(LinearLayout.VERTICAL);
LayoutInflater.from(context).inflate(R.layout.recent_file_item, this, true);
// find view
mDateText = (TextView) findViewById(R.id.date_content);
mFileItemGroup = findViewById(R.id.recent_file_item);
mFileName = (TextView) findViewById(R.id.file_name);
mIcon = (ImageView) findViewById(R.id.file_icon);
mMoreLabel = (TextView) findViewById(R.id.more_label);
}
@Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mMoreLabel.setText(R.string.load_more);
}
public void reset() {
mMoreLabel.setVisibility(View.GONE);
mDateText.setVisibility(View.GONE);
mFileItemGroup.setVisibility(View.GONE);
setOnClickListener(null);
setOnLongClickListener(null);
}
public void showItem(final FileInfo info) {
mFileName.setText(new File(info.filePath).getName());
mIcon.setImageResource(info.getIconId());
mFileItemGroup.setVisibility(View.VISIBLE);
setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utils.openFile(mContext, info);
Tracker.onClick(Tracker.EVENT_OPEN_DOC);
}
});
setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
OneStepDragUtils.dragFile(v, mContext, new File(info.filePath), info.mimeType);
return true;
}
});
}
public void showDate(int resId) {
mDateText.setText(resId);
mDateText.setVisibility(View.VISIBLE);
}
public void showMoreTag(View.OnClickListener listener) {
mMoreLabel.setVisibility(View.VISIBLE);
setOnClickListener(listener);
}
}