package tk.wasdennnoch.androidn_ify.phone.emergency;
import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import tk.wasdennnoch.androidn_ify.XposedHook;
import tk.wasdennnoch.androidn_ify.utils.ConfigUtils;
public class EmergencyHooks {
private static final String TAG = "EmergencyHooks";
private static final String PACKAGE_PHONE = XposedHook.PACKAGE_PHONE;
private static final String CLASS_EMERGENCY_DIALER = PACKAGE_PHONE + ".EmergencyDialer";
public static void hook(ClassLoader classLoader) {
try {
if (ConfigUtils.lockscreen().enable_emergency_info) {
Class classEmergencyDialer = XposedHelpers.findClass(CLASS_EMERGENCY_DIALER, classLoader);
XposedHelpers.findAndHookMethod(classEmergencyDialer, "onCreate", Bundle.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
Activity activity = (Activity) param.thisObject;
ViewGroup top = (ViewGroup) activity.findViewById(activity.getResources().getIdentifier("top", "id", PACKAGE_PHONE));
ViewGroup parent = ConfigUtils.M ? (ViewGroup) top.getChildAt(0) : top;
new EmergencyButtonWrapper(activity, parent); // No need to store the instance yet
}
});
}
} catch (Throwable t) {
XposedHook.logE(TAG, "Error in hook", t);
}
}
}