Skip to content

Commit

Permalink
Tried injecting the serverClient in the tv audio player (#244)
Browse files Browse the repository at this point in the history
Added background updates for the Tv Audio player

Added other rows in the Android TV

Implemented play/pause fo ATV audio player

Added the progress bar in the Atv music player.

Added seek bar in the video fragment.

Added functionality to the bottom row.

Fixed the audio player bug.

Improved the header.

Implemented the rewind, fast-forwar, skip-next and skip-previous buttons in the music player.

Plays next song once the current song ends.

Added some improvements to the Audio and video player of ATV.

Updated meta_data for audio player.
  • Loading branch information
octacode authored and cpg committed Jul 14, 2017
1 parent a8ab614 commit 728e2f6
Show file tree
Hide file tree
Showing 15 changed files with 636 additions and 43 deletions.
5 changes: 4 additions & 1 deletion src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,10 @@
<activity android:name=".tv.activity.TVWebViewActivity"
android:theme="@style/Theme.Design.NoActionBar"/>

<activity android:name=".tv.activity.TvPlaybackOverlayActivity"
<activity android:name=".tv.activity.TvPlaybackVideoActivity"
android:theme="@style/Theme.Leanback"/>

<activity android:name=".tv.activity.TvPlaybackAudioActivity"
android:theme="@style/Theme.Leanback"/>
</application>

Expand Down
13 changes: 8 additions & 5 deletions src/main/java/org/amahi/anywhere/AmahiModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@
import org.amahi.anywhere.service.AudioService;
import org.amahi.anywhere.service.VideoService;
import org.amahi.anywhere.tv.activity.TVWebViewActivity;
import org.amahi.anywhere.tv.activity.TvPlaybackOverlayActivity;
import org.amahi.anywhere.tv.activity.TvPlaybackAudioActivity;
import org.amahi.anywhere.tv.activity.TvPlaybackVideoActivity;
import org.amahi.anywhere.tv.fragment.MainTVFragment;
import org.amahi.anywhere.tv.fragment.ServerFileTvFragment;
import org.amahi.anywhere.tv.fragment.ServerSelectFragment;
import org.amahi.anywhere.tv.fragment.TvPlaybackOverlayFragment;
import org.amahi.anywhere.tv.fragment.TvPlaybackAudioFragment;
import org.amahi.anywhere.tv.fragment.TvPlaybackVideoFragment;

import javax.inject.Singleton;

Expand Down Expand Up @@ -83,8 +84,10 @@
MainTVFragment.class,
TVWebViewActivity.class,
ServerFileTvFragment.class,
TvPlaybackOverlayFragment.class,
TvPlaybackOverlayActivity.class
TvPlaybackVideoFragment.class,
TvPlaybackVideoActivity.class,
TvPlaybackAudioActivity.class,
TvPlaybackAudioFragment.class
}
)
class AmahiModule {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import android.graphics.Bitmap;

import org.amahi.anywhere.server.model.ServerFile;
import org.amahi.anywhere.tv.presenter.MainTVPresenter;

public class AudioMetadataRetrievedEvent implements BusEvent {
Expand All @@ -29,13 +30,15 @@ public class AudioMetadataRetrievedEvent implements BusEvent {
private final String audioAlbum;
private final Bitmap audioAlbumArt;
private final MainTVPresenter.ViewHolder viewHolder;
private final ServerFile serverFile;

public AudioMetadataRetrievedEvent(String audioTitle, String audioArtist, String audioAlbum, Bitmap audioAlbumArt, MainTVPresenter.ViewHolder viewHolder) {
public AudioMetadataRetrievedEvent(String audioTitle, String audioArtist, String audioAlbum, Bitmap audioAlbumArt, MainTVPresenter.ViewHolder viewHolder, ServerFile serverFile) {
this.audioTitle = audioTitle;
this.audioArtist = audioArtist;
this.audioAlbum = audioAlbum;
this.audioAlbumArt = audioAlbumArt;
this.viewHolder = viewHolder;
this.serverFile = serverFile;
}

public String getAudioTitle() {
Expand All @@ -57,4 +60,8 @@ public Bitmap getAudioAlbumArt() {
public MainTVPresenter.ViewHolder getViewHolder() {
return viewHolder;
}

public ServerFile getServerFile() {
return serverFile;
}
}
2 changes: 1 addition & 1 deletion src/main/java/org/amahi/anywhere/service/AudioService.java
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ public void onPrepared(MediaPlayer audioPlayer) {
}

private void setUpAudioMetadata() {
AudioMetadataRetrievingTask.execute(getAudioUri());
AudioMetadataRetrievingTask.execute(getAudioUri(), audioFile);
}

@Subscribe
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.amahi.anywhere.bus.AudioMetadataRetrievedEvent;
import org.amahi.anywhere.bus.BusEvent;
import org.amahi.anywhere.bus.BusProvider;
import org.amahi.anywhere.server.model.ServerFile;
import org.amahi.anywhere.tv.presenter.MainTVPresenter;

import java.util.HashMap;
Expand All @@ -39,23 +40,26 @@
public class AudioMetadataRetrievingTask extends AsyncTask<Void, Void, BusEvent> {
private final Uri audioUri;
private final MainTVPresenter.ViewHolder viewHolder;
private final ServerFile serverFile;

private AudioMetadataRetrievingTask(Uri audioUri) {
private AudioMetadataRetrievingTask(Uri audioUri, ServerFile serverFile) {
this.audioUri = audioUri;
this.viewHolder = null;
this.serverFile = serverFile;
}

private AudioMetadataRetrievingTask(Uri audioUri, MainTVPresenter.ViewHolder viewHolder) {
private AudioMetadataRetrievingTask(Uri audioUri, ServerFile serverFile, MainTVPresenter.ViewHolder viewHolder) {
this.audioUri = audioUri;
this.viewHolder = viewHolder;
this.serverFile = serverFile;
}

public static void execute(Uri audioUri) {
new AudioMetadataRetrievingTask(audioUri).execute();
public static void execute(Uri audioUri, ServerFile serverFile) {
new AudioMetadataRetrievingTask(audioUri, serverFile).execute();
}

public static void execute(Uri audioUri, MainTVPresenter.ViewHolder viewHolder) {
new AudioMetadataRetrievingTask(audioUri, viewHolder).execute();
public static void execute(Uri audioUri, ServerFile serverFile, MainTVPresenter.ViewHolder viewHolder) {
new AudioMetadataRetrievingTask(audioUri, serverFile, viewHolder).execute();
}

@Override
Expand All @@ -70,9 +74,9 @@ protected BusEvent doInBackground(Void... parameters) {
String audioAlbum = audioMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
Bitmap audioAlbumArt = extractAlbumArt(audioMetadataRetriever);

return new AudioMetadataRetrievedEvent(audioTitle, audioArtist, audioAlbum, audioAlbumArt, viewHolder);
return new AudioMetadataRetrievedEvent(audioTitle, audioArtist, audioAlbum, audioAlbumArt, viewHolder, serverFile);
} catch (RuntimeException e) {
return new AudioMetadataRetrievedEvent(null, null, null, null, viewHolder);
return new AudioMetadataRetrievedEvent(null, null, null, null, viewHolder, serverFile);
} finally {
audioMetadataRetriever.release();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package org.amahi.anywhere.tv.activity;

import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;

import org.amahi.anywhere.AmahiApplication;
import org.amahi.anywhere.R;
import org.amahi.anywhere.server.client.ServerClient;
import org.amahi.anywhere.server.model.ServerFile;
import org.amahi.anywhere.server.model.ServerShare;
import org.amahi.anywhere.tv.fragment.TvPlaybackAudioFragment;
import org.amahi.anywhere.util.Intents;

import java.util.ArrayList;

import javax.inject.Inject;

public class TvPlaybackAudioActivity extends Activity {

@Inject
ServerClient serverClient;

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

private void setUpInjections() {
AmahiApplication.from(this).inject(this);
}

private Fragment buildAudioFragment(){
Fragment fragment = new TvPlaybackAudioFragment();
Bundle bundle = new Bundle();
bundle.putParcelable(Intents.Extras.SERVER_SHARE,getShare());
bundle.putParcelable(Intents.Extras.SERVER_FILE,getFile());
bundle.putParcelableArrayList(Intents.Extras.SERVER_FILES,getFiles());
fragment.setArguments(bundle);
return fragment;
}

private ServerShare getShare(){
return getIntent().getParcelableExtra(Intents.Extras.SERVER_SHARE);
}

private ServerFile getFile(){
return getIntent().getParcelableExtra(Intents.Extras.SERVER_FILE);
}

private ArrayList<ServerFile> getFiles(){
return getIntent().getParcelableArrayListExtra(Intents.Extras.SERVER_FILES);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@

import javax.inject.Inject;

public class TvPlaybackOverlayActivity extends Activity {
public class TvPlaybackVideoActivity extends Activity {

private VideoView mVideoView;

Expand Down
Loading

0 comments on commit 728e2f6

Please sign in to comment.