aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2013-10-13 00:04:11 +0200
committerJorge Ruesga <jorge@ruesga.com>2013-10-13 00:04:11 +0200
commiteced5a55cdec21d4e380a57d523c30f80cec6e1b (patch)
treea1fed064e1211c4d7173e81c926f2d8a9f054d0c /src
parent398c4028e0c3b028e69bb5a8a872ba3e3eb26b65 (diff)
downloadandroid_packages_wallpapers_PhotoPhase-eced5a55cdec21d4e380a57d523c30f80cec6e1b.tar.gz
android_packages_wallpapers_PhotoPhase-eced5a55cdec21d4e380a57d523c30f80cec6e1b.tar.bz2
android_packages_wallpapers_PhotoPhase-eced5a55cdec21d4e380a57d523c30f80cec6e1b.zip
Change transitions interval behavior
Now user can select between 0 and 60 seconds (10 steps/ 10 diff. values) 0 seconds means just draw the initial frames and without transitions, while world isn't recreated Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Diffstat (limited to 'src')
-rw-r--r--src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java27
-rw-r--r--src/com/ruesga/android/wallpapers/photophase/preferences/GeneralPreferenceFragment.java23
-rw-r--r--src/com/ruesga/android/wallpapers/photophase/preferences/PreferencesProvider.java26
3 files changed, 45 insertions, 31 deletions
diff --git a/src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java b/src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java
index 1ca7656..cce6b3a 100644
--- a/src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java
+++ b/src/com/ruesga/android/wallpapers/photophase/PhotoPhaseRenderer.java
@@ -578,15 +578,24 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
// Now draw the world (all the photo frames with effects)
mWorld.draw(mMVPMatrix);
- // Check if we have some pending transition or transition has exceed its timeout
- if (!mWorld.hasRunningTransition() || firedTransitionTimeout()) {
- 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());
+ // Check if we have some pending transition or transition has
+ // exceed its timeout
+ if (Preferences.General.Transitions.getTransitionInterval() > 0) {
+ if (!mWorld.hasRunningTransition() || firedTransitionTimeout()) {
+ 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());
+ }
+ } else {
+ // Just display the initial frames and never make transitions
+ if (!mWorld.hasRunningTransition() || firedTransitionTimeout()) {
+ mDispatcher.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
+ mDispatcher.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
+ }
}
}
diff --git a/src/com/ruesga/android/wallpapers/photophase/preferences/GeneralPreferenceFragment.java b/src/com/ruesga/android/wallpapers/photophase/preferences/GeneralPreferenceFragment.java
index d5264f7..02cf741 100644
--- a/src/com/ruesga/android/wallpapers/photophase/preferences/GeneralPreferenceFragment.java
+++ b/src/com/ruesga/android/wallpapers/photophase/preferences/GeneralPreferenceFragment.java
@@ -18,6 +18,8 @@ package com.ruesga.android.wallpapers.photophase.preferences;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
@@ -34,8 +36,6 @@ import com.ruesga.android.wallpapers.photophase.preferences.PreferencesProvider.
import com.ruesga.android.wallpapers.photophase.preferences.SeekBarProgressPreference.OnDisplayProgress;
import com.ruesga.android.wallpapers.photophase.widgets.ColorPickerPreference;
-import java.text.DecimalFormat;
-
/**
* A fragment class with all the general settings
*/
@@ -113,9 +113,8 @@ public class GeneralPreferenceFragment extends PreferenceFragment {
getPreferenceManager().setSharedPreferencesName(PreferencesProvider.PREFERENCES_FILE);
getPreferenceManager().setSharedPreferencesMode(Context.MODE_PRIVATE);
- final DecimalFormat df = new DecimalFormat();
- df.setMinimumFractionDigits(0);
- df.setMaximumIntegerDigits(1);
+ final SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
+ final Resources res = getActivity().getResources();
// Add the preferences
addPreferencesFromResource(R.xml.preferences_general);
@@ -136,16 +135,20 @@ public class GeneralPreferenceFragment extends PreferenceFragment {
mTransitionsTypes = (MultiSelectListPreference)findPreference("ui_transition_types");
mTransitionsTypes.setOnPreferenceChangeListener(mOnChangeListener);
+ final int[] transitionsIntervals = res.getIntArray(R.array.transitions_intervals_values);
mTransitionsInterval = (SeekBarProgressPreference)findPreference("ui_transition_interval");
mTransitionsInterval.setFormat(getString(R.string.pref_general_transitions_interval_format));
- int max = Preferences.General.Transitions.MAX_TRANSITION_INTERVAL;
- int min = Preferences.General.Transitions.MIN_TRANSITION_INTERVAL;
- final int MAX = ((max - min) / 1000) * 2;
- mTransitionsInterval.setMax(MAX);
+ mTransitionsInterval.setMax(transitionsIntervals.length - 1);
+ int transitionInterval = prefs.getInt("ui_transition_interval",
+ Preferences.General.Transitions.DEFAULT_TRANSITION_INTERVAL_INDEX);
+ if (transitionInterval > (transitionsIntervals.length - 1)) {
+ mTransitionsInterval.setProgress(
+ Preferences.General.Transitions.DEFAULT_TRANSITION_INTERVAL_INDEX);
+ }
mTransitionsInterval.setOnDisplayProgress(new OnDisplayProgress() {
@Override
public String onDisplayProgress(int progress) {
- return df.format((progress * 0.5) + 1);
+ return String.valueOf(transitionsIntervals[progress] / 1000);
}
});
mTransitionsInterval.setOnPreferenceChangeListener(mOnChangeListener);
diff --git a/src/com/ruesga/android/wallpapers/photophase/preferences/PreferencesProvider.java b/src/com/ruesga/android/wallpapers/photophase/preferences/PreferencesProvider.java
index b59805a..f134516 100644
--- a/src/com/ruesga/android/wallpapers/photophase/preferences/PreferencesProvider.java
+++ b/src/com/ruesga/android/wallpapers/photophase/preferences/PreferencesProvider.java
@@ -19,7 +19,9 @@ package com.ruesga.android.wallpapers.photophase.preferences;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
+import android.content.res.Resources;
+import com.ruesga.android.wallpapers.photophase.R;
import com.ruesga.android.wallpapers.photophase.utils.GLESUtil.GLColor;
import com.ruesga.android.wallpapers.photophase.effects.Effects.EFFECTS;
import com.ruesga.android.wallpapers.photophase.model.Disposition;
@@ -92,6 +94,11 @@ public final class PreferencesProvider {
private static Map<String, ?> mPreferences = new HashMap<String, Object>();
/**
+ * @hide
+ */
+ /*package*/ static int[] TRANSITIONS_INTERVALS;
+
+ /**
* Method that loads the all the preferences of the application
*
* @param context The current context
@@ -100,6 +107,9 @@ public final class PreferencesProvider {
SharedPreferences preferences =
context.getSharedPreferences(PREFERENCES_FILE, Context.MODE_PRIVATE);
mPreferences = preferences.getAll();
+
+ final Resources res = context.getResources();
+ TRANSITIONS_INTERVALS = res.getIntArray(R.array.transitions_intervals_values);
}
/**
@@ -221,15 +231,7 @@ public final class PreferencesProvider {
/**
* The default transition interval
*/
- public static final int DEFAULT_TRANSITION_INTERVAL = 2000;
- /**
- * The minimum transition interval
- */
- public static final int MIN_TRANSITION_INTERVAL = 1000;
- /**
- * The maximum transition interval
- */
- public static final int MAX_TRANSITION_INTERVAL = 8000;
+ public static final int DEFAULT_TRANSITION_INTERVAL_INDEX = 2;
/**
* Return the current user preference about the transition to apply to
@@ -258,9 +260,9 @@ public final class PreferencesProvider {
* @return int The milliseconds in which the next transition will be triggered
*/
public static int getTransitionInterval() {
- int def = (DEFAULT_TRANSITION_INTERVAL / 500) - 2;
- int interval = getInt("ui_transition_interval", def);
- return (interval * 500) + 1000;
+ int interval = getInt("ui_transition_interval",
+ DEFAULT_TRANSITION_INTERVAL_INDEX);
+ return TRANSITIONS_INTERVALS[interval];
}
}