From 6b89643a295cd58d0ac7ca7129fb5c5168e67a5a Mon Sep 17 00:00:00 2001
From: joysi <29514446+fillwithjoy1@users.noreply.github.com>
Date: Tue, 18 Jun 2024 18:37:22 +1000
Subject: [PATCH 01/12] Added HapticGenerator to audio track
---
.../name/monkey/retromusic/service/MultiPlayer.kt | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt b/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt
index a29122a68f..e48aa1226a 100644
--- a/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt
@@ -15,8 +15,11 @@ package code.name.monkey.retromusic.service
import android.content.Context
import android.media.MediaPlayer
+import android.media.audiofx.HapticGenerator
+import android.os.Build
import android.os.PowerManager
import android.util.Log
+import androidx.annotation.RequiresApi
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.extensions.showToast
import code.name.monkey.retromusic.extensions.uri
@@ -30,6 +33,8 @@ import code.name.monkey.retromusic.util.logE
*/
class MultiPlayer(context: Context) : LocalPlayback(context) {
private var mCurrentMediaPlayer = MediaPlayer()
+ @RequiresApi(Build.VERSION_CODES.S)
+ private var hapticGenerator: HapticGenerator? = null
private var mNextMediaPlayer: MediaPlayer? = null
override var callbacks: PlaybackCallbacks? = null
@@ -117,10 +122,13 @@ class MultiPlayer(context: Context) : LocalPlayback(context) {
/**
* Starts or resumes playback.
*/
+ @RequiresApi(Build.VERSION_CODES.S)
override fun start(): Boolean {
super.start()
return try {
mCurrentMediaPlayer.start()
+ hapticGenerator = HapticGenerator.create(mCurrentMediaPlayer.audioSessionId)
+ hapticGenerator?.setEnabled(true)
true
} catch (e: IllegalStateException) {
false
@@ -139,19 +147,23 @@ class MultiPlayer(context: Context) : LocalPlayback(context) {
/**
* Releases resources associated with this MediaPlayer object.
*/
+ @RequiresApi(Build.VERSION_CODES.S)
override fun release() {
stop()
mCurrentMediaPlayer.release()
mNextMediaPlayer?.release()
+ hapticGenerator?.release()
}
/**
* Pauses playback. Call start() to resume.
*/
+ @RequiresApi(Build.VERSION_CODES.S)
override fun pause(): Boolean {
super.pause()
return try {
mCurrentMediaPlayer.pause()
+ hapticGenerator?.release()
true
} catch (e: IllegalStateException) {
false
From de09d9672839a5547195005fa8e805b72f532929 Mon Sep 17 00:00:00 2001
From: Joy <29514446+fillwithjoy1@users.noreply.github.com>
Date: Tue, 31 Dec 2024 00:03:05 +1000
Subject: [PATCH 02/12] Update android.yml
---
.github/workflows/android.yml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index e450294c1f..499c5ccdf0 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -2,9 +2,8 @@ name: Android CI
on:
push:
- branches: [ dev ]
pull_request:
- branches: [ dev ]
+ workflow_dispatch:
jobs:
check:
From 8b0374eec8a80fdd24fb116bdf68bf0afb40a5ba Mon Sep 17 00:00:00 2001
From: Joy <29514446+fillwithjoy1@users.noreply.github.com>
Date: Tue, 31 Dec 2024 00:06:37 +1000
Subject: [PATCH 03/12] Update pref_audio.xml
---
app/src/main/res/xml/pref_audio.xml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/app/src/main/res/xml/pref_audio.xml b/app/src/main/res/xml/pref_audio.xml
index 6bf54069c9..3999785233 100755
--- a/app/src/main/res/xml/pref_audio.xml
+++ b/app/src/main/res/xml/pref_audio.xml
@@ -11,10 +11,10 @@
+ android:summary="@string/pref_summary_haptic_generator"
+ android:title="@string/pref_title_haptic_generator" />
-
\ No newline at end of file
+
From 7ac5d6d0259b7f4bfdf36d4b2dbcda51f6b12225 Mon Sep 17 00:00:00 2001
From: Joy <29514446+fillwithjoy1@users.noreply.github.com>
Date: Tue, 31 Dec 2024 00:08:57 +1000
Subject: [PATCH 04/12] Update Constants.kt
broken patch #2
---
app/src/main/java/code/name/monkey/retromusic/Constants.kt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/app/src/main/java/code/name/monkey/retromusic/Constants.kt b/app/src/main/java/code/name/monkey/retromusic/Constants.kt
index 31032f62b3..aa3ff4eda6 100644
--- a/app/src/main/java/code/name/monkey/retromusic/Constants.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/Constants.kt
@@ -133,6 +133,7 @@ const val EXPAND_NOW_PLAYING_PANEL = "expand_now_playing_panel"
const val EXTRA_ARTIST_NAME = "extra_artist_name"
const val TOGGLE_SUGGESTIONS = "toggle_suggestions"
const val AUDIO_FADE_DURATION = "audio_fade_duration"
+const val MANAGE_HAPTIC_GENERATOR = "manage_haptic_generator"
const val CROSS_FADE_DURATION = "cross_fade_duration"
const val SHOW_LYRICS = "show_lyrics"
const val REMEMBER_LAST_TAB = "remember_last_tab"
@@ -151,4 +152,4 @@ const val CIRCLE_PLAY_BUTTON = "circle_play_button"
const val SWIPE_ANYWHERE_NOW_PLAYING = "swipe_anywhere_now_playing"
const val PAUSE_HISTORY = "pause_history"
const val MANAGE_AUDIO_FOCUS = "manage_audio_focus"
-const val SWIPE_DOWN_DISMISS = "swipe_to_dismiss"
\ No newline at end of file
+const val SWIPE_DOWN_DISMISS = "swipe_to_dismiss"
From 72339faab1c65e77d3385aac150bc90cfff229d3 Mon Sep 17 00:00:00 2001
From: Joy <29514446+fillwithjoy1@users.noreply.github.com>
Date: Tue, 31 Dec 2024 00:12:31 +1000
Subject: [PATCH 05/12] Update strings.xml
broken patch #3
---
app/src/main/res/values/strings.xml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e9609c7c19..2e7a875ba9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -83,6 +83,7 @@
Artists
Audio fade duration
Audio focus denied.
+ Manage Haptic Generator
Change the sound settings and adjust the equalizer controls
Auto
Backup and restore your settings, playlists
@@ -343,6 +344,7 @@
Show Album Artists in the Artist category
Lower the volume when a system sound is played or a notification is received
Fade audio when song is paused or played
+ Sync haptic motor to the music
The content of blacklisted folders is hidden from your library.
Start playing as soon as connected to bluetooth device
Blur the album cover on the lockscreen. Can cause problems with third party apps and widgets
@@ -383,6 +385,7 @@
Header style
Reduce volume on focus loss
Fade audio
+ Haptic Generator
Auto-download artist images
Blacklist
Bluetooth playback
From 50e85f87bbc0d0a07c7477045b0da1a3e9e984a8 Mon Sep 17 00:00:00 2001
From: Joy <29514446+fillwithjoy1@users.noreply.github.com>
Date: Tue, 31 Dec 2024 00:15:39 +1000
Subject: [PATCH 06/12] Update android.yml
---
.github/workflows/android.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index 499c5ccdf0..28242627e8 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -7,6 +7,7 @@ on:
jobs:
check:
+ if: false
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
From 3cd0e0e7d05aaf6c5435c1f2e52cc8ea57c8da59 Mon Sep 17 00:00:00 2001
From: Joy <29514446+fillwithjoy1@users.noreply.github.com>
Date: Tue, 31 Dec 2024 00:20:32 +1000
Subject: [PATCH 07/12] Create compile.yml
---
.github/workflows/compile.yml | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 .github/workflows/compile.yml
diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml
new file mode 100644
index 0000000000..fd5e4e1f7c
--- /dev/null
+++ b/.github/workflows/compile.yml
@@ -0,0 +1,23 @@
+name: Compile and Upload
+on:
+ push:
+ workflow_dispatch:
+ pull_request:
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: Checkout the code
+ uses: actions/checkout@v3
+
+ - name: Build the app
+ run: |
+ chmod +x gradlew
+ ./gradlew build
+
+ - name: Upload Release
+ uses: softprops/action-gh-release@v0.1.14
+ with:
+ files: app/build/outputs/apk/release/*.apk
From d4d01698dc583637154094385e83d8e54148bfc8 Mon Sep 17 00:00:00 2001
From: fillwithjoy1 <29514446+fillwithjoy1@users.noreply.github.com.>
Date: Tue, 7 Jan 2025 14:36:58 +1000
Subject: [PATCH 08/12] Add setting back
---
app/src/main/res/xml/pref_audio.xml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/app/src/main/res/xml/pref_audio.xml b/app/src/main/res/xml/pref_audio.xml
index 3999785233..7821000191 100755
--- a/app/src/main/res/xml/pref_audio.xml
+++ b/app/src/main/res/xml/pref_audio.xml
@@ -9,6 +9,13 @@
android:summary="@string/pref_summary_audio_fade"
android:title="@string/pref_title_audio_fade" />
+
+
Date: Tue, 7 Jan 2025 15:01:38 +1000
Subject: [PATCH 09/12] Update PreferenceUtil.kt
---
.../java/code/name/monkey/retromusic/util/PreferenceUtil.kt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt
index 13f4f3948e..e3cddcea40 100644
--- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt
@@ -330,6 +330,9 @@ object PreferenceUtil {
MANAGE_AUDIO_FOCUS, false
)
+ val isHapticGeneratorActive
+ get() = sharedPreferences.getBoolean(MANAGE_HAPTIC_GENERATOR, false)
+
val isLockScreen get() = sharedPreferences.getBoolean(LOCK_SCREEN, false)
var lyricsOption
From 3fc7e5e744147a694613855276dcf28817f1654f Mon Sep 17 00:00:00 2001
From: fillwithjoy1 <29514446+fillwithjoy1@users.noreply.github.com.>
Date: Tue, 7 Jan 2025 15:02:06 +1000
Subject: [PATCH 10/12] Update MultiPlayer.kt
---
.../code/name/monkey/retromusic/service/MultiPlayer.kt | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt b/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt
index e48aa1226a..10cc093576 100644
--- a/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/service/MultiPlayer.kt
@@ -26,6 +26,7 @@ import code.name.monkey.retromusic.extensions.uri
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.service.playback.Playback.PlaybackCallbacks
import code.name.monkey.retromusic.util.PreferenceUtil.isGapLessPlayback
+import code.name.monkey.retromusic.util.PreferenceUtil.isHapticGeneratorActive
import code.name.monkey.retromusic.util.logE
/**
@@ -127,8 +128,10 @@ class MultiPlayer(context: Context) : LocalPlayback(context) {
super.start()
return try {
mCurrentMediaPlayer.start()
- hapticGenerator = HapticGenerator.create(mCurrentMediaPlayer.audioSessionId)
- hapticGenerator?.setEnabled(true)
+ if (isHapticGeneratorActive) {
+ hapticGenerator = HapticGenerator.create(audioSessionId)
+ hapticGenerator?.setEnabled(true)
+ }
true
} catch (e: IllegalStateException) {
false
From b856df0c22e5df8d8828e9c6b67d7ff92cc11a5f Mon Sep 17 00:00:00 2001
From: fillwithjoy1 <29514446+fillwithjoy1@users.noreply.github.com.>
Date: Tue, 7 Jan 2025 15:12:54 +1000
Subject: [PATCH 11/12] Update strings.xml
---
app/src/main/res/values/strings.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2e7a875ba9..40f115e9e8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -344,7 +344,7 @@
Show Album Artists in the Artist category
Lower the volume when a system sound is played or a notification is received
Fade audio when song is paused or played
- Sync haptic motor to the music
+ Sync the haptic motor to the music
The content of blacklisted folders is hidden from your library.
Start playing as soon as connected to bluetooth device
Blur the album cover on the lockscreen. Can cause problems with third party apps and widgets
@@ -385,7 +385,7 @@
Header style
Reduce volume on focus loss
Fade audio
- Haptic Generator
+ Enable haptics
Auto-download artist images
Blacklist
Bluetooth playback
From 5772c70395244968f08d0c9dcb47ff9e26aa70f2 Mon Sep 17 00:00:00 2001
From: fillwithjoy1 <29514446+fillwithjoy1@users.noreply.github.com.>
Date: Tue, 7 Jan 2025 15:19:12 +1000
Subject: [PATCH 12/12] Add icon to setting
---
app/src/main/res/drawable/ic_spatial_speaker.xml | 5 +++++
app/src/main/res/xml/pref_audio.xml | 1 +
2 files changed, 6 insertions(+)
create mode 100644 app/src/main/res/drawable/ic_spatial_speaker.xml
diff --git a/app/src/main/res/drawable/ic_spatial_speaker.xml b/app/src/main/res/drawable/ic_spatial_speaker.xml
new file mode 100644
index 0000000000..917a1fc98c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_spatial_speaker.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/xml/pref_audio.xml b/app/src/main/res/xml/pref_audio.xml
index 7821000191..9e5e9a2c5c 100755
--- a/app/src/main/res/xml/pref_audio.xml
+++ b/app/src/main/res/xml/pref_audio.xml
@@ -21,6 +21,7 @@
android:key="manage_haptic_generator"
android:layout="@layout/list_item_view_switch"
android:summary="@string/pref_summary_haptic_generator"
+ app:icon="@drawable/ic_spatial_speaker"
android:title="@string/pref_title_haptic_generator" />