[Demonstration 1]

[Buggy Method]
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.settings);
    SystemBarTintManager tintManager = new SystemBarTintManager(this);
    // enable status bar tint
    tintManager.setStatusBarTintEnabled(true);
    tintManager.setTintColor(getResources().getColor(R.color.primary_color_dark));
    final MultiSelectListPreference initialChannelList = (MultiSelectListPreference) findPreference("initial_channels");
    ArrayList<String> channels = new ArrayList<String>(chatroomManager.getOfficialChannels());
    Collections.sort(channels);
    String[] defaults = { "Frontpage" };
    ArrayList<String> defaultChannels = new ArrayList<String>(Arrays.asList(defaults));
    initialChannelList.setEntries(channels.toArray(new String[channels.size()]));
    initialChannelList.setEntryValues(channels.toArray(new String[channels.size()]));
    initialChannelList.setDefaultValue(defaultChannels.toArray());
    /*initialChannelList.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                String title = getString(R.string.title_initial_channel);
                title += ": " + newValue.toString();

                initialChannelList.setTitle(title);
                return true;
            }
        });*/
    if (sessionData.getSessionSettings().getInitialChannel() != null) {
        initialChannelList.setValues(sessionData.getSessionSettings().getInitialChannel());
    }
    String title = getString(R.string.title_initial_channel);
    //title += ": " + sessionData.getSessionSettings().getInitialChannel();
    initialChannelList.setTitle(title);
    final MultiSelectListPreference initialPrivChannelList = (MultiSelectListPreference) findPreference("initial_private_channels");
    ArrayList<String> privChannels = new ArrayList<String>(chatroomManager.getPrivateChannelNames());
    Collections.sort(privChannels);
    ArrayList<String> privChannelIDs = new ArrayList<>();
    for (int i = 0; i < privChannels.size(); i++) {
        String channelID = chatroomManager.getPrivateChannelByName(privChannels.get(i)).getChannelId();
        privChannelIDs.add(channelID);
    }
    String[] privDefaults = { "ADH-e16df7b19f4a38938ee0" };
    ArrayList<String> defaultPrivChannels = new ArrayList<String>(Arrays.asList(privDefaults));
    initialPrivChannelList.setEntries(privChannels.toArray(new String[privChannels.size()]));
    initialPrivChannelList.setEntryValues(privChannelIDs.toArray(new String[privChannelIDs.size()]));
    initialPrivChannelList.setDefaultValue(defaultPrivChannels.toArray());
    if (sessionData.getSessionSettings().getInitialPrivateChannel() != null) {
        initialPrivChannelList.setValues(sessionData.getSessionSettings().getInitialPrivateChannel());
    }
    String privTitle = getString(R.string.title_initial_private_channel);
    initialPrivChannelList.setTitle(privTitle);
    /*final ListPreference textSizeList = (ListPreference)findPreference("chat_text_size");

        textSizeList.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                String title = getString(R.string.title_chat_text_size);
                // Find the right entry fitting to the value
                CharSequence[] values = textSizeList.getEntryValues();
                for (int i = 0; i < values.length; i++) {
                    if (values[i].equals(newValue)) {
                        title += ": " + textSizeList.getEntries()[i];
                    }
                }
                textSizeList.setTitle(title);
                return true;
            }
        });

        title = getString(R.string.title_chat_text_size);
        title += ": " + textSizeList.getEntry();
        textSizeList.setTitle(title);*/
    Preference button = findPreference("button");
    button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            FlistAlertDialog dialog = new FlistAlertDialog(Settings.this, Settings.this.getResources().getString(R.string.question_delete_log)) {

                @Override
                public void onYes() {
                    Ln.d("Clear history!");
                    historyManager.clearHistory(true);
                }
            };
            dialog.show();
            return true;
        }
    });
}

[Buggy Hunk]
FlistAlertDialog dialog = new FlistAlertDialog(Settings.this, Settings.this.getResources().getString(R.string.question_delete_log)) {

[Patch]
@SuppressLint("ValidFragment") FlistAlertDialog dialog = new FlistAlertDialog(Settings.this, Settings.this.getResources().getString(R.string.question_delete_log)) {

[Demonstration 2]

[Buggy Method]
public Error isUsernameAvailable(String username) {
    varSQL = "SELECT * " + "FROM Users " + "WHERE User = " + "'" + username.toLowerCase() + "'";
    try {
        if (!queryDatabase(varSQL).absolute(1)) {
            return Error.USERNAME_NOT_AVAILABLE;
        } else {
            return Error.NO_ERROR;
        }
    } catch (SQLException e) {
        return Error.DATABASE_ERROR;
    }
}

[Buggy Hunk]
if(!queryDatabase(varSQL).absolute(1)){return Error.USERNAME_NOT_AVAILABLE;}

[Patch]
if(queryDatabase(varSQL).absolute(1)){System.out.println("in the error");return Error.USERNAME_NOT_AVAILABLE;}

[Demonstration 3]

[Buggy Method]
public int getNonSecretChannels() {
    int channels = 0;
    for (Channel channel : this.channels) if (!channel.getMode(ChannelMode.SECRET))
        channels++;
    return channels;
}

[Buggy Hunk]
for (Channel channel : this.channels)

[Patch]
for (Channel channel : this.getChannels())