aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/ui/listeners/LogCatOutputCopyOnClickListener.java
blob: f71c67db7f08467eaddf908f82c05175c9fa9408 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package de.thedevstack.conversationsplus.ui.listeners;

import android.view.View;

import java.util.List;

import de.thedevstack.android.logcat.Logging;
import de.thedevstack.android.logcat.adapters.LogCatArrayAdapter;
import de.thedevstack.conversationsplus.utils.ClipboardUtil;

/**
 * OnClickListener to copy logcat entries from LogCatArrayAdapter to clipboard.
 */
public class LogCatOutputCopyOnClickListener implements View.OnClickListener {
    private final LogCatArrayAdapter logCatOutputAdapter;

    public LogCatOutputCopyOnClickListener(LogCatArrayAdapter logCatOutputAdapter) {
        this.logCatOutputAdapter = logCatOutputAdapter;
    }

    /**
     * Copies the entries of LogCatArrayAdapter separated by a new line to the clipboard.
     *
     * @param v The view that was clicked.
     */
    @Override
    public void onClick(View v) {
        Logging.d("copylogcat", "Start Copying log cat");
        List<String> items = this.logCatOutputAdapter.getItems();
        String textToCopy = null;
        if (null != items && !items.isEmpty()) {
            StringBuilder sb = new StringBuilder();
            for (String item : items) {
                sb.append(item);
                sb.append("\n");
            }
            textToCopy = sb.toString();
        }
        ClipboardUtil.copyToClipboard("c+logcat", textToCopy);
    }
}