Enabled webm

Fixed it so that webm works.
The videoplayer crashed my old xperia, so a setting to disable videos would be nice.
captchafix
Florens Douwes 11 years ago
parent 197edd1d61
commit d7634b690a
  1. 4
      Chan/src/com/android/volley/NetworkDispatcher.java
  2. 4
      Chan/src/org/floens/chan/core/net/ByteArrayRequest.java
  3. 29
      Chan/src/org/floens/chan/core/net/CachingRequest.java
  4. 24
      Chan/src/org/floens/chan/ui/fragment/ImageViewFragment.java

@ -16,13 +16,13 @@
package com.android.volley;
import java.util.concurrent.BlockingQueue;
import android.annotation.TargetApi;
import android.net.TrafficStats;
import android.os.Build;
import android.os.Process;
import java.util.concurrent.BlockingQueue;
/**
* Provides a thread for performing network dispatch from a queue of requests.
*

@ -6,6 +6,10 @@ import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
/**
* Request a plain byte[]
* Warning: no caching!
*/
public class ByteArrayRequest extends Request<byte[]> {
protected final Listener<byte[]> listener;

@ -0,0 +1,29 @@
package org.floens.chan.core.net;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.toolbox.HttpHeaderParser;
public class CachingRequest extends Request<Void> {
protected final Listener<Void> listener;
public CachingRequest(String url, Listener<Void> listener, ErrorListener errorListener) {
super(Method.GET, url, errorListener);
this.listener = listener;
setShouldCache(true);
}
@Override
protected Response<Void> parseNetworkResponse(NetworkResponse response) {
return Response.success(null, HttpHeaderParser.parseCacheHeaders(response));
}
@Override
protected void deliverResponse(Void response) {
listener.onResponse(response);
}
}

@ -6,7 +6,7 @@ import java.io.IOException;
import org.floens.chan.ChanApplication;
import org.floens.chan.R;
import org.floens.chan.core.model.Post;
import org.floens.chan.core.net.ByteArrayRequest;
import org.floens.chan.core.net.CachingRequest;
import org.floens.chan.core.net.GIFRequest;
import org.floens.chan.ui.activity.ImageViewActivity;
import org.floens.chan.ui.view.GIFView;
@ -42,7 +42,7 @@ public class ImageViewFragment extends Fragment implements View.OnLongClickListe
private ImageViewActivity activity;
private int index;
private ByteArrayRequest movieRequest;
private CachingRequest movieRequest;
public static ImageViewFragment newInstance(Post post, ImageViewActivity activity, int index) {
ImageViewFragment imageViewFragment = new ImageViewFragment();
@ -105,9 +105,9 @@ public class ImageViewFragment extends Fragment implements View.OnLongClickListe
}
private void loadMovie() {
movieRequest = new ByteArrayRequest(post.imageUrl, new Response.Listener<byte[]>() {
movieRequest = new CachingRequest(post.imageUrl, new Response.Listener<Void>() {
@Override
public void onResponse(byte[] array) {
public void onResponse(Void empty) {
if (movieRequest != null) {
try {
handleMovieResponse(movieRequest);
@ -134,27 +134,27 @@ public class ImageViewFragment extends Fragment implements View.OnLongClickListe
showProgressBar(true);
}
private void handleMovieResponse(ByteArrayRequest request) throws IOException {
private void handleMovieResponse(CachingRequest request) throws IOException {
DiskBasedCache cache = (DiskBasedCache) ChanApplication.getVolleyRequestQueue().getCache();
File file = cache.getFileForKey(movieRequest.getCacheKey());
Logger.test(file.getAbsolutePath());
Logger.test(movieRequest.getCacheKey());
// Logger.test(movieRequest.getCacheEntry().toString());
if (file.exists()) {
Logger.test("Showing video from " + file.getAbsolutePath());
final VideoView view = new VideoView(context);
view.setZOrderOnTop(true);
view.setOnLongClickListener(this);
view.setOnClickListener(this);
wrapper.addView(view, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
view.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
view.start();
wrapper.addView(view, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
}
});

Loading…
Cancel
Save