]> www.infradead.org Git - users/mchehab/andors-trail.git/commitdiff
Provide setting to disable UI animations, such as the combat bar.
authorOskar Wiksten <oskar.wiksten@gmail.com>
Sun, 7 Oct 2012 15:25:14 +0000 (17:25 +0200)
committerOskar Wiksten <oskar.wiksten@gmail.com>
Sun, 7 Oct 2012 15:25:14 +0000 (17:25 +0200)
AndorsTrail/res/values/strings.xml
AndorsTrail/res/xml/preferences.xml
AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailPreferences.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/CombatView.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/DisplayActiveActorConditionIcons.java

index 1fcb53d3c6fd8e8e6c98b0de299e290fc0c10864..c8a2de4290af06e7f8f0dfa3d462d631101cf423 100644 (file)
     <string name="skill_longdescription_concussion">When making an attack on a target whose block chance (BC) is at least %1$d lower than your attack chance (AC), there is a %2$d %% chance that the hit will cause a concussion on the target. A concussion will severely lower the target\'s offensive combat abilities, making the target less able to land successful attacks.</string>
 
     <string name="about_button4">About</string>
+    <string name="preferences_ui_category">Interface</string>
+    <string name="preferences_ui_enable_animations_title">Enable animations</string>
+    <string name="preferences_ui_enable_animations">Show animations for various interface elements, such as the combat bar.</string>
     
 </resources>
index 1102f6a2b85de38d8f161b90c5dc2b7cf4cc04ab..656df7d0afe17566a5852b7d7dd1f38265952baf 100644 (file)
                        android:summary="@string/preferences_movement_dpad_minimizeable"
                        android:key="dpadMinimizeable" />
        </PreferenceCategory>
+       <PreferenceCategory
+               android:title="@string/preferences_ui_category">
+               <CheckBoxPreference
+                       android:title="@string/preferences_ui_enable_animations_title"
+                       android:defaultValue="true"
+                       android:summary="@string/preferences_ui_enable_animations"
+                       android:key="enableUiAnimations" />
+       </PreferenceCategory>
 </PreferenceScreen>
index 0e84f3ec5222e987d9d37494591c0e3a0c4e3b4a..3993bb79659562efa5501aceef89af2ed8eedb37 100644 (file)
@@ -34,6 +34,7 @@ public class AndorsTrailPreferences {
        public int dpadPosition;\r
        public boolean dpadMinimizeable = true;\r
        public boolean optimizedDrawing = false;\r
+       public boolean enableUiAnimations = true;\r
        \r
        public static void read(final Context androidContext, AndorsTrailPreferences dest) {\r
                try {\r
@@ -48,6 +49,7 @@ public class AndorsTrailPreferences {
                        dest.dpadPosition = Integer.parseInt(prefs.getString("dpadposition", Integer.toString(DPAD_POSITION_DISABLED)));\r
                        dest.dpadMinimizeable = prefs.getBoolean("dpadMinimizeable", true);\r
                        dest.optimizedDrawing = prefs.getBoolean("optimized_drawing", false);\r
+                       dest.enableUiAnimations = prefs.getBoolean("enableUiAnimations", true);\r
                        \r
                        // This might be implemented as a skill in the future.\r
                        //dest.movementAggressiveness = Integer.parseInt(prefs.getString("movementaggressiveness", Integer.toString(MOVEMENTAGGRESSIVENESS_NORMAL)));\r
@@ -63,6 +65,7 @@ public class AndorsTrailPreferences {
                        dest.dpadPosition = DPAD_POSITION_DISABLED;\r
                        dest.dpadMinimizeable = true;\r
                        dest.optimizedDrawing = false;\r
+                       dest.enableUiAnimations = true;\r
                }\r
        }\r
        \r
index 5e0384a1c3094bb653e0c312a3353a6718774015..0f70c143dc40b198d631575efb36bf0057bf61f6 100644 (file)
@@ -85,7 +85,7 @@ public final class MainActivity extends Activity {
         statusview = (StatusView) findViewById(R.id.main_statusview);
         combatview = (CombatView) findViewById(R.id.main_combatview);
         quickitemview = (QuickitemView) findViewById(R.id.main_quickitemview);
-        activeConditions = new DisplayActiveActorConditionIcons(world.tileManager, this, (RelativeLayout) findViewById(R.id.statusview_activeconditions));
+        activeConditions = new DisplayActiveActorConditionIcons(app.preferences, world.tileManager, this, (RelativeLayout) findViewById(R.id.statusview_activeconditions));
         dpad = (VirtualDpadView) findViewById(R.id.main_virtual_dpad);
         
                statusText = (TextView) findViewById(R.id.statusview_statustext);
index c981c2e9eaf1d234dda5ba29130dcd9dadf9e81d..db610263544bbd2efd9b2afdbae9cfa8f5534a1f 100644 (file)
@@ -13,6 +13,7 @@ import android.widget.ImageButton;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
 import com.gpl.rpg.AndorsTrail.Dialogs;
 import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
 import com.gpl.rpg.AndorsTrail.R;
@@ -36,17 +37,20 @@ public final class CombatView extends RelativeLayout {
        private final WorldContext world;
        private final ViewContext view;
        private final Resources res;
+       private final AndorsTrailPreferences preferences;
        private final Player player;
        private final Animation displayAnimation;
        private final Animation hideAnimation;
 
        private Monster currentMonster;
+       
        public CombatView(final Context context, AttributeSet attr) {
                super(context, attr);
         AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivityContext(context);
         this.world = app.world;
         this.player = world.model.player;
         this.view = app.currentView.get();
+        this.preferences = app.preferences;
         this.res = getResources();
 
         setFocusable(false);
@@ -154,11 +158,16 @@ public final class CombatView extends RelativeLayout {
        public void show() {
                setVisibility(View.VISIBLE);
        bringToFront();
-       startAnimation(displayAnimation);
+       if (preferences.enableUiAnimations) {
+               startAnimation(displayAnimation);
+       }
        }
 
        public void hide() {
-               startAnimation(hideAnimation);
-               //setVisibility(View.GONE);
+               if (preferences.enableUiAnimations) {
+                       startAnimation(hideAnimation);
+               } else {
+                       setVisibility(View.GONE);
+               }
        }
 }
index a3bcc1e88058764f0f8dbf1e2a32b29266ae6392..c14864707dfb854effd3967baaa8cd76436dce0f 100644 (file)
@@ -14,6 +14,7 @@ import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.RelativeLayout.LayoutParams;
 
+import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
 import com.gpl.rpg.AndorsTrail.R;
 import com.gpl.rpg.AndorsTrail.context.WorldContext;
 import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
@@ -23,12 +24,18 @@ import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
 
 public class DisplayActiveActorConditionIcons implements ActorConditionListener {
        
+       private final AndorsTrailPreferences preferences;
        private final TileManager tileManager;
        private final RelativeLayout activeConditions;
        private final ArrayList<ActiveConditionIcon> currentConditionIcons = new ArrayList<ActiveConditionIcon>();
        private final WeakReference<Context> androidContext;
        
-       public DisplayActiveActorConditionIcons(final TileManager tileManager, Context androidContext, RelativeLayout activeConditions) {
+       public DisplayActiveActorConditionIcons(
+                       final AndorsTrailPreferences preferences, 
+                       final TileManager tileManager, 
+                       Context androidContext, 
+                       RelativeLayout activeConditions) {
+               this.preferences = preferences;
                this.tileManager = tileManager;
                this.androidContext = new WeakReference<Context>(androidContext);
                this.activeConditions = activeConditions;
@@ -123,7 +130,11 @@ public class DisplayActiveActorConditionIcons implements ActorConditionListener
                
                public void hide(boolean useAnimation) {
                        if (useAnimation) {
-                               image.startAnimation(onRemovedIconAnimation);
+                               if (preferences.enableUiAnimations) {
+                                       image.startAnimation(onRemovedIconAnimation);
+                               } else {
+                                       onAnimationEnd(onRemovedIconAnimation);
+                               }
                        } else {
                                image.setVisibility(View.GONE);
                                condition = null;
@@ -131,11 +142,13 @@ public class DisplayActiveActorConditionIcons implements ActorConditionListener
                        text.setVisibility(View.GONE);
                }
                public void show() {
+                       if (!preferences.enableUiAnimations) return;
                        image.startAnimation(onNewIconAnimation);
                        if (text.getVisibility() == View.VISIBLE) text.startAnimation(onNewIconAnimation);
                }
                
                public void pulseAnimate() {
+                       if (!preferences.enableUiAnimations) return;
                        image.startAnimation(onAppliedEffectAnimation);
                }