From 296cb5f449352c646e089c3c16b2b6174c34144b Mon Sep 17 00:00:00 2001 From: NudeDude Date: Sat, 1 Jun 2019 15:13:19 +0200 Subject: [PATCH] bug fix --- .../nuclearfog/twidda/window/MediaViewer.java | 16 +++-- .../nuclearfog/twidda/window/TweetPopup.java | 61 +++++++++---------- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/org/nuclearfog/twidda/window/MediaViewer.java b/app/src/main/java/org/nuclearfog/twidda/window/MediaViewer.java index 14023801..7abea262 100644 --- a/app/src/main/java/org/nuclearfog/twidda/window/MediaViewer.java +++ b/app/src/main/java/org/nuclearfog/twidda/window/MediaViewer.java @@ -96,29 +96,33 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen case ANGIF: videoController.hide(); videoWindow.setVisibility(VISIBLE); - videoView.setVideoPath(link[0]); videoView.setOnPreparedListener(this); + Uri video = Uri.parse(link[0]); + videoView.setVideoURI(video); break; case ANGIF_STORAGE: videoController.hide(); videoWindow.setVisibility(VISIBLE); - videoView.setVideoPath(link[0]); videoView.setOnPreparedListener(this); + File media = new File(link[0]); + video = Uri.fromFile(media); + videoView.setVideoURI(video); break; case VIDEO: videoController.setAnchorView(videoView); videoView.setMediaController(videoController); - videoWindow.setVisibility(VISIBLE); - videoView.setVideoURI(Uri.parse(link[0])); + video = Uri.parse(link[0]); + videoView.setVideoURI(video); break; case VIDEO_STORAGE: videoController.setAnchorView(videoView); videoView.setMediaController(videoController); - videoWindow.setVisibility(VISIBLE); - videoView.setVideoPath(link[0]); + media = new File(link[0]); + video = Uri.fromFile(media); + videoView.setVideoURI(video); break; } } diff --git a/app/src/main/java/org/nuclearfog/twidda/window/TweetPopup.java b/app/src/main/java/org/nuclearfog/twidda/window/TweetPopup.java index 8dcc47e0..18c04cbb 100644 --- a/app/src/main/java/org/nuclearfog/twidda/window/TweetPopup.java +++ b/app/src/main/java/org/nuclearfog/twidda/window/TweetPopup.java @@ -51,41 +51,28 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener { GIF, NONE } - private static final String[] READ_STORAGE = {READ_EXTERNAL_STORAGE}; private static final String[] GET_MEDIA = {MediaStore.Images.Media.DATA}; private static final String TYPE_IMAGE = "image/jpeg image/jpg image/png "; private static final String TYPE_VIDEO = "video/mp4 video/3gp video/gif "; private static final int PICK_MEDIA = 3; private static final int CHECK_PERM = 4; + private static final int MAX_IMAGES = 4; private StatusUploader uploaderAsync; private View imageButton, previewBtn; private List mediaPath; private TextView imgCount; private EditText tweet; - private String addition = ""; - private long inReplyId = 0; - private int imgIndex = 0; + private String addition; + private long inReplyId; private Mode mode = Mode.NONE; - @Override protected void onCreate(Bundle b) { super.onCreate(b); setContentView(R.layout.popup_tweet); - - Bundle param = getIntent().getExtras(); - if (param != null) { - if (param.containsKey(KEY_TWEETPOPUP_REPLYID)) - inReplyId = param.getLong(KEY_TWEETPOPUP_REPLYID); - if (param.containsKey(KEY_TWEETPOPUP_ADDITION)) - addition = param.getString(KEY_TWEETPOPUP_ADDITION) + " "; - } - - mediaPath = new LinkedList<>(); - View tweetButton = findViewById(R.id.sendTweet); View closeButton = findViewById(R.id.close); View root = findViewById(R.id.tweet_popup); @@ -94,6 +81,13 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener { tweet = findViewById(R.id.tweet_input); imgCount = findViewById(R.id.imgcount); + Bundle param = getIntent().getExtras(); + if (param != null) { + inReplyId = param.getLong(KEY_TWEETPOPUP_REPLYID, -1L); + addition = param.getString(KEY_TWEETPOPUP_ADDITION, "") + " "; + } + + mediaPath = new LinkedList<>(); GlobalSettings settings = GlobalSettings.getInstance(this); root.setBackgroundColor(settings.getPopupColor()); tweet.append(addition); @@ -132,32 +126,37 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener { switch (ext) { case ".jpg": case ".png": - mode = Mode.IMAGE; - if (imgIndex == 0) { + if (mode == Mode.NONE) + mode = Mode.IMAGE; + if (mediaPath.size() < MAX_IMAGES && mode == Mode.IMAGE) { mediaPath.add(path); previewBtn.setVisibility(VISIBLE); - } else if (imgIndex < 4) { - mediaPath.add(path); - String count = Integer.toString(imgIndex); + String count = Integer.toString(mediaPath.size()); imgCount.setText(count); - if (++imgIndex == 4) + if (mediaPath.size() == MAX_IMAGES) imageButton.setVisibility(INVISIBLE); } break; case ".gif": - mode = Mode.GIF; - mediaPath.add(path); - previewBtn.setVisibility(VISIBLE); - imageButton.setVisibility(INVISIBLE); + if (mode == Mode.NONE) + mode = Mode.GIF; + if (mode == Mode.GIF) { + mediaPath.add(path); + previewBtn.setVisibility(VISIBLE); + imageButton.setVisibility(INVISIBLE); + } break; case ".mp4": case ".3gp": - mode = Mode.VIDEO; - mediaPath.add(path); - previewBtn.setVisibility(VISIBLE); - imageButton.setVisibility(INVISIBLE); + if (mode == Mode.NONE) + mode = Mode.VIDEO; + if (mode == Mode.VIDEO) { + mediaPath.add(path); + previewBtn.setVisibility(VISIBLE); + imageButton.setVisibility(INVISIBLE); + } break; } cursor.close(); @@ -238,7 +237,7 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener { private void showClosingMsg() { - if (!addition.equals(tweet.getText().toString()) || imgIndex > 0) { + if (!addition.equals(tweet.getText().toString()) || !mediaPath.isEmpty()) { Builder closeDialog = new Builder(this); closeDialog.setMessage(R.string.confirm_cancel_tweet); closeDialog.setNegativeButton(R.string.no_confirm, null);