/*
* Kontalk Android client
* Copyright (C) 2017 Kontalk Devteam <devteam@kontalk.org>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU 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 General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kontalk.message;
import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import org.kontalk.util.MediaStorage;
/**
* Audio component.
* @author Andrea Cappelli
*/
public class AudioComponent extends AttachmentComponent {
static Map<String, String> MIME_TYPES = new HashMap<String, String>();
static {
MIME_TYPES.put("audio/3gpp", "3gp");
MIME_TYPES.put("audio/mpeg", "mp3");
MIME_TYPES.put("audio/mp4", "mp4");
MIME_TYPES.put("audio/wav", "wav");
MIME_TYPES.put("audio/aac", "aac");
MIME_TYPES.put("audio/flac", "flac");
}
public AudioComponent(String mime, Uri localUri, String fetchUrl, long length, boolean encrypted, int securityFlags) {
super(mime, null, localUri, fetchUrl, length, encrypted, securityFlags);
}
public static boolean supportsMimeType(String mime) {
return MIME_TYPES.containsKey(mime);
}
/** FIXME not used yet */
public boolean isValidMedia(Context context) {
Uri localUri = mContent.getLocalUri();
if (localUri != null) {
try {
return (MediaStorage.getLength(context, localUri) == mLength);
}
catch (Exception e) {
return false;
}
}
return false;
}
@Override
protected void populateFromCursor(Context context, Cursor c) {
// Nothing to do here
}
public static String buildMediaFilename(String id, String mime) {
return "audio" + id.substring(id.length() - 5) + "." + getFileExtension(mime);
}
/** Returns the file extension from the mime type. */
public static String getFileExtension(String mime) {
return MIME_TYPES.get(mime);
}
}