package com.mugua.mgvideo.ui.recent;
|
|
import java.util.List;
|
|
import android.content.Intent;
|
import android.database.Cursor;
|
import android.os.Bundle;
|
import androidx.fragment.app.Fragment;
|
import androidx.loader.app.LoaderManager;
|
import androidx.loader.content.CursorLoader;
|
import androidx.loader.content.Loader;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.widget.ListView;
|
import android.widget.Toast;
|
|
import com.mugua.mgvideo.R;
|
import com.umeng.analytics.MobclickAgent;
|
import com.mugua.mgvideo.db.WatchHistoryTable;
|
import com.mugua.mgvideo.ui.common.MVideosActivity;
|
|
public class WatchHistoryFragment extends Fragment implements
|
LoaderManager.LoaderCallbacks<Cursor> {
|
|
private WatchHistoryAdapter mAdapter;
|
|
private DownloadAdapter2.IGetDeleteCallback getdeleteNumber = null;
|
|
private ListView list;
|
|
private View empty;
|
|
public void setDeleteCallback(
|
DownloadAdapter2.IGetDeleteCallback getdeleteNumber) {
|
this.getdeleteNumber = getdeleteNumber;
|
if (mAdapter != null)
|
mAdapter.setDeleteCallback(getdeleteNumber);
|
}
|
|
@Override
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
Bundle savedInstanceState) {
|
return inflater.inflate(R.layout.watch_history_fragment, container,
|
false);
|
}
|
|
@Override
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
super.onViewCreated(view, savedInstanceState);
|
|
empty = view.findViewById(android.R.id.empty);
|
empty.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
Intent intent = new Intent(v.getContext(),
|
MVideosActivity.class);
|
intent.putExtra("home_type", "4");
|
intent.putExtra("title", "内部福利");
|
v.getContext().startActivity(intent);
|
}
|
});
|
|
list = (ListView) view.findViewById(android.R.id.list);
|
list.setDividerHeight(1);
|
// list.setOnItemClickListener(this);
|
if (list.getAdapter() == null) {
|
mAdapter = new WatchHistoryAdapter(list.getContext(), getActivity()
|
.getApplicationContext(), null, true);
|
if (getdeleteNumber != null)
|
mAdapter.setDeleteCallback(getdeleteNumber);
|
list.setAdapter(mAdapter);
|
// Prepare the loader. Either re-connect with an existing one,
|
// or start a new one.
|
getLoaderManager().initLoader(0, null, this);
|
}
|
}
|
|
@Override
|
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
|
return new CursorLoader(getActivity(), WatchHistoryTable.CONTENT_URI,
|
null, null, null, WatchHistoryTable.UPDATE_TIME + " DESC");
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
mAdapter.setSelectedMode(false);
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
}
|
|
@Override
|
public void onLoadFinished(Loader<Cursor> arg0, Cursor data) {
|
// Swap the new cursor in. (The framework will take care of closing the
|
// old cursor once we return.)
|
mAdapter.swapCursor(data);
|
if (mAdapter.getCount() == 0) {
|
empty.setVisibility(View.VISIBLE);
|
} else {
|
empty.setVisibility(View.INVISIBLE);
|
}
|
}
|
|
@Override
|
public void onLoaderReset(Loader<Cursor> arg0) {
|
// This is called when the last Cursor provided to onLoadFinished()
|
// above is about to be closed. We need to make sure we are no
|
// longer using it.
|
mAdapter.swapCursor(null);
|
}
|
|
// @Override
|
// public void onItemClick(AdapterView<?> parent, View view, int position,
|
// long id) {
|
// Cursor cursor = (Cursor) parent.getItemAtPosition(position);
|
// Map<String, VideoInfo> videoInfos = mAdapter.getVideoInfos();
|
// String videoId = cursor.getString(cursor
|
// .getColumnIndex(WatchHistoryTable.VIDEO_ID));
|
// String videoDetailId = cursor.getString(cursor
|
// .getColumnIndex(WatchHistoryTable.VIDEO_DETAIL_ID));
|
// VideoInfo videoInfo = videoInfos.get(videoId);
|
// if (videoInfo != null) {
|
// int playingPosition = 0;
|
// for (int i = 0; i < videoInfo.getVideoDetailList().size(); i++) {
|
// VideoDetailInfo item = videoInfo.getVideoDetailList().get(i);
|
// if (item.getId().equals(videoDetailId)) {
|
// playingPosition = i;
|
// break;
|
// }
|
// }
|
// Intent intent = new Intent(view.getContext(),
|
// VideoDetailActivity.class);
|
// intent.putExtra("video_info", videoInfo);
|
// intent.putExtra("playing_position", playingPosition);
|
// intent.putExtra("isFromWatchHistory", true);
|
// view.getContext().startActivity(intent);
|
// }
|
//
|
// }
|
|
public void deleteWatchHistory() {
|
List<Long> selectedIds = mAdapter.getSelectedIds();
|
if (!selectedIds.isEmpty()) {
|
for (int i = 0; i < selectedIds.size(); i++) {
|
getActivity().getContentResolver().delete(
|
WatchHistoryTable.CONTENT_URI,
|
WatchHistoryTable._ID + " = ? ",
|
new String[] { String.valueOf(selectedIds.get(i)) });
|
}
|
mAdapter.getSelectedIds().clear();
|
} else {
|
Toast.makeText(getActivity(), "请选择要删除的记录", Toast.LENGTH_LONG)
|
.show();
|
}
|
}
|
|
public boolean isSelectedMode() {
|
return mAdapter.isSelectedMode();
|
}
|
|
public void setSelectedMode(boolean selectedMode) {
|
mAdapter.setSelectedMode(selectedMode);
|
}
|
|
public void selectAll(boolean isSelected) {
|
mAdapter.selectAll(isSelected);
|
}
|
|
public int getCount() {
|
return mAdapter.getCount();
|
}
|
}
|