Giter VIP home page Giter VIP logo

xposed-whatsapp's Introduction

xposed-whatsapp

Utilising the Xposed framework, this module adds tweaks to make WhatsApp more useful to me. Currently includes:

  • Removal of the voice and/or camera buttons from the conversation view
  • The ability to keep the contact list (called "New Chat" in WhatsApp) in your history, so when you launch a conversation using it and then press the back button, it doesn't skip straight back to the main conversations list.
  • Highlight groups in the conversations list
  • Disable the WhatsApp expiry check, so you are not forced to update your version

Languages:

  • English
  • Polish
  • Turkish
  • German
  • Arabic

Credits:

My extended thanks to the contributors.

Features available are detailed in the different sections.

Removal of the camera and/or voice buttons

Some time ago, WhatsApp added the "audio voice" feature. I found it hindered significantly more than it helped: if you tapped it accidentally, it would vibrate and emit a notification-like sound. And, I would do this repeatedly and so never found this useful (I don't use voice messaging).

More time passes, and they add a camera icon. This is more useful, and personally I'd prefer if that was the only one. So - I wrote this.

Before (with both camera and voice visible):

Before

After (no voice, no camera):

After

After (no voice):

After

After (no camera):

After

(Note: in all cases, the "send message" button will appear after you start typing, as it always would. Additionally, disabling sending still allows you to receive them.)

I have tested it on my HTC One M7, using Android Revolution HD, but I have no reason to suspect it shouldn't work on other devices.

Keep contact list in the history

When navigating to a conversation via the "contact list" (main WhatsApp screen > "New Chat" on the action bar > Select a contact) and you press the back key, rather than returning to the contact list, it returns you back to the main WhatsApp screen with your list of conversations - which can be a little frustrating.

This mod allows you to "go back" to the contact list, so you can chat uninterrupted.

Highlight Groups

It isn't always easy to see at a glance which of your conversations are groups, and which are which other people. This mod allows you to highlight the group conversations in any colour of your choice.

Highlight Groups Example

Installation

To install, please ensure you first have:

  1. Rooted your device
  2. Installed the Xposed Framework

Then, you can just search for "WhatsApp Mods" on the store to install it.

Configuration

Here are all of the options you currently get to play with:

Preferences

Troubleshooting & Support

If it feels like the module is doing nothing for you, please try enabling debugging mode from the settings, and send me the logs via the support thread: http://forum.xda-developers.com/xposed/modules/mod-whatsapp-mods-remove-action-t2824732 (either reply to the thread or send me a private message).

Building the project

  1. git clone https://github.com/jaysh/xposed-whatsapp.git
  2. cd xposed-whatsapp
  3. android update project --path . (where android is the SDK binary in the tools directory)
  4. Run ant debug each time you want to build an APK
  5. You can now adb install bin/xposed-whatsapp-debug.apk to your device

FAQs

What tools did you use to make this possible?

  • Apktool 2 - to view Smali/Java, and step through code in jdb).
  • JD-GUI - to convert Smali code into Java (mostly worthless, but nice for a general feel).
  • adb shell dumpsys activity to see what activity is in the foreground, and inspect the history stack.
  • jdb - to step through Smali, set breakpoints, and inspect variables
  • Hierarchy Viewer to inspect layouts

Does it work with WhatsApp+ (WhatsApp Plus)?

Yes, based on the messages on the forum thread. However, there is no official support for it.

xposed-whatsapp's People

Contributors

jaysh avatar kucharskov avatar membriyo avatar mihahn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xposed-whatsapp's Issues

Material design update breaks UI

A material design update just landed on apkmirror that visually breaks the camera and mic buttons at the right of the text input.

I don't think this needs too much effort as it's not yet deployed and i don't know if it is the final layout.

Also i would love to hel!. What's your project setup? I've not been able to play with the codebase.

Contact List

Keep contact list in history has stopped working with the latest Whatsapp versions. Kindly have a look

Hide your last seen but still be able to see the last seen time of others

http://forum.xda-developers.com/showpost.php?p=54553885&postcount=57

My thoughts:

I had an experiment with this, and it's horribly complicated at the network level because the network traffic is encrypted in the application and the application has its code obfuscated.

I'm considering trying a hack, one that would flick the setting to "my contacts" long enough that it'd reload the conversation and fetch the time, then flick it back. But, that'd need considerable testing.

Interact Intent?

I use the code to access contact:
Intent intent = new Intent("android.intent.action.MAIN");
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/" + imageName));
intent.putExtra("jid", phoneNumber + "@s.whatsapp.net"); //phone number without "+" prefix!
intent.setPackage("com.whatsapp");

I need help to capture the submit button(com.whatsapp:id/send)

Emoji crash

For some odd reason this only happens when your module is enabled. All emoji from the window disappear and then after 5 seconds app crashes. Since you were inactive, I had disabled the module. Hope you manage to fix this

Regression: pressing "back" from a conversation can jump to the (incorrect) conversations list

The feature "keep contacts list in history" is designed to allow this flow:

  • Conversations list (the list you see when WhatsApp is launched)
  • Press "new chat" in the action bar
  • Press a contact
  • Conversation is now open
  • Press the back key: it should return to the contacts list, NOT the main conversations list

Unfortunately, #6 has now broken this flow:

  • See Conversations
  • Press "new chat"
  • Click a contact
  • See conversation
  • Press back key
  • Click a different contact
  • Press back key

Here, you would expect to be on the contacts list again. But, you aren't you're back on the conversations list that WhatsApp gives when you first launch it.

Permanently archive conversations

WhatsApp has archive conversations facility which temporarily hides conversations until a new message comes. However, could there be a permanently archive setting that hides the conversation from the chat list even if message comes? (unless of course, you manually un-archive the conversation)

Could be extremely useful for saving the disturbance from annoying groups that people always keep talking on.

Bypass the Version too old roadblock

Hi,

I would like to keep an old WA version on my phone, for personal reasons (mainly because I don't like having any of Facebook Inc. software on my devices, and because I don't like the new style changes imposed to WA users by them.)

Unfortunately, today the old WA version I was using got blocked, with a nag screen saying that I would be forced to download and install their new version on my phone in order to continue using WA. This is completely unacceptable for me.

I know I would theoretically be exposed to security issues this way, but has WA ever fixed the fact that privacy is non-existant with their software? (Starting by the fact that my mobile number is sent in clear with almost all of the connection attempts...) So I'm conscious I would continue to use a piece of software that's after all insecure, so I would just avoid using it for sensitive conversations, as I've ever done. But unfortunately it's the social standard for communicating on the phone... So I need to continue using it. :/

So, here comes the real question. Would it be theoretically and/or practically possible to bypass this forced limitation with the Xposed framework? Has anyone tried this before?

Thank you very much for your help! :)
Vittorio G

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.