package info.justaway; import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.MotionEvent; import android.view.View; import android.view.Window; import android.widget.ProgressBar; import android.widget.VideoView; import java.util.regex.Matcher; import java.util.regex.Pattern; import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; import info.justaway.model.TwitterManager; import info.justaway.util.MessageUtil; import info.justaway.util.StatusUtil; import twitter4j.Status; public class VideoActivity extends FragmentActivity { @Bind(R.id.player) VideoView player; @Bind(R.id.guruguru) ProgressBar guruguru; @OnClick(R.id.cover) void close() { finish(); } public VideoActivity() { } boolean musicWasPlaying = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_video); ButterKnife.bind(this); Intent intent = getIntent(); Bundle args = intent.getExtras(); if (args == null) { MessageUtil.showToast("Missing Bundle in Intent"); finish(); return; } final String statusUrl = args.getString("statusUrl"); if (statusUrl != null && !statusUrl.isEmpty()) { Pattern pattern = Pattern.compile("https?://twitter\\.com/\\w+/status/(\\d+)/video/(\\d+)/?.*"); Matcher matcher = pattern.matcher(statusUrl); if (matcher.find()) { final Long statusId = Long.valueOf(matcher.group(1)); new AsyncTask<Void, Void, Status>() { @Override protected twitter4j.Status doInBackground(Void... params) { try { return TwitterManager.getTwitter().showStatus(statusId); } catch (Exception e) { e.printStackTrace(); return null; } } @Override protected void onPostExecute(twitter4j.Status status) { if (status != null) { final String videoUrl = StatusUtil.getVideoUrl(status); if (videoUrl != null && !videoUrl.isEmpty()) { setVideoURI(videoUrl); } } } }.execute(); return; } } final String videoUrl = args.getString("videoUrl"); if (videoUrl == null) { MessageUtil.showToast("Missing videoUrl in Bundle"); finish(); return; } setVideoURI(videoUrl); } private void setVideoURI(final String videoUrl) { musicWasPlaying = ((AudioManager) getSystemService(Context.AUDIO_SERVICE)).isMusicActive(); guruguru.setVisibility(View.VISIBLE); player.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { finish(); return false; } }); player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { guruguru.setVisibility(View.GONE); } }); player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mediaPlayer) { player.seekTo(0); player.start(); } }); player.setVideoURI(Uri.parse(videoUrl)); player.start(); } @Override protected void onResume() { super.onResume(); } @Override protected void onPause() { super.onPause(); finish(); } @Override protected void onDestroy() { if (musicWasPlaying) { Intent i = new Intent("com.android.music.musicservicecommand"); i.putExtra("command", "play"); sendBroadcast(i); } super.onDestroy(); } }