diff -r 000000000000 -r 6474c204b198 mobile/android/tests/background/junit3/src/sync/helpers/DefaultSessionCreationDelegate.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobile/android/tests/background/junit3/src/sync/helpers/DefaultSessionCreationDelegate.java Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,53 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +package org.mozilla.gecko.background.sync.helpers; + +import org.mozilla.gecko.sync.repositories.RepositorySession; +import org.mozilla.gecko.sync.repositories.delegates.RepositorySessionCreationDelegate; + +public class DefaultSessionCreationDelegate extends DefaultDelegate implements + RepositorySessionCreationDelegate { + + @Override + public void onSessionCreateFailed(Exception ex) { + performNotify("Session creation failed", ex); + } + + @Override + public void onSessionCreated(RepositorySession session) { + performNotify("Should not have been created.", null); + } + + @Override + public RepositorySessionCreationDelegate deferredCreationDelegate() { + final RepositorySessionCreationDelegate self = this; + return new RepositorySessionCreationDelegate() { + + @Override + public void onSessionCreated(final RepositorySession session) { + new Thread(new Runnable() { + @Override + public void run() { + self.onSessionCreated(session); + } + }).start(); + } + + @Override + public void onSessionCreateFailed(final Exception ex) { + new Thread(new Runnable() { + @Override + public void run() { + self.onSessionCreateFailed(ex); + } + }).start(); + } + + @Override + public RepositorySessionCreationDelegate deferredCreationDelegate() { + return this; + } + }; + } +}