package com.quran.labs.androidquran.util; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.support.annotation.StringRes; import android.widget.Toast; import com.quran.labs.androidquran.R; import com.quran.labs.androidquran.common.QuranText; import com.quran.labs.androidquran.data.QuranInfo; import java.util.List; public class ShareUtil { public static void copyVerses(Activity activity, List<QuranText> verses) { String text = getShareText(activity, verses); ClipboardManager cm = (ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText(activity.getString(R.string.app_name), text); cm.setPrimaryClip(clip); Toast.makeText(activity, activity.getString(R.string.ayah_copied_popup), Toast.LENGTH_SHORT).show(); } public static void shareVerses(Activity activity, List<QuranText> verses) { String text = getShareText(activity, verses); shareViaIntent(activity, text, R.string.share_ayah_text); } public static void shareViaIntent(Activity activity, String text, @StringRes int titleResId) { final Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, text); activity.startActivity(Intent.createChooser(intent, activity.getString(titleResId))); } private static String getShareText(Activity activity, List<QuranText> verses) { final int size = verses.size(); StringBuilder sb = new StringBuilder("("); for (int i = 0; i < size; i++) { sb.append(verses.get(i).text); if (i + 1 < size) { sb.append(" * "); } } // append ) and a new line after last ayah sb.append(")\n"); // append [ before sura label sb.append("["); final QuranText firstAyah = verses.get(0); sb.append(QuranInfo.getSuraName(activity, firstAyah.sura, true)); sb.append(" "); sb.append(firstAyah.ayah); if (size > 1) { final QuranText lastAyah = verses.get(size - 1); sb.append(" - "); if (firstAyah.sura != lastAyah.sura) { sb.append(QuranInfo.getSuraName(activity, lastAyah.sura, true)); sb.append(" "); } sb.append(lastAyah.ayah); } // close sura label and append two new lines sb.append("]\n\n"); sb.append(activity.getString(R.string.via_string)); return sb.toString(); } }