Revert "sky: parts: Import MiSound"

This reverts commit 0c31bb8c35.
This commit is contained in:
Lostark13
2024-11-12 18:19:29 +05:30
parent 169ee391d4
commit 6431f3183c
14 changed files with 0 additions and 679 deletions

View File

@@ -24,7 +24,6 @@
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application
android:icon="@mipmap/ic_launcher"
@@ -108,20 +107,5 @@
android:value="1" />
</activity>
<activity
android:name=".dirac.DiracActivity"
android:exported="false"
android:label="@string/dirac_title"
android:theme="@style/Theme.SubSettingsBase">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
<action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.sound" />
<meta-data android:name="com.android.settings.summary"
android:resource="@string/dirac_summary" />
</activity>
</application>
</manifest>

View File

@@ -1,13 +0,0 @@
<!-- drawable/headphone-settings.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M0 0h24v24H0V0z" />
<path
android:fillColor="?android:attr/colorControlNormal"
android:pathData="M19 14v3c0 0.55-0.45 1-1 1h-1v-4h2M7 14v4H6c-0.55 0-1-0.45-1-1v-3h2m5-13c-4.97 0-9 4.03-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7c0-4.97-4.03-9-9-9z" />
</vector>

View File

@@ -1,11 +0,0 @@
<!-- drawable/equalizer.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?android:attr/colorControlNormal"
android:pathData="M15,21H9V3H15V21M11,19H13V5H11V19M8,21H2V11H8V21M4,19H6V13H4V19M22,21H16V8H22V21M18,19H20V10H18V19Z" />
</vector>

View File

@@ -1,9 +0,0 @@
<!-- drawable/music_clef_bass.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path android:fillColor="#000" android:pathData="M18.5 5A1.5 1.5 0 1 1 17 6.5A1.5 1.5 0 0 1 18.5 5M18.5 11A1.5 1.5 0 1 1 17 12.5A1.5 1.5 0 0 1 18.5 11M10 4A5 5 0 0 0 5 9V10A2 2 0 1 0 7.18 8A3 3 0 0 1 10 6A4 4 0 0 1 14 10C14 13.59 11.77 16.19 7 18.2L7.76 20.04C13.31 17.72 16 14.43 16 10A6 6 0 0 0 10 4Z" />
</vector>

View File

@@ -15,118 +15,6 @@
limitations under the License.
-->
<resources>
<!-- Values for Dirac headset pref -->
<string-array name="dirac_headset_pref_entries" translatable="false">
<item>@string/dirac_headset_earbuds</item>
<item>@string/dirac_headset_in_ear_2013</item>
<item>@string/dirac_headset_piston_1</item>
<item>@string/dirac_headset_piston_basic</item>
<item>@string/dirac_headset_piston_2</item>
<item>@string/dirac_headset_piston_standard</item>
<item>@string/dirac_headset_general_inear</item>
<item>@string/dirac_headset_piston_youth</item>
<item>@string/dirac_headset_piston_color</item>
<item>@string/dirac_headset_in_ear</item>
<item>@string/dirac_headset_capsule</item>
<item>@string/dirac_headset_in_ear_pro</item>
<item>@string/dirac_headset_comfort</item>
<item>@string/dirac_headset_reduction_noise</item>
<item>@string/dirac_headset_cancelling</item>
<item>@string/dirac_headset_half_in_ear</item>
<item>@string/dirac_headset_in_ear2</item>
<item>@string/dirac_headset_earphone_basic</item>
<item>@string/dirac_headset_earphone</item>
<item>@string/dirac_headset_ear_four</item>
<item>@string/dirac_headset_piston_typec</item>
<item>@string/dirac_headset_bluetooth_collar</item>
<item>@string/dirac_headset_bluetooth_linefree</item>
<item>@string/dirac_headset_redmi_earphones</item>
</string-array>
<string-array name="dirac_headset_pref_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>4</item>
<item>5</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
<item>19</item>
<item>20</item>
<item>21</item>
<item>24</item>
<item>25</item>
<item>26</item>
<item>27</item>
<item>28</item>
</string-array>
<!-- Values for Dirac preset pref -->
<string-array name="dirac_preset_pref_entries" translatable="false">
<item>@string/dirac_preset_default</item>
<item>@string/dirac_preset_rock</item>
<item>@string/dirac_preset_jazz</item>
<item>@string/dirac_preset_pop</item>
<item>@string/dirac_preset_classical</item>
<item>@string/dirac_preset_hiphop</item>
<item>@string/dirac_preset_blues</item>
<item>@string/dirac_preset_electronic</item>
<item>@string/dirac_preset_country</item>
<item>@string/dirac_preset_dance</item>
<item>@string/dirac_preset_metal</item>
<item>@string/dirac_preset_bass_booster</item>
<item>@string/dirac_preset_balanced</item>
<item>@string/dirac_preset_live</item>
<item>@string/dirac_preset_bass_reduction</item>
<item>@string/dirac_preset_treble_reduction</item>
<item>@string/dirac_preset_soft_bass</item>
<item>@string/dirac_preset_soft_treble</item>
</string-array>
<string-array name="dirac_preset_pref_values" translatable="false">
<item>"0,0,0,0,0,0,0"</item>
<item>"4,2,-2,0,-2,-2,4"</item>
<item>"0,0,0,-2,-3,0,0"</item>
<item>"0,-3,-5,0,0,-3,0"</item>
<item>"0,0,0,0,3,6,6"</item>
<item>"3,3,-3,0,-3,0,2"</item>
<item>"2,4,-6,4,0,1,2"</item>
<item>"3,3,-1,0,-3,0,0"</item>
<item>"0,0,-2,-2,2,2,0"</item>
<item>"0,4,2,0,-2,-2,4"</item>
<item>"2,0,0,-2,-4,0,0"</item>
<item>"10,8,0,-3,0,5,6"</item>
<item>"3,1,0,0,0,1,3"</item>
<item>"-4,-2,2,2,2,1,1"</item>
<item>"-5,-3,0,0,0,0,0"</item>
<item>"0,0,0,0,0,-5,-3"</item>
<item>"3,3,1,-3,-3,0,0"</item>
<item>"0,0,-1,-4,-4,5,4"</item>
</string-array>
<string-array name="scenario_selector_titles" translatable="false">
<item>@string/music_headset_scenario_intelligent</item>
<item>@string/music_headset_scenario_music</item>
<item>@string/music_headset_scenario_video</item>
<item>@string/music_headset_scenario_vocal</item>
</string-array>
<string-array name="scenario_selector_values" translatable="false">
<item>4</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
<string-array name="lcd_hbm_modes" translatable="false">
<item>"Off"</item>
<item>"Low"</item>

View File

@@ -26,65 +26,6 @@
<string name="thermal_gaming">Gaming</string>
<string name="thermal_streaming">Streaming</string>
<!-- Dirac settings -->
<string name="dirac_enable">Use Mi Sound Enhancer</string>
<string name="dirac_title">Mi Sound Enhancer</string>
<string name="dirac_summary">Optimize audio quality for wired earphones</string>
<string name="dirac_headset_title">Choose headphones type</string>
<string name="dirac_preset_title">Choose a preset</string>
<!-- Dirac settings: Headset types -->
<string name="dirac_headset_earbuds">Mi Earbuds</string>
<string name="dirac_headset_in_ear_2013">Mi In-Ear (2013)</string>
<string name="dirac_headset_piston_1">Mi Piston-1</string>
<string name="dirac_headset_general_inear">General In-Ear</string>
<string name="dirac_headset_piston_basic">Basic Edition</string>
<string name="dirac_headset_piston_2">Mi Piston-2</string>
<string name="dirac_headset_piston_standard">Standard Edition</string>
<string name="dirac_headset_piston_youth">Youth Edition</string>
<string name="dirac_headset_piston_color">Color Edition</string>
<string name="dirac_headset_in_ear">Mi In-Ear</string>
<string name="dirac_headset_capsule">Mi Capsule</string>
<string name="dirac_headset_in_ear_pro">Mi In-Ear Pro</string>
<string name="dirac_headset_comfort">Mi Comfort</string>
<string name="dirac_headset_reduction_noise">Mi Noise Cancelling Type-C</string>
<string name="dirac_headset_cancelling">Mi Noise Cancelling 3.5mm</string>
<string name="dirac_headset_half_in_ear">Mi Half In-Ear</string>
<string name="dirac_headset_in_ear2">Mi In-Ear 2</string>
<string name="dirac_headset_earphone_basic">Mi Earphones Basic</string>
<string name="dirac_headset_earphone">Mi Earphones</string>
<string name="dirac_headset_ear_four">Mi Quadruple Driver Earphones</string>
<string name="dirac_headset_piston_typec">Mi In-Ear Headphones (Type-C)</string>
<string name="dirac_headset_bluetooth_collar">Mi Bluetooth Neckband</string>
<string name="dirac_headset_bluetooth_linefree">Mi Bluetooth Earphones</string>
<string name="dirac_headset_redmi_earphones">Redmi Earphones</string>
<!-- Dirac settings: Equalizer presets -->
<string name="dirac_preset_default">Default</string>
<string name="dirac_preset_rock">Rock</string>
<string name="dirac_preset_jazz">Jazz</string>
<string name="dirac_preset_pop">Pop</string>
<string name="dirac_preset_classical">Classical</string>
<string name="dirac_preset_hiphop">Hip Hop</string>
<string name="dirac_preset_blues">Blues</string>
<string name="dirac_preset_electronic">Electronic</string>
<string name="dirac_preset_country">Country</string>
<string name="dirac_preset_dance">Dance</string>
<string name="dirac_preset_metal">Metal</string>
<string name="dirac_preset_bass_booster">Bass Booster</string>
<string name="dirac_preset_live">Live</string>
<string name="dirac_preset_balanced">Balanced</string>
<string name="dirac_preset_bass_reduction">Bass Reduction</string>
<string name="dirac_preset_treble_reduction">Treble Reduction</string>
<string name="dirac_preset_soft_bass">Soft Bass</string>
<string name="dirac_preset_soft_treble">Soft Treble</string>
<string name="music_headset_scenario_intelligent">Smart</string>
<string name="music_headset_scenario_music">Music</string>
<string name="music_headset_scenario_select">Select Scene</string>
<string name="music_headset_scenario_video">Video</string>
<string name="music_headset_scenario_vocal">Voice</string>
<!-- LCD Features -->
<string name="lcd_features_title">LCD features</string>
<string name="lcd_features_summary">High Brightness Mode, CABC</string>
@@ -92,5 +33,4 @@
<string name="lcd_hbm_tile_title">HBM</string>
<string name="lcd_cabc_title">CABC Mode</string>
<string name="lcd_features_info">High Brightness Mode (HBM) increases the maximum brightness of the display to improve visibility under sunlight. Increases power consumption.\n\nCABC (Content Adaptive Backlight Control) adjusts display and backlight brightness based on currently shown content, to reduce power consumption without degradation.</string>
</resources>

View File

@@ -1,54 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2018 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:title="@string/dirac_title">
<com.android.settingslib.widget.MainSwitchPreference
android:defaultValue="false"
android:key="dirac_enable"
android:title="@string/dirac_enable" />
<ListPreference
android:key="dirac_headset_pref"
android:entries="@array/dirac_headset_pref_entries"
android:entryValues="@array/dirac_headset_pref_values"
android:defaultValue="0"
android:title="@string/dirac_headset_title"
android:summary="%s"
android:icon="@drawable/ic_dirac" />
<ListPreference
android:key="dirac_preset_pref"
android:entries="@array/dirac_preset_pref_entries"
android:entryValues="@array/dirac_preset_pref_values"
android:defaultValue="0,0,0,0,0,0,0"
android:title="@string/dirac_preset_title"
android:summary="%s"
android:icon="@drawable/ic_preset" />
<ListPreference
android:key="scenario_selection"
android:entries="@array/scenario_selector_titles"
android:entryValues="@array/scenario_selector_values"
android:defaultValue="4"
android:title="@string/music_headset_scenario_select"
android:summary="%s"
android:icon="@drawable/ic_scenes" />
</PreferenceScreen>

View File

@@ -22,7 +22,6 @@ import android.content.Context;
import android.content.Intent;
import android.util.Log;
import org.lineageos.settings.dirac.DiracUtils;
import org.lineageos.settings.display.LcdFeaturesService;
import org.lineageos.settings.thermal.ThermalUtils;
@@ -35,7 +34,6 @@ public class BootCompletedReceiver extends BroadcastReceiver {
public void onReceive(final Context context, Intent intent) {
if (DEBUG) Log.d(TAG, "Received boot completed intent");
ThermalUtils.startService(context);
new DiracUtils(context).onBootCompleted();
context.startService(new Intent(context, LcdFeaturesService.class));
}
}

View File

@@ -1,35 +0,0 @@
/*
* Copyright (C) 2018,2021-2022 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.dirac;
import android.os.Bundle;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class DiracActivity extends CollapsingToolbarBaseActivity {
private static final String TAG_DIRAC = "dirac";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new DiracSettingsFragment(), TAG_DIRAC).commit();
}
}

View File

@@ -1,118 +0,0 @@
/*
* Copyright (C) 2018 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.dirac;
import android.os.Bundle;
import android.os.Handler;
import android.widget.CompoundButton;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragment;
import androidx.preference.SwitchPreference;
import com.android.settingslib.widget.MainSwitchPreference;
import org.lineageos.settings.R;
public class DiracSettingsFragment extends PreferenceFragment implements
Preference.OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener {
private static final String PREF_ENABLE = "dirac_enable";
private static final String PREF_HEADSET = "dirac_headset_pref";
private static final String PREF_PRESET = "dirac_preset_pref";
private static final String PREF_SCENE = "scenario_selection";
private MainSwitchPreference mSwitchBar;
private ListPreference mHeadsetType;
private ListPreference mPreset;
private ListPreference mScenes;
private DiracUtils mDiracUtils;
private Handler mHandler = new Handler();
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.dirac_settings);
mDiracUtils = new DiracUtils(getContext());
boolean enhancerEnabled = mDiracUtils.isDiracEnabled();
mSwitchBar = (MainSwitchPreference) findPreference(PREF_ENABLE);
mSwitchBar.addOnSwitchChangeListener(this);
mSwitchBar.setChecked(enhancerEnabled);
mHeadsetType = (ListPreference) findPreference(PREF_HEADSET);
mHeadsetType.setOnPreferenceChangeListener(this);
mHeadsetType.setEnabled(enhancerEnabled);
mPreset = (ListPreference) findPreference(PREF_PRESET);
mPreset.setOnPreferenceChangeListener(this);
mPreset.setEnabled(enhancerEnabled);
mScenes = (ListPreference) findPreference(PREF_SCENE);
mScenes.setOnPreferenceChangeListener(this);
mScenes.setEnabled(enhancerEnabled);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
switch (preference.getKey()) {
case PREF_HEADSET:
mDiracUtils.setHeadsetType(Integer.parseInt(newValue.toString()));
return true;
case PREF_PRESET:
mDiracUtils.setLevel(String.valueOf(newValue));
return true;
case PREF_SCENE:
mDiracUtils.setScenario(Integer.parseInt(newValue.toString()));
return true;
default:
return false;
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mDiracUtils.setEnabled(isChecked);
if (isChecked) {
mSwitchBar.setEnabled(false);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
try {
mSwitchBar.setEnabled(true);
setEnabled(isChecked);
} catch(Exception ignored) {
}
}
}, 1020);
} else {
setEnabled(isChecked);
}
}
private void setEnabled(boolean enabled){
mSwitchBar.setChecked(enabled);
mHeadsetType.setEnabled(enabled);
mPreset.setEnabled(enabled);
mScenes.setEnabled(enabled);
}
}

View File

@@ -1,65 +0,0 @@
/*
* Copyright (C) 2018 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.dirac;
import android.media.audiofx.AudioEffect;
import java.util.UUID;
public class DiracSound extends AudioEffect {
private static final int DIRACSOUND_PARAM_HEADSET_TYPE = 1;
private static final int DIRACSOUND_PARAM_EQ_LEVEL = 2;
private static final int DIRACSOUND_PARAM_MUSIC = 4;
private static final int DIRACSOUND_PARAM_SCENE = 15;
private static final UUID EFFECT_TYPE_DIRACSOUND =
UUID.fromString("5b8e36a5-144a-4c38-b1d7-0002a5d5c51b");
private static final String TAG = "DiracSound";
public DiracSound(int priority, int audioSession) {
super(EFFECT_TYPE_NULL, EFFECT_TYPE_DIRACSOUND, priority, audioSession);
}
public int getMusic() throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
int[] value = new int[1];
checkStatus(getParameter(DIRACSOUND_PARAM_MUSIC, value));
return value[0];
}
public void setMusic(int enable) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(DIRACSOUND_PARAM_MUSIC, enable));
}
public void setHeadsetType(int type) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(DIRACSOUND_PARAM_HEADSET_TYPE, type));
}
public void setLevel(int band, float level) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(new int[]{DIRACSOUND_PARAM_EQ_LEVEL, band},
String.valueOf(level).getBytes()));
}
public void setScenario(int scene) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(DIRACSOUND_PARAM_SCENE, scene));
}
}

View File

@@ -1,42 +0,0 @@
package org.lineageos.settings.dirac;
import android.service.quicksettings.Tile;
import android.service.quicksettings.TileService;
public class DiracTileService extends TileService {
private DiracUtils mDiracUtils;
@Override
public void onStartListening() {
mDiracUtils = new DiracUtils(getApplicationContext());
boolean enhancerEnabled = mDiracUtils.isDiracEnabled();
Tile tile = getQsTile();
if (enhancerEnabled) {
tile.setState(Tile.STATE_ACTIVE);
} else {
tile.setState(Tile.STATE_INACTIVE);
}
tile.updateTile();
super.onStartListening();
}
@Override
public void onClick() {
Tile tile = getQsTile();
if (mDiracUtils.isDiracEnabled()) {
mDiracUtils.setEnabled(false);
tile.setState(Tile.STATE_INACTIVE);
} else {
mDiracUtils.setEnabled(true);
tile.setState(Tile.STATE_ACTIVE);
}
tile.updateTile();
super.onClick();
}
}

View File

@@ -1,141 +0,0 @@
/*
* Copyright (C) 2018 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
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.session.MediaController;
import android.media.session.MediaSessionManager;
import android.media.session.PlaybackState;
import java.lang.IllegalArgumentException;
import java.util.List;
public final class DiracUtils {
protected DiracSound mDiracSound;
private static DiracUtils mInstance;
private MediaSessionManager mMediaSessionManager;
private Handler mHandler = new Handler();
private Context mContext;
public static DiracUtils getInstance() {
if (mInstance == null) {
throw new IllegalArgumentException("Trying to get instance without initializing!");
}
return mInstance;
}
public DiracUtils(final Context context) {
mContext = context;
mMediaSessionManager = (MediaSessionManager) context.getSystemService(Context.MEDIA_SESSION_SERVICE);
mDiracSound = new DiracSound(0, 0);
}
public void onBootCompleted() {
setEnabled(mDiracSound.getMusic() == 1);
mInstance = this;
}
protected void refreshPlaybackIfNecessary(){
if (mMediaSessionManager == null) {
mMediaSessionManager = (MediaSessionManager) mContext.getSystemService(Context.MEDIA_SESSION_SERVICE);
}
final List<MediaController> sessions
= mMediaSessionManager.getActiveSessionsForUser(
null, UserHandle.ALL);
for (MediaController aController : sessions) {
if (PlaybackState.STATE_PLAYING ==
getMediaControllerPlaybackState(aController)) {
triggerPlayPause(aController);
break;
}
}
}
private 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 int getMediaControllerPlaybackState(MediaController controller) {
if (controller != null) {
final PlaybackState playbackState = controller.getPlaybackState();
if (playbackState != null) {
return playbackState.getState();
}
}
return PlaybackState.STATE_NONE;
}
protected void setEnabled(boolean enable) {
mDiracSound.setEnabled(enable);
mDiracSound.setMusic(enable ? 1 : 0);
if (enable) {
refreshPlaybackIfNecessary();
}
}
protected boolean isDiracEnabled() {
return mDiracSound.getMusic() == 1;
}
protected void setLevel(String preset) {
String[] level = preset.split("\\s*,\\s*");
for (int band = 0; band <= level.length - 1; band++) {
mDiracSound.setLevel(band, Float.valueOf(level[band]));
}
}
protected void setHeadsetType(int paramInt) {
mDiracSound.setHeadsetType(paramInt);
}
protected void setScenario(int sceneInt) {
mDiracSound.setScenario(sceneInt);
}
}

View File

@@ -4,7 +4,6 @@ set_prop(system_app, persist_lcd_prop)
# Allow system_app to find *_service
allow system_app {
app_api_service
audio_service
audioserver_service
cameraserver_service
drmserver_service