1 // Copyright 2015-present 650 Industries. All rights reserved. 2 package host.exp.exponent.kernel.services.linking 3 4 import android.net.Uri 5 import host.exp.exponent.Constants 6 import host.exp.exponent.kernel.KernelConstants.ExperienceOptions 7 import host.exp.exponent.kernel.KernelProvider 8 9 class LinkingKernelService { openURInull10 fun openURI(uri: Uri) { 11 val manifestUrl = 12 if (Constants.isStandaloneApp()) Constants.INITIAL_URL.toString() else uri.toString() 13 KernelProvider.instance 14 .openExperience(ExperienceOptions(manifestUrl, uri.toString(), null)) 15 } 16 canOpenURInull17 fun canOpenURI(uri: Uri): Boolean { 18 val scheme = uri.scheme 19 if (scheme == "exp" || scheme == "exps") { 20 return true 21 } 22 if (Constants.SHELL_APP_SCHEME != null && Constants.SHELL_APP_SCHEME == scheme) { 23 return true 24 } 25 val host = uri.host 26 return host != null && (host == "exp.host" || host == "exp.direct" || host.endsWith("exp.direct")) 27 } 28 } 29