diff --git a/res/values/translatable.xml b/res/values/translatable.xml
index ec2fc91d..35180651 100644
--- a/res/values/translatable.xml
+++ b/res/values/translatable.xml
@@ -299,4 +299,12 @@ THE SOFTWARE.
Filebrowser home
Filebrowser starts at this directory
Select
+
+
+ Automatic playlist creation
+ Automatically create a
+ %s \'Top %.0f\' playlist
+ Do not create an automatic playlist
+ Top %d
+
diff --git a/res/xml/preference_misc.xml b/res/xml/preference_misc.xml
index 66b2a6ae..e2f09765 100644
--- a/res/xml/preference_misc.xml
+++ b/res/xml/preference_misc.xml
@@ -22,6 +22,7 @@ THE SOFTWARE.
-->
+
list = sActivities;
@@ -1362,10 +1371,10 @@ public final class PlaybackService extends Service
public void onCompletion(MediaPlayer player)
{
- // Count this song as played
Song song = mTimeline.getSong(0);
- mHandler.sendMessage(mHandler.obtainMessage(MSG_UPDATE_PLAYCOUNTS, song));
+ // Count this song as played
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_UPDATE_PLAYCOUNTS, song), 2500);
if (finishAction(mState) == SongTimeline.FINISH_REPEAT_CURRENT) {
setCurrentSong(0);
@@ -1545,6 +1554,18 @@ public final class PlaybackService extends Service
case MSG_UPDATE_PLAYCOUNTS:
Song song = (Song)message.obj;
mPlayCounts.countSong(song);
+
+ // Update the playcounts playlist in ~20% of all cases if enabled
+ if (mAutoPlPlaycounts > 0 && Math.random() > 0.8) {
+ ContentResolver resolver = getContentResolver();
+ // Add an invisible whitespace to adjust our sorting
+ String playlistName = "\u200B"+getString(R.string.autoplaylist_playcounts_name, mAutoPlPlaycounts);
+ long id = Playlist.createPlaylist(resolver, playlistName);
+ ArrayList items = mPlayCounts.getTopSongs(mAutoPlPlaycounts);
+ Playlist.addToPlaylist(resolver, id, items);
+ }
+
+
break;
default:
return false;
diff --git a/src/ch/blinkenlights/android/vanilla/PrefKeys.java b/src/ch/blinkenlights/android/vanilla/PrefKeys.java
index 3fd6850a..53377b5c 100644
--- a/src/ch/blinkenlights/android/vanilla/PrefKeys.java
+++ b/src/ch/blinkenlights/android/vanilla/PrefKeys.java
@@ -67,4 +67,5 @@ public class PrefKeys {
public static final String USE_DARK_THEME = "use_dark_theme";
public static final String FILESYSTEM_BROWSE_START = "filesystem_browse_start";
public static final String VOLUME_DURING_DUCKING = "volume_during_ducking";
+ public static final String AUTOPLAYLIST_PLAYCOUNTS = "playcounts_autoplaylist";
}