From 1ea96796d64bb4408706d99ef639fdcc9d42ac5b Mon Sep 17 00:00:00 2001 From: Daniel Applebaum Date: Sun, 27 Dec 2009 00:54:19 +0000 Subject: [PATCH] Add a global preference for enabling animations, beyond those that are necessary. Defaults to "enabled." --- res/values/strings.xml | 3 +++ res/xml/global_preferences.xml | 9 ++++++--- src/com/fsck/k9/K9.java | 16 +++++++++++++++- src/com/fsck/k9/activity/MessageView.java | 16 ++++++++-------- src/com/fsck/k9/activity/setup/Prefs.java | 7 +++++++ 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index c32b6a68d..ad6c8d9ea 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -627,4 +627,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin 500 folders 1000 folders + Animations + Activate enhanced animations + diff --git a/res/xml/global_preferences.xml b/res/xml/global_preferences.xml index c32151f4e..8c3bf0fb3 100644 --- a/res/xml/global_preferences.xml +++ b/res/xml/global_preferences.xml @@ -31,6 +31,12 @@ android:entries="@array/date_formats" android:entryValues="@array/date_formats" android:dialogTitle="@string/date_format_label" /> + + @@ -55,7 +61,4 @@ android:summary="@string/debug_enable_sensitive_logging_summary" /> - - - diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java index 8650d9152..7e103ad3d 100644 --- a/src/com/fsck/k9/K9.java +++ b/src/com/fsck/k9/K9.java @@ -18,6 +18,7 @@ import com.fsck.k9.service.BootReceiver; import com.fsck.k9.service.MailService; import java.io.File; +import java.util.UUID; public class K9 extends Application { @@ -60,6 +61,8 @@ public class K9 extends Application */ public static boolean ENABLE_ERROR_FOLDER = true; public static String ERROR_FOLDER_NAME = "K9mail-errors"; + + private static boolean mAnimations = true; /** * The MIME type(s) of attachments we're willing to send. At the moment it is not possible @@ -468,6 +471,7 @@ public class K9 extends Application editor.putBoolean("enableDebugLogging", K9.DEBUG); editor.putBoolean("enableSensitiveLogging", K9.DEBUG_SENSITIVE); editor.putString("backgroundOperations", K9.backgroundOps.toString()); + editor.putBoolean("animations", mAnimations); editor.putInt("theme", theme); } @@ -480,7 +484,7 @@ public class K9 extends Application SharedPreferences sprefs = prefs.getPreferences(); DEBUG = sprefs.getBoolean("enableDebugLogging", false); DEBUG_SENSITIVE = sprefs.getBoolean("enableSensitiveLogging", false); - + mAnimations = sprefs.getBoolean("animations", true); try { setBackgroundOps(BACKGROUND_OPS.valueOf(sprefs.getString("backgroundOperations", "WHEN_CHECKED"))); @@ -587,6 +591,16 @@ public class K9 extends Application { K9.backgroundOps = BACKGROUND_OPS.valueOf(nbackgroundOps); } + + public static boolean isAnimations() + { + return mAnimations; + } + + public static void setAnimations(boolean animations) + { + mAnimations = animations; + } } diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java index 6ad5fff20..bc71ec283 100644 --- a/src/com/fsck/k9/activity/MessageView.java +++ b/src/com/fsck/k9/activity/MessageView.java @@ -168,13 +168,13 @@ public class MessageView extends K9Activity case KeyEvent.KEYCODE_J: case KeyEvent.KEYCODE_P: { - onPrevious(false); + onPrevious(K9.isAnimations()); return true; } case KeyEvent.KEYCODE_N: case KeyEvent.KEYCODE_K: { - onNext(false); + onNext(K9.isAnimations()); return true; } case KeyEvent.KEYCODE_Z: @@ -714,19 +714,19 @@ public class MessageView extends K9Activity if (mLastDirection == NEXT && mNextMessageUid != null) { - onNext(false); + onNext(K9.isAnimations()); } else if (mLastDirection == PREVIOUS && mPreviousMessageUid != null) { - onPrevious(false); + onPrevious(K9.isAnimations()); } else if (mNextMessageUid != null) { - onNext(false); + onNext(K9.isAnimations()); } else if (mPreviousMessageUid != null) { - onPrevious(false); + onPrevious(K9.isAnimations()); } @@ -1060,11 +1060,11 @@ public class MessageView extends K9Activity break; case R.id.next: case R.id.next_scrolling: - onNext(false); + onNext(K9.isAnimations()); break; case R.id.previous: case R.id.previous_scrolling: - onPrevious(false); + onPrevious(K9.isAnimations()); break; case R.id.download: onDownloadAttachment((Attachment) view.getTag()); diff --git a/src/com/fsck/k9/activity/setup/Prefs.java b/src/com/fsck/k9/activity/setup/Prefs.java index f19b563f2..05aee72cb 100644 --- a/src/com/fsck/k9/activity/setup/Prefs.java +++ b/src/com/fsck/k9/activity/setup/Prefs.java @@ -6,6 +6,7 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.preference.CheckBoxPreference; +import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; import android.view.KeyEvent; @@ -25,11 +26,14 @@ public class Prefs extends K9PreferenceActivity private static final String PREFERENCE_DEBUG_LOGGING = "debug_logging"; private static final String PREFERENCE_SENSITIVE_LOGGING = "sensitive_logging"; + private static final String PREFERENCE_ANIMATIONS = "animations"; + private ListPreference mTheme; private ListPreference mDateFormat; private ListPreference mBackgroundOps; private CheckBoxPreference mDebugLogging; private CheckBoxPreference mSensitiveLogging; + private CheckBoxPreference mAnimations; private String initBackgroundOps; @@ -112,6 +116,8 @@ public class Prefs extends K9PreferenceActivity mDebugLogging.setChecked(K9.DEBUG); mSensitiveLogging.setChecked(K9.DEBUG_SENSITIVE); + mAnimations = (CheckBoxPreference)findPreference(PREFERENCE_ANIMATIONS); + mAnimations.setChecked(K9.isAnimations()); } @Override @@ -128,6 +134,7 @@ public class Prefs extends K9PreferenceActivity K9.DEBUG_SENSITIVE = mSensitiveLogging.isChecked(); String newBackgroundOps = mBackgroundOps.getValue(); K9.setBackgroundOps(newBackgroundOps); + K9.setAnimations(mAnimations.isChecked()); Editor editor = preferences.edit(); K9.save(editor); DateFormatter.setDateFormat(editor, mDateFormat.getValue());