From 76c8a67ade32affffef1da61dd2f9454f730984e Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Thu, 3 Jan 2019 22:48:47 +0100 Subject: introduced 'original' as video and image quality and do not ignorer error --- .../java/de/pixart/messenger/persistance/FileBackend.java | 7 +++++-- .../services/AttachFileToConversationRunnable.java | 13 ++++++++----- .../de/pixart/messenger/services/XmppConnectionService.java | 8 ++++++++ src/main/res/values/arrays.xml | 4 ++++ src/main/res/values/strings.xml | 2 ++ 5 files changed, 27 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/main/java/de/pixart/messenger/persistance/FileBackend.java b/src/main/java/de/pixart/messenger/persistance/FileBackend.java index 2703f0538..705e5489b 100644 --- a/src/main/java/de/pixart/messenger/persistance/FileBackend.java +++ b/src/main/java/de/pixart/messenger/persistance/FileBackend.java @@ -294,9 +294,12 @@ public class FileBackend { } File file = new File(path); long size = file.length(); - if (size == 0 || size >= mXmppConnectionService.getCompressImageSizePreference()) { + if ((size == 0 || size >= mXmppConnectionService.getCompressImageSizePreference()) && mXmppConnectionService.getCompressImageSizePreference() != 0) { return false; } + if (mXmppConnectionService.getCompressImageResolutionPreference() == 0 && mXmppConnectionService.getCompressImageSizePreference() == 0 ) { + return true; + } BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; try { @@ -450,7 +453,7 @@ public class FileBackend { throw new FileCopyException(R.string.error_compressing_image); } os.flush(); - targetSizeReached = file.length() <= mXmppConnectionService.getCompressImageSizePreference() || quality <= 50; + targetSizeReached = (file.length() <= mXmppConnectionService.getCompressImageSizePreference() && mXmppConnectionService.getCompressImageSizePreference() != 0) || quality <= 50; quality -= 5; } scaledBitmap.recycle(); diff --git a/src/main/java/de/pixart/messenger/services/AttachFileToConversationRunnable.java b/src/main/java/de/pixart/messenger/services/AttachFileToConversationRunnable.java index 192d9221d..993de3bc6 100644 --- a/src/main/java/de/pixart/messenger/services/AttachFileToConversationRunnable.java +++ b/src/main/java/de/pixart/messenger/services/AttachFileToConversationRunnable.java @@ -49,12 +49,11 @@ public class AttachFileToConversationRunnable implements Runnable, MediaTranscod this.originalFileSize = FileBackend.getFileSize(mXmppConnectionService, uri); this.isVideoMessage = !getFileBackend().useFileAsIs(uri) && (mimeType != null && mimeType.startsWith("video/") - && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) + && (mXmppConnectionService.getCompressVideoBitratePreference() != 0 && mXmppConnectionService.getCompressVideoResolutionPreference() != 0)) && originalFileSize > autoAcceptFileSize; - } - public boolean isVideoMessage() { + boolean isVideoMessage() { return this.isVideoMessage && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2; } @@ -110,8 +109,12 @@ public class AttachFileToConversationRunnable implements Runnable, MediaTranscod mXmppConnectionService.stopForcingForegroundNotification(); throw new AssertionError(e); } catch (ExecutionException e) { - mXmppConnectionService.stopForcingForegroundNotification(); - Log.d(Config.LOGTAG, "ignoring execution exception. Should get handled by onTranscodeFiled() instead", e); + if (e.getCause() instanceof Error) { + mXmppConnectionService.stopForcingForegroundNotification(); + processAsFile(); + } else { + Log.d(Config.LOGTAG, "ignoring execution exception. Should get handled by onTranscodeFiled() instead", e); + } } } diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index f36321b04..98e330ad0 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -893,6 +893,8 @@ public class XmppConnectionService extends Service { return 1920; case "high": return 3840; + case "uncompressed": + return 0; default: return 3840; } @@ -906,6 +908,8 @@ public class XmppConnectionService extends Service { return 524288; // 0.5 * 1024 * 1024 = 524288 (0.5 MiB) case "high": return 1048576; // 1 * 1024 * 1024 = 1048576 (1 MiB) + case "uncompressed": + return 0; default: return 524288; } @@ -919,6 +923,8 @@ public class XmppConnectionService extends Service { return 360; case "high": return 720; + case "uncompressed": + return 0; default: return 360; } @@ -932,6 +938,8 @@ public class XmppConnectionService extends Service { return 500000; case "high": return 2000000; + case "uncompressed": + return 0; default: return 500000; } diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml index 93da9bac4..de2e0355c 100644 --- a/src/main/res/values/arrays.xml +++ b/src/main/res/values/arrays.xml @@ -58,24 +58,28 @@ low mid high + uncompressed @string/image_low @string/image_mid @string/image_high + @string/image_original low mid high + uncompressed @string/video_low @string/video_mid @string/video_high + @string/video_original diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 015a2a6c6..5d0160b7a 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -506,6 +506,7 @@ low (144p) middle (360p) high (720p) + Original (uncompressed) Always Battery optimizations enabled Your device is doing some heavy battery optimizations on Pix-Art Messenger that might lead to delayed notifications or even message loss.\nIt is recommended to disable those. @@ -681,6 +682,7 @@ low (720p) middle (1920p) high (3840p) + original (uncompressed) recently Send message delivery failed, resending… -- cgit v1.2.3