Bug 297552

Summary: Amazon MP3 store plugin popup at startup asking to "select a valid country in the settings", actual country not offered
Product: [Applications] amarok Reporter: Philippe Cloutier <chealer>
Component: Services/Amazon MP3 StoreAssignee: Amarok Developers <amarok-bugs-dist>
Status: CLOSED FIXED    
Severity: normal CC: avg, sven
Priority: NOR    
Version: 2.5.0   
Target Milestone: 2.6   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In: 2.6
Sentry Crash Report:

Description Philippe Cloutier 2012-04-05 18:48:27 UTC
When Amarok is started for the first time, it prompts to enter the country. Most countries aren't in the list, but there is a "none of the above (store won't work)" choice, so you can get past the prompt. However, Amarok doesn't deal with that choice correctly. Apparently, it expects that a country was or can be selected, even though that's only possible for a minority. When you didn't, a popup complains at each Amarok launch "Please select a valid country in the settings to make the store work".

I see 3 issues in the situation as a whole:
The expectation of being in a supported country is wrong, as suggested in #294613
Showing this dialog by default wastes time for a vast majority of users who probably have no idea what the Amazon MP3 Store is, or wouldn't want to (presumably) pay for a non-free service anyway.
If the computer moves, the country setting is duplicated and has to be changed twice.

I suggest to just use KDE workspace's country setting. If that's not possible, or undefined, only prompt when the user actually tries to use the store. Apparently, a user would access the store though Internet -> MP3 Music Store. The first access would be the time to ask.

At least, make it so that Amarok disables the plugin when none of the above is selected, or remove the expectation of a supported country.

For reference, I went to #amarok to verify that this problem affected others. We think it's likely that the message was meant to be a warning that the store is not available. If so, please at least amend the text. But such a warning should not be shown each launch anyway. It should be shown only when the user tries to access the store.

[2012-04-04 01:51:27] <chealer> hi. do others get this behavior on a fresh Amarok (2.5.0)? Having selected "none of the above (store won't work)" as country for Amazon MP3 music store, a message pops up when launching asking "Please select a valid country in the settings to make the store work"
[2012-04-04 03:33:04] <sven423> chealer: that's intended
[2012-04-04 11:38:54] <chealer> sven423: it's intended to ask the to select a country he's not actually in? or what
[2012-04-04 11:41:16] <Mamarok> chealer: it is intended to tell people they need to select a country if they want the shop to work
[2012-04-04 11:42:14] <chealer> Mamarok: I guess. the thing is it doesn't mention that if
[2012-04-04 11:42:34] <chealer> anyway, I think I have an answer. thanks
[2012-04-04 11:42:47] <Mamarok> yaw :)
Comment 1 Sven Krohlas 2012-04-16 11:10:45 UTC
*** Bug 294613 has been marked as a duplicate of this bug. ***
Comment 2 Sven Krohlas 2012-04-16 11:22:13 UTC
Git commit e4e0f1c1a5d77eb596886b1844dc3f3a18adef71 by Sven Krohlas.
Committed on 16/04/2012 at 13:11.
Pushed by krohlas into branch 'master'.

Do not show the missing Amazon location warning on startup if the service is hidden

This is annoying for users who do not want or cannot use the store.

BUG:297552
FIXED-IN:2.6

M  +1    -1    src/services/amazon/AmazonStore.cpp

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

diff --git a/src/services/amazon/AmazonStore.cpp b/src/services/amazon/AmazonStore.cpp
index 7846d1a..085b852 100644
--- a/src/services/amazon/AmazonStore.cpp
+++ b/src/services/amazon/AmazonStore.cpp
@@ -284,7 +284,7 @@ AmazonStore::newSearchRequest( const QString request )
         if( !(KCM.exec() == QDialog::Accepted) )
             return;
     }
-    else if( AmazonConfig::instance()->country() == QLatin1String( "none" ) )
+    else if( AmazonConfig::instance()->country() == QLatin1String( "none" ) && m_itemView->isVisible() ) // do not show the message on startup, if the service is not visible
     {
         // user explicitly said we are in a not supported country
         Amarok::Components::logger()->longMessage( i18n( "<b>MP3 Music Store</b><br/><br/>Please select a valid country in the settings to make the store work." ) );
Comment 3 Myriam Schweingruber 2012-09-12 08:50:09 UTC
Setting status correctly.