Added credits-dialog
Changed SettingsScreen
This commit is contained in:
@ -1,13 +1,16 @@
|
||||
package de.frajul.endlessroll.main.screens;
|
||||
|
||||
import android.support.annotation.IdRes;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.ToggleButton;
|
||||
|
||||
import de.frajul.endlessroll.R;
|
||||
import de.frajul.endlessroll.main.GameActivity;
|
||||
import de.frajul.endlessroll.views.ConfirmDialog;
|
||||
import de.frajul.endlessroll.views.CreditsDialog;
|
||||
import de.frajul.endlessroll.views.TopBar;
|
||||
|
||||
/**
|
||||
@ -21,23 +24,35 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
|
||||
private TopBar topBar;
|
||||
private ToggleButton musicToggle;
|
||||
private ToggleButton soundToggle;
|
||||
private Button creditsButton;
|
||||
private Button resetButton;
|
||||
|
||||
private CreditsDialog creditsDialog;
|
||||
private ConfirmDialog resetConfirmDialog;
|
||||
|
||||
public SettingsScreen(GameActivity gameActivity) {
|
||||
super(ScreenType.SETTINGS, gameActivity, R.layout.settings);
|
||||
topBar = super.createTopBar(R.id.settings_topbar);
|
||||
setTypefaceToTextView(R.id.settings_music_label);
|
||||
setTypefaceToTextView(R.id.settings_sounds_label);
|
||||
musicToggle = (ToggleButton) layout.findViewById(R.id.settings_musictoggle);
|
||||
musicToggle.setOnClickListener(this);
|
||||
soundToggle = (ToggleButton) layout.findViewById(R.id.settings_soundtoggle);
|
||||
soundToggle.setOnClickListener(this);
|
||||
creditsButton = (Button) layout.findViewById(R.id.settings_credits);
|
||||
creditsButton.setOnClickListener(this);
|
||||
resetButton = (Button) layout.findViewById(R.id.settings_reset);
|
||||
resetButton.setOnClickListener(this);
|
||||
|
||||
creditsDialog = new CreditsDialog(gameActivity);
|
||||
resetConfirmDialog = new ConfirmDialog(gameActivity, this);
|
||||
}
|
||||
|
||||
private void setTypefaceToTextView(@IdRes int id) {
|
||||
TextView textView = (TextView) layout.findViewById(id);
|
||||
textView.setTypeface(gameActivity.getTypeface());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void prepareToBeShown() {
|
||||
gameActivity.getSoundManager().menuMusic.start();
|
||||
@ -67,6 +82,8 @@ public class SettingsScreen extends Screen<LinearLayout> implements View.OnClick
|
||||
gameActivity.getSoundManager().setMusicMuted(!musicToggle.isChecked());
|
||||
} else if (v.equals(soundToggle)) {
|
||||
gameActivity.getSoundManager().setSoundsMuted(!soundToggle.isChecked());
|
||||
} else if (v.equals(creditsButton)) {
|
||||
creditsDialog.show();
|
||||
} else if (v.equals(resetButton)) {
|
||||
resetConfirmDialog.show(CALL_ID_CONFIRM_RESET, R.string.confirm_dialog_reset);
|
||||
}
|
||||
|
102
app/src/main/java/de/frajul/endlessroll/views/CreditsDialog.java
Normal file
102
app/src/main/java/de/frajul/endlessroll/views/CreditsDialog.java
Normal file
@ -0,0 +1,102 @@
|
||||
package de.frajul.endlessroll.views;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Dialog;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.IdRes;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.view.animation.LinearInterpolator;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
import de.frajul.endlessroll.R;
|
||||
import de.frajul.endlessroll.main.GameActivity;
|
||||
|
||||
/**
|
||||
* Created by Julian on 31.10.2017.
|
||||
*/
|
||||
|
||||
public class CreditsDialog extends Dialog implements View.OnTouchListener {
|
||||
|
||||
private GameActivity gameActivity;
|
||||
|
||||
private ImageView ball;
|
||||
private Animation rotation;
|
||||
private ScrollView scrollView;
|
||||
private ReentrantLock scrollViewAnimatorLock;
|
||||
private ObjectAnimator scrollViewAnimator;
|
||||
|
||||
public CreditsDialog(GameActivity gameActivity) {
|
||||
super(gameActivity);
|
||||
this.gameActivity = gameActivity;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
setContentView(R.layout.credits_dialog);
|
||||
|
||||
setTypefaceToTextView(R.id.credits_title);
|
||||
setTypefaceToTextView(R.id.credits_author);
|
||||
setTypefaceToTextView(R.id.credits_testers_title);
|
||||
setTypefaceToTextView(R.id.credits_testers);
|
||||
setTypefaceToTextView(R.id.credits_sounds_title);
|
||||
setTypefaceToTextView(R.id.credits_sounds);
|
||||
setTypefaceToTextView(R.id.credits_music_title);
|
||||
setTypefaceToTextView(R.id.credits_music);
|
||||
|
||||
ball = (ImageView) findViewById(R.id.credits_ball);
|
||||
rotation = AnimationUtils.loadAnimation(gameActivity, R.anim.shape_button_rotation);
|
||||
scrollView = ((ScrollView) findViewById(R.id.credits_scrollview));
|
||||
scrollView.setOnTouchListener(this);
|
||||
scrollViewAnimatorLock = new ReentrantLock();
|
||||
}
|
||||
|
||||
private void setTypefaceToTextView(@IdRes int id) {
|
||||
TextView textView = (TextView) findViewById(id);
|
||||
textView.setTypeface(gameActivity.getTypeface());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
super.show();
|
||||
ball.startAnimation(rotation);
|
||||
scrollView.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
scrollView.scrollTo(0, 0);
|
||||
|
||||
scrollViewAnimatorLock.lock();
|
||||
try {
|
||||
scrollViewAnimator = ObjectAnimator
|
||||
.ofInt(scrollView, "scrollY", scrollView.getBottom());
|
||||
scrollViewAnimator.setDuration(8000);
|
||||
scrollViewAnimator.setInterpolator(new LinearInterpolator());
|
||||
scrollViewAnimator.start();
|
||||
} finally {
|
||||
scrollViewAnimatorLock.unlock();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
scrollViewAnimatorLock.lock();
|
||||
try {
|
||||
if (scrollViewAnimator != null)
|
||||
scrollViewAnimator.cancel();
|
||||
} finally {
|
||||
scrollViewAnimatorLock.unlock();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user