package com.pili.pldroid.playerdemo;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
public class VideoFileActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> {
private ListView mVideoListView;
private VideoAdapter mVideoAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_file);
mVideoListView = (ListView) findViewById(R.id.FileListView);
mVideoAdapter = new VideoAdapter(this);
mVideoListView.setAdapter(mVideoAdapter);
mVideoListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, final long id) {
Intent intent = new Intent();
intent.putExtra("videoPath", mVideoAdapter.getVideoPath(position));
setResult(Activity.RESULT_OK, intent);
finish();
}
});
getSupportLoaderManager().initLoader(1, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(this, MediaStore.Video.Media.getContentUri("external"), null, null, null,
"UPPER(" + MediaStore.Video.Media.DATA + ")");
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mVideoAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
}
public class VideoAdapter extends SimpleCursorAdapter {
public VideoAdapter(Context context) {
super(context, android.R.layout.simple_list_item_1, null,
new String[]{MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATA},
new int[]{android.R.id.text1, android.R.id.text2}, 0);
}
@Override
public long getItemId(int position) {
final Cursor cursor = getCursor();
if (cursor == null || cursor.getCount() == 0 || position >= cursor.getCount()) {
return 0;
}
cursor.moveToPosition(position);
return cursor.getLong(0);
}
public String getVideoPath(int position) {
final Cursor cursor = getCursor();
if (cursor.getCount() == 0) {
return "";
}
cursor.moveToPosition(position);
return cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
}
}
}