OSDN Git Service

CSV形式でエクスポートする部分を改修。
authorMRSa <mrsa@myad.jp>
Mon, 1 May 2023 11:38:22 +0000 (20:38 +0900)
committerMRSa <mrsa@myad.jp>
Mon, 1 May 2023 11:38:22 +0000 (20:38 +0900)
app/src/main/java/jp/sourceforge/gokigen/memoma/extension/ExtensionActivityListener.java
app/src/main/java/jp/sourceforge/gokigen/memoma/io/MeMoMaFileExportCsvProcess.java
app/src/main/java/jp/sourceforge/gokigen/memoma/io/MeMoMaFileImportCsvProcess.java

index 2405ee2..f06b465 100644 (file)
@@ -1,6 +1,5 @@
 package jp.sourceforge.gokigen.memoma.extension;
 
-import java.io.File;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -13,7 +12,6 @@ import android.app.Activity;
 import android.app.Dialog;
 import android.content.Intent;
 import android.net.Uri;
-import androidx.core.content.FileProvider;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -27,7 +25,6 @@ import android.widget.Toast;
 
 import jp.sourceforge.gokigen.memoma.holders.PositionObject;
 import jp.sourceforge.gokigen.memoma.dialogs.FileSelectionDialog;
-import jp.sourceforge.gokigen.memoma.Main;
 import jp.sourceforge.gokigen.memoma.io.MeMoMaFileExportCsvProcess;
 import jp.sourceforge.gokigen.memoma.io.MeMoMaFileImportCsvProcess;
 import jp.sourceforge.gokigen.memoma.io.MeMoMaFileLoadingProcess;
@@ -53,7 +50,7 @@ public class ExtensionActivityListener  implements OnClickListener, MeMoMaFileLo
     private static final String EXTENSION_DIRECTORY = "/exported";
     
     //private ExternalStorageFileUtility fileUtility;
-       private MeMoMaObjectHolder objectHolder;
+       private final MeMoMaObjectHolder objectHolder;
        private FileSelectionDialog fileSelectionDialog = null;
        
        private boolean isShareExportedData = false;
@@ -393,7 +390,7 @@ public class ExtensionActivityListener  implements OnClickListener, MeMoMaFileLo
      *    ファイルのエクスポート結果を受け取る
      * 
      */
-    public void onExportedResult(String exportedFileName, String detail)
+    public void onExportedResult(Uri documentUri, String detail)
     {
                Log.v(TAG, "ExtensionActivityListener::onExportedResult() '"  + objectHolder.getDataTitle() +"' : " + detail);
 
@@ -404,7 +401,7 @@ public class ExtensionActivityListener  implements OnClickListener, MeMoMaFileLo
         if (isShareExportedData)
         {
                // エクスポートしたファイルを共有する
-            shareContent(exportedFileName);
+            shareContent(documentUri);
         }
        isShareExportedData = false;
     }
@@ -443,10 +440,8 @@ public class ExtensionActivityListener  implements OnClickListener, MeMoMaFileLo
     
     /**
      *    エクスポートしたファイルを共有する
-     * 
-     *
      */
-    private void shareContent(String fileName)
+    private void shareContent(Uri documentUri)
     {
        String message = "";
         try
@@ -465,12 +460,11 @@ public class ExtensionActivityListener  implements OnClickListener, MeMoMaFileLo
             message = message + "number of objects : " + objectHolder.getCount() + "\n";
 
             // Share Intentを発行する。
-            Uri fileURI = FileProvider.getUriForFile(parent,"jp.sourceforge.gokigen.memoma.fileprovider", new File(fileName));
-            SharedIntentInvoker.shareContent(parent, MENU_ID_SHARE, title, message, fileURI, "text/plain");
+            SharedIntentInvoker.shareContent(parent, MENU_ID_SHARE, title, message, documentUri, "text/plain");
         }
         catch (Exception ex)
         {
-            Log.v(TAG, "shareContent (fileName : " + fileName + ")");
+            Log.v(TAG, "shareContent (fileName : " + objectHolder.getDataTitle() + ")");
             ex.printStackTrace();
         }
     }
index 181377a..f84e2fa 100644 (file)
@@ -34,7 +34,7 @@ public class MeMoMaFileExportCsvProcess extends AsyncTask<MeMoMaObjectHolder, In
     private final String TAG = toString();
     private final Context context;
     private final IResultReceiver receiver;
-    private String exportedFileName = null;
+    private Uri documentUri;
 
     private final ProgressDialog savingDialog;
 
@@ -82,7 +82,7 @@ public class MeMoMaFileExportCsvProcess extends AsyncTask<MeMoMaObjectHolder, In
             // エクスポートするファイル名を決定する
             Calendar calendar = Calendar.getInstance();
             SimpleDateFormat outFormat = new SimpleDateFormat("yyyyMMdd_HHmmss_", Locale.US);
-            exportedFileName =  outFormat.format(calendar.getTime()) + baseName + ".csv";
+            String exportedFileName =  outFormat.format(calendar.getTime()) + baseName + ".csv";
 
             Uri extStorageUri;
             ContentValues values = new ContentValues();
@@ -103,7 +103,7 @@ public class MeMoMaFileExportCsvProcess extends AsyncTask<MeMoMaObjectHolder, In
             }
             Log.v(TAG, "---------- " + exportedFileName + " " + values);
 
-            Uri documentUri = resolver.insert(extStorageUri, values);
+            documentUri = resolver.insert(extStorageUri, values);
 
             if (documentUri == null)
             {
@@ -206,7 +206,7 @@ public class MeMoMaFileExportCsvProcess extends AsyncTask<MeMoMaObjectHolder, In
         {
             if (receiver != null)
             {
-                receiver.onExportedResult(exportedFileName, result);
+                receiver.onExportedResult(documentUri, result);
             }
         }
         catch (Exception ex)
@@ -226,6 +226,6 @@ public class MeMoMaFileExportCsvProcess extends AsyncTask<MeMoMaObjectHolder, In
     public interface IResultReceiver
     {
         /**  保存結果の報告 **/
-        void onExportedResult(String exportedFileName, String detail);
+        void onExportedResult(Uri documentUri, String detail);
     }
 }
index 22fde52..e79e2d8 100644 (file)
@@ -6,6 +6,7 @@ import java.io.FileReader;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.net.Uri;
 import android.os.AsyncTask;
 import android.preference.PreferenceManager;
 import android.util.Log;
@@ -307,6 +308,6 @@ public class MeMoMaFileImportCsvProcess extends AsyncTask<MeMoMaObjectHolder, In
     public interface IResultReceiver
     {
         /**  保存結果の報告 **/
-        public abstract void onImportedResult(String detail);
+        void onImportedResult(String fileName);
     }
 }