/xposed-flow

A fluent interface for using XposedBridge

Primary LanguageJavaMIT LicenseMIT

Xposed Flow

A fluent interface for using XposedBridge.

Method hooks

To hook a method using the fluent interface, use the method xpose.

xpose("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader)
  .hook("updateClock")
  .with(new XC_MethodHook() {
    @Override
    protected void afterHookedMethod(MethodHookParam param) throws Throwable {
        TextView tv = (TextView) param.thisObject;
        tv.setTextColor(Color.RED);
    }
});

The code can be even more elegant if we extract the XC_MethodHook that changes the color to a method:

xpose("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader)
  .hook("updateClock")
  .by(changingTextTo(Color.RED));

This will bring more readability to your code.

Replacing Resources

To replace resources, just "xpose" the InitPackageResourcesParam.

xpose(resparam)
  .at("com.android.systemui")
  .replace("config_maxLevelOfSignalStrengthIndicator")
  .with(6);
}

Note that the resource type only needs to be specified if the replacement is not one of the supported types (currently integer, bool, drawable and dimension).