307 lines
6.8 KiB
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();
|
|
// }
|
|
}
|