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" />