yashsingh1/xdaforums huggingface dataset:
[Xposed Framework Modules] ImADev:
Yeah, same here. I don't use MMS, so I don't know if Kevin's older change would actually fix this problem as that was specifically for MMS as far as I know.

There's got to be a line of code that controls the compression level within Hangouts and I'm hoping that Kevin's able to find it. I simply refuse to use the newer Hangouts versions until Google either corrects this problem or Kevin's able to patch it as it really does look that bad on a HD display.
[Xposed Framework Modules] MC FLMJ1G:
Trying the beta now. So far it's great.

Anyone know the tmo splicing data?

I just put this:

http://mms.msg.eng.t-mobile.com/mms/wapenc

So far it seems to be working still.
[Xposed Framework Modules] Kevin M:
When sending/receiving an MMS when not on WiFi (and with XHangouts debug mode on) do you see any errors in the Xposed log?
[Xposed Framework Modules] MC FLMJ1G:
I just tested and i got this
[Xposed Framework Modules] Kevin M:
Awesome. It's working. Thank you. This feature was in desperate need of testing in Hangouts 4.
[Xposed Framework Modules] MC FLMJ1G:
I think the messages actually DO go faster. Not kidding!

Didn't want to use hangouts because of the bugs but just got a watch and the watch works better with hangouts. Your app makes handouts bearable!

Thank you!
[Xposed Framework Modules] Kevin M:
As long as you're not connected to WiFi and have an active mobile connection APN Splicing should be both faster and use less battery than the traditional APN request logic. The amount gained would be dependent on your hardware and the ROM it is running.

You can turn off debug mode as well, if you no longer require it, which should marginally speed things up. Thanks for using XHangouts!
[Xposed Framework Modules] MC FLMJ1G:
Appreciate this app.

Now I just have to figure out if I can reduce the wakelocks and alarms on the Google hangouts app. haha
[Xposed Framework Modules] kchannel9:
So I just realized when you receive or place calls in hangouts there is no way to see the call log, and determine how long a call was! This is incredibly uncool! Is there any hope to remedy this?

Sent from my SPH-L900 Sprint/Ting Note 2 running 4.3 MK4 rooted with tripped & disabled KNOX, on the XDA app
[Xposed Framework Modules] twe90kid:
I changed my phones normal DPI settings to show more on the screen. Because of this, I need to go back to App Settings to change the DPI for Hangouts. If I don't change the Hangouts (dp) to a different value, 1000x1600, than the phone won't ring when screen is off.
[Xposed Framework Modules] Kevin M:
I'm just trying to see what could potentially be aggravating the issue for certain people. If you could temporarily change DPI and report back on how it changes the image quality that would be awesome.
[Xposed Framework Modules] supermaxkato:
My kids use hangouts and your awesome app; thank you!

But I don't like that when they type in a name (looking through our contact list) that random google names pop up. Is there a way for your app to restrict the searchable names to only the phones contact list (and not googles internet directory of names)?

*Also still hoping for the direct dial feature so my kids can touch a shortcut picture of mom and dial her without pushing any other buttons. I noticed a newer version copies the phone number to the hangouts dialer but doesn't actually click the call button. So I'd love for your app to make it a one-touch operation.

You mentioned considering this addition a few posts back; any progress on it yet? Thank you!

---------- Post added at 01:52 AM ---------- Previous post was at 01:50 AM ----------

Would also love to be able to block any incoming call that isn't in the phone contact list (I know you can block an individual number, but that doesn't stop random numbers from calling). Thanks again!
[Xposed Framework Modules] winchendonsprings:
Group and move all the icons

I'd really really like to group and move all the icons below the input field. My phone tends to lag on hangouts and I'll tap the input field and then realize I typed the location icon.

Thanks!
[Xposed Framework Modules] jaladhjin:
whether or not you will is obviously totally your prerogative but I'm curious..

if you decided you wanted to could your module dark mod the whole hangouts ui kinda.. semi permanently ? vs 1 version of TBO or DarkUnicorn that works as long as you never update ever..

?
[Xposed Framework Modules] abcdhouimou:
Hello,

Could you please add ability to change MMS User-Agent ?

APN configuration is very nice but some Japanese carriers check User-Agent for SIM Locking :(

It would be great if you could change User-Agent and X-WAP-Profile.

Thank you!
[Xposed Framework Modules] ImADev:
Hangouts 5.0 is finally out, but it's still got many issues.

The little icon that shows where a contact has read up to is being overlapped when you send a new message

There's no character count when composing an SMS (XHangouts feature request?)

There's still no option to view timestamps at a glance within the thread (XHangouts feature request?)

The button to select between Hangouts, Google voice or your mobile number still overlaps into the chat window when it's pressed

The same button mentioned above has too much padding on the left, so it doesn't align with anything. It should be aligned with the button to attach an image (XHangouts feature request?)

http://www.apkmirror.com/apk/google-inc/hangouts/hangouts-5-0-104885319-android-apk-download/

http://www.apkmirror.com/apk/google-inc/hangouts/hangouts-5-0-104885319-480dpi-android-apk-download/

Here's one other feature request too. Could you add an option to change the DPI of Hangouts? I'm currently using App Settings to adjust the DPI to 420 since the default (480dpi for the Xperia Z1) makes the app seem like it's zoomed in too much. It'd be great if I didn't need to use another Xposed module just for this 1 setting.

Edit: 5.0 fixes the image compression level issue on my side of things, but the preview that the person gets is often blured. If they save the image and open it up then it's not blured though :confused:
[Xposed Framework Modules] DQEight:
What is the latest version this module will work with? I'm on lollipop with hangouts version 4.2.102354210. I really want to try the Apn settings because I'm currently forced to use Textra because it allows me to change those.
[Xposed Framework Modules] ImADev:
I believe you need Hangouts 4.0.100406486 with XHangouts v2.3-beta1.

I prefer Hangouts 3.3.94322993 with XHangouts 2.2.
[Xposed Framework Modules] spongar141:
Hide call button broken

Hide call button not working on note 3 lolipop. Any ideas?
[Xposed Framework Modules] Mike B.:
I'm pretty sure [MENTION=4195957]Kevin M[/MENTION] would appreciate it if you could at least share which version of XHangouts you use with which version of Hangouts? ;)
[Xposed Framework Modules] spongar141:
5.0.104885319 it also didnt work on the version before this one.
[Xposed Framework Modules] Mike B.:
Then all's well since XHangouts doesn't support Hangouts 5.x at this time... ;)
[Xposed Framework Modules] kchannel9:
Can you do something about the hangouts splash screen that loads EVERY TIME the app is opened? It wasn't like this before the recent hangouts update

Sent from my SPH-L900 Sprint/Ting Note 2 running 4.3 MK4 rooted with tripped & disabled KNOX, on the XDA app
[Xposed Framework Modules] raddacle:
Is the send button suppose to be green even if we changed the color of the rest of the app?
[Xposed Framework Modules] Kevin M:
Hello everyone. I'll try to address everything that's been posted since my last update. School has hit particularly hard this semester so I've been behind on getting XHangouts up to speed with the latest releases. The best advice I can offer for those who want all of XHangouts is to use v2.2 along with Google Hangouts 3.3.

That's awesome to hear! Thank you. All of these suggestions are plausible but unfortunately I have not made any progress towards them.

Can you explain this in further detail? Move them how?

A dark module is on my list of things to do.

This is something I took a peek at when I was initially working on MMS APN Splicing. I'll add this to my list.

Good to hear that the Hangouts team is attempting to improve the experience. With that said I cannot guarantee Hangouts 5.x support anytime soon. Thanks for the update/bug report! I've made a note of it.

The last fully supported version is XHangouts v2.2 with Google Hangouts 3.3.

XHangouts will only work with the version of Google Hangouts it is specifically noted to work with. The latest version of XHangouts v2.3-beta1 will work with Hangouts 4.0.100406486. The last stable version of XHangouts is v2.2 and will work with Hangouts 3.3.

Added to my list!

Unfortunately yes. From what I recall, this is actually an Xposed limitation and needs to be worked around on an as-needed basis until it's addressed in Xposed.
[Xposed Framework Modules] eartht0negirl:
"Notifications Off" request

Could you add an option to remove that big, red "Notifications off - Turn on" bar from the hangout chat screen? I'm in a lot of busy group hangouts where I want notifications off permanently. This ugly bar takes up space and makes it too easy to accidentally turn notifications on.

Many thanks for this awesome module!
[Xposed Framework Modules] Kevin M:
Thanks! The ability to disable that bar is on my todo.

Thanks for this contribution. Would you be willing to submit this as a PR on GitHub for further discussion and potential merge?
[Xposed Framework Modules] snetsplit:
Done! The algorithm should be readily adaptable to other classes and method overrides as long as the classes extend a public class, and have an identifiable public method that needs overriden.

If they have a private method, that needs overriden it could be extended possibly by using the method signature and reflection, however this wouldn't be very reliable since private methods are a lot more likely to change signatures, and you would still need a public method, or variables to find the class in the first place.
[Xposed Framework Modules] Kevin M:
I see the fork on GitHub but no commits or PR. ;)

Your algorithm is a lot like an active Java-aware runtime version of ProFinder. Now that I've had time to look at it more closely there are few potential issues. The first is that it must be very slow. We have to look at 26^3 + 26^2 + 26 potential classes and check if each is an Activity with reflection. If we could do this just once per Hangouts update this would be ideal. That is, just once per-install until XHangouts or Hangouts updates. Another issue is that the onPrepareOptionsMenu hook shouldn't ever fail since every Activity has one. So our false-positive rate would be very high. Additionally since it's hooking in the checkIfValidActivity and never unhooking we're needlessly hooking yet again in the last loop in the hook method. There are a few other places we could speed things up but those are the major things. I have not run the code yet so please correct me where possible.

Please do not take the analysis above as an attempt to devalue your work. I'm highly appreciative of every XHangouts contribution. I just need to carefully evaluate it before I can add it to the codebase responsibly. Please feel free to include the code as-is in your pull request and we can continue this discussion on GitHub if you wish. We can continue it here as well I've just found it generally easier to review and talk about specific code on a GitHub issue than on forums.
[Xposed Framework Modules] snetsplit:
The actual scanning process happens once per hangouts start. Since it only has to find the class names once per hangout upgrade, the class name values. can be stored in settings, then reran when hangouts updates.

Debug shows it finds 10 activities, 5 of which actually contain a menu to hook into, and it'll only actually do something to those menus if they contain a menu with a matching resource ID. I've been working on finding a way to narrow it down to just the one activity.
[Xposed Framework Modules] Kevin M:
Thanks. I believe I forgot that if you call Xposed's hookMethod on a class instance that does not explicitly override or implement the method in question it will fail. In other words it won't hook the super class for the menu hook. That resolves my primary concern with the code. The speed issues can be at least partially mitigated along with running it just once on upgrade.

It would be interesting to see what other hooks are simple enough (and "stable" enough) to do on the fly.
[Xposed Framework Modules] mattspew:
Is is possible to add a feature to customise where Hangouts 4.x and 5.x saved photos taken within Hangouts? The same as it used to work in Hangouts 3.x.

For the life of me I don't understand why Google would change Hangouts from saving photos to a very logical "/sdcard/DCIM/IMG_yyyymmdd_hhmmss.jpg" to "sdcard/photo-p.jpg" and have every new photo just overwrite it.

It's just seems bloody stupid of Google. Photos are no longer visible in Photos, no longer backed up by Photos and are over written by each photo.
[Xposed Framework Modules] supermaxkato:
Kevin M, can't remember if I saw this posted or not, but many folks would love to get rid of the "google+" suggestions when searching contacts. I don't want my kids attempting to communicate (intentionally or unintentionally) with people they don't know. So if you could add "blocking google+ suggestions" to your to-do that would be great!

Also, regarding my request for a "direct dial" feature: the latest hangouts dialer comes pretty close. Except you have to have at least Kitkat, and it still only copies the number into the dialer. So I'd like your module to not only do that, but to also hit the send button! (Why google didn't do this in the first place perplexes me). And I'd need it to work for ICS and up. (My Android Home Network has several older phones).

Thanks Kevin!
[Xposed Framework Modules] Mandoza:
Is the development over for this module or is there a version for hangouts 5.0
[Xposed Framework Modules] 65vdub:
It's still in development, we just have to be patient.
[Xposed Framework Modules] ImADev:
I've actually already modded this and got it working on the latest 6.0 release. I've also improved the image compression and scaling so that it works for Google Voice MMS too.

The "compression" issue with Hangouts 4.0+ isn't actually due to the compression level, although that is a part of the problem as it's compression is set to 70. The actual issue comes from how Hangouts 4.0+ downscales the images. It doesn't optimize it correctly so what you receive is a mess.

If Kevin doesn't release an update soon then I'll probably fork the project and send a pull request with my changes.

[MENTION=4195957]Kevin M[/MENTION]

The colourized avatar change you made recently (816a3db) works, but if you install App Settings and change the Hangouts DPI to 420 then stock contact pictures aren't aligned correctly.
[Xposed Framework Modules] rhodyvik:
Has this been addressed? I've read through these posts and I assume people are referring to the MMS pic quality? I love this Module for sure.

What I mean is, is this area supposed to be greyed out?
[Xposed Framework Modules] ImADev:
When you send an MMS via your carrier XHangouts would normally replace Googles algorithm to resize and compress the image. It doesn't work for Hangouts picture messages or MMS sent via Google Voice though.

Kevin disabled the option to use the better algorithm to resize images in his latest release. It's a shame because Googles version causes pictures to look awful to whoever you're sending them to. They'll look fine on your end after a second or two though as it'll load up a local high quality copy for you to see. Hangouts 3.3.94322993 with XHangouts 2.2 doesn't have this issue to the same degree.

The changes I've made makes all images process via the better algorithm. Hopefully when I've finished working on things Kevin will consider adding my changes to the official XHangouts release.
[Xposed Framework Modules] rhodyvik:
The thing is, even the screenshots I send on my end to someone else aren't high quality after it has completed. I send the pic, it shows up as sent but the quality is lacking. I know this has been an issue with Hangouts in general. One would think the dev's at Google would know better. Surely someone uses the app (Hangouts) as their main SMS/MMS that works on that team. It's frustrating that my most commonly used app is the worst thing about Google.
[Xposed Framework Modules] ImADev:
For me it'll load up a high quality version within at least 2 seconds when I'm connected to WiFi. I'm not sure if it does the same thing when I'm using data though.

I totally agree about Google. You'd expect at least one of the devs to know better, but the app is riddled with bugs and now they're doing ridiculous version jumps with nothing to show for it. They don't even bother to update the changelog most of the time.
[Xposed Framework Modules] :
Would love to use it.
[Xposed Framework Modules] Kevin M:
This is awesome news. For reference, the problem with Hangouts and images has always been the scaling algorithm. createScaledBitmap is awful. If I remember correctly it has to do with the aggressive subsampling. Please send a PR as there's no need for me to duplicate your hard work!

For the decodeResource hook I'm thinking it has to do with a DPI-mismatch that occurs when manually retrieving the underlying bitmap. I'd have to see what the normal behavior is before I could suggest a fix.

On send, it seems that Hangouts compresses the image locally and that is what is displayed for you until it downloads the somewhat-less-compressed version from Google. When sending an image via Hangouts if you tap it quickly it'll look like garbage and then if you wait a bit the image will magically look nicer. I assume Hangouts sends one less-compressed copy to the server and shows you another highly compressed one until it redownloads the image from the server. I can't comprehend what the logic might be here. But that's Hangouts on Android for you.

Just to clarify the function was disabled in the beta because it was no longer compatible with the then-latest release of Hangouts not because I planned on removing it. I disabled the functions that were no longer working and I completely removed the ones that were no longer needed. I wanted to have resizing and a few other features back by the second beta but unfortunately that has not happened yet.
[Xposed Framework Modules] ImADev:
Yep, but there is another issue that I'm still trying to solve.

I've currently got Hangouts to downscale and compress images at a higher quality, but Hangouts seems to make a copy of the image that it'll use for MMS via Google Voice. The issue is that the copy seems to get resized yet again elsewhere, going from 1280x720 to just 512x288. It still looks better than what Hangouts would normally send, but it appears as though it's the lower res image that Hangouts normally displays before it downloads the higher res version (for normal Hangouts messages that is). Google Voice can't download the high res version though, so I guess Google either doesn't care or they've screwed up and they don't realise that this is the problem that some people have been complaining about.
[Xposed Framework Modules] Kevin M:
Looks like we'd have to hook in multiple places then. If you're not certain where to look think of a public API call that might be contextual to the thing you're trying to hook. In this instance I'd put some money on createScaledBitmap. Grep the smali for calls to that and you'll hopefully have a relatively small list of classes to go through. That's my usual approach for things like this.
[Xposed Framework Modules] Mandoza:
Maybe you should start slow like, the size of sending pictures, every time I'm taking a screenshot and wanna send it, it sends in really bad quality , I just wanna change it to 1440x2560
[Xposed Framework Modules] Kevin M:
I'm not sure I follow. Can you elaborate? What I was suggesting is likely necessary to send pictures at the highest possible quality.
[Xposed Framework Modules] Mandoza:
Yes, because when I take a screenshot the pic is very blurry
[Xposed Framework Modules] ImADev:
How are you sending that image within Hangouts? I mean, are you using MMS via your carrier, MMS via Google Voice or is it just a regular Hangouts message?

I've found out that the Google Voice MMS issue is actually on Googles end of things. Basically before Google sends the image to the recipient the image gets resized again so that it's under 512x512. I confirmed it by logging into hangouts.google.com and sending a large image from my desktop.
[Xposed Framework Modules] Kevin M:
[MENTION=6610308]ImADev[/MENTION] To note, I'm happy to look at or accept PRs before you've finished what you'd like to do. Whatever fits into your current workflow.
[Xposed Framework Modules] Mandoza:
Just a regular hangouts message
[Xposed Framework Modules] westhaking:
Any plans to get this working with the latest version (6.0) of Hangouts?
[Xposed Framework Modules] Kevin M:
Yes:
[Xposed Framework Modules] ImADev:
I've fixed pretty much everything apart from APN splicing. I don't know how many people use or even care about that option, but it needs a lot of work due to Googles changes.

[MENTION=4195957]Kevin M[/MENTION]

I fixed the avatar coloring issue the other day. That taken me a little while because I had to create some drawables. I'll probably clean things up tomorrow though and then send a pull request your way.
[Xposed Framework Modules] Kevin M:
Sounds great. I took a look at the changes and so far I have one concern. Are the image resources free of Google copyright? UiColorize works the way it does to avoid packaging unlicensed content.
[Xposed Framework Modules] ImADev:
It's not going to be a problem at all.

https://github.com/google/material-design-icons

I modified the SVG, resized it to match what Hangouts uses and then converted that into PNG files.
[Xposed Framework Modules] Kevin M:
v2.3-beta2-c5d4cc8

Today I am proud to announce the second beta release of XHangouts v2.3. I'm in the middle of preparing for finals but with the significant progress made in the past month I'd be remiss not to compile the changes for you to test.

v2.3-beta2-c5d4cc8 - 05 Dec 2015 - Beta
------------------
This unstable release of XHangouts v2.3 includes the following
changes from the first beta:

* Support for only Google Hangouts 6.0.107278502 (at the time of
release, this is the latest)
* The Sound replacement feature is in need of testing.
* MMS image resizing is back
* Google Voice MMS is now also scaled and compressed similarly
to carrier MMS
* The interface is now entirely colorized
* Compiled against Marshmallow. Should work on Xposed for
Marshmallow.
* MMS APN Splicing has been at least temporarily removed.
* Fixed crash in the sound file chooser
* A few miscellaneous other changes.

A hearty *thank you* goes out to ImADev @ XDA, who completed
the bulk of the work in this release.

Please report any bugs or issues you encounter on GitHub or
the XDA thread. If it's working perfectly for you, I don't
mind hearing that either (on XDA, please)!

Please direct your thanks to [MENTION=6610308]ImADev[/MENTION] for this release. It takes a significant amount of time and energy to analyze the Hangouts bytecode and apply that knowledge in a concrete, meaningful way in XHangouts. We are very fortunate to have such a qualified contributor. :highfive:

Enjoy.
[Xposed Framework Modules] ImADev:
With Hangouts 4.0+ you might send MMS pictures to someone via Google Voice and they might look okay on your end, but this is what the pictures would look like on the recipients end.

And here's what they receive when you send the pictures with the latest version of XHangouts installed.

The issue occurs because Google are incorrectly subsampling images.

The latest XHangouts release is classed as an unstable release, but it's actually very usable and shouldn't cause any issues.

I would recommend people to leave the resize dimensions at 1024x1024 and to have the image type set to JPEG with the quality at 90+. That's what can give you the best balance between quality and performance.