[Demonstration 1]

[Buggy Method]
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getPreferenceManager().setSharedPreferencesMode(MODE_WORLD_READABLE);
    addPreferencesFromResource(R.xml.preferences);
    Preference manageApps = findPreference("manage_apps");
    manageApps.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent(SettingsActivity.this, CustomizeApps.class);
            startActivity(intent);
            return false;
        }
    });
    Preference manageKeywords = findPreference("manage_keywords");
    manageKeywords.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent(SettingsActivity.this, CustomizeKeywords.class);
            startActivity(intent);
            return false;
        }
    });
    Preference manageCommands = findPreference("manage_commands");
    manageCommands.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent(SettingsActivity.this, CustomizeCommands.class);
            startActivity(intent);
            return false;
        }
    });
    Preference instructions = findPreference("instructions");
    instructions.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            String instructionsString = getString(R.string.instructions1) + "\n\n" + getString(R.string.instructions2) + "\n\n" + getString(R.string.instructions3) + "\n\n" + getString(R.string.instructions4);
            String instructionsTitle = getString(R.string.instructions_title);
            new AlertDialog.Builder(SettingsActivity.this).setMessage(instructionsString).setTitle(instructionsTitle).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                }
            }).show();
            return false;
        }
    });
    Preference nativeRootDetection = findPreference("native_root_detection");
    nativeRootDetection.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent(SettingsActivity.this, NativeRootDetection.class);
            startActivity(intent);
            return false;
        }
    });
    Preference appLauncherIcon = findPreference("app_launcher_icon");
    appLauncherIcon.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            PackageManager packageManager = getPackageManager();
            int state = (boolean) newValue ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
            String settings = Common.PACKAGE_NAME + ".Settings";
            ComponentName alias = new ComponentName(SettingsActivity.this, settings);
            packageManager.setComponentEnabledSetting(alias, state, PackageManager.DONT_KILL_APP);
            return true;
        }
    });
    Preference about = findPreference("about");
    about.setSummary("RootCloak v" + BuildConfig.VERSION_NAME);
}

[Buggy Hunk]
String settings = Common.PACKAGE_NAME + ".Settings";

[Patch]
String settings = SettingsActivity.class.getPackage().getName() + ".Settings";

[Demonstration 2]

[Buggy Method]
public static void logout(final Context context) {
    final AccountsProxy accountsProxy = AccountsProxyHolder.get(context);
    accountsProxy.removeOnAccountsUpdatedListener(AccountsChangedListener.getInstance(context));
    if (Accounts.getAccount(context) != null) {
        accountsProxy.addOnAccountsUpdatedListener(AccountsChangedListener.getInstance(context));
        accountsProxy.clearCookies();
        Accounts.removeAccount(context);
    }
}

[Buggy Hunk]
accountsProxy.clearCookies();

[Patch]
accountsProxy.clearCookies(context);

[Demonstration 3]

[Buggy Method]
public void syncPost(Context context, String url, Map<String, Object> parameters, HttpCallback callback) {
    this.mContext = context;
    FormBody.Builder builder = new FormBody.Builder();
    if (parameters != null && parameters.size() > 0) {
        for (Map.Entry<String, Object> map : parameters.entrySet()) {
            builder.add(map.getKey(), String.valueOf(map.getValue()));
        }
    }
    Request request = new Request.Builder().url(url).post(builder.build()).build();
    Call call = getOkHttpClient().newCall(request);
    try {
        Response response = call.execute();
        if (response.isSuccessful()) {
            callback.onSuccess(response.body().string());
        } else {
            callback.onFailure("failure", response.message());
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

[Buggy Hunk]
callback.onSuccess(response.body().string());

[Patch]
callback.onResolve(response.body().string());