Added credits-dialog

Changed SettingsScreen
This commit is contained in:
=
2018-02-16 13:43:32 +01:00
parent 3239a54ee9
commit b4ad6a7227
20 changed files with 1179 additions and 793 deletions

View File

@ -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);
}

View 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;
}
}

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="@color/secondary_much_transparent"/>
<corners android:radius="5dp"/>
<padding android:right="5dp"
android:left="5dp"
android:top="5dp"
android:bottom="5dp"/>
<stroke android:width="1dp" android:color="@color/secondary_dark"/>
</shape>
</item>
<item android:state_pressed="false">
<shape>
<solid android:color="@color/transparent"/>
<corners android:radius="5dp"/>
<padding android:right="5dp"
android:left="5dp"
android:top="5dp"
android:bottom="5dp"/>
<stroke android:width="1dp" android:color="@color/secondary_dark"/>
</shape>
</item>
</selector>

View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/xml_background_exit_confirm_dialog"
android:padding="10dp">
<ScrollView
android:id="@+id/credits_scrollview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:overScrollMode="never"
android:scrollbars="none">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/credits_margin_between_categories"
android:paddingTop="@dimen/credits_margin_between_categories">
<TextView
android:id="@+id/credits_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/credits_title"
android:textAlignment="center"
android:textSize="35sp"/>
<ImageView
android:id="@+id/credits_ball"
android:layout_width="wrap_content"
android:layout_height="38sp"
android:layout_gravity="center_horizontal"
android:adjustViewBounds="true"
android:src="@drawable/playershapes_ball"/>
<TextView
android:id="@+id/credits_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="@dimen/credits_margin_between_categories"
android:text="@string/credits_author"
android:textAlignment="center"
android:textSize="20sp"/>
<TextView
android:id="@+id/credits_testers_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/credits_testers_title"
android:textAlignment="center"
android:textSize="25sp"/>
<TextView
android:id="@+id/credits_testers"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="@dimen/credits_margin_between_categories"
android:text="@string/credits_testers"
android:textAlignment="center"
android:textSize="15sp"/>
<TextView
android:id="@+id/credits_sounds_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/credits_sounds_title"
android:textAlignment="center"
android:textSize="25sp"/>
<TextView
android:id="@+id/credits_sounds"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="@dimen/credits_margin_between_categories"
android:text="@string/credits_sounds"
android:textAlignment="center"
android:textSize="14sp"/>
<TextView
android:id="@+id/credits_music_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/credits_music_title"
android:textAlignment="center"
android:textSize="25sp"/>
<TextView
android:id="@+id/credits_music"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/credits_music"
android:textAlignment="center"
android:textSize="14sp"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>

View File

@ -12,10 +12,12 @@
<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:background="@drawable/backgrounds_menu_grasslands"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
android:layout_gravity="center"
android:background="@drawable/backgrounds_menu_grasslands"
android:overScrollMode="never"
android:scrollbars="none">
<RelativeLayout
android:layout_width="wrap_content"

View File

@ -11,43 +11,106 @@
android:layout_height="wrap_content"
android:layout_gravity="top"/>
<RelativeLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgrounds_menu_grasslands">
android:background="@drawable/backgrounds_menu_grasslands"
android:paddingBottom="20dp"
android:orientation="vertical">
<LinearLayout
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:orientation="vertical">
android:layout_weight="1">
<ToggleButton
android:id="@+id/settings_musictoggle"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/xml_selector_music"
android:textOff=""
android:textOn=""/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<ToggleButton
android:id="@+id/settings_soundtoggle"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/xml_selector_sound"
android:textOff=""
android:textOn=""/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/settings_music_label"
android:layout_width="wrap_content"
android:layout_marginRight="5dp"
android:layout_marginEnd="5dp"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="@string/settings_music"/>
<ToggleButton
android:id="@+id/settings_musictoggle"
android:layout_width="40dp"
android:layout_gravity="center_vertical"
android:layout_height="40dp"
android:background="@drawable/xml_selector_music"
android:textOff=""
android:textOn=""/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/settings_sounds_label"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="5dp"
android:layout_marginEnd="5dp"
android:textSize="20sp"
android:layout_height="wrap_content"
android:text="@string/settings_sounds"/>
<ToggleButton
android:id="@+id/settings_soundtoggle"
android:layout_width="40dp"
android:layout_gravity="center_vertical"
android:layout_height="40dp"
android:background="@drawable/xml_selector_sound"
android:textOff=""
android:textOn=""/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button
android:id="@+id/settings_credits"
style="@style/SettingsScreenButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/settings_credits"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button
android:id="@+id/settings_reset"
style="@style/GameButton"
style="@style/SettingsScreenButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_centerInParent="true"
android:text="@string/settings_reset"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
</LinearLayout>

View File

@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/shape_inspector_width"
android:layout_height="match_parent"
android:background="@color/secondary_transparent"
android:background="@color/secondary_little_transparent"
android:orientation="vertical"
android:padding="10dp">

View File

@ -17,7 +17,6 @@
<Button
android:id="@+id/startscreen_unlock_levels"
style="@style/GameButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
@ -26,11 +25,10 @@
android:layout_marginStart="10dp"
android:layout_marginTop="2dp"
android:text="@string/start_screen_unlock_all_levels"
android:visibility="gone"/>
android:visibility="visible"/>
<Button
android:id="@+id/startscreen_gain_90_ep"
style="@style/GameButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
@ -39,11 +37,10 @@
android:layout_marginStart="10dp"
android:layout_marginTop="2dp"
android:text="@string/start_screen_gain_90_ep"
android:visibility="gone"/>
android:visibility="visible"/>
<Button
android:id="@+id/startscreen_finish_world_1"
style="@style/GameButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
@ -55,7 +52,6 @@
<Button
android:id="@+id/startscreen_to_gl_test_screen"
style="@style/GameButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
@ -63,6 +59,6 @@
android:layout_alignParentTop="true"
android:layout_margin="10dp"
android:text="@string/start_screen_to_gl_test_screen"
android:visibility="gone"/>
android:visibility="visible"/>
</RelativeLayout>

View File

@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/tool_inspector_width"
android:layout_height="match_parent"
android:background="@color/secondary_transparent"
android:background="@color/secondary_little_transparent"
android:clipChildren="false"
android:orientation="vertical"
android:padding="10dp">

View File

@ -20,6 +20,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:scrollbars="none"
android:overScrollMode="never"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp">

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="world_names">
<item>World zer0</item>
<item>Grasslands</item>
<item>Icy Mountains</item>
<item>Testcave</item>
</string-array>
</resources>

View File

@ -80,4 +80,8 @@
<string name="tutorial_switch_tools_two_neccessary">Für dieses Level müssen zwei Tools ausgerüstet sein</string>
<string name="tutorial_switch_tools_switch">Um ein Tool auszuwählen, klicke einfach darauf</string>
<string name="tutorial_place_ramp_gap">Setzte die Rampe vor die Lücke</string>
<string name="credits_author">von Frajul</string>
<string name="credits_testers_title">TESTER</string>
<string name="credits_music_title">MUSIK</string>
<string name="settings_music">Musik</string>
</resources>

View File

@ -5,6 +5,5 @@
<item>Grasslands</item>
<item>Icy Mountains</item>
<item>Testcave</item>
<item>Mysterious fireworld</item>
</string-array>
</resources>

View File

@ -7,11 +7,13 @@
<color name="secondary">#ffb637</color>
<color name="secondary_light">#ffeb37</color>
<color name="secondary_dark">#ff8e37</color>
<color name="secondary_transparent">#e2ffb637</color>
<color name="secondary_little_transparent">#e2ffb637</color>
<color name="secondary_much_transparent">#57ffb637</color>
<color name="red">#ff0000</color>
<color name="black">#000000</color>
<color name="white">#ffffff</color>
<color name="transparent">#00000000</color>
<color name="message_buttons">#daf10d</color>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="credits_margin_between_categories">30dp</dimen>
<dimen name="tool_inspector_width">170dp</dimen>
<dimen name="shape_inspector_width">170dp</dimen>
<dimen name="tool_button_width">70dp</dimen>

View File

@ -37,6 +37,9 @@
<string name="topbar_level_placeholder" translatable="false">Level: 24</string>
<string name="topbar_level_format_d" translatable="false">Level: %d</string>
<string name="settings_reset">Reset progress</string>
<string name="settings_credits" translatable="false">Credits</string>
<string name="settings_music">Music</string>
<string name="settings_sounds" translatable="false">Sounds</string>
<string name="topbar_toolshop">Toolshop</string>
<string name="unlock_message_placeholder">Ramp unlocked</string>
<string name="world_button_title_placeholder">Great world</string>
@ -114,4 +117,13 @@
<string name="tutorial_spring_equipped">Well done! Now you can start the next level</string>
<string name="tutorial_switch_tools_two_neccessary">For this level you will need two tools equipped</string>
<string name="tutorial_switch_tools_switch">To select a tool just click on it</string>
<string name="credits_title" translatable="false">ENDLESS ROLL</string>
<string name="credits_author">by Frajul</string>
<string name="credits_testers_title">TESTERS</string>
<string name="credits_testers" translatable="false">Tester1\nTester2\nTester3\nTester4</string>
<string name="credits_sounds_title" translatable="false">SOUNDS</string>
<string name="credits_sounds" translatable="false">www.noiseforfun.com</string>
<string name="credits_music_title">MUSIC</string>
<string name="credits_music" translatable="false">\"Balloon Game\", \"Bit Shift\", \"Digital Lemonade\"\nKevin MacLeod (incompetech.com)\nLicensed under Creative Commons: By Attribution 3.0\nhttp://creativecommons.org/licenses/by/3.0/</string>
</resources>

View File

@ -15,6 +15,12 @@
<item name="android:shadowRadius">2</item>
</style>
<style name="SettingsScreenButton">
<item name="android:background">@drawable/xml_selector_settings_button</item>
<item name="android:textColor">@color/secondary</item>
<item name="android:textSize">24sp</item>
</style>
<style name="DialogButton" parent="android:Widget.Holo.Button.Borderless">
<item name="android:background">@drawable/xml_background_dialog_button</item>
<item name="android:textColor">@color/black</item>