package com.jbvincey.instantappssample.helper; import android.content.Intent; import android.net.Uri; import com.jbvincey.instantappssample.BuildConfig; import com.jbvincey.instantappssample.constants.Constants; import com.jbvincey.instantappssample.model.Coordinates; /** * Created by jean-baptistevincey on 24/06/2017. */ public final class IntentHelper { private static final String PLAYSTORE_BASE_URL = "market://details?id="; private static final String PACKAGE_MAPS = "com.google.android.apps.maps"; private static final String COORDINATES_PREFIX = "geo:0,0?q="; private static final String COORDINATES_SEPARATOR = ","; private static final String SHARE_INTENT_TYPE = "text/plain"; private static final String MAILTO_URI = "mailto:"; public static Intent getMapsLocationItent(Coordinates coordinates) { Uri mapsUri = Uri.parse(buildCoordinatesUri(coordinates)); Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapsUri); mapIntent.setPackage(PACKAGE_MAPS); return mapIntent; } private static String buildCoordinatesUri(Coordinates coordinates) { return COORDINATES_PREFIX + coordinates.getLatitude() + COORDINATES_SEPARATOR + coordinates.getLongitude(); } public static Intent getContactIntent(String contact) { Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse(MAILTO_URI)); intent.putExtra(Intent.EXTRA_EMAIL, new String[]{contact}); return intent; } public static Intent getShareDetailUrlIntent(String tripId) { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType(SHARE_INTENT_TYPE); shareIntent.putExtra(Intent.EXTRA_TEXT, buildDetailUrl(tripId)); return shareIntent; } private static String buildDetailUrl(String tripId) { return Constants.BASE_URL + "/" + tripId; } public static Intent getInstantTripPlayStoreIntent() { return new Intent(Intent.ACTION_VIEW, buildPlayStoreUrl()); } private static Uri buildPlayStoreUrl() { return Uri.parse(PLAYSTORE_BASE_URL + BuildConfig.APPLICATION_ID); } }