Fix parasitic manager state restore on 8.1 (#1725)

This commit is contained in:
LoveSy 2022-02-25 20:34:36 +08:00 committed by GitHub
parent bc8b4c69a5
commit 2ba199d68c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 11 deletions

View File

@ -142,17 +142,19 @@ public class ParasiticManagerHooker {
@Override @Override
protected void afterHookedMethod(MethodHookParam param) { protected void afterHookedMethod(MethodHookParam param) {
if (activityClientRecordClass.isInstance(param.thisObject)) { for (var i = 0; i < param.args.length; ++i) {
var aInfo = (ActivityInfo) XposedHelpers.getObjectField(param.thisObject, "activityInfo"); if (param.args[i] instanceof ActivityInfo) {
Hookers.logD("loading state of " + aInfo.name); var aInfo = (ActivityInfo) param.args[i];
states.computeIfPresent(aInfo.name, (k, v) -> { Hookers.logD("loading state of " + aInfo.name);
XposedHelpers.setObjectField(param.thisObject, "state", v); states.computeIfPresent(aInfo.name, (k, v) -> {
return v; XposedHelpers.setObjectField(param.thisObject, "state", v);
}); return v;
persistentStates.computeIfPresent(aInfo.name, (k, v) -> { });
XposedHelpers.setObjectField(param.thisObject, "persistentState", v); persistentStates.computeIfPresent(aInfo.name, (k, v) -> {
return v; XposedHelpers.setObjectField(param.thisObject, "persistentState", v);
}); return v;
});
}
} }
} }
}; };