OSDN Git Service

CSVファイルの共有を実施。
[gokigen/MeMoMa.git] / app / src / main / java / jp / sourceforge / gokigen / memoma / SharedIntentInvoker.java
1 package jp.sourceforge.gokigen.memoma;
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.net.Uri;
6 import android.util.Log;
7 import android.widget.Toast;
8
9 /**
10  *   共有Intentを発行するクラス。
11  * 
12  * @author MRSa
13  *
14  */
15 public class SharedIntentInvoker
16 {
17         private static final String  IDENTIFIER = "Gokigen";
18         
19     /**
20      *    メール送信用のIntentを発行する処理。
21      * @param parent   呼び出し元Activity
22      * @param id          Intentが呼び出し元Activityに戻った時に、呼ばれていたのは何か識別するID
23      * @param mailTitle         共有データタイトル
24      * @param mailMessage   共有データ本文
25      * @param contentUri         添付データファイルのURI
26      * @param fileType           添付データファイルの形 (text/plain とか  image/* とか ...)
27      */
28     static public void shareContent(Activity parent, int id, String mailTitle, String mailMessage, Uri contentUri, String fileType)
29     {
30         Intent intent = new Intent();
31         intent.setAction(Intent.ACTION_SEND);
32         try
33         {
34             Log.v(IDENTIFIER, "Share Content... " + contentUri);
35             intent.setType("text/plain");
36             intent.putExtra(Intent.EXTRA_SUBJECT, mailTitle);
37             intent.putExtra(Intent.EXTRA_TEXT, mailMessage);
38             intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
39             try
40             {
41                 if ((contentUri != null)&&(!fileType.isEmpty()))
42                 {
43                         // ファイル類を添付する
44                     intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
45                     intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION);
46                     intent.setType(fileType);
47                     intent.putExtra(Intent.EXTRA_STREAM, contentUri);
48                     Log.v(IDENTIFIER, "Attached :" + contentUri);
49                 }
50             }
51             catch (Exception ee)
52             {
53                 // 
54                 Log.v(IDENTIFIER, "attach failure : " + contentUri + "  " + ee.toString() + " " + ee.getMessage());
55             }
56             parent.startActivityForResult(intent, id);                  
57         }
58         catch (android.content.ActivityNotFoundException ex)
59         {
60             Toast.makeText(parent, "" + ex.getMessage(), Toast.LENGTH_SHORT).show();
61             Log.v(IDENTIFIER, "android.content.ActivityNotFoundException : " + ex.toString() + " " + ex.getMessage());
62         }
63         catch (Exception e)
64         {
65             Log.v(IDENTIFIER, "xxx : " + e.toString() + " " + e.getMessage());
66             e.printStackTrace();
67         }
68     }
69 }