package com.oreilly.demo.android.pa.finchvideo; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.TextView; import com.finchframework.finch.rest.RESTfulContentProvider; import com.oreilly.demo.android.pa.finchvideo.provider.FinchVideo; /** * Simple FinchVideo search application that merely displays a list of video * related meta-data. */ public class SimpleFinchVideoActivity extends Activity { public static final String MEDIA_ID = "mediaId"; SimpleCursorAdapter mAdapter; private EditText mTitleEditText; private EditText mDescriptionEditText; private EditText mMediaIdEditText; private Button mInsertButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_video_activity); final ListView searchList = (ListView) findViewById(R.id.simple_video_list); Cursor videoCursor = managedQuery(FinchVideo.SimpleVideos.CONTENT_URI, null, null, null, null); // have to reset this on a new search // Maps video entries from the database to views mAdapter = new SimpleCursorAdapter(this, R.layout.simple_video_list_item, videoCursor, new String[] { FinchVideo.SimpleVideos.TITLE_NAME, FinchVideo.SimpleVideos.DESCRIPTION_NAME }, new int[] { R.id.simple_video_title_text }); SimpleCursorAdapter.ViewBinder savb = new SimpleCursorAdapter.ViewBinder() { @Override public boolean setViewValue( View view, Cursor cursor, int i) { switch (i) { case FinchVideo.TITLE_COLUMN: TextView tv = (TextView) view.findViewById( R.id.simple_video_title_text); String videoText = cursor.getString(i); tv.setText(videoText); break; } return true; } }; mAdapter.setViewBinder(savb); searchList.setAdapter(mAdapter); mTitleEditText = (EditText) findViewById(R.id.simple_video_title_edit); mDescriptionEditText = (EditText) findViewById(R.id.simple_video_description_edit); mMediaIdEditText = (EditText) findViewById(R.id.simple_video_media_id_edit); mInsertButton = (Button) findViewById(R.id.simple_video_insert_button); mInsertButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { insert(); } }); } void insert() { ContentValues values = new ContentValues(); String title = mTitleEditText.getText().toString(); values.put(FinchVideo.SimpleVideos.TITLE_NAME, title); String description = mDescriptionEditText.getText().toString(); values.put(FinchVideo.SimpleVideos.DESCRIPTION_NAME, description); String mediaId = mMediaIdEditText.getText().toString(); String uri = "http://gdata.youtube.com/mediaId/" + RESTfulContentProvider.encode(mediaId); values.put(FinchVideo.SimpleVideos.URI_NAME, uri); getContentResolver().insert(FinchVideo.SimpleVideos.CONTENT_URI, values); mTitleEditText.setText(""); mDescriptionEditText.setText(""); mMediaIdEditText.setText(""); mTitleEditText.requestFocus(); } }