aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/arrays.xml7
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java13
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java16
3 files changed, 29 insertions, 7 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index df43a31..9ab1b17 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -86,6 +86,13 @@
<item>15000</item>
<item>30000</item>
<item>60000</item>
+ <item>120000</item>
+ <item>240000</item>
+ <item>300000</item>
+ <item>600000</item>
+ <item>1800000</item>
+ <item>3600000</item>
+ <item>86400000</item>
</integer-array>
<string-array name="effects_labels" translatable="false">
diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
index 7fb467f..bbb71d1 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
@@ -80,6 +80,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
OopsShape mOopsShape;
long mLastRunningTransition;
+ long mLastTransition;
private long mLastTouchTime;
private static final long TOUCH_BARRIER_TIME = 1000L;
@@ -167,6 +168,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
// Select a new transition
mWorld.selectRandomTransition();
mLastRunningTransition = System.currentTimeMillis();
+ mLastTransition = System.currentTimeMillis();
// Now force continuously render while transition is applied
mDispatcher.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
@@ -589,6 +591,8 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
mMeasuredHeight = -1;
mStatusBarHeight = 0;
+ mLastTransition = System.currentTimeMillis();
+
// We have a 2d (fake) scenario, disable all unnecessary tests. Deep are
// necessary for some 3d effects
GLES20.glDisable(GL10.GL_DITHER);
@@ -725,15 +729,16 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
// Check if we have some pending transition or transition has
// exceed its timeout
synchronized (mDrawing) {
- if (Preferences.General.Transitions.getTransitionInterval() > 0) {
+ final int interval = Preferences.General.Transitions.getTransitionInterval();
+ if (interval > 0) {
if (!mWorld.hasRunningTransition() || isTransitionTimeoutFired()) {
mDispatcher.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
// Now start a delayed thread to generate the next effect
deselectCurrentTransition();
- mLastRunningTransition = 0;
- mHandler.postDelayed(mTransitionThread,
- Preferences.General.Transitions.getTransitionInterval());
+ long diff = System.currentTimeMillis() - mLastTransition;
+ long delay = Math.max(200, interval - diff);
+ mHandler.postDelayed(mTransitionThread, delay);
}
} else {
// Just display the initial frames and never make transitions
diff --git a/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java b/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java
index e559ba7..71f3190 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/preferences/GeneralPreferenceFragment.java
@@ -120,6 +120,8 @@ public class GeneralPreferenceFragment extends PreferenceFragment {
final String formatDisabled = getString(R.string.format_disabled);
final String formatSeconds = getString(R.string.format_seconds);
final String formatMinutes = getString(R.string.format_minutes);
+ final String formatHours = getString(R.string.format_hours);
+ final String formatDays = getString(R.string.format_days);
final String formatDim = getString(R.string.format_dim);
// Change the preference manager
@@ -174,10 +176,18 @@ public class GeneralPreferenceFragment extends PreferenceFragment {
// Seconds
mTransitionsInterval.setFormat(formatSeconds);
return String.valueOf(interval / 1000);
+ } else if (interval < 3600000) {
+ // Minutes
+ mTransitionsInterval.setFormat(formatMinutes);
+ return String.valueOf(interval / 1000 / 60);
+ } else if (interval < 86400000) {
+ // Hours
+ mTransitionsInterval.setFormat(formatHours);
+ return String.valueOf(interval / 1000 / 60 / 60);
}
- // Minutes
- mTransitionsInterval.setFormat(formatMinutes);
- return String.valueOf(interval / 1000 / 60);
+ // Days
+ mTransitionsInterval.setFormat(formatDays);
+ return String.valueOf(interval / 1000 / 60 / 60 / 24);
}
});
mTransitionsInterval.setOnPreferenceChangeListener(mOnChangeListener);