package de.theknut.xposedgelsettings.hooks.appdrawer; import de.robv.android.xposed.XC_MethodHook; import de.theknut.xposedgelsettings.hooks.Common; import de.theknut.xposedgelsettings.hooks.ObfuscationHelper.Fields; import de.theknut.xposedgelsettings.hooks.PreferencesHelper; import static de.robv.android.xposed.XposedHelpers.getIntField; import static de.robv.android.xposed.XposedHelpers.setIntField; import static de.robv.android.xposed.XposedHelpers.setObjectField; public class UpdateFromConfigurationHook extends XC_MethodHook { // http://androidxref.com/4.4.2_r1/xref/packages/apps/Launcher3/src/com/android/launcher3/DynamicGrid.java#225 // void updateFromConfiguration(Resources resources, int wPx, int hPx, int awPx, int ahPx) @Override protected void afterHookedMethod(MethodHookParam param) throws Throwable { if (PreferencesHelper.xCountAllAppsVertical == -1) { Common.ALL_APPS_X_COUNT_VERTICAL = getIntField(param.thisObject, Fields.acpvAllAppsNumCols); } else { Common.ALL_APPS_X_COUNT_VERTICAL = PreferencesHelper.xCountAllAppsVertical; } if (PreferencesHelper.yCountAllAppsVertical == -1) { Common.ALL_APPS_Y_COUNT_VERTICAL = getIntField(param.thisObject, Fields.acpvAllAppsNumRows); } else { Common.ALL_APPS_Y_COUNT_VERTICAL = PreferencesHelper.yCountAllAppsVertical; } if (PreferencesHelper.xCountAllAppsHorizontal == -1) { Common.ALL_APPS_X_COUNT_HORIZONTAL = getIntField(param.thisObject, Fields.acpvAllAppsNumCols); } else { Common.ALL_APPS_X_COUNT_HORIZONTAL = PreferencesHelper.xCountAllAppsHorizontal; } if (PreferencesHelper.yCountAllAppsHorizontal == -1) { Common.ALL_APPS_Y_COUNT_HORIZONTAL = getIntField(param.thisObject, Fields.acpvAllAppsNumRows); } else { Common.ALL_APPS_Y_COUNT_HORIZONTAL = PreferencesHelper.yCountAllAppsHorizontal; } if (PreferencesHelper.changeGridSizeApps) { setObjectField(param.thisObject, Fields.acpvAllAppsNumCols, Common.ALL_APPS_X_COUNT_VERTICAL); setObjectField(param.thisObject, Fields.acpvAllAppsNumRows, Common.ALL_APPS_Y_COUNT_VERTICAL); } if (Common.APP_DRAWER_ICON_SIZE == -1) { Common.APP_DRAWER_ICON_SIZE = (int) Math.round(getIntField(param.thisObject, Fields.dpAllAppsIconSize) * (PreferencesHelper.iconSizeAppDrawer / 100.0)); } if (PreferencesHelper.iconSettingsSwitchApps) { setIntField(param.thisObject, Fields.dpAllAppsIconSize, Common.APP_DRAWER_ICON_SIZE); } } }