diff --git a/src/org/kreed/vanilla/ContextApplication.java b/src/org/kreed/vanilla/ContextApplication.java index d1c25577..7861b9e1 100644 --- a/src/org/kreed/vanilla/ContextApplication.java +++ b/src/org/kreed/vanilla/ContextApplication.java @@ -19,6 +19,7 @@ package org.kreed.vanilla; import java.util.ArrayList; +import java.util.Random; import android.app.Activity; import android.app.Application; @@ -28,12 +29,20 @@ import android.content.Intent; public class ContextApplication extends Application { private static ContextApplication mInstance; private static ArrayList mActivities; + private static Random mRandom; public ContextApplication() { mInstance = this; } - + + public static Random getRandom() + { + if (mRandom == null) + mRandom = new Random(); + return mRandom; + } + public static Context getContext() { return mInstance; diff --git a/src/org/kreed/vanilla/PlaybackService.java b/src/org/kreed/vanilla/PlaybackService.java index 6d2e217c..2daaf64b 100644 --- a/src/org/kreed/vanilla/PlaybackService.java +++ b/src/org/kreed/vanilla/PlaybackService.java @@ -278,7 +278,6 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On private Handler mHandler; private MediaPlayer mMediaPlayer; private boolean mMediaPlayerInitialized; - private Random mRandom; private PowerManager.WakeLock mWakeLock; private Notification mNotification; private SharedPreferences mSettings; @@ -315,8 +314,6 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On { Looper.prepare(); - mRandom = new Random(); - boolean stateLoaded = true; PlaybackServiceState state = new PlaybackServiceState(); @@ -598,7 +595,7 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On private int randomSong() { - return mSongs[mRandom.nextInt(mSongs.length)]; + return mSongs[ContextApplication.getRandom().nextInt(mSongs.length)]; } private Song getSong(int delta) @@ -662,8 +659,9 @@ public class PlaybackService extends Service implements Runnable, MediaPlayer.On if (songs == null || songs.length == 0) break; + Random random = ContextApplication.getRandom(); for (int i = songs.length; --i != 0; ) { - int j = mRandom.nextInt(i + 1); + int j = random.nextInt(i + 1); int tmp = songs[j]; songs[j] = songs[i]; songs[i] = tmp;