void LastFmAccount::authenticate() { if ( !AtticaManager::instance()->resolversLoaded() ) { // If we're still waiting to load, wait for the attica resolvers to come down the pipe connect( AtticaManager::instance(), SIGNAL(resolversLoaded(Attica::Content::List)), this, SLOT( atticaLoaded( Attica::Content::List ) ), Qt::UniqueConnection ); return; } const Attica::Content res = AtticaManager::instance()->resolverForId( "lastfm" ); const AtticaManager::ResolverState state = AtticaManager::instance()->resolverState( res ); qDebug() << "Last.FM account authenticating..."; if ( m_resolver.isNull() && state == AtticaManager::Installed ) { hookupResolver(); } else if ( m_resolver.isNull() ) { qDebug() << "Got null resolver but asked to authenticate, so installing i we have one from attica:" << res.isValid() << res.id(); if ( res.isValid() && !res.id().isEmpty() ) AtticaManager::instance()->installResolver( res, false ); } else { m_resolver.data()->start(); } emit connectionStateChanged( connectionState() ); }
void SpotifyAccount::authenticate() { if ( !AtticaManager::instance()->resolversLoaded() ) { // If we're still waiting to load, wait for the attica resolvers to come down the pipe connect( AtticaManager::instance(), SIGNAL( resolversLoaded( Attica::Content::List ) ), this, SLOT( atticaLoaded( Attica::Content::List ) ), Qt::UniqueConnection ); return; } const Attica::Content res = AtticaManager::instance()->resolverForId( s_resolverId ); const AtticaManager::ResolverState state = AtticaManager::instance()->resolverState( res ); qDebug() << "Spotify account authenticating..."; const QString path = configuration().value( "path" ).toString(); const QFileInfo info( path ); const bool manualResolverRemoved = !path.isEmpty() && !info.exists(); if ( m_spotifyResolver.isNull() && state == AtticaManager::Installed ) { // We don;t have the resolver but it has been installed via attica already, so lets just turn it on qDebug() << "No valid spotify resolver running, but attica reports it is installed, so start it up"; hookupResolver(); } else if ( m_spotifyResolver.isNull() || manualResolverRemoved ) { qDebug() << "Got null resolver but asked to authenticate, so installing if we have one from attica:" << res.isValid() << res.id(); if ( res.isValid() && !res.id().isEmpty() ) AtticaManager::instance()->installResolver( res, false ); else { #ifdef Q_OS_LINUX m_preventEnabling = true; #endif } } else if ( !m_spotifyResolver.data()->running() ) { qDebug() << "Spotify resolver exists but stopped, starting"; m_spotifyResolver.data()->start(); } else { qDebug() << "Spotify resolver exists and is running, ignore authentication attempt"; } emit connectionStateChanged( connectionState() ); }