Java Code Examples for de.robv.android.xposed.XposedBridge#invokeOriginalMethod()

The following examples show how to use de.robv.android.xposed.XposedBridge#invokeOriginalMethod() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: BasePlugin.java    From xposed-rimet with Apache License 2.0 5 votes vote down vote up
public Object invokeOriginalMethod(XC_MethodHook.MethodHookParam param) {
    try {
        return XposedBridge.invokeOriginalMethod(
                param.method, param.thisObject, param.args);
    } catch (Throwable e) {
        Alog.e("异常了", e);
    }
    return null;
}
 
Example 2
Source File: XposedHelpersWraper.java    From MIUIAnesthetist with MIT License 5 votes vote down vote up
public static Object invokeOriginalMethod(Member method, Object thisObject, Object[] args) {
    try {
        return XposedBridge.invokeOriginalMethod(method, thisObject, args);
    } catch (Throwable t) {
        log(t);
    }
    return null;
}
 
Example 3
Source File: BaseHook.java    From xposed-aweme with Apache License 2.0 5 votes vote down vote up
public Object invokeOriginalMethod(XC_MethodHook.MethodHookParam param) {
    try {
        return XposedBridge.invokeOriginalMethod(
                param.method, param.thisObject, param.args);
    } catch (Throwable e) {
        Alog.e("异常了", e);
    }
    return null;
}
 
Example 4
Source File: ModExpandedDesktop.java    From GravityBox with Apache License 2.0 4 votes vote down vote up
@Override
protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
    if (DEBUG_LAYOUT) log("getContentInsetHintLw");
    try {
        if (!isImmersiveModeActive()) {
            return XposedBridge.invokeOriginalMethod(param.method, param.thisObject, param.args);
        }

        WindowManager.LayoutParams attrs = (WindowManager.LayoutParams) param.args[0];
        final int displayRotation = (int) param.args[1];
        Rect contentInset = (Rect) param.args[2];
        Rect stableInset = (Rect) param.args[3];
        Rect outOutsets = (Rect) param.args[4];

        final int fl = updateWindowManagerVisibilityFlagsForExpandedDesktop(attrs.flags);
        final int systemUiVisibility = updateSystemUiVisibilityFlagsForExpandedDesktop(attrs.systemUiVisibility |
                XposedHelpers.getIntField(attrs, "subtreeSystemUiVisibility"));

        final boolean useOutsets = outOutsets != null &&
                (boolean) mShouldUseOutsets.invoke(param.thisObject, attrs, fl);
        if (useOutsets) {
            int outset = (int) XposedHelpers.callStaticMethod(mClsScreenShapeHelper,
                    "getWindowOutsetBottomPx", mContext.getResources());
            if (outset > 0) {
                if (displayRotation == Surface.ROTATION_0) {
                    outOutsets.bottom += outset;
                } else if (displayRotation == Surface.ROTATION_90) {
                    outOutsets.right += outset;
                } else if (displayRotation == Surface.ROTATION_180) {
                    outOutsets.top += outset;
                } else if (displayRotation == Surface.ROTATION_270) {
                    outOutsets.left += outset;
                }
            }
        }

        if ((fl & (WmLp.FLAG_LAYOUT_IN_SCREEN | WmLp.FLAG_LAYOUT_INSET_DECOR))
                == (WmLp.FLAG_LAYOUT_IN_SCREEN | WmLp.FLAG_LAYOUT_INSET_DECOR)) {
            int availRight, availBottom;
            if ((Boolean) mCanHideNavigationBar.invoke(param.thisObject) &&
                    (systemUiVisibility & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) != 0) {
                availRight = getInt("mUnrestrictedScreenLeft") + getInt("mUnrestrictedScreenWidth");
                availBottom = getInt("mUnrestrictedScreenTop") + getInt("mUnrestrictedScreenHeight");
            } else {
                availRight = getInt("mRestrictedScreenLeft") + getInt("mRestrictedScreenWidth");
                availBottom = getInt("mRestrictedScreenTop") + getInt("mRestrictedScreenHeight");
            }
            if ((systemUiVisibility & View.SYSTEM_UI_FLAG_LAYOUT_STABLE) != 0) {
                if ((fl & WmLp.FLAG_FULLSCREEN) != 0) {
                    contentInset.set(getInt("mStableFullscreenLeft"), getInt("mStableFullscreenTop"),
                            availRight - getInt("mStableFullscreenRight"),
                            availBottom - getInt("mStableFullscreenBottom"));
                } else {
                    contentInset.set(getInt("mStableLeft"), getInt("mStableTop"),
                            availRight - getInt("mStableRight"), availBottom - getInt("mStableBottom"));
                }
            } else if ((fl & WmLp.FLAG_FULLSCREEN) != 0 || (fl & WmLp.FLAG_LAYOUT_IN_OVERSCAN) != 0) {
                contentInset.setEmpty();
            } else if ((systemUiVisibility & (View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)) == 0) {
                contentInset.set(getInt("mCurLeft"), getInt("mCurTop"),
                        availRight - getInt("mCurRight"), availBottom - getInt("mCurBottom"));
            } else {
                contentInset.set(getInt("mCurLeft"), getInt("mCurTop"),
                        availRight - getInt("mCurRight"), availBottom - getInt("mCurBottom"));
            }

            if (stableInset != null) {
                stableInset.set(getInt("mStableLeft"), getInt("mStableTop"),
                        availRight - getInt("mStableRight"),
                        availBottom - getInt("mStableBottom"));
            }

            return null;
        }
        contentInset.setEmpty();
        if (stableInset != null) {
            stableInset.setEmpty();
        }
        return null;
    } catch (Throwable t) {
        logAndMute(param.method.getName(), t);
        return XposedBridge.invokeOriginalMethod(param.method, param.thisObject, param.args);
    }
}