aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2013-08-15 02:53:50 +0200
committerJorge Ruesga <jorge@ruesga.com>2013-08-15 02:53:50 +0200
commit3d49c5e6c87a91781e35203e7ba713c030798664 (patch)
treeaa1656989c56fd53b085caa8d63771f339502ae5
parentea666b1a97136e0543bb592800e0e6f7581bf970 (diff)
downloadandroid_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>
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaperWorld.java4
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/TextureManager.java6
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/effects/Effects.java5
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/transitions/FlipTransition.java5
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/transitions/Transitions.java5
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/transitions/TranslateTransition.java5
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/transitions/WindowTransition.java5
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/utils/Utils.java15
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