aboutsummaryrefslogtreecommitdiffstats
path: root/libs/thedevstacklogcat/src/main/java/de/thedevstack/android/logcat/ui/LogCatOutputCopyOnClickListener.java
blob: 6568a2c5ad34927c47afe814e7cfcfbf9ed09355 (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
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.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 resIdForToast;

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

    @Override
    public void onClick(View v) {
        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.resIdForToast), Toast.LENGTH_LONG).show();
        }
    }
}