package com.wind.gifassistant.ui;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.special.ResideMenu.ResideMenu;
import com.wind.gifassistant.R;
import com.wind.gifassistant.data.VideosFilesScanTask;
import com.wind.gifassistant.utils.AppUtils;
import java.util.ArrayList;
public class VideosListFragment extends Fragment implements DataLoadCallBack {
private View parentView;
private ResideMenu mResideMenu;
private ArrayList<String> mVideosListItem = new ArrayList<String>();
private PullToRefreshListView mVideoPullListView;
private TextView mVideoEmptyNoteView;
private VideosListAdapter mVideosListAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
parentView = inflater.inflate(R.layout.main_screen_pager_fragment, container, false);
setUpViews();
return parentView;
}
private void setUpViews() {
MainActivity parentActivity = (MainActivity) getActivity();
mResideMenu = parentActivity.getResideMenu();
mVideoPullListView = (PullToRefreshListView) parentView.findViewById(R.id.pull_refresh_list);
mVideoEmptyNoteView = (TextView) parentView.findViewById(R.id.empty_list_text);
mVideosListAdapter = new VideosListAdapter(parentActivity, mVideosListItem);
mVideoPullListView.setAdapter(mVideosListAdapter);
final Context vContext = parentActivity;
mVideoPullListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
// 先隐藏empty note text
mVideoEmptyNoteView.setVisibility(View.GONE);
String label = DateUtils.formatDateTime(vContext, System.currentTimeMillis(),
DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);
// Update the LastUpdatedLabel
refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
// Do work to refresh the list here.
new VideosFilesScanTask(vContext, mVideosListItem, mVideoEmptyNoteView, mVideoPullListView, mVideosListAdapter).execute();
}
});
// click
ListView actualListView = mVideoPullListView.getRefreshableView();
actualListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
int index = 0;
if(position > 0 && position <= mVideosListItem.size()) {
index = position - 1;
}
String path = mVideosListItem.get(index);
if (TextUtils.isEmpty(path)) {
return;
}
Intent intent = new Intent(vContext, VideoPlayerActivity.class);
intent.putExtra(AppUtils.KEY_PATH, path);
vContext.startActivity(intent);
}
});
ListContextMenuListener videoListMenuCreateListener = new ListContextMenuListener(
vContext, mVideosListAdapter, AppUtils.FILE_TYPE_VIDEO, this,
mResideMenu);
actualListView.setOnCreateContextMenuListener(videoListMenuCreateListener);
loadData(vContext);
}
public void loadData(Context context) {
// load videos
if (mVideosListAdapter != null) {
new VideosFilesScanTask(context, mVideosListItem,
mVideoEmptyNoteView, mVideoPullListView, mVideosListAdapter)
.execute();
}
}
}