package de.theknut.xposedgelsettings.hooks.appdrawer;
import android.content.ComponentName;
import android.graphics.Color;
import android.widget.TextView;
import de.robv.android.xposed.XC_MethodHook;
import de.theknut.xposedgelsettings.hooks.ObfuscationHelper;
import de.theknut.xposedgelsettings.hooks.PreferencesHelper;
import static de.robv.android.xposed.XposedHelpers.callMethod;
import static de.robv.android.xposed.XposedHelpers.getObjectField;
import static de.robv.android.xposed.XposedHelpers.setObjectField;
public final class ApplyFromApplicationInfoHook extends XC_MethodHook {
// http://androidxref.com/4.4.2_r1/xref/packages/apps/Launcher3/src/com/android/launcher3/PagedViewIcon.java#68
// public void pviApplyFromApplicationInfo(AppInfo info, boolean scaleUp, PagedViewIcon.PressedCallback cb)
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
String cmp = ((ComponentName) getObjectField(param.args[0], ObfuscationHelper.Fields.aiComponentName)).flattenToString();
for (String app : PreferencesHelper.appNames) {
String[] split = app.split("\\|");
if (split[1].equals("global") && split[0].equals(cmp)) {
setObjectField(param.args[0], "title", split[2]);
return;
}
}
}
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
if (PreferencesHelper.hideIconLabelApps) {
callMethod(param.thisObject, "setTextColor", Color.TRANSPARENT);
}
else {
callMethod(param.thisObject, "setTextColor", PreferencesHelper.appdrawerIconLabelColor);
if (!PreferencesHelper.appdrawerIconLabelShadow) {
((TextView) param.thisObject).getPaint().clearShadowLayer();
}
}
}
}