用于 whatsapp 的 Xposed 模块实现最后看到的调整

Xposed module for whatsapp implement last seen tweaks

我已经为 whatsapp 开发了一个 xposed 模块。

http://forum.xda-developers.com/xposed/modules/mod-whatsapp-extensions-add-extra-t3452784

我想添加功能以隐藏我们自己的最后一次看到仍然看到其他人或报告假的最后一次看到例如:1970 年 1 月 1 日。

我做了以下假设:

为了做到这一点,我首先连接了日期和 System.currentTimeInMillis 方法,让 whatsapp 认为它是 1970 年 1 月 1 日。这很有效,但最后一次看到仍然完美显示。

假设:最后一次看到的时间值直接取自服务器

然后我在源代码中查找引用了 last_seen 首选项的位置。原来它只在 SettingsPrivacy activity 的 class.

中被引用

假设:要隐藏我们最后一次看到的内容并仍然看到其他人,我们需要将最后一次看到的首选项更改为 'visible to all',并在我们最后一次看到时将其关闭。

但问题是它使用了 onPreferenceChangeListener。我们不能直接从接口挂接方法。

我找不到实现 onPreferenceChangeListener 的 subclass,因为代码中显示的 classes 是合成的。 如果有人可以帮助我,那就太好了。我需要找到哪个是该偏好的 preferencechangelistener。休息我来处理。

这是一种获取实现的蛮力技巧,但我想您可以挂钩应用程序 ClassLoader.loadClass 并针对每个加载的 class 检查它是否实现了接口。如果是这样挂钩它的 onPreferenceChangeListener。

我找到了一种方法和它的工作原理。

http://forum.xda-developers.com/xposed/modules/mod-whatsapp-extensions-add-extra-t3452784

实现它的方法是挂钩一个将首选项作为参数的方法。我们创建一个首选项(准确地说是 com.whatsapp.preference.WAprivacy 首选项),然后将此首选项与最后一次看到的设置为所需的值传递给该方法。我们完成了。 到目前为止它正在工作。