video bug fix

This commit is contained in:
NudeDude 2019-06-03 21:41:30 +02:00
parent ae6b377acd
commit da28fd3c2e
2 changed files with 36 additions and 17 deletions

View File

@ -1,5 +1,6 @@
package org.nuclearfog.twidda.window; package org.nuclearfog.twidda.window;
import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Point; import android.graphics.Point;
import android.media.MediaPlayer; import android.media.MediaPlayer;
@ -49,7 +50,9 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
public static final String KEY_MEDIA_LINK = "link"; public static final String KEY_MEDIA_LINK = "link";
public static final String KEY_MEDIA_TYPE = "mediatype"; public static final String KEY_MEDIA_TYPE = "mediatype";
private static final String[] REQ_WRITE_SD = {WRITE_EXTERNAL_STORAGE}; private static final String[] REQ_WRITE_SD = {WRITE_EXTERNAL_STORAGE};
private static final int REQCODE_SD = 6;
public enum MediaType { public enum MediaType {
IMAGE, IMAGE,
@ -106,25 +109,25 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
case ANGIF: case ANGIF:
videoWindow.setVisibility(VISIBLE); videoWindow.setVisibility(VISIBLE);
videoView.setOnPreparedListener(this);
Uri video = Uri.parse(link[0]); Uri video = Uri.parse(link[0]);
videoView.setOnPreparedListener(this);
videoView.setVideoURI(video); videoView.setVideoURI(video);
break; break;
case VIDEO: case VIDEO:
videoWindow.setVisibility(VISIBLE); videoWindow.setVisibility(VISIBLE);
video = Uri.parse(link[0]);
videoView.setMediaController(videoController); videoView.setMediaController(videoController);
videoView.setOnPreparedListener(this); videoView.setOnPreparedListener(this);
video = Uri.parse(link[0]);
videoView.setVideoURI(video); videoView.setVideoURI(video);
break; break;
case VIDEO_STORAGE: case VIDEO_STORAGE:
videoWindow.setVisibility(VISIBLE); videoWindow.setVisibility(VISIBLE);
videoView.setMediaController(videoController);
videoView.setOnPreparedListener(this);
File media = new File(link[0]); File media = new File(link[0]);
video = Uri.fromFile(media); video = Uri.fromFile(media);
videoView.setMediaController(videoController);
videoView.setOnPreparedListener(this);
videoView.setVideoURI(video); videoView.setVideoURI(video);
break; break;
} }
@ -134,19 +137,28 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
@Override @Override
protected void onStart() { protected void onStart() {
super.onStart(); super.onStart();
if (imageAsync == null) { switch (type) {
switch (type) { case IMAGE:
case IMAGE: if (imageAsync == null) {
imageAsync = new ImageLoader(this, ONLINE); imageAsync = new ImageLoader(this, ONLINE);
imageAsync.execute(link); imageAsync.execute(link);
break; }
case ANGIF_STORAGE: break;
case IMAGE_STORAGE:
case ANGIF_STORAGE:
case IMAGE_STORAGE:
if (imageAsync == null) {
imageAsync = new ImageLoader(this, STORAGE); imageAsync = new ImageLoader(this, STORAGE);
imageAsync.execute(link); imageAsync.execute(link);
break; }
} break;
case VIDEO:
case ANGIF:
case VIDEO_STORAGE:
videoView.start();
break;
} }
} }
@ -169,6 +181,16 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
} }
@Override
protected void onActivityResult(int reqCode, int returnCode, Intent intent) {
super.onActivityResult(reqCode, returnCode, intent);
if (reqCode == REQCODE_SD && returnCode == RESULT_OK) {
//storeImage(image); // TODO
}
}
@Override @Override
public void onImageClick(Bitmap image) { public void onImageClick(Bitmap image) {
setImage(image); setImage(image);
@ -183,7 +205,7 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
if (check == PERMISSION_GRANTED) { if (check == PERMISSION_GRANTED) {
storeImage(image); storeImage(image);
} else { } else {
requestPermissions(REQ_WRITE_SD, 1); requestPermissions(REQ_WRITE_SD, REQCODE_SD);
} }
} else { } else {
storeImage(image); storeImage(image);
@ -223,8 +245,6 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
case MEDIA_INFO_VIDEO_RENDERING_START: case MEDIA_INFO_VIDEO_RENDERING_START:
video_progress.setVisibility(INVISIBLE); video_progress.setVisibility(INVISIBLE);
if (videoView.getVisibility() == INVISIBLE)
videoView.setVisibility(VISIBLE);
return true; return true;
default: default:

View File

@ -44,8 +44,7 @@
android:id="@+id/video_view" android:id="@+id/video_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="center" android:layout_gravity="center" />
android:visibility="invisible" />
<ProgressBar <ProgressBar
android:id="@+id/video_load" android:id="@+id/video_load"