From f433af0d00aeb54f2d0e3605b3fc154bde7b4c37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Miha=C4=BE=C3=A1k?= Date: Wed, 6 Nov 2019 15:35:12 +0100 Subject: [PATCH 1/2] Added background music and click sound --- app/build.gradle | 6 ++++ .../java/com/snatik/matches/common/Music.java | 21 ++++++++++++- .../fragments/DifficultySelectFragment.java | 28 +++++++++++++++++- .../matches/fragments/GameFragment.java | 8 +++-- .../matches/fragments/MenuFragment.java | 4 +-- .../fragments/ThemeSelectFragment.java | 6 ++++ .../java/com/snatik/matches/model/Game.java | 2 +- .../java/com/snatik/matches/ui/BoardView.java | 4 +++ .../com/snatik/matches/ui/DifficultyView.java | 2 ++ .../snatik/matches/ui/PopupSettingsView.java | 14 +++++++-- app/src/main/res/raw/click_on.mp3 | Bin 0 -> 13392 bytes 11 files changed, 85 insertions(+), 10 deletions(-) create mode 100644 app/src/main/res/raw/click_on.mp3 diff --git a/app/build.gradle b/app/build.gradle index 6501d33..f74bbe0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -22,6 +22,12 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0' + // Required -- JUnit 4 framework + testImplementation 'junit:junit:4.12' + // Optional -- Robolectric environment + testImplementation 'androidx.test:core:1.2.0' + // Optional -- Mockito framework + testImplementation 'org.mockito:mockito-core:1.10.19' testImplementation 'junit:junit:4.12' } diff --git a/app/src/main/java/com/snatik/matches/common/Music.java b/app/src/main/java/com/snatik/matches/common/Music.java index b65ac5e..c889519 100644 --- a/app/src/main/java/com/snatik/matches/common/Music.java +++ b/app/src/main/java/com/snatik/matches/common/Music.java @@ -1,5 +1,6 @@ package com.snatik.matches.common; +import android.content.SharedPreferences; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; @@ -8,6 +9,7 @@ public class Music { public static boolean OFF = false; + private static MediaPlayer mediaPlayer; public static void playCorrent() { if (!OFF) { @@ -26,7 +28,12 @@ public void onCompletion(MediaPlayer mp) { } public static void playBackgroundMusic() { - // TODO + mediaPlayer = MediaPlayer.create(Shared.context, R.raw.background_music); + if(isMusicOn()) { + mediaPlayer.start(); + mediaPlayer.setLooping(true); + } + OFF = false; } public static void showStar() { @@ -44,4 +51,16 @@ public void onCompletion(MediaPlayer mp) { mp.start(); } } + + public static void stopBackgroundMusic(){ + + if(mediaPlayer.isPlaying()) { + mediaPlayer.stop(); + OFF = true; + } + } + + public static boolean isMusicOn(){ + return !OFF; + } } diff --git a/app/src/main/java/com/snatik/matches/fragments/DifficultySelectFragment.java b/app/src/main/java/com/snatik/matches/fragments/DifficultySelectFragment.java index 954c8a4..1717257 100644 --- a/app/src/main/java/com/snatik/matches/fragments/DifficultySelectFragment.java +++ b/app/src/main/java/com/snatik/matches/fragments/DifficultySelectFragment.java @@ -7,6 +7,7 @@ import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.Gravity; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -15,12 +16,13 @@ import com.snatik.matches.R; import com.snatik.matches.common.Memory; +import com.snatik.matches.common.Music; import com.snatik.matches.common.Shared; import com.snatik.matches.events.ui.DifficultySelectedEvent; import com.snatik.matches.themes.Theme; import com.snatik.matches.ui.DifficultyView; -public class DifficultySelectFragment extends Fragment { +public class DifficultySelectFragment extends Fragment implements View.OnKeyListener { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -90,6 +92,30 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa } + @Override + public void onDestroy() { + super.onDestroy(); + } + + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + + this.getView().setFocusableInTouchMode(true); + this.getView().requestFocus(); + this.getView().setOnKeyListener(new View.OnKeyListener() { + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + if( keyCode == KeyEvent.KEYCODE_BACK ) + { + Music.stopBackgroundMusic(); + return true; + } + return false; + } + }); + return false; + } + private String getBestTimeForStage(int theme, int difficulty) { int bestTime = Memory.getBestTime(theme, difficulty); if (bestTime != -1) { diff --git a/app/src/main/java/com/snatik/matches/fragments/GameFragment.java b/app/src/main/java/com/snatik/matches/fragments/GameFragment.java index db65f04..9c6bc87 100644 --- a/app/src/main/java/com/snatik/matches/fragments/GameFragment.java +++ b/app/src/main/java/com/snatik/matches/fragments/GameFragment.java @@ -1,6 +1,9 @@ package com.snatik.matches.fragments; +import android.content.DialogInterface; +import android.media.MediaPlayer; import android.os.Bundle; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -10,6 +13,7 @@ import android.widget.TextView; import com.snatik.matches.R; +import com.snatik.matches.common.Music; import com.snatik.matches.common.Shared; import com.snatik.matches.events.engine.FlipDownCardsEvent; import com.snatik.matches.events.engine.GameWonEvent; @@ -22,7 +26,7 @@ import com.snatik.matches.utils.FontLoader; import com.snatik.matches.utils.FontLoader.Font; -public class GameFragment extends BaseFragment { +public class GameFragment extends BaseFragment{ private BoardView mBoardView; private TextView mTime; @@ -47,7 +51,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa Shared.eventBus.listen(FlipDownCardsEvent.TYPE, this); Shared.eventBus.listen(HidePairCardsEvent.TYPE, this); Shared.eventBus.listen(GameWonEvent.TYPE, this); - + return view; } diff --git a/app/src/main/java/com/snatik/matches/fragments/MenuFragment.java b/app/src/main/java/com/snatik/matches/fragments/MenuFragment.java index 620b502..8e2b854 100644 --- a/app/src/main/java/com/snatik/matches/fragments/MenuFragment.java +++ b/app/src/main/java/com/snatik/matches/fragments/MenuFragment.java @@ -5,6 +5,7 @@ import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; +import android.media.MediaPlayer; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; @@ -72,11 +73,10 @@ public void onAnimationEnd(Animator animation) { startLightsAnimation(); startTootipAnimation(); - // play background music - Music.playBackgroundMusic(); return view; } + protected void animateAllAssetsOff(AnimatorListenerAdapter adapter) { // title // 120dp + 50dp + buffer(30dp) diff --git a/app/src/main/java/com/snatik/matches/fragments/ThemeSelectFragment.java b/app/src/main/java/com/snatik/matches/fragments/ThemeSelectFragment.java index e8617be..1a31b3f 100644 --- a/app/src/main/java/com/snatik/matches/fragments/ThemeSelectFragment.java +++ b/app/src/main/java/com/snatik/matches/fragments/ThemeSelectFragment.java @@ -12,6 +12,7 @@ import com.snatik.matches.R; import com.snatik.matches.common.Memory; +import com.snatik.matches.common.Music; import com.snatik.matches.common.Shared; import com.snatik.matches.events.ui.ThemeSelectedEvent; import com.snatik.matches.themes.Theme; @@ -66,6 +67,11 @@ public void onClick(View v) { return view; } + @Override + public void onDestroy() { + super.onDestroy(); + } + private void animateShow(View view) { ObjectAnimator animatorScaleX = ObjectAnimator.ofFloat(view, "scaleX", 0.5f, 1f); ObjectAnimator animatorScaleY = ObjectAnimator.ofFloat(view, "scaleY", 0.5f, 1f); diff --git a/app/src/main/java/com/snatik/matches/model/Game.java b/app/src/main/java/com/snatik/matches/model/Game.java index ca7084a..2109695 100644 --- a/app/src/main/java/com/snatik/matches/model/Game.java +++ b/app/src/main/java/com/snatik/matches/model/Game.java @@ -9,7 +9,7 @@ */ public class Game { - /** + /** * The board configuration */ public BoardConfiguration boardConfiguration; diff --git a/app/src/main/java/com/snatik/matches/ui/BoardView.java b/app/src/main/java/com/snatik/matches/ui/BoardView.java index 0e2ff81..a2bc9fb 100644 --- a/app/src/main/java/com/snatik/matches/ui/BoardView.java +++ b/app/src/main/java/com/snatik/matches/ui/BoardView.java @@ -11,6 +11,7 @@ import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.Bitmap; +import android.media.MediaPlayer; import android.os.AsyncTask; import android.util.AttributeSet; import android.view.Gravity; @@ -40,6 +41,7 @@ public class BoardView extends LinearLayout { private List flippedUp = new ArrayList(); private boolean mLocked = false; private int mSize; + private MediaPlayer mediaPlayer; public BoardView(Context context) { this(context, null); @@ -142,6 +144,8 @@ protected void onPostExecute(Bitmap result) { public void onClick(View v) { if (!mLocked && tileView.isFlippedDown()) { tileView.flipUp(); + mediaPlayer = MediaPlayer.create(Shared.context, R.raw.click_on); + mediaPlayer.start(); flippedUp.add(id); if (flippedUp.size() == 2) { mLocked = true; diff --git a/app/src/main/java/com/snatik/matches/ui/DifficultyView.java b/app/src/main/java/com/snatik/matches/ui/DifficultyView.java index b74094e..8eb89a3 100644 --- a/app/src/main/java/com/snatik/matches/ui/DifficultyView.java +++ b/app/src/main/java/com/snatik/matches/ui/DifficultyView.java @@ -31,5 +31,7 @@ public void setDifficulty(int difficulty, int stars) { int drawableResourceId = Shared.context.getResources().getIdentifier(titleResource, "drawable", Shared.context.getPackageName()); mTitle.setImageResource(drawableResourceId); } + + } diff --git a/app/src/main/java/com/snatik/matches/ui/PopupSettingsView.java b/app/src/main/java/com/snatik/matches/ui/PopupSettingsView.java index 02d3262..ace4432 100644 --- a/app/src/main/java/com/snatik/matches/ui/PopupSettingsView.java +++ b/app/src/main/java/com/snatik/matches/ui/PopupSettingsView.java @@ -1,9 +1,12 @@ package com.snatik.matches.ui; +import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.media.MediaPlayer; import android.net.Uri; import android.util.AttributeSet; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; @@ -16,7 +19,7 @@ import com.snatik.matches.utils.FontLoader; import com.snatik.matches.utils.FontLoader.Font; -public class PopupSettingsView extends LinearLayout { +public class PopupSettingsView extends LinearLayout{ private ImageView mSoundImage; private TextView mSoundText; @@ -27,19 +30,22 @@ public PopupSettingsView(Context context) { public PopupSettingsView(Context context, AttributeSet attrs) { super(context, attrs); + if(Music.OFF) Music.stopBackgroundMusic(); setOrientation(LinearLayout.VERTICAL); setBackgroundResource(R.drawable.settings_popup); LayoutInflater.from(getContext()).inflate(R.layout.popup_settings_view, this, true); mSoundText = (TextView) findViewById(R.id.sound_off_text); + mSoundText.setText("Sound OFF"); TextView rateView = (TextView) findViewById(R.id.rate_text); FontLoader.setTypeface(context, new TextView[] { mSoundText, rateView }, Font.GROBOLD); mSoundImage = (ImageView) findViewById(R.id.sound_image); + mSoundImage.setImageResource(R.drawable.button_music_off); View soundOff = findViewById(R.id.sound_off); soundOff.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Music.OFF = !Music.OFF; setMusicButton(); + Music.OFF = !Music.OFF; } }); View rate = findViewById(R.id.rate); @@ -54,16 +60,18 @@ public void onClick(View v) { } } }); - setMusicButton(); + } private void setMusicButton() { if (Music.OFF) { mSoundText.setText("Sound OFF"); mSoundImage.setImageResource(R.drawable.button_music_off); + Music.stopBackgroundMusic(); } else { mSoundText.setText("Sound ON"); mSoundImage.setImageResource(R.drawable.button_music_on); + Music.playBackgroundMusic(); } } } diff --git a/app/src/main/res/raw/click_on.mp3 b/app/src/main/res/raw/click_on.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..eb4ec23c92b8fcb37526d0a3757b3e75d9ffd7b3 GIT binary patch literal 13392 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 V5AyE;es}!N|2@L**8j2m-vHWCnWz8& literal 0 HcmV?d00001 From 9fb9cd3b3d82edb2fe8ab2b0916e0224254ea81f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Miha=C4=BE=C3=A1k?= Date: Sun, 15 Dec 2019 17:15:40 +0100 Subject: [PATCH 2/2] Added tests --- .../com/snatik/matches/ExampleUnitTest.java | 15 -------- .../com/snatik/matches/common/MusicTest.java | 32 +++++++++++++++++ .../matches/model/BoardConfigurationTest.java | 34 +++++++++++++++++++ 3 files changed, 66 insertions(+), 15 deletions(-) delete mode 100644 app/src/test/java/com/snatik/matches/ExampleUnitTest.java create mode 100644 app/src/test/java/com/snatik/matches/common/MusicTest.java create mode 100644 app/src/test/java/com/snatik/matches/model/BoardConfigurationTest.java diff --git a/app/src/test/java/com/snatik/matches/ExampleUnitTest.java b/app/src/test/java/com/snatik/matches/ExampleUnitTest.java deleted file mode 100644 index 910ddee..0000000 --- a/app/src/test/java/com/snatik/matches/ExampleUnitTest.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.snatik.matches; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * To work on unit tests, switch the Test Artifact in the Build Variants view. - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/app/src/test/java/com/snatik/matches/common/MusicTest.java b/app/src/test/java/com/snatik/matches/common/MusicTest.java new file mode 100644 index 0000000..2293e16 --- /dev/null +++ b/app/src/test/java/com/snatik/matches/common/MusicTest.java @@ -0,0 +1,32 @@ +package com.snatik.matches.common; + +import android.media.MediaPlayer; + +import com.snatik.matches.R; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class MusicTest { + + @Test + public void testPlayBackgroundMusic(){ + assertTrue(Music.isMusicOn()); + } + + @Test + public void testStopBackgroundMusic() { + Music.OFF = true; + assertFalse(Music.isMusicOn()); + } + + @Test + public void testMusicOn() { + Music.OFF = true; + assertFalse(Music.isMusicOn()); + + Music.OFF = false; + assertTrue(Music.isMusicOn()); + } +} \ No newline at end of file diff --git a/app/src/test/java/com/snatik/matches/model/BoardConfigurationTest.java b/app/src/test/java/com/snatik/matches/model/BoardConfigurationTest.java new file mode 100644 index 0000000..3309947 --- /dev/null +++ b/app/src/test/java/com/snatik/matches/model/BoardConfigurationTest.java @@ -0,0 +1,34 @@ +package com.snatik.matches.model; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class BoardConfigurationTest { + + BoardConfiguration boardConfiguration = new BoardConfiguration(5); + + @Test + public void testNumTiles() { + int numTiles = boardConfiguration.getNumTiles(); + assertEquals(numTiles, 32); + } + + @Test + public void testNumTilesInRow() { + int numTilesInRow = boardConfiguration.getNumTilesInRow(); + assertEquals(numTilesInRow, 8); + } + + @Test + public void testNumRows() { + int numRows = boardConfiguration.getNumRows(); + assertEquals(numRows, 4); + } + + @Test + public void testTime() { + int time = boardConfiguration.getTime(); + assertEquals(time, 180); + } +} \ No newline at end of file