aboutsummaryrefslogtreecommitdiffstats
path: root/libs/thedevstacklogcat/src/main/java/de/thedevstack/android/logcat/ui/LogCatOutputCopyOnClickListener.java
blob: 1be04c9c3fd4c6b5cc524909da007bd8e4286fa6 (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
42
43
44
45
46
47
48
package de.thedevstack.android.logcat.ui;

import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.view.View;
import android.widget.Toast;

import java.util.ArrayList;

import de.thedevstack.android.logcat.Logging;
import de.thedevstack.android.logcat.adapters.LogCatArrayAdapter;

/**
 * Created by tzur on 20.11.2015.
 */
public class LogCatOutputCopyOnClickListener implements View.OnClickListener {
    private final LogCatArrayAdapter logCatOutputAdapter;
    private final Context context;
    private final int resIdLogcatCopied;
    private final int resIdLogcatNotCopied;

    public LogCatOutputCopyOnClickListener(Context context, LogCatArrayAdapter logCatOutputAdapter, int resIdLogcatCopied, int resIdLogcatNotCopied) {
        this.logCatOutputAdapter = logCatOutputAdapter;
        this.context = context;
        this.resIdLogcatCopied = resIdLogcatCopied;
        this.resIdLogcatNotCopied = resIdLogcatNotCopied;
    }

    @Override
    public void onClick(View v) {
        Logging.d("copylogcat", "Start Copying log cat");
        ArrayList<String> items = this.logCatOutputAdapter.getItems();
        if (null != items && !items.isEmpty()) {
            StringBuilder sb = new StringBuilder();
            for (String item : items) {
                sb.append(item);
                sb.append("\n");
            }
            ClipboardManager clipboard = (ClipboardManager) this.context.getSystemService(Context.CLIPBOARD_SERVICE);
            ClipData clip = ClipData.newPlainText("c+logcat", sb.toString());
            clipboard.setPrimaryClip(clip);
            Toast.makeText(this.context, this.context.getText(this.resIdLogcatCopied), Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(this.context, this.context.getText(this.resIdLogcatNotCopied), Toast.LENGTH_LONG).show();
        }
    }
}