OSDN Git Service

ログデータを共有できるようにした。
authorMRSa <mrsa@myad.jp>
Sat, 13 Oct 2018 02:00:01 +0000 (11:00 +0900)
committerMRSa <mrsa@myad.jp>
Sat, 13 Oct 2018 02:00:01 +0000 (11:00 +0900)
app/src/main/java/net/osdn/gokigen/a01d/logcat/LogCatExporter.java [new file with mode: 0644]
app/src/main/java/net/osdn/gokigen/a01d/logcat/LogCatFragment.java
app/src/main/java/net/osdn/gokigen/a01d/logcat/LogCatUpdater.java
app/src/main/res/values-ja/strings.xml
app/src/main/res/values/strings.xml
build.gradle

diff --git a/app/src/main/java/net/osdn/gokigen/a01d/logcat/LogCatExporter.java b/app/src/main/java/net/osdn/gokigen/a01d/logcat/LogCatExporter.java
new file mode 100644 (file)
index 0000000..87452d0
--- /dev/null
@@ -0,0 +1,63 @@
+package net.osdn.gokigen.a01d.logcat;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.support.annotation.NonNull;
+import android.util.Log;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+
+import net.osdn.gokigen.a01d.ConfirmationDialog;
+import net.osdn.gokigen.a01d.R;
+
+class LogCatExporter implements AdapterView.OnItemLongClickListener
+{
+    private final String TAG = toString();
+    private final Activity activity;
+
+    LogCatExporter(@NonNull Activity context)
+    {
+        this.activity = context;
+
+    }
+
+    @Override
+    public boolean onItemLongClick(final AdapterView<?> adapterView, View view, int i, long l)
+    {
+        Log.v(TAG, "onItemLongClick()" );
+
+        ConfirmationDialog confirm = ConfirmationDialog.newInstance(activity);
+
+        confirm.show(R.string.dialog_confirm_title_output_log, R.string.dialog_confirm_message_output_log, new ConfirmationDialog.Callback() {
+            @Override
+            public void confirm()
+            {
+                Log.v(TAG, "confirm()" );
+                try {
+                    StringBuilder buf = new StringBuilder();
+                    ArrayAdapter<String> adapter = (ArrayAdapter<String>) adapterView.getAdapter();
+                    for (int index = 0; index < adapter.getCount(); index++)
+                    {
+                        buf.append(adapter.getItem(index));
+                        buf.append("\r\n");
+                    }
+
+                    Intent intent = new Intent();
+                    intent.setAction(Intent.ACTION_SEND);
+                    intent.setType("text/plain");
+                    intent.putExtra(Intent.EXTRA_TITLE, "debug log for " + activity.getString(R.string.app_name));
+                    intent.putExtra(Intent.EXTRA_TEXT, new String(buf));
+                    activity.startActivity(intent);
+
+                    // Toast.makeText(activity, adapter.getItem(adapter.getCount() - 1), Toast.LENGTH_SHORT).show();
+                }
+                catch (Exception e)
+                {
+                    e.printStackTrace();
+                }
+            }
+        });
+        return (true);
+    }
+}
index 533a0d3..30a467a 100644 (file)
@@ -1,5 +1,6 @@
 package net.osdn.gokigen.a01d.logcat;
 
+import android.app.Activity;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v4.app.FragmentActivity;
@@ -15,6 +16,7 @@ import android.widget.ArrayAdapter;
 import android.widget.ListView;
 import android.widget.Toast;
 
+
 import net.osdn.gokigen.a01d.R;
 
 import java.util.ArrayList;
@@ -172,6 +174,16 @@ public class LogCatFragment extends ListFragment
         super.onActivityCreated(savedInstanceState);
         Log.v(TAG, "LogCatFragment::onActivityCreated()");
         setHasOptionsMenu(true);
+
+        Activity activity = getActivity();
+        if (activity != null)
+        {
+            ListView view = getListView();
+            if (view != null)
+            {
+                getListView().setOnItemLongClickListener(new LogCatExporter(activity));
+            }
+        }
     }
 
     @Override
@@ -179,6 +191,7 @@ public class LogCatFragment extends ListFragment
     {
         adapter = new ArrayAdapter<>(inflater.getContext(), android.R.layout.simple_list_item_1, dataItems);
         setListAdapter(adapter);
+
         return (super.onCreateView(inflater, container, savedInstanceState));
     }
 }
index 57cc0d3..b8870cb 100644 (file)
@@ -1,6 +1,5 @@
 package net.osdn.gokigen.a01d.logcat;
 
-
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
index b22f8e3..3b78b83 100644 (file)
     <string name="pref_gr2_display_mode">ディスプレイモード</string>
     <string name="pref_gr2_lcd_sleep">接続中はカメラ画面OFF</string>
 
+    <string name="dialog_confirm_title_output_log">ログの共有</string>
+    <string name="dialog_confirm_message_output_log">デバッグログを共有します。</string>
 </resources>
index 302c3ad..e74a43c 100644 (file)
     <string name="pref_gr2_display_mode">Display Mode</string>
     <string name="pref_gr2_lcd_sleep">Screen off during connected</string>
 
+    <string name="dialog_confirm_title_output_log">Share debug log</string>
+    <string name="dialog_confirm_message_output_log">Share the debug log, OK?</string>
 </resources>
index 5327c43..ac0e385 100644 (file)
@@ -6,7 +6,7 @@ buildscript {
         google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.2.0'
+        classpath 'com.android.tools.build:gradle:3.2.1'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files