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);
}
}
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);
}
}
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));
}
}
}
}
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);
}
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;
}
Aggregations