moezbhatti / qksms

The most beautiful SMS messenger for Android
https://qklabs.com/download
GNU General Public License v3.0
4.46k stars 1.06k forks source link

Images compressed to very small sizes #1551

Open otede opened 4 years ago

otede commented 4 years ago

DESCRIPTION

When sending and receiving MMS messages with images, the images are of extremely low sizes.

STEPS

  1. Disable message size limit in settings. 1a. Also tested: restart the app (force stop) and clear cache.
  2. Send and receive some images. (they are clearly of trash quality without investigation but...).
  3. Save and inspect the images.

EXPECTED

Decent images at around 150-300 KB.

OBSERVATIONS

Sent images at below 30 KB. Received images at below 40 KB. Unusable.

Device and Install Info

Brand: Motorola Model: XT1562 Product: Moto X Play Display: lineage_lux-userdebug 7.1.2 NJH47F f8afa703eb Display Width: 1080 Display Height: 1776 Display Density: 3.0 Android version: 7.1.2 Preloaded: false IsTablet: false

WebView version: 79.0.3945.93

Network operator: 26002 / T-Mobile.pl Locale: en_GB isRTL: false

Arch: armv7l Arch supported: [armeabi-v7a, armeabi] Orientation: Portrait Resources-Folder: values-v24

Internal storage: 2 GB / 10 GB External storage: 2 GB / 10 GB SDCardStatus: null Installer: com.android.vending Rooted: false Xposed: false

moezbhatti commented 4 years ago

For your outgoing images, if you save them to device and then inspect them, can you tell me the dimensions (W x H) for a few of them?

With regards to incoming messages, I'm not sure if there's anything that can be done here. As far as I can tell right now, they are downloaded and saved exactly as they are received by the service provider. No compression is being done

otede commented 4 years ago

For your outgoing images, if you save them to device and then inspect them, can you tell me the dimensions (W x H) for a few of them?

With regards to incoming messages, I'm not sure if there's anything that can be done here. As far as I can tell right now, they are downloaded and saved exactly as they are received by the service provider. No compression is being done

Negative. In Google Messages I receive messages at circa 250 KB.

Sizes of received images: 480x638 640x446 360x640

Sizes of sent images (same image, third is with a different QKSMS compression setting!): 270x480 270x480 349x481

otede commented 4 years ago

Is there a way to know when a commit is pushed into the Play store app? As of today, the issue is still there.

moezbhatti commented 4 years ago

If you subscription to Releases on this repository, you will get a notification once the update is available. It will be available on GitHub much earlier than on Google Play, so you can just install it from there

otede commented 4 years ago

Sadly, nothing has changed after the last two updates. Even though the changelog mentions the bug specifically.

moezbhatti commented 4 years ago

The Automatic setting is the only one that should force your images to be super tiny now. If you set the compression to something like 1MB, the attachments should be as large as they used to before this bug appeared

otede commented 4 years ago

Nothing has changed in this regard. Literally. Just to make sure I tested No compression, Automatic and 2000. This setting simply has no effect. Same sizes and resolutions as we talked before and no such issues in Google Messages, ever.

moezbhatti commented 4 years ago

Can you confirm what app version you're testing this on?

otede commented 4 years ago

Can you confirm what app version you're testing this on?

Always the latest version as I check for app updates daily. I've confirmed the behavior on 3.8.1 as well as the previous release on Play that was released few days prior to 3.8.1.

moezbhatti commented 4 years ago

Worth noting that if you try to re-send a previously failed message, the new compression setting will not affect it. It will only apply to newly composed messages

otede commented 4 years ago

Worth noting that if you try to re-send a previously failed message, the new compression setting will not affect it. It will only apply to newly composed messages

I understand. To be clear, I never included results from sending previously failed MMS in this thread.

moezbhatti commented 4 years ago

Thanks for confirming. I'm a bit surprised to hear that, because the compression logic is back to how it was in v3.7.4, before anyone had this issue

@otede I recall you mentioning that MMS sending was working fine back in v3.7.4, but I can't find this comment anymore. Can you confirm if this was the case? This should help me narrow down the issue.

If you don't remember, would you mind giving it a shot and let me know what happens in that version with the compression set to 1MB? Here's a link to the apk

otede commented 4 years ago

Thanks for confirming. I'm a bit surprised to hear that, because the compression logic is back to how it was in v3.7.4, before anyone had this issue

@otede I recall you mentioning that MMS sending was working fine back in v3.7.4, but I can't find this comment anymore. Can you confirm if this was the case? This should help me narrow down the issue.

If you don't remember, would you mind giving it a shot and let me know what happens in that version with the compression set to 1MB? Here's a link to the apk

I always had the issue, since I first installed QKSMS in late 2019. Can I skip the apk test or do you still need it?

moezbhatti commented 4 years ago

The APK I shared is from October, so it's possible that you only downloaded the app after the breaking changes

moezbhatti commented 4 years ago

Of course you're welcome to skip it, but it would definitely help me narrow down the issue

otede commented 4 years ago

Of course you're welcome to skip it, but it would definitely help me narrow down the issue

I will do it within the next two days or so. Thanks for keeping it on your radar.

otede commented 4 years ago

The APK I shared is from October, so it's possible that you only downloaded the app after the breaking changes

Nothing is going to come out of this I think.

  1. Clean uninstall, reinstall and compression set to 1000 KB.
  2. Big images 5+ MB sending fails consistently. 900+ KB failed as well. I was only able to send some ~30 KB images.
  3. Images received are 480x638 28.2kB or of similar filesize.

Doesn't your app generate some logs I could send you?

Please respond ASAP with any other test requests on that APK as I'd like to re-install the latest QKSMS. I'm not switching to Google Messages only because it suffers from months old bug with Google Play Services error notification. I will be leaving my positive review on Play store for QKSMS of course, as it's the best alternative I've found and looks promising.

moezbhatti commented 4 years ago

Thanks for following up. Could you give it a test at 600KB and let me know if the outgoing messages are at least sending at a decent resolution? After this, feel free to update back to the latest version

And to clarify about a previous message - when you mention that 3.8.1 doesn't improve the resolution, is this for sending AND receiving, or just receiving?

I appreciate your willingness to help out here and you leaving your positive review on the Play Store

otede commented 4 years ago

A word of clarification:

  1. I always test sending and receining, unless otherwise stated.
  2. The quality of sent images I assess by saving the image right in MY app usually. Only in the very first tests I asked the recipient to confirm the sizes on his phone.

The 600 KB test on the 3.7.4 APK: Nothing has changed with regard to sent/received sizes. Still sub-30 KB at the damned 480x638 resolution or similar.

What's different about 3.7.4:

  1. Sending bigger images (between 5 and 1 MB were tested) fails immediately. In 3.8.x it rarely failed at all, and if failed it took some time.
  2. Image preview during composition shows for images. In 3.8.x - it never does. I reported it separately before.
wj25czxj47bu6q commented 2 years ago

This issue affects me as well. All testing was done on the latest version (3.9.4). Original image is 736.2 kB, 1307x1612, PNG (all apps convert to JPG before sending). Sending device (except for GVoice) is a mata on Android 8.1 (unofficial LineageOS 15.1) on T-Mobile; receiving device (except for GVoice) is a mata on Android 11 (CarbonROM 9.0) on Verizon.

First column indicates the sender; first row indicates the receiver. The sender and receiver are both set as the default SMS app on their respective devices. Second column ("As Sent") is the size of the sent image ("Save to gallery" from sent message). Remaining columns are the size of the received image (all measured by Simple Gallery Pro).

As Sent QKSMS
Auto
QKSMS
100KB
QKSMS
2000KB
QKSMS
None
AOSP Google
No RCS
GVoice
QKSMS
Auto compression
361.8kB
1307x1612
110kB
1064x1312
110kB
1064x1312
110kB
1064x1312
361.8kB
1307x1612
361.8kB
1307x1612
110kB
1064x1312
QKSMS
100KB compression
72.3kB
459x567
36kB
459x567G
36kB
459x567
36kB
459x567
36kB
459x567
72.3kB
459x567
36kB
459x567
QKSMS
2000KB compression
361.8kB
1307x1612
110kB
1064x1312
110kB
1064x1312
110kB
1064x1312
110kB
1064x1312
110kB
1064x1312
110kB
1064x1312
QKSMS
No compression
361.8kB
1307x1612
110kB
1064x1312
117.3kB
1038x1280
AOSP Messaging 736.2kB
1307x1612
527.6kB
1064x1312
Google Messages
RCS ("chat features") disabled
736.2kB
1307x1612
527.6kB
1064x1312
527.6kB
1064x1312
527.6kB
1064x1312
527.6kB
1064x1312
527.6kB
1064x1312
527.6kB
1064x1312
Google Voice 118.8kB
1038x1280
111kB
1064x1312
140kB
1307x1612
111kB
1064x1312
118.3kB
1038x1280

Strikethroughs represent inconsistent results. Usually I would get the recorded result, but sometimes the resultant image would match the size and dimensions of the "As Sent" image, suggesting there was no additional compression (but I have not verified this). The frequency of recorded vs "As Sent" results was not the same in every permutation either. Permutations with no strikethrough may well display the same behavior with more testing.

I didn't feel it was necessary to complete any more of the table since the patterns were already pretty clear — see conclusions below.

By far, the most interesting result was in the row sent by Google Messages. The 527.6 kB images received by Google Messages was quite crisp, whereas the 527.6 kB images received by AOSP and QKSMS looked horribly compressed. I have no explanation at all for this and even repeated the test multiple times to confirm. If my testing is not flawed, I can only assume Google is doing some black-magic that no one else has access to.

In regard to actually solving this issue, I'm inclined to believe the issue is actually not related to QKSMS as @moezbhatti also seemed to think. For both phones, images sent to and from my Google Voice number were crisp every single time I tried (though I didn't test that many times). In addition, when I switched which phone was the sender and receiver, I got crisp images every time (well, relative to the compression setting in sending QKSMS). The issue also affects receiving MMS on an instantnoodle with CarbonROM 9.0 on Verizon, so I'm inclined to believe the issue lies with Verizon and/or LineageOS (certainly wouldn't be the first time Verizon doesn't play well with LOS or unlocked phones in general). I saw that @otede had this issue on T-Mobile, but that was over 2 years ago and T-Mobile's network has changed quite significantly since then.