Skip to content

Commit

Permalink
added meta-data to movies and removed the greying out in the video pl…
Browse files Browse the repository at this point in the history
…ayer. (#252)

Removed the skipNext and skipPrevious buttons from the ATV.

Added hand controller funtions.
  • Loading branch information
octacode authored and cpg committed Jul 24, 2017
1 parent 6ed96c9 commit 4848139
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.KeyEvent;

import org.amahi.anywhere.AmahiApplication;
import org.amahi.anywhere.R;
Expand All @@ -43,12 +44,15 @@ public class TvPlaybackVideoActivity extends Activity {
@Inject
ServerClient serverClient;

private Fragment fragment;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tv_video_playback);
setUpInjections();
getFragmentManager().beginTransaction().replace(R.id.playback_controls_fragment_container, buildAudioFragment()).commit();
fragment = buildAudioFragment();
getFragmentManager().beginTransaction().replace(R.id.playback_controls_fragment_container, fragment).commit();
}

private void setUpInjections() {
Expand Down Expand Up @@ -76,4 +80,25 @@ private ServerFile getFile(){
private ArrayList<ServerFile> getFiles(){
return getIntent().getParcelableArrayListExtra(Intents.Extras.SERVER_FILES);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode){
case KeyEvent.KEYCODE_MEDIA_REWIND:
((TvPlaybackVideoFragment)fragment).rewind();
break;
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
((TvPlaybackVideoFragment)fragment).fastForward();
break;
case KeyEvent.KEYCODE_MEDIA_NEXT:
((TvPlaybackVideoFragment)fragment).skipNext();
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
((TvPlaybackVideoFragment)fragment).skipPrevious();
break;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public void onCreate(Bundle savedInstanceState) {

playVideo();

setBackgroundType(BG_DARK);
setBackgroundType(BG_NONE);

setFadingEnabled(false);

Expand Down Expand Up @@ -162,6 +162,10 @@ private boolean isVideo(ServerFile serverFile) {
return Mimes.match(serverFile.getMime()) == Mimes.Type.VIDEO;
}

private boolean isMetadataAvailable() {
return ServerShare.Tag.MOVIES.equals(getVideoShare().getTag());
}

private void setDuration() {
FFmpegMediaMetadataRetriever mFFmpegMediaMetadataRetriever = new FFmpegMediaMetadataRetriever();
mFFmpegMediaMetadataRetriever.setDataSource(getFileUri().toString());
Expand Down Expand Up @@ -233,8 +237,10 @@ public void onActionClicked(Action action) {
if (action.getId() == mPlayPauseAction.getId()) {
togglePlayPause(mPlayPauseAction.getIndex() == PlaybackControlsRow.PlayPauseAction.PAUSE);
} else if (action.getId() == mRewindAction.getId()) {
setFadingEnabled(false);
rewind();
} else if (action.getId() == mFastForwardAction.getId()) {
setFadingEnabled(false);
fastForward();
} else if (action.getId() == mSkipNextAction.getId()) {
skipNext();
Expand Down Expand Up @@ -268,7 +274,7 @@ private HeaderItem getHeader(){
return headerItem;
}

private void togglePlayPause(boolean isPaused) {
public void togglePlayPause(boolean isPaused) {
if (isPaused) {
mediaPlayer.pause();
} else {
Expand All @@ -277,29 +283,31 @@ private void togglePlayPause(boolean isPaused) {
playbackStateChanged();
}

private void rewind() {
public void rewind() {
if(mPlaybackControlsRow.getCurrentTime() - (10*1000)>0){
mediaPlayer.setTime(mPlaybackControlsRow.getCurrentTime() - (10 * 1000));
mPlaybackControlsRow.setCurrentTime((int) mediaPlayer.getTime());
}
setFadingEnabled(true);
}

private void fastForward() {
public void fastForward() {
if (mPlaybackControlsRow.getCurrentTime() + (10 * 1000) < mDuration) {
mediaPlayer.setTime(mPlaybackControlsRow.getCurrentTime() + (10 * 1000));
mPlaybackControlsRow.setCurrentTime((int) mediaPlayer.getTime());
}
setFadingEnabled(true);
}

private void skipPrevious() {
public void skipPrevious() {
int presentIndex = mVideoList.indexOf(getVideoFile());
if (presentIndex < mVideoList.size() - 1)
replaceFragment(mVideoList.get(presentIndex + 1));
else
replaceFragment(mVideoList.get(0));
}

private void skipNext() {
public void skipNext() {
int presentIndex = mVideoList.indexOf(getVideoFile());
if (presentIndex > 0)
replaceFragment(mVideoList.get(presentIndex - 1));
Expand All @@ -320,11 +328,13 @@ private void addPlaybackControlsRow() {
mFastForwardAction = new PlaybackControlsRow.FastForwardAction(getActivity());
mSkipNextAction = new PlaybackControlsRow.SkipNextAction(getActivity());
mSkipPreviousAction = new PlaybackControlsRow.SkipPreviousAction(getActivity());
mPrimaryActionsAdapter.add(mSkipPreviousAction);
if(!isMetadataAvailable())
mPrimaryActionsAdapter.add(mSkipPreviousAction);
mPrimaryActionsAdapter.add(mRewindAction);
mPrimaryActionsAdapter.add(mPlayPauseAction);
mPrimaryActionsAdapter.add(mFastForwardAction);
mPrimaryActionsAdapter.add(mSkipNextAction);
if(!isMetadataAvailable())
mPrimaryActionsAdapter.add(mSkipNextAction);
playbackStateChanged();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;

public class MainTVPresenter extends Presenter {

Expand Down Expand Up @@ -152,7 +153,7 @@ private void setUpMetaDimensions(ViewHolder viewHolder) {

private void setDate(ServerFile serverFile, ViewHolder viewHolder) {
Date d = serverFile.getModificationTime();
SimpleDateFormat dt = new SimpleDateFormat("EEE LLL dd yyyy");
SimpleDateFormat dt = new SimpleDateFormat("EEE LLL dd yyyy", Locale.US);
viewHolder.mCardView.setContentText(dt.format(d));
}

Expand Down Expand Up @@ -185,7 +186,6 @@ private void setUpDrawable(ServerFile serverFile, ViewHolder viewHolder) {
public void onFileMetadataRetrieved(FileMetadataRetrievedEvent event) {
ServerFile serverFile = event.getFile();
ViewHolder viewHolder = event.getViewHolder();
viewHolder.mCardView.setTitleText("");
serverFile.setMetaDataFetched(true);
if (event.getFileMetadata() == null) {
populateData(serverFile, viewHolder);
Expand Down

0 comments on commit 4848139

Please sign in to comment.