package com.qiniu.qiniulab.activity.video; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; import com.qiniu.android.utils.AsyncRun; import com.qiniu.qiniulab.R; import com.qiniu.qiniulab.config.QiniuLabConfig; import org.json.JSONArray; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class AudioVideoPlayUsePLDPlayerListActivity extends ActionBarActivity { private Context context; private ListView playlistView; public AudioVideoPlayUsePLDPlayerListActivity() { this.context = this; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.public_video_play_list_activity); this.playlistView = (ListView) this .findViewById(R.id.public_video_play_list_view); this.playlistView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView videoName = (TextView) view .findViewById(R.id.simple_video_play_list_item_name_textview); TextView adsUrl = (TextView) view.findViewById(R.id.simple_video_play_list_item_ads_url_textview); TextView videoUrl = (TextView) view .findViewById(R.id.simple_video_play_list_item_video_url_textview); Intent intent = new Intent(context, AudioVideoPlayUsePLDPlayerActivity.class); intent.putExtra("VideoName", videoName.getText()); intent.putExtra("AdsUrl", adsUrl.getText()); intent.putExtra("VideoUrl", videoUrl.getText()); context.startActivity(intent); } }); new Thread(new Runnable() { @Override public void run() { loadPlaylist(); } }).start(); } private void loadPlaylist() { final OkHttpClient httpClient = new OkHttpClient(); Request req = new Request.Builder().url(QiniuLabConfig.makeUrl( QiniuLabConfig.REMOTE_SERVICE_SERVER, QiniuLabConfig.PUBLIC_VIDEO_PLAY_LIST_PATH)).method("GET", null).build(); Response resp = null; try { resp = httpClient.newCall(req).execute(); JSONObject jsonObject = new JSONObject(resp.body().string()); JSONArray playlistArray = jsonObject.getJSONArray("playlist"); List<Map<String, String>> playlistDataList = new ArrayList<Map<String, String>>(); for (int i = 0; i < playlistArray.length(); i++) { JSONObject videoObj = playlistArray.getJSONObject(i); String name = videoObj.getString("name"); String adsUrl = videoObj.getString("ads_url"); String videoUrl = videoObj.getString("video_url"); Map<String, String> playlistData = new HashMap<String, String>(); playlistData.put("NAME", name); playlistData.put("ADS_URL", adsUrl); playlistData.put("VIDEO_URL", videoUrl); playlistDataList.add(playlistData); } // pack playlist final SimpleAdapter playlistAdapter = new SimpleAdapter( context, playlistDataList, R.layout.simple_video_play_list_item, new String[]{"NAME", "ADS_URL", "VIDEO_URL"}, new int[]{ R.id.simple_video_play_list_item_name_textview, R.id.simple_video_play_list_item_ads_url_textview, R.id.simple_video_play_list_item_video_url_textview}); AsyncRun.runInMain(new Runnable() { @Override public void run() { playlistView.setAdapter(playlistAdapter); } }); } catch (Exception e1) { Toast.makeText( context, context.getString(R.string.qiniu_get_public_video_playlist_failed), Toast.LENGTH_LONG).show(); } finally { if (resp != null) { resp.body().close(); } } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.public_video_play_list_activity_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.public_video_play_list_refresh_menu_item: this.loadPlaylist(); break; } return super.onOptionsItemSelected(item); } }