diff options
Diffstat (limited to 'src/org/codeaurora/gallery3d/video/StreamingHooker.java')
-rwxr-xr-x | src/org/codeaurora/gallery3d/video/StreamingHooker.java | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/org/codeaurora/gallery3d/video/StreamingHooker.java b/src/org/codeaurora/gallery3d/video/StreamingHooker.java new file mode 100755 index 000000000..55735f44c --- /dev/null +++ b/src/org/codeaurora/gallery3d/video/StreamingHooker.java @@ -0,0 +1,86 @@ +package org.codeaurora.gallery3d.video; + +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.net.Uri; +import android.provider.Browser; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; + +import com.android.gallery3d.R; +import org.codeaurora.gallery3d.ext.MovieUtils; + +public class StreamingHooker extends MovieHooker { + private static final String TAG = "StreamingHooker"; + private static final boolean LOG = false; + + private static final String ACTION_STREAMING = "org.codeaurora.settings.streaming"; + private static final int MENU_INPUT_URL = 1; + private static final int MENU_SETTINGS = 2; + private static final int MENU_DETAIL = 3; + + public static final String KEY_LOGO_BITMAP = "logo-bitmap"; + + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + super.onCreateOptionsMenu(menu); + // when in rtsp streaming type, generally it only has one uri. + menu.add(0, getMenuActivityId(MENU_INPUT_URL), 0, R.string.input_url); + menu.add(0, getMenuActivityId(MENU_SETTINGS), 0, R.string.streaming_settings); + return true; + } + + @Override + public boolean onPrepareOptionsMenu(final Menu menu) { + super.onPrepareOptionsMenu(menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + super.onOptionsItemSelected(item); + switch (getMenuOriginalId(item.getItemId())) { + case MENU_INPUT_URL: + gotoInputUrl(); + return true; + case MENU_SETTINGS: + gotoSettings(); + return true; + default: + return false; + } + } + + private void gotoInputUrl() { + final String APN_NAME = getClass().getName(); + final String URI_STR = "about:blank"; + final String EXTRA_NAME = "inputUrl"; + + final Intent intent = new Intent(); + intent.setAction(Intent.ACTION_VIEW); + intent.setData(Uri.parse(URI_STR)); + intent.putExtra(EXTRA_NAME, true); + intent.putExtra(Browser.EXTRA_APPLICATION_ID, APN_NAME); + + try { + getContext().startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(getContext(), + R.string.fail_to_load, Toast.LENGTH_LONG).show(); + } + + if (LOG) { + Log.v(TAG, "gotoInputUrl() appName=" + APN_NAME); + } + } + + private void gotoSettings() { + final Intent intent = new Intent(ACTION_STREAMING); + getContext().startActivity(intent); + if (LOG) { + Log.v(TAG, "gotoInputUrl()"); + } + } +} |