aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrique Silva <jhenrique09.mcz@hotmail.com>2019-02-01 23:33:54 -0200
committernebrassy <nebras30@gmail.com>2022-06-12 16:30:59 +0200
commit76aea1f2b3d93515a8743cae917e9305d73c60a6 (patch)
tree7414a94670c0268a7e00eeca0578204b93327bc0
parent5ad15eb3f6ae9a66e48fc506fa2b76fb237c104e (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.java2
-rw-r--r--parts/src/org/lineageos/settings/dirac/DiracUtils.java57
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);
}