Bug 311331

Summary: Last.fm plugin config changes are only applied after restart
Product: [Applications] amarok Reporter: Sathyajith <sathya>
Component: Services/Last.fmAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: normal CC: matej, sam
Priority: NOR Keywords: regression, release_blocker
Version: 2.6.0   
Target Milestone: 2.7   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 2.7

Description Sathyajith 2012-12-08 11:09:46 UTC
Amarok doesn't scrobble to last.fm even after entering account details & test login reporting as success. 

The songs are not scrobbled, neither is last.fm reporting the now playing status.

Reproducible: Always

Steps to Reproduce:
1. Enable last.fm plugin
2. Enter last.fm user name  & password. Click on test login. Wait for button to change to "success"
3. Populate playlist from local collection. Use dynamic playlist -> Random -> Enable dynamic mode.
4. Play the song


Actual Results:  
The song was not scrobbled. The meta data(id3 tags) is present. Last.fm doesn't report that I'm currently scrobbling.

Expected Results:  
The song should be scrobbled. Last.fm should report that I'm currently scrobbling.
Comment 1 Sathyajith 2012-12-08 13:37:41 UTC
I had to disable and re-enable the plugin to get it working. Turns out for some reason "sessionKey" in ~/.kde/share/config/amarokrc was blank, and disabling & reenabling it resulted in it getting populated
Comment 2 Myriam Schweingruber 2012-12-08 14:33:23 UTC
One has to restart Amarok to enable the plugins correctly, this is a regression, but AFAIK this is already fixed for the upcoming Amarok 2.7 release.
Waiting for input from the developer.
Comment 3 Matěj Laitl 2012-12-08 20:06:46 UTC
(In reply to comment #2)
> One has to restart Amarok to enable the plugins correctly, this is a
> regression, but AFAIK this is already fixed for the upcoming Amarok 2.7
> release.
> Waiting for input from the developer.

Unfortunately not yet fixed, but I'am well aware of this and it is on my list fix-for-2.7. (won't probably happen in the beta though)
Comment 4 Matěj Laitl 2012-12-12 22:54:44 UTC
Git commit d9a72268a5cfe5f53d84f8fd57c5f8611f54fd76 by Matěj Laitl.
Committed on 12/12/2012 at 23:31.
Pushed by laitl into branch 'master'.

Last.fm plugin: major rework of configuration and more

This work started as an attempt to fix bug 306134. I figured out that
the synchronous KWallet API is simply dangerous, and the async one must
be used. But that meant to make LastFmServiceConfig a "living" object
with updated() signal, which triggered refactoring of all its usage.

Users of LastFmServiceConfig now watch for its changes and should act
appropriately. The LastFmServiceConfig now has only one instance shared
between LastFmService and LastFmServiceSettings - I had to introduce
another shared library because KCM modules use separate library, silly.

Moreover, some extremely ugly things in Last.fm plugin got reworked to
me clean and maintainable, reducing code duplication.

Patrick, please tests whether this still builds on Windows, I hope I've
done KDE_EXPORT/KDE_IMPORT right, but I cannot test under Linux.

CHANGES:
 * When configuring Last.fm plug-in, the changes are now applied
   immediately in most places.

BUGFIXES:
 * Fix suboptimal KWallet usage in Last.fm plugin.
 * Fix crash in Last.fm plugin caused by sloppy KWallet usage.
Related: bug 292096, bug 306134
FIXED-IN: 2.7
DIGEST: Last.fm plugin configuration reworked for smoother experience
CCMAIL: Patrick von Reth <vonreth@kde.org>

M  +4    -0    ChangeLog
M  +15   -2    src/services/lastfm/CMakeLists.txt
M  +166  -147  src/services/lastfm/LastFmService.cpp
M  +9    -5    src/services/lastfm/LastFmService.h
M  +5    -7    src/services/lastfm/LastFmServiceCollection.cpp
M  +1    -2    src/services/lastfm/LastFmServiceCollection.h
M  +160  -110  src/services/lastfm/LastFmServiceConfig.cpp
M  +50   -24   src/services/lastfm/LastFmServiceConfig.h
M  +37   -41   src/services/lastfm/LastFmServiceSettings.cpp
M  +3    -1    src/services/lastfm/LastFmServiceSettings.h
M  +4    -4    src/services/lastfm/LastFmTreeModel.cpp
M  +1    -2    src/services/lastfm/LastFmTreeModel.h
M  +3    -4    src/services/lastfm/ScrobblerAdapter.cpp
M  +3    -2    src/services/lastfm/ScrobblerAdapter.h
M  +5    -6    src/services/lastfm/SynchronizationAdapter.cpp
M  +3    -2    src/services/lastfm/SynchronizationAdapter.h
C  +16   -35   src/services/lastfm/amarok_lastfm_shared_export.h [from: src/services/lastfm/LastFmServiceSettings.h - 058% similarity]
M  +0    -9    src/services/lastfm/meta/LastFmMeta.cpp
M  +1    -1    src/services/lastfm/meta/LastFmMeta.h

http://commits.kde.org/amarok/d9a72268a5cfe5f53d84f8fd57c5f8611f54fd76