package com.ved.musicmapapp.fragments;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.View;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.ErrorReason;
import com.google.android.youtube.player.YouTubePlayer.OnFullscreenListener;
import com.google.android.youtube.player.YouTubePlayer.PlayerStateChangeListener;
import com.google.android.youtube.player.YouTubePlayerFragment;
import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerSupportFragment;
import com.ved.musicmapapp.R;
import com.ved.musicmapapp.utils.DeveloperKey;
import com.ved.musicmapapp.youtube.Video;
public class VideoFragment extends YouTubePlayerSupportFragment implements OnInitializedListener {
private YouTubePlayer player;
private String videoId;
Fragment fragment;
// public VideoFragment newVideoInstance(){
// return new VideoFragment();
// }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initialize(DeveloperKey.DEVELOPER_KEY, this);
}
public VideoFragment(Fragment fragment) {
super();
this.fragment = fragment;
}
@Override
public void onDestroy() {
if (player != null) {
player.release();
}
super.onDestroy();
}
public void setVideoId(String videoId) {
if (videoId != null && !videoId.equals(this.videoId)) {
this.videoId = videoId;
if (player != null) {
player.loadVideo(videoId);
// this.player.setPlayerStateChangeListener(playerStateChangeListener);
player.play();
}
}
}
public void pause() {
if (player != null) {
player.pause();
}
}
public void setPlayerFullScreen(boolean bool){
player.setFullscreen(bool);
}
@Override
public void onInitializationSuccess(Provider provider, YouTubePlayer play, boolean restored) {
this.player = play;
player.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_CONTROL_SYSTEM_UI);
player.setOnFullscreenListener((OnFullscreenListener) fragment);
this.player.setPlayerStateChangeListener(playerStateChangeListener);
if (!restored && videoId != null) {
player.loadVideo(videoId);
player.play();
}
}
@Override
public void onInitializationFailure(Provider provider, YouTubeInitializationResult result) {
this.player = null;
}
private PlayerStateChangeListener playerStateChangeListener = new PlayerStateChangeListener() {
@Override
public void onAdStarted() {
Log.i("check","///onVideo AddStarted");
}
@Override
public void onLoaded(final String id) {
Log.i("check","///onVideo Loaded");
player.play();
}
@Override
public void onLoading() {
Log.i("check","///onVideo Loading");
}
@Override
public void onVideoEnded() {
Log.i("check","///onVideo Ended");
if(fragment.getClass().equals(ArtistFragment.class))
((ArtistFragment)fragment).loadNextSong();
else if(fragment.getClass().equals(PlaylistTracksFragment.class))
((PlaylistTracksFragment)fragment).loadNextSong();
}
@SuppressLint("NewApi")
@Override
public void onVideoStarted() {
Log.i("check","///onVideo Started");
}
@Override
public void onError(ErrorReason arg0) {
Log.i("check","///onVideo Error");
if(fragment.getClass().equals(ArtistFragment.class))
((ArtistFragment)fragment).loadNextSong();
else if(fragment.getClass().equals(PlaylistTracksFragment.class))
((PlaylistTracksFragment)fragment).loadNextSong();
}
};
}