package com.lody.virtual.client.hook.patchs.am; import java.lang.reflect.Method; import java.util.List; import com.lody.virtual.client.hook.base.Hook; import com.lody.virtual.client.ipc.VActivityManager; import com.lody.virtual.helper.proto.AppTaskInfo; import android.app.ActivityManager; /** * @author Lody * * @see android.app.IActivityManager#getTasks(int, int) * */ @SuppressWarnings("unchecked") /* package */ class GetTasks extends Hook { @Override public String getName() { return "getTasks"; } @Override public Object call(Object who, Method method, Object... args) throws Throwable { List<ActivityManager.RunningTaskInfo> runningTaskInfos = (List<ActivityManager.RunningTaskInfo>) method .invoke(who, args); for (ActivityManager.RunningTaskInfo info : runningTaskInfos) { AppTaskInfo taskInfo = VActivityManager.get().getTaskInfo(info.id); if (taskInfo != null) { info.topActivity = taskInfo.topActivity; info.baseActivity = taskInfo.baseActivity; } } return runningTaskInfos; } @Override public boolean isEnable() { return isAppProcess(); } }