mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-24 01:21:09 +00:00
committed by
Moxie Marlinspike
parent
b7badec752
commit
0b62cf372b
@@ -41,12 +41,12 @@ public class AudioSlide extends Slide {
|
||||
public AudioSlide(Context context, Uri uri) throws IOException, MediaTooLargeException {
|
||||
super(context, constructPartFromUri(context, uri));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean hasImage() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean hasAudio() {
|
||||
return true;
|
||||
@@ -69,15 +69,15 @@ public class AudioSlide extends Slide {
|
||||
|
||||
public static PduPart constructPartFromUri(Context context, Uri uri) throws IOException, MediaTooLargeException {
|
||||
PduPart part = new PduPart();
|
||||
|
||||
|
||||
if (getMediaSize(context, uri) > MAX_MESSAGE_SIZE)
|
||||
throw new MediaTooLargeException("Audio track larger than size maximum.");
|
||||
|
||||
|
||||
Cursor cursor = null;
|
||||
|
||||
|
||||
try {
|
||||
cursor = context.getContentResolver().query(uri, new String[]{Audio.Media.MIME_TYPE}, null, null, null);
|
||||
|
||||
|
||||
if (cursor != null && cursor.moveToFirst())
|
||||
part.setContentType(cursor.getString(0).getBytes());
|
||||
else
|
||||
@@ -90,7 +90,7 @@ public class AudioSlide extends Slide {
|
||||
part.setDataUri(uri);
|
||||
part.setContentId((System.currentTimeMillis()+"").getBytes());
|
||||
part.setName(("Audio" + System.currentTimeMillis()).getBytes());
|
||||
|
||||
|
||||
return part;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public class SlideDeck {
|
||||
public void clear() {
|
||||
slides.clear();
|
||||
}
|
||||
|
||||
|
||||
public PduBody toPduBody() {
|
||||
PduBody body = new PduBody();
|
||||
|
||||
@@ -87,7 +87,7 @@ public class SlideDeck {
|
||||
public void addSlide(Slide slide) {
|
||||
slides.add(slide);
|
||||
}
|
||||
|
||||
|
||||
public List<Slide> getSlides() {
|
||||
return slides;
|
||||
}
|
||||
@@ -101,5 +101,5 @@ public class SlideDeck {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ import ws.com.google.android.mms.pdu.CharacterSets;
|
||||
import ws.com.google.android.mms.pdu.PduPart;
|
||||
|
||||
public class TextSlide extends Slide {
|
||||
|
||||
|
||||
private static final int MAX_CACHE_SIZE = 10;
|
||||
private static final Map<Uri, SoftReference<String>> textCache =
|
||||
Collections.synchronizedMap(new LRUCache<Uri, SoftReference<String>>(MAX_CACHE_SIZE));
|
||||
@@ -54,7 +54,7 @@ public class TextSlide extends Slide {
|
||||
public boolean hasText() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getText() {
|
||||
try {
|
||||
@@ -69,9 +69,9 @@ public class TextSlide extends Slide {
|
||||
}
|
||||
|
||||
|
||||
String text = new String(getPartData(), CharacterSets.getMimeName(part.getCharset()));
|
||||
String text = new String(getPartData(), CharacterSets.getMimeName(part.getCharset()));
|
||||
textCache.put(part.getDataUri(), new SoftReference<String>(text));
|
||||
|
||||
|
||||
return text;
|
||||
} catch (UnsupportedEncodingException uee) {
|
||||
Log.w("TextSlide", uee);
|
||||
|
||||
@@ -79,7 +79,7 @@ public class VideoSlide extends Slide {
|
||||
PduPart part = new PduPart();
|
||||
ContentResolver resolver = context.getContentResolver();
|
||||
Cursor cursor = null;
|
||||
|
||||
|
||||
try {
|
||||
cursor = resolver.query(uri, new String[] {MediaStore.Video.Media.MIME_TYPE}, null, null, null);
|
||||
if (cursor != null && cursor.moveToFirst()) {
|
||||
@@ -90,14 +90,14 @@ public class VideoSlide extends Slide {
|
||||
if (cursor != null)
|
||||
cursor.close();
|
||||
}
|
||||
|
||||
|
||||
if (getMediaSize(context, uri) > MAX_MESSAGE_SIZE)
|
||||
throw new MediaTooLargeException("Video exceeds maximum message size.");
|
||||
|
||||
|
||||
part.setDataUri(uri);
|
||||
part.setContentId((System.currentTimeMillis()+"").getBytes());
|
||||
part.setName(("Video" + System.currentTimeMillis()).getBytes());
|
||||
|
||||
|
||||
return part;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user