package de.theknut.xposedgelsettings.hooks.pagindicator;
import android.graphics.Rect;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import de.robv.android.xposed.XC_MethodHook;
import de.theknut.xposedgelsettings.hooks.ObfuscationHelper.Fields;
import de.theknut.xposedgelsettings.hooks.PreferencesHelper;
import static de.robv.android.xposed.XposedHelpers.callMethod;
import static de.robv.android.xposed.XposedHelpers.getObjectField;
public class SetInsetsHook extends XC_MethodHook {
// http://androidxref.com/4.4.2_r1/xref/packages/apps/Launcher3/src/com/android/launcher3/AppsCustomizeTabHost.java#86
// public void setInsets(Rect insets)
public boolean isTrebuchet;
public SetInsetsHook (boolean isTrebuchet) {
this.isTrebuchet = isTrebuchet;
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
Object mContent = getObjectField(param.thisObject, Fields.acthContent);
Rect insets = (Rect) param.args[0];
if (mContent != null && !PreferencesHelper.moveTabHostBottom) {
FrameLayout.LayoutParams flp = (LayoutParams) callMethod(mContent, "getLayoutParams");
flp.topMargin = insets.top;
if (PreferencesHelper.hideIconLabelApps) {
if (isTrebuchet) flp.bottomMargin = 0;
else flp.bottomMargin = insets.top;
}
else {
flp.bottomMargin = insets.bottom;
}
flp.leftMargin = insets.left;
flp.rightMargin = insets.right;
callMethod(mContent, "setLayoutParams", flp);
}
}
}