diff --git a/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java b/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java index 4c4e634..fe73e86 100644 --- a/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java +++ b/app/src/main/java/org/ntlab/irisclient/MemberRoomActivity.java @@ -5,6 +5,9 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.RecyclerView; +import android.content.ClipData; +import android.content.ClipDescription; +import android.content.ClipboardManager; import android.content.Intent; import android.os.Bundle; import android.view.View; @@ -21,6 +24,7 @@ import org.ntlab.irisclient.entities.RoomJson; import org.ntlab.irisclient.models.Member; +import org.ntlab.irisclient.models.Settings; import org.ntlab.irisclient.viewmodels.RoomViewModel; import java.util.ArrayList; @@ -148,6 +152,8 @@ copyButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + CopyClipBoard(); + CreateCommonIntent(); Snackbar.make(v, "コピーしました", Snackbar.LENGTH_LONG).show(); } }); @@ -170,8 +176,61 @@ TextView RoomIdText = findViewById(R.id.roomID); RoomIdText.setText(roomId); + roomViewModel.start(500,(Iris)getApplication()); } + public void CopyClipBoard() { + String copyText = roomId; // 作成したレース結果を取得 + + // クリップボードへの格納成功時は成功メッセージをトーストで表示 + boolean result = SetClipData(copyText); + if(result) { + + } else { + + } + } + + private boolean SetClipData(String copyText) { + try { + //クリップボードに格納するItemを作成 + ClipData.Item item = new ClipData.Item(copyText); + + //MIMETYPEの作成 + String[] mimeType = new String[1]; + mimeType[0] = ClipDescription.MIMETYPE_TEXT_URILIST; + + //クリップボードに格納するClipDataオブジェクトの作成 + ClipData cd = new ClipData(new ClipDescription("text_data", mimeType), item); + + //クリップボードにデータを格納 + ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + cm.setPrimaryClip(cd); + return true; + } + catch(Exception e) { + return false; + } + } + + private void CreateCommonIntent() { + //システムのクリップボードを取得 + ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); + + //クリップボードからClipDataを取得 + ClipData cd = cm.getPrimaryClip(); + + if(cd != null) { // クリップボードにコピーがある場合 + ClipData.Item item = cd.getItemAt(0); + Intent sendIntent =new Intent(); + sendIntent.setAction(Intent.ACTION_SEND); + sendIntent.setType("text/plain"); + sendIntent.putExtra(sendIntent.EXTRA_TEXT, item.getText()); // メモ帳のテキスト欄、メールアプリの本文にテキストをセット + startActivity(sendIntent); // 共有メニューを開く + } + } + + } \ No newline at end of file