package aws.apps.usbDeviceEnumerator.ui.usbinfo.fragments; import android.app.Activity; import android.content.Intent; import android.support.v4.app.ActivityCompat; import android.util.Log; import android.view.View; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; import aws.apps.usbDeviceEnumerator.R; /*package*/ class ShareUtils { private static final String TAG = ShareUtils.class.getSimpleName(); public static String getSharePayload(final ViewHolder holder) { final StringBuilder sb = new StringBuilder(); sb.append(tableToString(holder.getHeaderTable())); sb.append(tableToString(holder.getTopTable())); sb.append('\n'); sb.append(ShareUtils.tableToString(holder.getBottomTable())); return sb.toString(); } public static void share(final Activity activity, final String subject, final String text) { final Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, text); intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.addCategory(Intent.CATEGORY_DEFAULT); final Intent share = Intent.createChooser(intent, activity.getString(R.string.share_result_via)); ActivityCompat.startActivity(activity, share, null); } private static String tableToString(TableLayout t) { final StringBuilder sb = new StringBuilder(); if (t != null) { for (int i = 0; i <= t.getChildCount() - 1; i++) { final TableRow row = (TableRow) t.getChildAt(i); for (int j = 0; j <= row.getChildCount() - 1; j++) { final View v = row.getChildAt(j); try { if (v instanceof TextView) { final TextView textView = (TextView) v; sb.append(textView.getText()); if (j == 0) { sb.append(" "); } } } catch (Exception e) { sb.append(e.toString()); Log.e(TAG, "^ ERROR: tableToString: " + e.toString()); } } sb.append("\n"); } } return sb.toString(); } }