diff options
author | Jorge Ruesga <jorge@ruesga.com> | 2013-08-15 02:53:50 +0200 |
---|---|---|
committer | Jorge Ruesga <jorge@ruesga.com> | 2013-08-15 02:53:50 +0200 |
commit | 3d49c5e6c87a91781e35203e7ba713c030798664 (patch) | |
tree | aa1656989c56fd53b085caa8d63771f339502ae5 /src/org/cyanogenmod | |
parent | ea666b1a97136e0543bb592800e0e6f7581bf970 (diff) | |
download | android_packages_wallpapers_PhotoPhase-3d49c5e6c87a91781e35203e7ba713c030798664.tar.gz android_packages_wallpapers_PhotoPhase-3d49c5e6c87a91781e35203e7ba713c030798664.tar.bz2 android_packages_wallpapers_PhotoPhase-3d49c5e6c87a91781e35203e7ba713c030798664.zip |
Improve acquisition of random numbers
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Diffstat (limited to 'src/org/cyanogenmod')
8 files changed, 35 insertions, 15 deletions
diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaperWorld.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaperWorld.java index 3e88fd6..50f3322 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaperWorld.java +++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaperWorld.java @@ -128,8 +128,8 @@ public class PhotoPhaseWallpaperWorld { ensureTransitionsQueue(); // Get a random frame to which apply the transition - int r = 0 + (int)(Math.random() * (((mTransitionsQueue.size()-1) - 0) + 1)); - int pos = mTransitionsQueue.remove(r).intValue(); + int item = Utils.getNextRandom(0, mTransitionsQueue.size() - 1); + int pos = mTransitionsQueue.remove(item).intValue(); mUsedTransitionsQueue.add(Integer.valueOf(pos)); PhotoFrame frame = mPhotoFrames.get(pos); diff --git a/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java b/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java index 501ed25..7320d5b 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java +++ b/src/org/cyanogenmod/wallpapers/photophase/TextureManager.java @@ -30,6 +30,7 @@ import android.widget.Toast; import org.cyanogenmod.wallpapers.photophase.FixedQueue.EmptyQueueException; import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; import org.cyanogenmod.wallpapers.photophase.utils.GLESUtil; +import org.cyanogenmod.wallpapers.photophase.utils.Utils; import org.cyanogenmod.wallpapers.photophase.utils.GLESUtil.GLESTextureInfo; import org.cyanogenmod.wallpapers.photophase.MediaPictureDiscoverer.OnMediaPictureDiscoveredListener; import org.cyanogenmod.wallpapers.photophase.effects.Effects; @@ -539,9 +540,8 @@ public class TextureManager implements OnMediaPictureDiscoveredListener { // Extract a random image int low = 0; - int hight = mNewImages.size()-1; - int index = low + (int)(Math.random() * ((hight - low) + 1)); - image = mNewImages.remove(index); + int high = mNewImages.size()-1; + image = mNewImages.remove(Utils.getNextRandom(low, high)); } // Run commands in the GLThread diff --git a/src/org/cyanogenmod/wallpapers/photophase/effects/Effects.java b/src/org/cyanogenmod/wallpapers/photophase/effects/Effects.java index 4af8307..665fa49 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/effects/Effects.java +++ b/src/org/cyanogenmod/wallpapers/photophase/effects/Effects.java @@ -22,6 +22,7 @@ import android.media.effect.EffectContext; import android.media.effect.EffectFactory; import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; +import org.cyanogenmod.wallpapers.photophase.utils.Utils; import java.util.Arrays; import java.util.List; @@ -169,8 +170,8 @@ public class Effects { EFFECTS nextEffect = null; if (effects.size() > 0) { int low = 0; - int hight = effects.size() - 1; - int pos = low + (int)(Math.random() * ((hight - low) + 1)); + int high = effects.size() - 1; + int pos = Utils.getNextRandom(low, high); nextEffect = effects.get(pos); } if (nextEffect == null) { diff --git a/src/org/cyanogenmod/wallpapers/photophase/transitions/FlipTransition.java b/src/org/cyanogenmod/wallpapers/photophase/transitions/FlipTransition.java index 43dbee4..295add9 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/transitions/FlipTransition.java +++ b/src/org/cyanogenmod/wallpapers/photophase/transitions/FlipTransition.java @@ -23,6 +23,7 @@ import android.opengl.Matrix; import android.os.SystemClock; import org.cyanogenmod.wallpapers.photophase.utils.GLESUtil; +import org.cyanogenmod.wallpapers.photophase.utils.Utils; import org.cyanogenmod.wallpapers.photophase.PhotoFrame; import org.cyanogenmod.wallpapers.photophase.R; import org.cyanogenmod.wallpapers.photophase.TextureManager; @@ -106,8 +107,8 @@ public class FlipTransition extends Transition { // Random mode FLIP_MODES[] modes = FLIP_MODES.values(); int low = 0; - int hight = modes.length - 1; - mMode = modes[(low + (int)(Math.random() * ((hight - low) + 1)))]; + int high = modes.length - 1; + mMode = modes[Utils.getNextRandom(low, high)]; } /** diff --git a/src/org/cyanogenmod/wallpapers/photophase/transitions/Transitions.java b/src/org/cyanogenmod/wallpapers/photophase/transitions/Transitions.java index 33debed..71ce34a 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/transitions/Transitions.java +++ b/src/org/cyanogenmod/wallpapers/photophase/transitions/Transitions.java @@ -21,6 +21,7 @@ import android.content.Context; import org.cyanogenmod.wallpapers.photophase.PhotoFrame; import org.cyanogenmod.wallpapers.photophase.TextureManager; import org.cyanogenmod.wallpapers.photophase.preferences.PreferencesProvider.Preferences; +import org.cyanogenmod.wallpapers.photophase.utils.Utils; import java.util.Arrays; import java.util.List; @@ -102,8 +103,8 @@ public class Transitions { TRANSITIONS nextTransition = null; if (transitions.size() > 0) { int low = 0; - int hight = transitions.size() - 1; - int pos = low + (int)(Math.random() * ((hight - low) + 1)); + int high = transitions.size() - 1; + int pos = Utils.getNextRandom(low, high); nextTransition = transitions.get(pos); } if (nextTransition == null) { diff --git a/src/org/cyanogenmod/wallpapers/photophase/transitions/TranslateTransition.java b/src/org/cyanogenmod/wallpapers/photophase/transitions/TranslateTransition.java index b05dd71..eb1080b 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/transitions/TranslateTransition.java +++ b/src/org/cyanogenmod/wallpapers/photophase/transitions/TranslateTransition.java @@ -23,6 +23,7 @@ import android.opengl.Matrix; import android.os.SystemClock; import org.cyanogenmod.wallpapers.photophase.utils.GLESUtil; +import org.cyanogenmod.wallpapers.photophase.utils.Utils; import org.cyanogenmod.wallpapers.photophase.PhotoFrame; import org.cyanogenmod.wallpapers.photophase.R; import org.cyanogenmod.wallpapers.photophase.TextureManager; @@ -134,8 +135,8 @@ public class TranslateTransition extends Transition { // Random mode int low = 0; - int hight = modes.size() - 1; - mMode = modes.get(low + (int)(Math.random() * ((hight - low) + 1))); + int high = modes.size() - 1; + mMode = modes.get(Utils.getNextRandom(low, high)); } /** diff --git a/src/org/cyanogenmod/wallpapers/photophase/transitions/WindowTransition.java b/src/org/cyanogenmod/wallpapers/photophase/transitions/WindowTransition.java index 84cb264..d580c8b 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/transitions/WindowTransition.java +++ b/src/org/cyanogenmod/wallpapers/photophase/transitions/WindowTransition.java @@ -24,6 +24,7 @@ import android.os.SystemClock; import android.view.animation.AccelerateInterpolator; import org.cyanogenmod.wallpapers.photophase.utils.GLESUtil; +import org.cyanogenmod.wallpapers.photophase.utils.Utils; import org.cyanogenmod.wallpapers.photophase.PhotoFrame; import org.cyanogenmod.wallpapers.photophase.R; import org.cyanogenmod.wallpapers.photophase.TextureManager; @@ -130,8 +131,8 @@ public class WindowTransition extends Transition { // Random mode int low = 0; - int hight = modes.size() - 1; - mMode = modes.get(low + (int)(Math.random() * ((hight - low) + 1))); + int high = modes.size() - 1; + mMode = modes.get(Utils.getNextRandom(low, high)); } /** diff --git a/src/org/cyanogenmod/wallpapers/photophase/utils/Utils.java b/src/org/cyanogenmod/wallpapers/photophase/utils/Utils.java index bcf6b2a..0dfddb8 100644 --- a/src/org/cyanogenmod/wallpapers/photophase/utils/Utils.java +++ b/src/org/cyanogenmod/wallpapers/photophase/utils/Utils.java @@ -21,11 +21,15 @@ import android.content.res.Resources; import android.graphics.RectF; import android.util.DisplayMetrics; +import java.util.Random; + /** * A helper class with utilities */ public class Utils { + private static Random sRandom = new Random(); + /** * This method converts dp unit to equivalent device specific value in pixels. * @@ -53,4 +57,15 @@ public class Utils { rect.bottom = vertex[1]; return rect; } + + /** + * Method that returns a random number between two numbers. + * + * @param low The low number + * @param high The high number + * @return int The random number + */ + public static int getNextRandom(int low, int high) { + return low + (sRandom.nextInt() * ((high - low) + 1)); + } }
\ No newline at end of file |