OSDN Git Service

ちょっとだけ、preferenceの準備。
[gokigen/FujiCam.git] / app / src / main / java / net / osdn / gokigen / cameratest / logcat / LogCatExporter.java
1 package net.osdn.gokigen.cameratest.logcat;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.util.Log;
6 import android.view.View;
7 import android.widget.AdapterView;
8 import android.widget.ArrayAdapter;
9
10 import androidx.annotation.NonNull;
11
12 import net.osdn.gokigen.cameratest.ConfirmationDialog;
13 import net.osdn.gokigen.cameratest.R;
14
15 class LogCatExporter implements AdapterView.OnItemLongClickListener
16 {
17     private final String TAG = toString();
18     private final Activity activity;
19
20     LogCatExporter(@NonNull Activity context)
21     {
22         this.activity = context;
23
24     }
25
26     @Override
27     public boolean onItemLongClick(final AdapterView<?> adapterView, View view, int i, long l)
28     {
29         Log.v(TAG, "onItemLongClick()" );
30
31         ConfirmationDialog confirm = ConfirmationDialog.newInstance(activity);
32
33         confirm.show(R.string.dialog_confirm_title_output_log, R.string.dialog_confirm_message_output_log, new ConfirmationDialog.Callback() {
34             @Override
35             public void confirm()
36             {
37                 Log.v(TAG, "confirm()" );
38                 try {
39                     StringBuilder buf = new StringBuilder();
40                     ArrayAdapter<String> adapter = (ArrayAdapter<String>) adapterView.getAdapter();
41                     for (int index = 0; index < adapter.getCount(); index++)
42                     {
43                         buf.append(adapter.getItem(index));
44                         buf.append("\r\n");
45                     }
46
47                     Intent intent = new Intent();
48                     intent.setAction(Intent.ACTION_SEND);
49                     intent.setType("text/plain");
50                     intent.putExtra(Intent.EXTRA_TITLE, "debug log for " + activity.getString(R.string.app_name));
51                     intent.putExtra(Intent.EXTRA_TEXT, new String(buf));
52                     activity.startActivity(intent);
53
54                     // Toast.makeText(activity, adapter.getItem(adapter.getCount() - 1), Toast.LENGTH_SHORT).show();
55                 }
56                 catch (Exception e)
57                 {
58                     e.printStackTrace();
59                 }
60             }
61         });
62         return (true);
63     }
64 }