Search in sources :

Example 36 with Video

use of com.zype.android.Db.Entity.Video in project zype-android by zype.

the class PlayerViewModel method onVideoFormatEnabled.

// 'CustomPlayer.InfoListener' implementation
@Override
public void onVideoFormatEnabled(Format format, int trigger, long mediaTimeMs) {
    Logger.i("onVideoFormatEnabled()");
    if (getPlayerMode().getValue() == PlayerMode.VIDEO && format.codecs != null && format.codecs.equals("mp4a.40.2")) {
        Video video = repo.getVideoSync(videoId);
        video.playerVideoUrl = null;
        repo.updateVideo(video);
        updateAvailablePlayerModes();
        setPlayerMode(PlayerMode.AUDIO);
    }
}
Also used : Video(com.zype.android.Db.Entity.Video)

Example 37 with Video

use of com.zype.android.Db.Entity.Video in project zype-android by zype.

the class GalleryRowItemsAdapter method updateLockIcon.

private void updateLockIcon(ViewHolder holder) {
    if (holder.item instanceof Video) {
        Video video = (Video) holder.item;
        if (AuthHelper.isPaywalledVideo(holder.view.getContext(), video.id, playlistId)) {
            holder.imageLocked.setVisibility(View.VISIBLE);
            if (AuthHelper.isVideoUnlocked(holder.view.getContext(), video.id, playlistId)) {
                holder.imageLocked.setImageResource(R.drawable.baseline_lock_open_white_18);
                UiUtils.setImageColor(holder.imageLocked, ContextCompat.getColor(holder.view.getContext(), R.color.icon_unlocked));
            } else {
                holder.imageLocked.setImageResource(R.drawable.baseline_lock_white_18);
                UiUtils.setImageColor(holder.imageLocked, ContextCompat.getColor(holder.view.getContext(), R.color.icon_locked));
            }
        } else {
            holder.imageLocked.setVisibility(GONE);
        }
    } else {
        holder.imageLocked.setVisibility(GONE);
    }
}
Also used : Video(com.zype.android.Db.Entity.Video)

Example 38 with Video

use of com.zype.android.Db.Entity.Video in project zype-android by zype.

the class GalleryRowItemsAdapter method loadThumbnail.

private void loadThumbnail(ViewHolder holder) {
    if (holder.item instanceof Video) {
        Video video = (Video) holder.item;
        boolean thumbnailAssigned = false;
        if (usePoster && video.images != null) {
            Image posterThumbnail = VideoHelper.getPosterThumbnail(video);
            if (posterThumbnail != null) {
                thumbnailAssigned = true;
                UiUtils.loadImage(posterThumbnail.getUrl(), R.drawable.placeholder_video, holder.imageThumbnail);
            }
        }
        if (video.thumbnails != null && !thumbnailAssigned) {
            Thumbnail thumbnail = VideoHelper.getThumbnailByHeight(video, 240);
            if (thumbnail != null) {
                UiUtils.loadImage(thumbnail.getUrl(), R.drawable.placeholder_video, holder.imageThumbnail);
            } else {
                holder.imageThumbnail.setImageDrawable(ContextCompat.getDrawable(holder.view.getContext(), R.drawable.placeholder_video));
            }
        }
    } else if (holder.item instanceof Playlist) {
        Playlist playlist = (Playlist) holder.item;
        boolean thumbnailAssigned = false;
        if (usePoster && playlist.images != null) {
            Image posterThumbnail = VideoHelper.getPosterThumbnail(playlist);
            if (posterThumbnail != null) {
                thumbnailAssigned = true;
                UiUtils.loadImage(posterThumbnail.getUrl(), R.drawable.outline_video_library_white_48, holder.imageThumbnail);
            }
        }
        if (playlist.thumbnails != null && !thumbnailAssigned) {
            Type thumbnailType = new TypeToken<List<Thumbnail>>() {
            }.getType();
            List<Thumbnail> thumbnails = new Gson().fromJson(playlist.thumbnails, thumbnailType);
            Thumbnail thumbnail = VideoHelper.getThumbnailByHeight(thumbnails, 240);
            if (thumbnail != null) {
                UiUtils.loadImage(thumbnail.getUrl(), R.drawable.outline_video_library_white_48, holder.imageThumbnail);
            } else {
                holder.imageThumbnail.setImageDrawable(ContextCompat.getDrawable(holder.view.getContext(), R.drawable.outline_video_library_white_48));
            }
        }
    }
}
Also used : Playlist(com.zype.android.Db.Entity.Playlist) Type(java.lang.reflect.Type) Video(com.zype.android.Db.Entity.Video) TypeToken(com.google.gson.reflect.TypeToken) Gson(com.google.gson.Gson) ArrayList(java.util.ArrayList) List(java.util.List) Image(com.zype.android.webapi.model.video.Image) Thumbnail(com.zype.android.webapi.model.video.Thumbnail)

Example 39 with Video

use of com.zype.android.Db.Entity.Video in project zype-android by zype.

the class GalleryViewModel method loadRowVideos.

private void loadRowVideos(GalleryRow row) {
    row.pageToLoad = 1;
    Map<String, String> parameters = new HashMap<>();
    parameters.put(ZypeApi.PER_PAGE, String.valueOf(10));
    final IZypeApiListener listener = new IZypeApiListener() {

        @Override
        public void onCompleted(ZypeApiResponse response) {
            VideosResponse videosResponse = (VideosResponse) response.data;
            if (response.isSuccessful && videosResponse != null) {
                List<Video> result = new ArrayList<>();
                for (com.zype.android.zypeapi.model.VideoData item : videosResponse.videoData) {
                    Video video = repo.getVideoSync(item.id);
                    if (video != null) {
                        result.add(DbHelper.videoUpdateEntityByApi(video, item));
                    } else {
                        result.add(DbHelper.videoApiToEntity(item));
                    }
                }
                repo.insertVideos(result);
                if (videosResponse.pagination.current == 1) {
                    repo.deletePlaylistVideos(row.playlist.id);
                }
                repo.insertPlaylistVideos(result, row.playlist);
                row.videos = repo.getPlaylistVideosSync(row.playlist.id);
                if (videosResponse.pagination.current >= videosResponse.pagination.pages) {
                    row.pageToLoad = -1;
                    row.state = UPDATED;
                } else {
                    row.pageToLoad = videosResponse.pagination.next;
                    row.state = READY;
                    api.getPlaylistVideos(row.playlist.id, row.pageToLoad, parameters, this);
                    Logger.d("loadRowVideos(): page=" + videosResponse.pagination.next);
                }
                updateGalleryRows(null);
            } else {
                // TODO: Handle api response error
                if (videosResponse != null) {
                // errorMessage.setValue(videosResponse.message);
                } else {
                // errorMessage.setValue(getApplication().getString(R.string.videos_error));
                }
            }
        }
    };
    api.getPlaylistVideos(row.playlist.id, row.pageToLoad, parameters, listener);
    Logger.d("loadRowVideos(): page=" + row.pageToLoad);
}
Also used : HashMap(java.util.HashMap) IZypeApiListener(com.zype.android.zypeapi.IZypeApiListener) ArrayList(java.util.ArrayList) ZypeApiResponse(com.zype.android.zypeapi.ZypeApiResponse) Video(com.zype.android.Db.Entity.Video) VideosResponse(com.zype.android.zypeapi.model.VideosResponse)

Example 40 with Video

use of com.zype.android.Db.Entity.Video in project zype-android by zype.

the class HeroImageFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_hero_image, container, false);
    final NavigationHelper navigationHelper = NavigationHelper.getInstance(getActivity());
    ImageView imageHero = rootView.findViewById(R.id.imageHero);
    UiUtils.loadImage(getActivity(), imageUrl, imageHero);
    imageHero.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (!TextUtils.isEmpty(videoId)) {
                Video video = DataRepository.getInstance(getActivity().getApplication()).getVideoSync(videoId);
                if (video == null || video.active != 1) {
                    DialogHelper.showErrorAlert(getActivity(), getString(R.string.gallery_hero_image_error_video));
                } else {
                    navigationHelper.handleVideoClick(getActivity(), video, null, false);
                }
            } else if (!TextUtils.isEmpty(playlistId)) {
                Playlist playlist = DataRepository.getInstance(getActivity().getApplication()).getPlaylistSync(playlistId);
                if (playlist == null || playlist.active != 1) {
                    DialogHelper.showErrorAlert(getActivity(), getString(R.string.gallery_hero_image_error_playlist));
                } else {
                    navigationHelper.handlePlaylistClick(getActivity(), playlist);
                }
            }
        }
    });
    return rootView;
}
Also used : Playlist(com.zype.android.Db.Entity.Playlist) NavigationHelper(com.zype.android.ui.NavigationHelper) Video(com.zype.android.Db.Entity.Video) ImageView(android.widget.ImageView) ImageView(android.widget.ImageView) View(android.view.View)

Aggregations

Video (com.zype.android.Db.Entity.Video)49 ArrayList (java.util.ArrayList)14 PlaylistVideo (com.zype.android.Db.Entity.PlaylistVideo)9 Playlist (com.zype.android.Db.Entity.Playlist)8 Subscribe (com.squareup.otto.Subscribe)6 FavoriteVideo (com.zype.android.Db.Entity.FavoriteVideo)6 List (java.util.List)6 NavigationHelper (com.zype.android.ui.NavigationHelper)5 VideoData (com.zype.android.webapi.model.video.VideoData)5 IZypeApiListener (com.zype.android.zypeapi.IZypeApiListener)5 ZypeApiResponse (com.zype.android.zypeapi.ZypeApiResponse)5 Application (android.app.Application)3 View (android.view.View)3 DataRepository (com.zype.android.DataRepository)3 VideoResponse (com.zype.android.zypeapi.model.VideoResponse)3 VideosResponse (com.zype.android.zypeapi.model.VideosResponse)3 Intent (android.content.Intent)2 Bundle (android.os.Bundle)2 TextUtils (android.text.TextUtils)2 ImageView (android.widget.ImageView)2