Tried the XPosed framework?
I had the same frustration... I recently came across the XPosed framework and have developed a module for it that: - Prevents the screen from turning on when a charger is connected
- Disables the wireless charging popup
- Disables the beep when a charger is connected
- Prevents the screen from turning on when the battery is full
I will post a module once I've got past the min 10 post limit on dev threads
In the meantime I hope this helps...
For developers (XPosed module code attached)
Code:
public class DisableWirelessChargingPopup implements IXposedHookLoadPackage
{
volatile PowerManager mPowerMgr;
volatile boolean mWakeUpEnabled = true;
@override
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable
{
if (lpparam.packageName.equals("android"))
{
XposedBridge.log("handleLoadPackage: " + lpparam.packageName);
try
{
Class localClass = XposedHelpers.findClass("com.android.server.PowerManagerService$BatteryReceiver", lpparam.classLoader);
Object[] parameterTypesAndCallbackPower = new Object[3];
parameterTypesAndCallbackPower[0] = Context.class;
parameterTypesAndCallbackPower[1] = Intent.class;
parameterTypesAndCallbackPower[2] = XC_MethodReplacement.DO_NOTHING;
XposedHelpers.findAndHookMethod(localClass, "onReceive", parameterTypesAndCallbackPower);
XposedBridge.log("Hooked: PowerManagerService$BatteryReceiver");
}
catch (Exception e)
{
XposedBridge.log(e.toString());
}
}
if (lpparam.packageName.equals("com.android.systemui"))
{
XposedBridge.log("handleLoadPackage: " + lpparam.packageName);
try
{
Object[] parameterTypesAndCallbackWireless = new Object[2];
parameterTypesAndCallbackWireless[0] = Integer.TYPE;
parameterTypesAndCallbackWireless[1] = XC_MethodReplacement.DO_NOTHING;
//XposedHelpers.findAndHookMethod("com.android.systemui.power.PowerUI", lpparam.classLoader, "showWirelessChargingNotice", arrayOfObject);
XposedHelpers.findAndHookMethod("com.android.systemui.power.PowerUI",
lpparam.classLoader, "showWirelessChargeDialog", parameterTypesAndCallbackWireless);
XposedBridge.log("Hooked: " + lpparam.packageName + " showWirelessChargeDialog");
}
catch (Exception e)
{
XposedBridge.log(e.toString());
}
try
{
Object[] parameterTypesAndCallbackPlaySound = new Object[2];
parameterTypesAndCallbackPlaySound[0] = Integer.TYPE;
parameterTypesAndCallbackPlaySound[1] = XC_MethodReplacement.DO_NOTHING;
XposedHelpers.findAndHookMethod("com.android.systemui.power.PowerUI",
lpparam.classLoader, "playSound", parameterTypesAndCallbackPlaySound);
XposedBridge.log("Hooked: " + lpparam.packageName + " playSound");
}
catch (Exception e)
{
XposedBridge.log(e.toString());
}
try
{
XposedHelpers.findAndHookMethod("com.android.systemui.power.PowerUI",
lpparam.classLoader, "notifyFullBatteryNotification",
XC_MethodReplacement.DO_NOTHING);
}
catch (Exception e)
{
XposedBridge.log(e.toString());
}
}
}
}
|