mirror of
https://github.com/Evolution-X-Devices/device_xiaomi_sky
synced 2026-01-27 15:15:25 +00:00
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user