]> www.infradead.org Git - users/mchehab/andors-trail.git/commitdiff
Move toolbox to lower right hand corner, replaces old "toggle quickitems" button.
authorOskar Wiksten <oskar.wiksten@gmail.com>
Tue, 7 Aug 2012 09:53:02 +0000 (11:53 +0200)
committerOskar Wiksten <oskar.wiksten@gmail.com>
Sun, 7 Oct 2012 14:41:23 +0000 (16:41 +0200)
AndorsTrail/res/anim/hidetoolbox.xml [moved from AndorsTrail/res/anim/slidedown.xml with 100% similarity]
AndorsTrail/res/anim/showtoolbox.xml [moved from AndorsTrail/res/anim/slideup.xml with 100% similarity]
AndorsTrail/res/layout/main.xml
AndorsTrail/res/layout/statusview.xml
AndorsTrail/res/layout/toolboxview.xml
AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/MainActivity.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatController.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/StatusView.java
AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/ToolboxView.java

index cbc4ce6b77140adab71b8101fc88d2df5e92f375..7f48aa52c0255d4e5c8af243993822eca56c84fb 100644 (file)
@@ -33,7 +33,7 @@
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@id/main_statusview"
-               android:layout_alignParentLeft="true"
+               android:layout_alignParentRight="true"
                android:visibility="gone"
                />
 
index 6e76308d50b4c9c03edffbc6a9a8351f836e68a8..37cc3694a348df72da52b5dae132fb83b82f5805 100644 (file)
@@ -15,7 +15,7 @@
                />
                
     <ImageButton 
-        android:id="@+id/quickitem_toggle"
+        android:id="@+id/toolbox_toggle"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentRight="true"
@@ -27,7 +27,7 @@
                android:layout_height="wrap_content"
         android:layout_centerVertical="true"
                android:layout_toRightOf="@id/status_image"
-        android:layout_toLeftOf="@id/quickitem_toggle"
+        android:layout_toLeftOf="@id/toolbox_toggle"
                android:orientation="vertical"
                >
                <com.gpl.rpg.AndorsTrail.view.RangeBar
index 6d07acf3176da45fe7fd605aa18d2cc5de08f8ab..f2de0b750687f6b835ea91caecb85de3e04db2d3 100644 (file)
@@ -8,13 +8,13 @@
        >
 
        <ImageButton 
-           android:id="@+id/toolbox_playerinfo"
+               android:id="@+id/toolbox_map"
                style="@style/toolboxButton"
-               android:src="@drawable/char_hero"
+               android:src="@drawable/ui_icon_map"
            />
        <ImageButton 
-               android:id="@+id/toolbox_map"
+           android:id="@+id/toolbox_quickitems"
                style="@style/toolboxButton"
-               android:src="@drawable/ui_icon_map"
+               android:src="@drawable/ui_icon_equipment"
            />
 </LinearLayout>
index 9c8bf62302decff24aa89aed261d4217a0705123..1dc7ed54b382a5ef17c35034405b4e357d404284 100644 (file)
@@ -88,6 +88,7 @@ public final class MainActivity extends Activity {
         activeConditions = (LinearLayout) findViewById(R.id.statusview_activeconditions);
         dpad = (VirtualDpadView) findViewById(R.id.main_virtual_dpad);
         toolboxview = (ToolboxView) findViewById(R.id.main_toolboxview);
+        statusview.registerToolboxViews(toolboxview, quickitemview);
         
                statusText = (TextView) findViewById(R.id.statusview_statustext);
                statusText.setOnClickListener(new OnClickListener() {
@@ -102,9 +103,15 @@ public final class MainActivity extends Activity {
         
                quickitemview.setVisibility(View.GONE);
         quickitemview.registerForContextMenu(this);
-       quickitemview.refreshQuickitems();
        
        dpad.updateVisibility(app.preferences);
+       
+       // Define which views are in front of each other.
+       dpad.bringToFront();
+       quickitemview.bringToFront();
+       toolboxview.bringToFront();
+       combatview.bringToFront();
+       statusview.bringToFront();
     }
        
     @Override
@@ -302,9 +309,4 @@ public final class MainActivity extends Activity {
                }
                t.show();
        }
-
-       public void toggleToolboxVisibility() {
-               toolboxview.toggleVisibility();
-               statusview.bringToFront();
-       }
 }
index a0911b735028757ce8ede446bef741adfcf91f0b..5dcbf4d50d22ffd67ec30ef2118170f0ef9646de 100644 (file)
@@ -50,7 +50,6 @@ public final class CombatController implements VisualEffectCompletedCallback {
        
        public void enterCombat(int beginTurnAs) {
        context.mainActivity.combatview.setVisibility(View.VISIBLE);
-       context.mainActivity.combatview.bringToFront();
        model.uiSelections.isInCombat = true;
        killedMonsterBags.clear();
        context.mainActivity.clearMessages();
index 8e1cea16b25c54f7e64997515afe66e0c19d7e00..b8f7c73f0ed55d68d11a53792d9da3a1eac3172d 100644 (file)
@@ -2,8 +2,6 @@ package com.gpl.rpg.AndorsTrail.controller;
 
 import java.util.ArrayList;
 
-import android.view.View;
-
 import com.gpl.rpg.AndorsTrail.Dialogs;
 import com.gpl.rpg.AndorsTrail.context.ViewContext;
 import com.gpl.rpg.AndorsTrail.context.WorldContext;
@@ -236,17 +234,6 @@ public final class ItemController {
                model.player.inventory.quickitem[quickSlotId] = itemType;
                view.mainActivity.updateStatus();
        }
-       
-       public void toggleQuickItemView() {
-               if (view.mainActivity.quickitemview.getVisibility()==View.VISIBLE){
-                       view.mainActivity.quickitemview.setVisibility(View.GONE);
-                       view.mainActivity.statusview.updateQuickItemImage(false);
-               } else {
-               view.mainActivity.quickitemview.setVisibility(View.VISIBLE);
-               view.mainActivity.quickitemview.bringToFront();
-                       view.mainActivity.statusview.updateQuickItemImage(true);
-               }
-       }
 
        public static void correctActorConditionsFromItemsPre0611b1(Player player, String conditionTypeID, WorldContext world, String itemTypeIDWithCondition) {
                if (!player.hasCondition(conditionTypeID)) return;
index 79c610db38baa06d3977477a680de2e1705eacde..56575a14d50823ed98ebbbcae66779c221c62e3a 100644 (file)
@@ -2,13 +2,14 @@ package com.gpl.rpg.AndorsTrail.view;
 
 import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
 import com.gpl.rpg.AndorsTrail.R;
-import com.gpl.rpg.AndorsTrail.context.ViewContext;
+import com.gpl.rpg.AndorsTrail.activity.HeroinfoActivity;
 import com.gpl.rpg.AndorsTrail.context.WorldContext;
 import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
 import com.gpl.rpg.AndorsTrail.model.actor.Player;
 import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
 
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.LayerDrawable;
@@ -23,21 +24,20 @@ public final class StatusView extends RelativeLayout {
        
        private final WorldContext world;
        private final Player player;
-       private final ViewContext view;
        
        private final RangeBar healthBar;
        private final RangeBar expBar;
        private final ImageButton heroImage;
-       private final ImageButton quickToggle;
+       private final ImageButton toggleToolbox;
        private boolean showingLevelup;
        private final Drawable levelupDrawable;
+       private ToolboxView toolbox;
        
        public StatusView(final Context context, AttributeSet attr) {
                super(context, attr);
         AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivityContext(context);
         this.world = app.world;
         this.player = app.world.model.player;
-        this.view = app.currentView.get();
         
         setFocusable(false);
         inflate(context, R.layout.statusview, this);
@@ -49,7 +49,7 @@ public final class StatusView extends RelativeLayout {
         heroImage.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View arg0) {
-                               view.mainActivity.toggleToolboxVisibility();
+                               context.startActivity(new Intent(context, HeroinfoActivity.class));
                        }
                });
                healthBar = (RangeBar) findViewById(R.id.statusview_health);
@@ -63,18 +63,24 @@ public final class StatusView extends RelativeLayout {
                                ,new BitmapDrawable(world.tileManager.preloadedTiles.getBitmap(TileManager.iconID_moveselect))
                });
                
-               quickToggle = (ImageButton) findViewById(R.id.quickitem_toggle);
-               world.tileManager.setImageViewTileForUIIcon(quickToggle, TileManager.iconID_boxclosed);
-               quickToggle.setOnClickListener(new OnClickListener() {
+               toggleToolbox = (ImageButton) findViewById(R.id.toolbox_toggle);
+               world.tileManager.setImageViewTileForUIIcon(toggleToolbox, TileManager.iconID_boxclosed);
+               toggleToolbox.setOnClickListener(new OnClickListener() {
                        @Override
                        public void onClick(View v) {
-                               view.itemController.toggleQuickItemView();
+                               toolbox.toggleVisibility();
                        }
                });
                
                updateStatus();
         updateIcon(player.canLevelup());
     }
+       
+       public void registerToolboxViews(ToolboxView toolbox, QuickitemView quickitemView) {
+               this.toolbox = toolbox;
+               toolbox.registerToolboxViews(toggleToolbox, quickitemView);
+               toolbox.updateIcons();
+       }
 
        public void updateStatus() {
                healthBar.update(player.health);
@@ -103,14 +109,6 @@ public final class StatusView extends RelativeLayout {
                t.removeOtherImages();
        }
        
-       public void updateQuickItemImage(boolean visible){
-               if(visible){
-                       world.tileManager.setImageViewTileForUIIcon(quickToggle, TileManager.iconID_boxopened);
-               } else {
-                       world.tileManager.setImageViewTileForUIIcon(quickToggle, TileManager.iconID_boxclosed);
-               }
-       }
-       
        private static class GreedyImageViewAppender {
                private final LinearLayout container;
                private final Context context;
index a174432345a2fb94e7f755d9f2111fb6e0ec06b9..b822330ee4da0d0f79683addc8aee864818c3015 100644 (file)
@@ -1,7 +1,6 @@
 package com.gpl.rpg.AndorsTrail.view;
 
 import android.content.Context;
-import android.content.Intent;
 import android.util.AttributeSet;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -13,17 +12,18 @@ import android.widget.LinearLayout;
 
 import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
 import com.gpl.rpg.AndorsTrail.R;
-import com.gpl.rpg.AndorsTrail.activity.HeroinfoActivity;
-import com.gpl.rpg.AndorsTrail.context.ViewContext;
 import com.gpl.rpg.AndorsTrail.context.WorldContext;
 import com.gpl.rpg.AndorsTrail.controller.WorldMapController;
+import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
 
 public class ToolboxView extends LinearLayout implements OnClickListener {
        private final WorldContext world;
-       private final Animation slideUpAnimation;
-       private final Animation slideDownAnimation;
-       private final ImageButton toolbox_playerinfo;
+       private final Animation showAnimation;
+       private final Animation hideAnimation;
+       private final ImageButton toolbox_quickitems;
        private final ImageButton toolbox_map;
+       private ImageButton toggleVisibility;
+       private QuickitemView quickitemView;
        
        public ToolboxView(final Context context, AttributeSet attrs) {
                super(context, attrs);
@@ -32,49 +32,66 @@ public class ToolboxView extends LinearLayout implements OnClickListener {
 
         inflate(context, R.layout.toolboxview, this);
                
-               this.slideUpAnimation = AnimationUtils.loadAnimation(context, R.anim.slideup);
-        this.slideDownAnimation = AnimationUtils.loadAnimation(context, R.anim.slidedown);
-        this.slideDownAnimation.setAnimationListener(new AnimationListener() {
-                       @Override
-                       public void onAnimationStart(Animation animation) { }
-                       @Override
-                       public void onAnimationRepeat(Animation animation) { }
-                       @Override
-                       public void onAnimationEnd(Animation animation) {
-                               ToolboxView.this.setVisibility(View.GONE);
-                       }
+               this.showAnimation = AnimationUtils.loadAnimation(context, R.anim.showtoolbox);
+        this.hideAnimation = AnimationUtils.loadAnimation(context, R.anim.hidetoolbox);
+        this.hideAnimation.setAnimationListener(new AnimationListener() {
+               @Override public void onAnimationStart(Animation animation) { }
+               @Override public void onAnimationRepeat(Animation animation) { }
+               @Override public void onAnimationEnd(Animation animation) {
+                       ToolboxView.this.setVisibility(View.GONE);
+               }
                });
         
-        toolbox_playerinfo = (ImageButton)findViewById(R.id.toolbox_playerinfo);
-        toolbox_playerinfo.setOnClickListener(this);
+        toolbox_quickitems = (ImageButton)findViewById(R.id.toolbox_quickitems);
+        toolbox_quickitems.setOnClickListener(this);
         toolbox_map = (ImageButton)findViewById(R.id.toolbox_map);
         toolbox_map.setOnClickListener(this);
-        
-        updateIcons();
+       }
+       
+       public void registerToolboxViews(ImageButton toggleVisibility, QuickitemView quickitemView) {
+               this.toggleVisibility = toggleVisibility;
+               this.quickitemView = quickitemView;
        }
        
        @Override
        public void onClick(View btn) {
                Context context = getContext();
-               if (btn == toolbox_playerinfo) {
-                       context.startActivity(new Intent(context, HeroinfoActivity.class));
+               if (btn == toolbox_quickitems) {
+                       toggleQuickItemView();
                } else if (btn == toolbox_map) {
                        if (!WorldMapController.displayWorldMap(context, world)) return;
+                       setVisibility(View.GONE);
+               }
+       }
+       
+       private void toggleQuickItemView() {
+               if (quickitemView.getVisibility() == View.VISIBLE){
+                       quickitemView.setVisibility(View.GONE);
+               } else {
+                       quickitemView.setVisibility(View.VISIBLE);
                }
-               ToolboxView.this.setVisibility(View.GONE);
        }
 
        public void toggleVisibility() {
                if (getVisibility() == View.VISIBLE) {
-                       startAnimation(slideDownAnimation);
+                       startAnimation(hideAnimation);
+                       setToolboxIcon(false);
                } else {
                        setVisibility(View.VISIBLE);
-                       bringToFront();
-                       startAnimation(slideUpAnimation);
+                       startAnimation(showAnimation);
+                       setToolboxIcon(true);
                }
        }
        
        public void updateIcons() {
-               world.tileManager.setImageViewTile(toolbox_playerinfo, world.model.player);
+               setToolboxIcon(getVisibility() == View.VISIBLE);
+       }
+       
+       private void setToolboxIcon(boolean opened) {
+               if (opened) {
+                       world.tileManager.setImageViewTileForUIIcon(toggleVisibility, TileManager.iconID_boxopened);
+               } else {
+                       world.tileManager.setImageViewTileForUIIcon(toggleVisibility, TileManager.iconID_boxclosed);
+               }
        }
 }