package droidkit.app; import android.app.SearchManager; import android.content.Intent; import android.net.Uri; import android.os.Parcelable; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; /** * @author Daniel Serdyukov */ public final class CommonIntent { private CommonIntent() { } @NonNull public static Intent openUrl(@NonNull String url) { return new Intent(Intent.ACTION_VIEW, Uri.parse(url)); } @NonNull public static Intent search(@NonNull String query) { final Intent intent = new Intent(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY, query); return intent; } @NonNull public static Intent sendEmail(@NonNull String[] to, @NonNull String subject, @NonNull String body, @Nullable List<Uri> attachments) { final Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.setType("message/rfc822"); intent.putExtra(Intent.EXTRA_EMAIL, to); intent.putExtra(Intent.EXTRA_SUBJECT, subject); final ArrayList<CharSequence> extraText = new ArrayList<>(1); extraText.add(body); intent.putCharSequenceArrayListExtra(Intent.EXTRA_TEXT, extraText); if (attachments != null && !attachments.isEmpty()) { intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, new ArrayList<Parcelable>(attachments)); } return intent; } @NonNull public static Intent sendSms(@NonNull String to, @NonNull String message) { final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" + to)); intent.putExtra("sms_body", message); return intent; } @NonNull public static Intent openContent(@NonNull Uri uri) { final Intent intent = new Intent(Intent.ACTION_VIEW, uri); final String mime = URLConnection.guessContentTypeFromName(uri.toString()); if (!TextUtils.isEmpty(mime)) { intent.setType(mime); } return intent; } @NonNull public static Intent openDialer(@NonNull String number) { return new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + number)); } }