package mediabrowser.apiinteraction; import mediabrowser.apiinteraction.device.IDevice; import mediabrowser.model.apiclient.ConnectionOptions; import mediabrowser.model.apiclient.ServerInfo; import mediabrowser.model.connect.PinCreationResult; import mediabrowser.model.connect.PinExchangeResult; import mediabrowser.model.connect.PinStatusResult; import mediabrowser.model.dto.IHasServerId; import mediabrowser.model.registration.RegistrationInfo; import mediabrowser.model.session.ClientCapabilities; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Observable; public interface IConnectionManager { ClientCapabilities getClientCapabilities(); ApiClient GetApiClient(IHasServerId item); ApiClient GetApiClient(String serverId); ServerInfo getServerInfo(String serverId); IDevice getDevice(); void Connect(Response<ConnectionResult> response); void Connect(ServerInfo server, Response<ConnectionResult> response); void Connect(ServerInfo server, ConnectionOptions options, Response<ConnectionResult> response); void Connect(String address, Response<ConnectionResult> response); void Logout(EmptyResponse response); void GetAvailableServers(final Response<ArrayList<ServerInfo>> response); void GetSavedServers(final Response<ArrayList<ServerInfo>> response); void LoginToConnect(String username, String password, final EmptyResponse response) throws UnsupportedEncodingException, NoSuchAlgorithmException; void CreatePin(String deviceId, Response<PinCreationResult> response); void GetPinStatus(PinCreationResult pin, Response<PinStatusResult> response); void ExchangePin(PinCreationResult pin, final Response<PinExchangeResult> response); void DeleteServer(final String id, final EmptyResponse response); void GetRegistrationInfo(String featureName, String serverId, String localUsername, Response<RegistrationInfo> response); }