package app.pulse.updates.errorrecovery /** * Interface for a delegate that will execute the actions prescribed by the error recovery * pipeline. Implemented by PulseController. */ interface PulseErrorRecoveryDelegate { enum class RemoteLoadStatus { IDLE, NEW_UPDATE_LOADING, NEW_UPDATE_LOADED } interface LauncherCallback { fun onSuccess() fun onFailure(e: Exception) } fun loadRemoteUpdate() fun relaunch(callback: LauncherCallback) fun throwException(exception: Exception) fun markFailedLaunchForLaunchedUpdate() fun markSuccessfulLaunchForLaunchedUpdate() fun getRemoteLoadStatus(): RemoteLoadStatus fun getCheckOnLaunchConfiguration(): String fun getLaunchedUpdateSuccessfulLaunchCount(): Int }