diff --git a/app/src/main/java/com/vk/medianative/MediaImageEncoder.java b/app/src/main/java/com/vk/medianative/MediaImageEncoder.java index e4c263f2f..552337ba4 100644 --- a/app/src/main/java/com/vk/medianative/MediaImageEncoder.java +++ b/app/src/main/java/com/vk/medianative/MediaImageEncoder.java @@ -24,10 +24,6 @@ public class MediaImageEncoder { return compressBitmap(bitmap, file, CompressFormat.JPEG, quality); } - private static boolean compressBitmapLossless(Bitmap bitmap, File file) { - return compressBitmap(bitmap, file, CompressFormat.PNG, 100); - } - private static boolean compressBitmapNative(Bitmap bitmap, File file, int quality) { if (MediaNative.isX86() || MediaNative.isAsus() || Build.VERSION.SDK_INT < 24) { Log.e(MediaImageEncoder.class.getSimpleName(), "JPEG turbo not supported on this device!"); @@ -37,7 +33,7 @@ public class MediaImageEncoder { byte[] jpegData = MediaNative.compressBitmapJpeg(bitmap, quality); if (jpegData == null) { - return false; + return compressBitmapJpeg(bitmap, file, quality); } try (FileOutputStream fileOutputStream = new FileOutputStream(file)) { @@ -51,43 +47,29 @@ public class MediaImageEncoder { public static boolean encodePicture(Bitmap bitmap, File file, int quality) { if (bitmap != null && !bitmap.isRecycled() && bitmap.getWidth() * bitmap.getHeight() != 0) { - switch (Preferences.getPreferences().getString("compression", "jpeg")) { - case "skip" -> { - return compressBitmapLossless(bitmap, file); - } - case "jpeg" -> { - return compressBitmapJpeg(bitmap, file, quality); - } - case "native" -> { - return compressBitmapNative(bitmap, file, quality); - } - } - } - - return false; - } - - public static boolean needToSkipCompression() { - return Preferences.getPreferences().getString("compression", "jpeg").equals("skip"); - } - - public static boolean needToCompress() { - return !needToSkipCompression(); - } - - public static boolean encodeJpeg(Bitmap bitmap, File file) { - return encodePicture(bitmap, file, 90); - } - - public static boolean encodeJpegWithoutCompression(Bitmap bitmap, File file) { - return encodePicture(bitmap, file, 95); - } - - public static boolean encodeJpeg(Bitmap bitmap, File file, int quality) { - if (bitmap != null && !bitmap.isRecycled() && bitmap.getWidth() * bitmap.getHeight() != 0) { - return needToCompress() ? compressBitmapNative(bitmap, file, quality) : compressBitmapJpeg(bitmap, file, quality); + return compressBitmapNative(bitmap, file, quality); } else { return false; } } -} + + public static boolean needToSkipCompression() { + return !Preferences.getPreferences().getBoolean("compressPhotos", true); + } + + public static boolean encodeJpeg(Bitmap bitmap, File file) { + return encodePicture(bitmap, file, Preferences.compress(90)); + } + + public static boolean encodeJpegWithoutCompression(Bitmap bitmap, File file) { + return encodePicture(bitmap, file, 100); + } + + public static boolean encodeJpeg(Bitmap bitmap, File file, int quality) { + if (bitmap != null && !bitmap.isRecycled() && bitmap.getWidth() * bitmap.getHeight() != 0) { + return compressBitmapNative(bitmap, file, quality); + } else { + return false; + } + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/hooks/other/Preferences.java b/app/src/main/java/ru/vtosters/hooks/other/Preferences.java index 0f743c448..9c08a0776 100644 --- a/app/src/main/java/ru/vtosters/hooks/other/Preferences.java +++ b/app/src/main/java/ru/vtosters/hooks/other/Preferences.java @@ -356,7 +356,6 @@ public class Preferences { } public static int compress(int origquality) { - if (MediaImageEncoder.needToSkipCompression()) return 100; - return origquality; + return MediaImageEncoder.needToSkipCompression() ? 100 : origquality; } } diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java index 221a481d8..10f19d4b8 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java @@ -464,7 +464,7 @@ public class VTSettings extends TrackedMaterialPreferenceToolbarFragment { getPreferenceScreen(), "", requireContext().getString(R.string.vtlmedia), - getValAsString(R.string.sett_compress_photos, MediaImageEncoder.needToCompress()), + getValAsString(R.string.sett_compress_photos, MediaImageEncoder.needToSkipCompression()), R.drawable.ic_media_outline_28, preference -> { NavigatorUtils.switchFragment(requireContext(), MediaFragment.class); diff --git a/smali/res/xml/preferences_media.xml b/smali/res/xml/preferences_media.xml index 9be0c62b0..6820a9462 100644 --- a/smali/res/xml/preferences_media.xml +++ b/smali/res/xml/preferences_media.xml @@ -1,18 +1,16 @@ + -