Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.stirante.quizcheat;
- import android.view.View;
- import android.widget.CheckBox;
- import android.widget.CompoundButton;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.List;
- import de.robv.android.xposed.XC_MethodHook;
- import de.robv.android.xposed.XposedHelpers;
- import de.robv.android.xposed.callbacks.XC_LoadPackage;
- public class Groups {
- private static ArrayList<Group> groups = new ArrayList<>();
- public static void handleLoadPackage(final XC_LoadPackage.LoadPackageParam packageParam) throws Throwable {
- groups.add(new Group("Snapprefs Team", "snapprefs", "mr.yawnie"));
- final Class<?> Friend = XposedHelpers.findClass("com.snapchat.android.model.Friend", packageParam.classLoader);
- final Class<?> Ly = XposedHelpers.findClass("Ly", packageParam.classLoader);
- XposedHelpers.findAndHookMethod("OI", packageParam.classLoader, "a", new XC_MethodHook() {
- @Override
- protected void afterHookedMethod(MethodHookParam param) throws Throwable {
- ArrayList result = (ArrayList) param.getResult();
- ArrayList newResult = new ArrayList();
- Object edit = XposedHelpers.newInstance(Ly, "edit", "Edit groups");
- XposedHelpers.setAdditionalInstanceField(edit, "editGroups", true);
- newResult.add(edit);
- for (Group g : groups) {
- Object group = XposedHelpers.newInstance(Ly, "group_" + g.name, g.name);
- XposedHelpers.setAdditionalInstanceField(group, "group", g);
- newResult.add(group);
- }
- newResult.addAll(result);
- param.setResult(newResult);
- }
- });
- XposedHelpers.findAndHookMethod("IE", packageParam.classLoader, "a", XposedHelpers.findClass("android.support.v7.widget.RecyclerView$u", packageParam.classLoader), int.class, new XC_MethodHook() {
- @Override
- protected void afterHookedMethod(final MethodHookParam param) throws Throwable {
- Object element = XposedHelpers.callMethod(XposedHelpers.getObjectField(param.thisObject, "f"), "get", param.args[1]);
- if (XposedHelpers.getAdditionalInstanceField(element, "editGroups") != null) {
- CheckBox k = (CheckBox) XposedHelpers.getObjectField(param.args[0], "k");
- k.setVisibility(View.GONE);
- k.setOnCheckedChangeListener(null);
- k.setOnClickListener(null);
- ((View) XposedHelpers.getObjectField(param.args[0], "a")).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- NotificationUtil.showMessage("Editing groups", 0xFF00FF00, 4000, packageParam.classLoader);
- }
- });
- }
- final Group group = (Group) XposedHelpers.getAdditionalInstanceField(element, "group");
- if (group == null) return;
- HashMap<String, Boolean> checks = (HashMap<String, Boolean>) XposedHelpers.getAdditionalInstanceField(param.thisObject, "checks");
- if (checks == null) {
- checks = new HashMap<>();
- XposedHelpers.setAdditionalInstanceField(param.thisObject, "checks", checks);
- }
- //Here change this color if you want
- // ((View) XposedHelpers.getObjectField(param.args[0], "a")).setBackgroundColor(0xFF66FA77);
- final CheckBox check = (CheckBox) XposedHelpers.getObjectField(param.args[0], "k");
- if (!checks.containsKey(group.name)) {
- checks.put(group.name, false);
- }
- else {
- check.setOnCheckedChangeListener(null);
- check.setChecked(checks.get(group.name));
- }
- final HashMap<String, Boolean> finalChecks = checks;
- check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- finalChecks.put(group.name, isChecked);
- List f = (List) XposedHelpers.getObjectField(param.thisObject, "f");
- for (String user : group.users) {
- for (Object ii : f) {
- if (Friend.isInstance(ii) && ((String) XposedHelpers.getObjectField(ii, "mUsername")).equalsIgnoreCase(user)) {
- XposedHelpers.callMethod(XposedHelpers.getObjectField(param.thisObject, "k"), "a", new Class[]{int.class, XposedHelpers.findClass("II", packageParam.classLoader), boolean.class}, XposedHelpers.callMethod(param.args[0], "e"), ii, isChecked);
- break;
- }
- }
- }
- }
- });
- }
- });
- }
- static class Group {
- public String name;
- public ArrayList<String> users = new ArrayList<>();
- public Group(String name, String... users) {
- this.name = name;
- Collections.addAll(this.users, users);
- }
- }
- }
Add Comment
Please, Sign In to add comment