package io.selendroid.server.util; import android.content.Context; import android.content.Intent; import android.net.Uri; /** * A helper class for working with intents */ public class Intents { /** * Create an intent to start an activity, for both ServerInstrumentation and LightweightInstrumentation */ public static Intent createStartActivityIntent(Context context, String mainActivityName) { Intent intent = new Intent(); intent.setClassName(context, mainActivityName); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); return intent; } /** * Create an implicit intent based on the given URI. */ public static Intent createUriIntent(String intentAction, String intentUri) { if (intentAction == null) { intentAction = Intent.ACTION_VIEW; } return new Intent(intentAction, Uri.parse(intentUri)) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); } /** * Create an Intent to start a service using the given class name and action. */ public static Intent createStartServiceIntent( Context context, String serviceClassName, String intentAction) { Intent intent = intentAction != null ? new Intent(intentAction) : new Intent(); return intent.setClassName(context, serviceClassName); } }