diff options
| author | Henrique Silva <jhenrique09.mcz@hotmail.com> | 2019-02-01 23:33:54 -0200 |
|---|---|---|
| committer | nebrassy <nebras30@gmail.com> | 2022-06-12 16:30:59 +0200 |
| commit | 76aea1f2b3d93515a8743cae917e9305d73c60a6 (patch) | |
| tree | 7414a94670c0268a7e00eeca0578204b93327bc0 | |
| parent | 5ad15eb3f6ae9a66e48fc506fa2b76fb237c104e (diff) | |
vayu: parts: Dirac fixes
* Pause/Play music stream to get effects applied
* Rename setMusic to setEnabled
Change-Id: Ib0717b35ca04511543078df9b9b4003a848aef3b
| -rw-r--r-- | parts/src/org/lineageos/settings/dirac/DiracSettingsFragment.java | 2 | ||||
| -rw-r--r-- | parts/src/org/lineageos/settings/dirac/DiracUtils.java | 57 |
2 files changed, 56 insertions, 3 deletions
diff --git a/parts/src/org/lineageos/settings/dirac/DiracSettingsFragment.java b/parts/src/org/lineageos/settings/dirac/DiracSettingsFragment.java index b7efa8d..1b5b54d 100644 --- a/parts/src/org/lineageos/settings/dirac/DiracSettingsFragment.java +++ b/parts/src/org/lineageos/settings/dirac/DiracSettingsFragment.java @@ -94,7 +94,7 @@ public class DiracSettingsFragment extends PreferenceFragment implements public void onSwitchChanged(Switch switchView, boolean isChecked) { mSwitchBar.setChecked(isChecked); - DiracUtils.setMusic(isChecked); + DiracUtils.setEnabled(isChecked); if (!DiracUtils.getHifiMode()) { mHeadsetType.setEnabled(isChecked); diff --git a/parts/src/org/lineageos/settings/dirac/DiracUtils.java b/parts/src/org/lineageos/settings/dirac/DiracUtils.java index 0550011..9ee0452 100644 --- a/parts/src/org/lineageos/settings/dirac/DiracUtils.java +++ b/parts/src/org/lineageos/settings/dirac/DiracUtils.java @@ -17,24 +17,77 @@ package org.lineageos.settings.dirac; import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.UserHandle; +import android.os.SystemClock; +import android.view.KeyEvent; import android.media.AudioManager; - +import android.media.session.MediaController; +import android.media.session.MediaSessionManager; +import android.media.session.PlaybackState; +import java.util.List; public final class DiracUtils { protected static DiracSound mDiracSound; private static boolean mInitialized; + private static MediaSessionManager mMediaSessionManager; + private static Handler mHandler = new Handler(); private static Context mContext; public static void initialize(Context context) { if (!mInitialized) { mContext = context; + mMediaSessionManager = (MediaSessionManager) context.getSystemService(Context.MEDIA_SESSION_SERVICE); mDiracSound = new DiracSound(0, 0); mInitialized = true; } } - protected static void setMusic(boolean enable) { + private static void triggerPlayPause(MediaController controller) { + long when = SystemClock.uptimeMillis(); + final KeyEvent evDownPause = new KeyEvent(when, when, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PAUSE, 0); + final KeyEvent evUpPause = KeyEvent.changeAction(evDownPause, KeyEvent.ACTION_UP); + final KeyEvent evDownPlay = new KeyEvent(when, when, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY, 0); + final KeyEvent evUpPlay = KeyEvent.changeAction(evDownPlay, KeyEvent.ACTION_UP); + mHandler.post(new Runnable() { + @Override + public void run() { + controller.dispatchMediaButtonEvent(evDownPause); + } + }); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + controller.dispatchMediaButtonEvent(evUpPause); + } + }, 20); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + controller.dispatchMediaButtonEvent(evDownPlay); + } + }, 1000); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + controller.dispatchMediaButtonEvent(evUpPlay); + } + }, 1020); + } + + private static int getMediaControllerPlaybackState(MediaController controller) { + if (controller != null) { + final PlaybackState playbackState = controller.getPlaybackState(); + if (playbackState != null) { + return playbackState.getState(); + } + } + return PlaybackState.STATE_NONE; + } + protected static void setEnabled(boolean enable) { + mDiracSound.setEnabled(enable); mDiracSound.setMusic(enable ? 1 : 0); } |
