@ -17,8 +17,11 @@
* /
* /
package org.floens.chan.ui.view ;
package org.floens.chan.ui.view ;
import android.content.ActivityNotFoundException ;
import android.content.Context ;
import android.content.Context ;
import android.content.Intent ;
import android.media.MediaPlayer ;
import android.media.MediaPlayer ;
import android.net.Uri ;
import android.util.AttributeSet ;
import android.util.AttributeSet ;
import android.view.Gravity ;
import android.view.Gravity ;
import android.view.View ;
import android.view.View ;
@ -34,6 +37,7 @@ import com.koushikdutta.async.future.Future;
import org.floens.chan.ChanApplication ;
import org.floens.chan.ChanApplication ;
import org.floens.chan.R ;
import org.floens.chan.R ;
import org.floens.chan.core.ChanPreferences ;
import org.floens.chan.utils.FileCache ;
import org.floens.chan.utils.FileCache ;
import org.floens.chan.utils.Logger ;
import org.floens.chan.utils.Logger ;
import org.floens.chan.utils.Utils ;
import org.floens.chan.utils.Utils ;
@ -224,29 +228,48 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener
}
}
@Override
@Override
public void onSuccess ( File file ) {
public void onSuccess ( final File file ) {
videoView = new VideoView ( getContext ( ) ) ;
if ( ChanPreferences . getVideoExternal ( ) ) {
videoView . setZOrderOnTop ( true ) ;
Intent intent = new Intent ( Intent . ACTION_VIEW ) ;
videoView . setLayoutParams ( new LayoutParams ( LayoutParams . MATCH_PARENT ,
intent . setDataAndType ( Uri . fromFile ( file ) , "video/*" ) ;
LayoutParams . MATCH_PARENT ) ) ;
videoView . setLayoutParams ( Utils . MATCH_PARAMS ) ;
try {
LayoutParams par = new LayoutParams ( LayoutParams . MATCH_PARENT , LayoutParams . MATCH_PARENT ) ;
getContext ( ) . startActivity ( intent ) ;
par . gravity = Gravity . CENTER ;
} catch ( ActivityNotFoundException e ) {
videoView . setLayoutParams ( par ) ;
Toast . makeText ( getContext ( ) , R . string . open_link_failed , Toast . LENGTH_SHORT ) . show ( ) ;
videoView . setOnPreparedListener ( new MediaPlayer . OnPreparedListener ( ) {
@Override
public void onPrepared ( MediaPlayer mp ) {
mp . setLooping ( true ) ;
callback . onVideoLoaded ( ) ;
}
}
} ) ;
} else {
videoView = new VideoView ( getContext ( ) ) ;
videoView . setVideoPath ( file . getAbsolutePath ( ) ) ;
videoView . setZOrderOnTop ( true ) ;
videoView . setLayoutParams ( new LayoutParams ( LayoutParams . MATCH_PARENT ,
setView ( videoView , false ) ;
LayoutParams . MATCH_PARENT ) ) ;
videoView . setLayoutParams ( Utils . MATCH_PARAMS ) ;
videoView . start ( ) ;
LayoutParams par = new LayoutParams ( LayoutParams . MATCH_PARENT , LayoutParams . MATCH_PARENT ) ;
par . gravity = Gravity . CENTER ;
videoView . setLayoutParams ( par ) ;
videoView . setOnPreparedListener ( new MediaPlayer . OnPreparedListener ( ) {
@Override
public void onPrepared ( MediaPlayer mp ) {
mp . setLooping ( true ) ;
callback . onVideoLoaded ( ) ;
}
} ) ;
videoView . setOnErrorListener ( new MediaPlayer . OnErrorListener ( ) {
@Override
public boolean onError ( MediaPlayer mp , int what , int extra ) {
callback . onVideoError ( file ) ;
return true ;
}
} ) ;
videoView . setVideoPath ( file . getAbsolutePath ( ) ) ;
setView ( videoView , false ) ;
videoView . start ( ) ;
}
}
}
@Override
@Override
@ -298,5 +321,7 @@ public class ThumbnailImageView extends LoadView implements View.OnClickListener
public void setLinearProgress ( long current , long total , boolean done ) ;
public void setLinearProgress ( long current , long total , boolean done ) ;
public void onVideoLoaded ( ) ;
public void onVideoLoaded ( ) ;
public void onVideoError ( File video ) ;
}
}
}
}