package de.danoeh.antennapod.core.feed;
import android.database.Cursor;
import android.net.Uri;
import java.io.File;
import de.danoeh.antennapod.core.asynctask.ImageResource;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
public class FeedImage extends FeedFile implements ImageResource {
public static final int FEEDFILETYPE_FEEDIMAGE = 1;
protected String title;
protected FeedComponent owner;
public FeedImage(FeedComponent owner, String download_url, String title) {
super(null, download_url, false);
this.download_url = download_url;
this.title = title;
this.owner = owner;
}
public FeedImage(long id, String title, String file_url,
String download_url, boolean downloaded) {
super(file_url, download_url, downloaded);
this.id = id;
this.title = title;
}
public FeedImage() {
super();
}
public static FeedImage fromCursor(Cursor cursor) {
int indexId = cursor.getColumnIndex(PodDBAdapter.KEY_ID);
int indexTitle = cursor.getColumnIndex(PodDBAdapter.KEY_TITLE);
int indexFileUrl = cursor.getColumnIndex(PodDBAdapter.KEY_FILE_URL);
int indexDownloadUrl = cursor.getColumnIndex(PodDBAdapter.KEY_DOWNLOAD_URL);
int indexDownloaded = cursor.getColumnIndex(PodDBAdapter.KEY_DOWNLOADED);
return new FeedImage(
cursor.getLong(indexId),
cursor.getString(indexTitle),
cursor.getString(indexFileUrl),
cursor.getString(indexDownloadUrl),
cursor.getInt(indexDownloaded) > 0
);
}
@Override
public String getHumanReadableIdentifier() {
if (owner != null && owner.getHumanReadableIdentifier() != null) {
return owner.getHumanReadableIdentifier();
} else {
return download_url;
}
}
@Override
public int getTypeAsInt() {
return FEEDFILETYPE_FEEDIMAGE;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public FeedComponent getOwner() {
return owner;
}
public void setOwner(FeedComponent owner) {
this.owner = owner;
}
@Override
public Uri getImageUri() {
if (file_url != null && downloaded) {
return Uri.fromFile(new File(file_url));
} else if(download_url != null) {
return Uri.parse(download_url);
} else {
return null;
}
}
}