1 package expo.modules.apploader; 2 3 import android.content.Context; 4 5 import expo.modules.core.interfaces.Consumer; 6 7 public interface HeadlessAppLoader { 8 9 class AppConfigurationError extends Exception { 10 AppConfigurationError(String message)11 public AppConfigurationError(String message) { 12 super(message); 13 } 14 AppConfigurationError(String message, Exception cause)15 public AppConfigurationError(String message, Exception cause) { 16 super(message, cause); 17 } 18 } 19 loadApp(Context context, Params params, Runnable alreadyRunning, Consumer<Boolean> callback)20 void loadApp(Context context, Params params, Runnable alreadyRunning, Consumer<Boolean> callback) throws AppConfigurationError; 21 invalidateApp(String appScopeKey)22 boolean invalidateApp(String appScopeKey); 23 isRunning(String appScopeKey)24 boolean isRunning(String appScopeKey); 25 26 final class Params { 27 private final String appScopeKey; 28 private final String appUrl; 29 Params(String appScopeKey, String appUrl)30 public Params(String appScopeKey, String appUrl) { 31 this.appScopeKey = appScopeKey; 32 this.appUrl = appUrl; 33 } 34 getAppScopeKey()35 public String getAppScopeKey() { 36 return appScopeKey; 37 } 38 getAppUrl()39 public String getAppUrl() { 40 return appUrl; 41 } 42 43 } 44 45 } 46