Bug 234876

Summary: Amarok shows misleading error while copying unsupported files to iPod
Product: [Applications] amarok Reporter: Hakan Bayindir <hakan>
Component: Collections/iPod iPhoneAssignee: Amarok Developers <amarok-bugs-dist>
Severity: normal CC: matej, mprizee, samuel.brack, trlanzi
Priority: NOR    
Version: 2.4-GIT   
Target Milestone: 2.4.0   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 2.6
Sentry Crash Report:

Description Hakan Bayindir 2010-04-20 12:11:27 UTC
Version:           2.3.0 (using 4.3.4 (KDE 4.3.4), Debian packages)
Compiler:          cc
OS:                Linux (i686) release 2.6.32-3-686-bigmem

I have a music library mostly consists of MP3 and FLAC files and use an iPod Nano 2G. When I try to copy FLAC files to iPod, Amarok shows an error dialog as expected but the message in it is misleading. I'm using a standard Amarok bundled with Debian, without any add-ons or fancy modifications.

Since: All debian bundled Amarok 2.x packages have it.

How to reproduce:
1- Open Amarok
2- Plug your iPod
3- Mount it, Amarok will mount it too
4- Try to copy some of your favorite FLAC files to your iPod
5- An error dialog appears as expected, reads "The files you are trying to copy are already on your device."
6- Hey, you reproduced the bug successfully!

Expected behavior:
1- Open Amarok
2- Plug your iPod
3- Mount it, Amarok will mount it too
4- Try to copy some of your favorite FLAC files to your iPod
5- An error dialog appears as expected, reads "The type (or format) of the files you are trying to copy are not supported on iPod." or similar with the same meaning.
Comment 1 Samuel Brack 2010-12-12 15:39:37 UTC
This seems to be a duplicate of bug 246086 which is more generally describing the same problem.
Comment 2 Myriam Schweingruber 2010-12-13 00:55:03 UTC
*** Bug 246086 has been marked as a duplicate of this bug. ***
Comment 3 Timothy Lanzi 2011-01-05 03:04:49 UTC
Amarok 2.4-GIT, kubuntu 10.10, iPod 2g nano. Did not have a FLAC file like the reporter but decided to try same action with an OGG file. Attempted to copy an OGG file to my iPod without transcoding. Expected error message either “unsupported file” or the faulty error message as reported. Instead, Amarok appeared to copy the file to the device, unsure if it transcoded. When I went to play the track on the the iPod , it could not be found. Couldn't find it in the Amarok collection pane. When I try to recopy the OGG file Amarok repots the track is already on the device, even though it can't be seen.
Comment 4 Myriam Schweingruber 2011-01-05 11:18:52 UTC
Amarok does not transcode automatically, you need to select transcoding in the Copy to collection dialog. Did you try this? The function is available in the latest 2.4-git version.
Comment 5 Myriam Schweingruber 2011-01-10 21:30:41 UTC
Oops, forgot to bump the version, sorry.
Comment 6 Matěj Laitl 2011-10-20 13:06:30 UTC
Myriam, it seems that these transcoding features are now offered only for organisable collections. (which iPod is not) I will look at least at the error messages and to make iPod refuse formats it does not understand.
Comment 7 Matěj Laitl 2012-04-15 15:43:48 UTC
Git commit 9bfe431375630655047ea8681a12ff6bd5422839 by Matěj Laitl.
Committed on 15/04/2012 at 12:24.
Pushed by laitl into branch 'master'.

Complete iPod collection rewrite (also supports iPad, iPhone)

This is a result of 3-month effort to make Amarok iPod-like device
support future-proof and less buggy by using more modern MemoryMeta
framework to manage tracks internally.

The new plugin still uses libgpod [1] to access the devices and
supports all devices supported by it. The newest models may need the
infamous libashab.so library.

 * Small configuration dialog for iPods that shows troubleshooting information
   and allows to change iPod name.
 * Improved usability of iPod playlists: iPod collection automatically transfers
   tracks dropped to iPod playlists to iPod when it is needed.
 * Tracks can now be transcoded when transferring them to iPod.

 * optional libgpod dependency raised to 0.8.2 to support newest iPods.
 * Amarok now prevents accidental unmounting of iPods in (small) time-frames
   when iTunes database on iPod is not yet updated.
 * Amarok detects when iPod is to be ejected from system and gracefully
   disconnects it when it occurs.
 * Hitting the eject button on iPod collection ejects it also from the system.
 * iPod collection now detects whether iPod is safe to write and marks iPod
   as read-only if not. This prevents "iPod shows 0 tracks" problem.
 * Correct progress bar advancement when transferring tracks to iPod.
 * iPod Collection supports multiple simultaneous cancellable transfers.
 * Improved dialog to initialize iPod.

 * Detection and elimination of stale and orphaned iPod tracks now works
   correctly; users are notified about these when iPod is plugged in.
 * iPod playlists now work correctly.
 * Show correct error when transferring unsupported files to iPod.

[1] http://www.gtkpod.org/wiki/Libgpod
Related: bug 291722, bug 139454, bug 219963, bug 279797, bug 289304
DIGEST: Amarok's iPod support is completely rewritten fixing many bugs
        and adding features

M  +3    -2    CMakeLists.txt
M  +21   -0    ChangeLog
M  +2    -2    README
M  +1    -1    src/core-impl/collections/CMakeLists.txt
A  +80   -0    src/core-impl/collections/ipodcollection/CMakeLists.txt
A  +642  -0    src/core-impl/collections/ipodcollection/IpodCollection.cpp     [License: GPL (v2+)]
A  +260  -0    src/core-impl/collections/ipodcollection/IpodCollection.h     [License: GPL (v2+)]
A  +259  -0    src/core-impl/collections/ipodcollection/IpodCollectionFactory.cpp     [License: GPL (v2+)]
A  +93   -0    src/core-impl/collections/ipodcollection/IpodCollectionFactory.h     [License: GPL (v2+)]
A  +119  -0    src/core-impl/collections/ipodcollection/IpodCollectionLocation.cpp     [License: GPL (v2+)]
A  +74   -0    src/core-impl/collections/ipodcollection/IpodCollectionLocation.h     [License: GPL (v2+)]
A  +845  -0    src/core-impl/collections/ipodcollection/IpodMeta.cpp     [License: GPL (v2+)]
A  +327  -0    src/core-impl/collections/ipodcollection/IpodMeta.h     [License: GPL (v2+)]
A  +141  -0    src/core-impl/collections/ipodcollection/IpodMetaEditCapability.cpp     [License: GPL (v2+)]
A  +63   -0    src/core-impl/collections/ipodcollection/IpodMetaEditCapability.h     [License: GPL (v2+)]
A  +248  -0    src/core-impl/collections/ipodcollection/IpodPlaylist.cpp     [License: GPL (v2+)]
A  +113  -0    src/core-impl/collections/ipodcollection/IpodPlaylist.h     [License: GPL (v2+)]
A  +496  -0    src/core-impl/collections/ipodcollection/IpodPlaylistProvider.cpp     [License: GPL (v2+)]
A  +114  -0    src/core-impl/collections/ipodcollection/IpodPlaylistProvider.h     [License: GPL (v2+)]
A  +24   -0    src/core-impl/collections/ipodcollection/amarok_collection-ipodcollection.desktop
A  +1    -0    src/core-impl/collections/ipodcollection/config-ipodcollection.h.cmake
A  +414  -0    src/core-impl/collections/ipodcollection/jobs/IpodCopyTracksJob.cpp     [License: GPL (v2+)]
A  +108  -0    src/core-impl/collections/ipodcollection/jobs/IpodCopyTracksJob.h     [License: GPL (v2+)]
A  +69   -0    src/core-impl/collections/ipodcollection/jobs/IpodDeleteTracksJob.cpp     [License: GPL (v2+)]
A  +46   -0    src/core-impl/collections/ipodcollection/jobs/IpodDeleteTracksJob.h     [License: GPL (v2+)]
A  +83   -0    src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.cpp     [License: GPL (v2+)]
A  +49   -0    src/core-impl/collections/ipodcollection/jobs/IpodParseTracksJob.h     [License: GPL (v2+)]
A  +33   -0    src/core-impl/collections/ipodcollection/jobs/IpodWriteDatabaseJob.cpp     [License: GPL (v2+)]
A  +37   -0    src/core-impl/collections/ipodcollection/jobs/IpodWriteDatabaseJob.h     [License: GPL (v2+)]
A  +205  -0    src/core-impl/collections/ipodcollection/support/IphoneMountPoint.cpp     [License: GPL (v2+)]
A  +53   -0    src/core-impl/collections/ipodcollection/support/IphoneMountPoint.h     [License: GPL (v2+)]
A  +229  -0    src/core-impl/collections/ipodcollection/support/IpodConfiguration.ui
A  +466  -0    src/core-impl/collections/ipodcollection/support/IpodDeviceHelper.cpp     [License: GPL (v2+)]
A  +102  -0    src/core-impl/collections/ipodcollection/support/IpodDeviceHelper.h     [License: GPL (v2+)]
A  +58   -0    src/core-impl/collections/ipodcollection/support/IpodTranscodeCapability.cpp     [License: GPL (v2+)]
A  +49   -0    src/core-impl/collections/ipodcollection/support/IpodTranscodeCapability.h     [License: GPL (v2+)]

Comment 8 Hakan Bayindir 2012-04-16 13:04:20 UTC
That's an awesome piece of work. Congratulations and thanks!