Thorium-android-app/app/src/main/java/net/schueller/peertube/model/Video.java

307 lines
6.8 KiB
Java

/*
* Copyright (C) 2020 Stefan Schüller <sschueller@techdroid.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package net.schueller.peertube.model;
import android.content.Context;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.media.MediaDescriptionCompat;
import com.squareup.picasso.Picasso;
import net.schueller.peertube.R;
import net.schueller.peertube.helper.APIUrlHelper;
import java.util.ArrayList;
import java.util.Date;
import androidx.annotation.DrawableRes;
public class Video {
private Integer id;
private String uuid;
private String name;
private Category category;
private Licence licence;
private Language language;
private Boolean nsfw;
private String description;
private Boolean isLocal;
private Integer duration;
private Integer views;
private Integer likes;
private Integer dislikes;
private String thumbnailPath;
private String previewPath;
private String embedPath;
private Date createdAt;
private Date updatedAt;
private Privacy privacy;
private String support;
private String descriptionPath;
private Channel channel;
private Account account;
private ArrayList tags;
private Boolean commentsEnabled;
private ArrayList<File> files;
public Video() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
public Licence getLicence() {
return licence;
}
public void setLicence(Licence licence) {
this.licence = licence;
}
public Language getLanguage() {
return language;
}
public void setLanguage(Language language) {
this.language = language;
}
public Boolean getNsfw() {
return nsfw;
}
public void setNsfw(Boolean nsfw) {
this.nsfw = nsfw;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Boolean getLocal() {
return isLocal;
}
public void setLocal(Boolean local) {
isLocal = local;
}
public Integer getDuration() {
return duration;
}
public void setDuration(Integer duration) {
this.duration = duration;
}
public Integer getViews() {
return views;
}
public void setViews(Integer views) {
this.views = views;
}
public Integer getLikes() {
return likes;
}
public void setLikes(Integer likes) {
this.likes = likes;
}
public Integer getDislikes() {
return dislikes;
}
public void setDislikes(Integer dislikes) {
this.dislikes = dislikes;
}
public String getThumbnailPath() {
return thumbnailPath;
}
public void setThumbnailPath(String thumbnailPath) {
this.thumbnailPath = thumbnailPath;
}
public String getPreviewPath() {
return previewPath;
}
public void setPreviewPath(String previewPath) {
this.previewPath = previewPath;
}
public String getEmbedPath() {
return embedPath;
}
public void setEmbedPath(String embedPath) {
this.embedPath = embedPath;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Privacy getPrivacy() {
return privacy;
}
public void setPrivacy(Privacy privacy) {
this.privacy = privacy;
}
public String getSupport() {
return support;
}
public void setSupport(String support) {
this.support = support;
}
public String getDescriptionPath() {
return descriptionPath;
}
public void setDescriptionPath(String descriptionPath) {
this.descriptionPath = descriptionPath;
}
public Channel getChannel() {
return channel;
}
public void setChannel(Channel channel) {
this.channel = channel;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
public ArrayList getTags() {
return tags;
}
public void setTags(ArrayList tags) {
this.tags = tags;
}
public Boolean getCommentsEnabled() {
return commentsEnabled;
}
public void setCommentsEnabled(Boolean commentsEnabled) {
this.commentsEnabled = commentsEnabled;
}
public ArrayList<File> getFiles() {
return files;
}
public void setFiles(ArrayList<File> files) {
this.files = files;
}
public static MediaDescriptionCompat getMediaDescription(Context context, Video video) {
// String apiBaseURL = APIUrlHelper.getUrlWithVersion(context);
// Bundle extras = new Bundle();
// Bitmap bitmap = getBitmap(context, Uri.parse(apiBaseURL + video.thumbnailPath));
// extras.putParcelable(MediaDescriptionCompat.DESCRIPTION_KEY_MEDIA_URI, bitmap);
return new MediaDescriptionCompat.Builder()
.setMediaId(video.getUuid())
// .setIconBitmap(bitmap)
// .setExtras(extras)
.setTitle(video.getName())
.setDescription(video.getDescription())
.build();
}
// TODO: add support for the thumbnail
// public static Bitmap getBitmap(Context context, Uri fullThumbnailUrl) {
//
// return Picasso.with(context).load(fullThumbnailUrl)
// .placeholder(R.drawable.ic_peertube)
// .error(R.drawable.ic_peertube).get();
// }
}