= 5302ac0d00 Changed overall style
Now one can change directly between Screens from TopBar
Fixed bugs
2018-01-21 17:40:25 +01:00

144 lines
5.3 KiB
Java

package de.frajul.endlessroll.views;
import android.graphics.Typeface;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.screens.Screen;
import de.frajul.endlessroll.user.User;
/**
* Created by Julian on 08.07.2016.
*/
public class TopBar implements View.OnClickListener {
private GameActivity gameActivity;
private View layout;
private Screen.ScreenType parent;
private Screen.ScreenType customCallerForScreenSwitch = Screen.ScreenType.NONE;
private Animation starDecreaseAnimation;
private Animation energyDecreaseAnimation;
private Animation toolShopPulse;
private TextView levelDisplay;
private ProgressBar levelProgress;
private TextView starCount;
private TextView energyCount;
private Button settingsButton;
private Button toolshopButton;
private Button shapeshopButton;
private TextView starCountDecrease;
private TextView energyCountDecrease;
public TopBar(GameActivity gameActivity, Screen.ScreenType parent, View layout) {
this.gameActivity = gameActivity;
this.parent = parent;
this.layout = layout;
starDecreaseAnimation = AnimationUtils.loadAnimation(gameActivity, R.anim.decrease);
energyDecreaseAnimation = AnimationUtils.loadAnimation(gameActivity, R.anim.decrease);
toolShopPulse = AnimationUtils.loadAnimation(gameActivity, R.anim.pulse);
Typeface typeface = gameActivity.getTypeface();
levelDisplay = (TextView) layout.findViewById(R.id.topbar_leveldisplay);
levelDisplay.setTypeface(typeface);
levelProgress = (ProgressBar) layout.findViewById(R.id.topbar_levelprogress);
starCount = (TextView) layout.findViewById(R.id.topbar_starcount);
starCount.setTypeface(typeface);
energyCount = (TextView) layout.findViewById(R.id.topbar_energycount);
energyCount.setTypeface(typeface);
settingsButton = (Button) layout.findViewById(R.id.topbar_settings);
settingsButton.setOnClickListener(this);
toolshopButton = (Button) layout.findViewById(R.id.topbar_toolshop);
toolshopButton.setOnClickListener(this);
shapeshopButton = (Button) layout.findViewById(R.id.topbar_shapeshop);
shapeshopButton.setOnClickListener(this);
if(parent == Screen.ScreenType.SETTINGS)
settingsButton.setEnabled(false);
if(parent == Screen.ScreenType.TOOL_SHOP)
toolshopButton.setEnabled(false);
if(parent == Screen.ScreenType.SHAPE_SHOP)
shapeshopButton.setEnabled(false);
if (parent == Screen.ScreenType.GAME) {
toolshopButton.setEnabled(false);
shapeshopButton.setEnabled(false);
}
starCountDecrease = (TextView) layout.findViewById(R.id.topbar_starcount_decrease);
starCountDecrease.setTypeface(typeface);
energyCountDecrease = (TextView) layout.findViewById(R.id.topbar_energycount_decrease);
energyCountDecrease.setTypeface(typeface);
}
public void setShopsEnabled(boolean enabled) {
toolshopButton.setEnabled(enabled);
shapeshopButton.setEnabled(enabled);
}
public void startAnimation(Animation animation) {
layout.startAnimation(animation);
}
public void update() {
toolshopButton.clearAnimation();
User user = gameActivity.getUser();
levelDisplay
.setText(gameActivity.getString(R.string.topbar_level_format_d, user.getLevel()));
levelProgress.setProgress(user.getEp());
starCount.setText(user.getStarCount() + "");
energyCount.setText(user.getEnergyCount() + "");
gameActivity.getTutorialManager().onTopBarUpdate(this);
}
public void startToolShopButtonPulse() {
toolshopButton.startAnimation(toolShopPulse);
}
public void showStarcountDecrease(int decrease) {
starCountDecrease.setText(decrease + "");
starCountDecrease.startAnimation(starDecreaseAnimation);
}
public void showEnergycountDecrease(int decrease) {
energyCountDecrease.setText(decrease + "");
energyCountDecrease.startAnimation(energyDecreaseAnimation);
}
public void setCustomCallerForScreenSwitch(Screen.ScreenType customCallerForScreenSwitch) {
this.customCallerForScreenSwitch = customCallerForScreenSwitch;
}
@Override
public void onClick(View v) {
if (v.equals(toolshopButton)) {
flipToScreen(Screen.ScreenType.TOOL_SHOP);
} else if (v.equals(shapeshopButton)) {
flipToScreen(Screen.ScreenType.SHAPE_SHOP);
} else if (v.equals(settingsButton)) {
flipToScreen(Screen.ScreenType.SETTINGS);
}
}
private void flipToScreen(Screen.ScreenType screenType) {
if (customCallerForScreenSwitch != Screen.ScreenType.NONE)
gameActivity.flipToScreen(screenType, customCallerForScreenSwitch);
gameActivity.flipToScreen(screenType);
}
public Screen.ScreenType getParent() {
return parent;
}
public boolean isToolShopButtonEnabled() {
return toolshopButton.isEnabled();
}
}