Co-authored-by: LuK1337 <priv.luk@gmail.com> Co-authored-by: Bruno Martins <bgcngm@gmail.com> Signed-off-by: SamarV-121 <samarvispute121@pm.me> Signed-off-by: roynatech2544 <whiteshell2544@naver.com> Change-Id: I7f52714bdf7d94c9fb1c2d645839d54fd09d6bbetirimbino
parent
3a3a22e0cf
commit
61f341dca6
@ -0,0 +1,25 @@ |
|||||||
|
// |
||||||
|
// Copyright (C) 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. |
||||||
|
// |
||||||
|
|
||||||
|
android_app { |
||||||
|
name: "SamsungDAP", |
||||||
|
defaults: ["SettingsLibDefaults"], |
||||||
|
srcs: ["src/**/*.kt"], |
||||||
|
certificate: "platform", |
||||||
|
platform_apis: true, |
||||||
|
static_libs: ["androidx.preference_preference"], |
||||||
|
system_ext_specific: true, |
||||||
|
} |
@ -0,0 +1,65 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<!-- |
||||||
|
Copyright (C) 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. |
||||||
|
--> |
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
package="org.lineageos.dap" |
||||||
|
android:sharedUserId="android.uid.system" |
||||||
|
android:versionCode="1" |
||||||
|
android:versionName="1.0"> |
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> |
||||||
|
|
||||||
|
<application |
||||||
|
android:defaultToDeviceProtectedStorage="true" |
||||||
|
android:directBootAware="true" |
||||||
|
android:label="SamsungDAP" |
||||||
|
android:persistent="true" |
||||||
|
android:supportsRtl="true" |
||||||
|
android:theme="@style/Theme.SubSettingsBase"> |
||||||
|
|
||||||
|
<activity |
||||||
|
android:name=".DolbyActivity" |
||||||
|
android:exported="true" |
||||||
|
android:label="@string/dolby_title"> |
||||||
|
<intent-filter> |
||||||
|
<action android:name="com.android.settings.action.IA_SETTINGS" /> |
||||||
|
</intent-filter> |
||||||
|
<meta-data |
||||||
|
android:name="com.android.settings.category" |
||||||
|
android:value="com.android.settings.category.ia.sound" /> |
||||||
|
</activity> |
||||||
|
|
||||||
|
<receiver |
||||||
|
android:name=".BootCompletedReceiver" |
||||||
|
android:exported="true"> |
||||||
|
<intent-filter> |
||||||
|
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /> |
||||||
|
<category android:name="android.intent.category.DEFAULT" /> |
||||||
|
</intent-filter> |
||||||
|
</receiver> |
||||||
|
|
||||||
|
<service |
||||||
|
android:name=".DolbyTile" |
||||||
|
android:exported="true" |
||||||
|
android:icon="@drawable/ic_dolby" |
||||||
|
android:label="@string/dolby_title" |
||||||
|
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> |
||||||
|
<intent-filter> |
||||||
|
<action android:name="android.service.quicksettings.action.QS_TILE" /> |
||||||
|
</intent-filter> |
||||||
|
</service> |
||||||
|
</application> |
||||||
|
</manifest> |
@ -0,0 +1,13 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:width="24dp" |
||||||
|
android:height="24dp" |
||||||
|
android:tint="?android:attr/colorControlNormal" |
||||||
|
android:viewportHeight="24" |
||||||
|
android:viewportWidth="24"> |
||||||
|
|
||||||
|
<path android:pathData="M0 0h24v24H0z" /> |
||||||
|
<path |
||||||
|
android:fillColor="#FFFFFFFF" |
||||||
|
android:pathData="M20 4H4c-1.1 0-2 0.9-2 2v12c0 1.1 0.9 2 2 2h16c1.1 0 2-0.9 2-2V6c0-1.1-0.9-2-2-2zM7.76 16.24l-1.41 1.41C4.78 16.1 4 14.05 4 12c0-2.05 0.78 -4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s0.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66l-1.41-1.41C17.41 15.07 18 13.54 18 12s-0.59-3.07-1.76-4.24l1.41-1.41C19.22 7.9 20 9.95 20 12c0 2.05-0.78 4.1-2.34 5.66zM12 10c-1.1 0-2 0.9-2 2s0.9 2 2 2 2-0.9 2-2-0.9-2-2-2z" /> |
||||||
|
</vector> |
@ -0,0 +1,11 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:width="24dp" |
||||||
|
android:height="24dp" |
||||||
|
android:tint="?android:attr/colorControlNormal" |
||||||
|
android:viewportHeight="24" |
||||||
|
android:viewportWidth="24"> |
||||||
|
<path |
||||||
|
android:fillColor="#000" |
||||||
|
android:pathData="M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z" /> |
||||||
|
</vector> |
@ -0,0 +1,22 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<resources> |
||||||
|
<!-- Title --> |
||||||
|
<string name="dolby_title" translatable="false">Dolby Atmos</string> |
||||||
|
|
||||||
|
<!-- Switch bar --> |
||||||
|
<string name="dolby_enable_title">Enable Dolby Atmos</string> |
||||||
|
|
||||||
|
<!-- Intro --> |
||||||
|
<string name="dolby_top_intro_summary">Experience breakthrough audio for media playback that flows above and around you</string> |
||||||
|
|
||||||
|
<!-- Profiles --> |
||||||
|
<string name="dolby_profile_auto">Auto Profile</string> |
||||||
|
<string name="dolby_profile_game">Game Profile</string> |
||||||
|
<string name="dolby_profile_game_1">Game 1 Profile</string> |
||||||
|
<string name="dolby_profile_game_2">Game 2 Profile</string> |
||||||
|
<string name="dolby_profile_movie">Movie Profile</string> |
||||||
|
<string name="dolby_profile_music">Music Profile</string> |
||||||
|
<string name="dolby_profile_off">No Profile</string> |
||||||
|
<string name="dolby_profile_spacial_audio">Spacial Audio Profile</string> |
||||||
|
<string name="dolby_profile_voice">Voice Profile</string> |
||||||
|
</resources> |
@ -0,0 +1,52 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<PreferenceScreen |
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:title="@string/dolby_title"> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.MainSwitchPreference |
||||||
|
android:defaultValue="false" |
||||||
|
android:key="dolby_enable" |
||||||
|
android:title="@string/dolby_enable_title" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.TopIntroPreference |
||||||
|
android:key="dolby_top_intro" |
||||||
|
android:title="@string/dolby_top_intro_summary" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:defaultValue="true" |
||||||
|
android:key="dolby_profile_auto" |
||||||
|
android:title="@string/dolby_profile_auto" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:key="dolby_profile_game" |
||||||
|
android:title="@string/dolby_profile_game" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:key="dolby_profile_game_1" |
||||||
|
android:title="@string/dolby_profile_game_1" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:key="dolby_profile_game_2" |
||||||
|
android:title="@string/dolby_profile_game_2" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:key="dolby_profile_movie" |
||||||
|
android:title="@string/dolby_profile_movie" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:key="dolby_profile_music" |
||||||
|
android:title="@string/dolby_profile_music" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:key="dolby_profile_off" |
||||||
|
android:title="@string/dolby_profile_off" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:key="dolby_profile_spacial_audio" |
||||||
|
android:title="@string/dolby_profile_spacial_audio" /> |
||||||
|
|
||||||
|
<com.android.settingslib.widget.RadioButtonPreference |
||||||
|
android:key="dolby_profile_voice" |
||||||
|
android:title="@string/dolby_profile_voice" /> |
||||||
|
|
||||||
|
</PreferenceScreen> |
@ -0,0 +1,40 @@ |
|||||||
|
/* |
||||||
|
* Copyright (C) 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.dap |
||||||
|
|
||||||
|
import android.content.BroadcastReceiver |
||||||
|
import android.content.Context |
||||||
|
import android.content.Intent |
||||||
|
|
||||||
|
import androidx.preference.PreferenceManager |
||||||
|
|
||||||
|
import org.lineageos.dap.DolbyFragment.Companion.PREF_DOLBY_ENABLE |
||||||
|
import org.lineageos.dap.DolbyFragment.Companion.PREF_DOLBY_MODES |
||||||
|
|
||||||
|
class BootCompletedReceiver : BroadcastReceiver() { |
||||||
|
|
||||||
|
override fun onReceive(context: Context, intent: Intent) { |
||||||
|
val sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context) |
||||||
|
for ((key, value) in PREF_DOLBY_MODES) { |
||||||
|
if (sharedPrefs.getBoolean(key, false)) { |
||||||
|
DolbyCore.setProfile(value) |
||||||
|
break |
||||||
|
} |
||||||
|
} |
||||||
|
DolbyCore.setEnabled(sharedPrefs.getBoolean(PREF_DOLBY_ENABLE, false)) |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
/* |
||||||
|
* Copyright (C) 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.dap |
||||||
|
|
||||||
|
import android.os.Bundle |
||||||
|
|
||||||
|
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity |
||||||
|
import com.android.settingslib.collapsingtoolbar.R |
||||||
|
|
||||||
|
class DolbyActivity : CollapsingToolbarBaseActivity() { |
||||||
|
public override fun onCreate(savedInstanceState: Bundle?) { |
||||||
|
super.onCreate(savedInstanceState) |
||||||
|
fragmentManager.beginTransaction().replace( |
||||||
|
R.id.content_frame, |
||||||
|
DolbyFragment() |
||||||
|
).commit() |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,51 @@ |
|||||||
|
/* |
||||||
|
* Copyright (C) 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.dap |
||||||
|
|
||||||
|
import android.media.audiofx.AudioEffect |
||||||
|
|
||||||
|
import java.util.UUID |
||||||
|
|
||||||
|
object DolbyCore { |
||||||
|
private const val EFFECT_PARAM_PROFILE = 0 |
||||||
|
private const val EFFECT_PARAM_EFF_ENAB = 19 |
||||||
|
|
||||||
|
const val PROFILE_AUTO = 0 |
||||||
|
const val PROFILE_MOVIE = 1 |
||||||
|
const val PROFILE_MUSIC = 2 |
||||||
|
const val PROFILE_VOICE = 3 |
||||||
|
const val PROFILE_GAME = 4 |
||||||
|
const val PROFILE_OFF = 5 |
||||||
|
const val PROFILE_GAME_1 = 6 |
||||||
|
const val PROFILE_GAME_2 = 7 |
||||||
|
const val PROFILE_SPACIAL_AUDIO = 8 |
||||||
|
|
||||||
|
private val audioEffect = AudioEffect( |
||||||
|
UUID.fromString("46d279d9-9be7-453d-9d7c-ef937f675587"), AudioEffect.EFFECT_TYPE_NULL, 0, 0 |
||||||
|
) |
||||||
|
|
||||||
|
fun setProfile(profile: Int) { |
||||||
|
audioEffect.setParameter(EFFECT_PARAM_EFF_ENAB, 1) |
||||||
|
audioEffect.setParameter(EFFECT_PARAM_PROFILE, profile) |
||||||
|
} |
||||||
|
|
||||||
|
fun setEnabled(enabled: Boolean) { |
||||||
|
audioEffect.enabled = enabled |
||||||
|
} |
||||||
|
|
||||||
|
fun isEnabled() = audioEffect.enabled |
||||||
|
} |
@ -0,0 +1,78 @@ |
|||||||
|
/* |
||||||
|
* Copyright (C) 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.dap |
||||||
|
|
||||||
|
import android.os.Bundle |
||||||
|
import android.widget.Switch |
||||||
|
|
||||||
|
import androidx.preference.PreferenceFragment |
||||||
|
|
||||||
|
import com.android.settingslib.widget.MainSwitchPreference |
||||||
|
import com.android.settingslib.widget.OnMainSwitchChangeListener |
||||||
|
import com.android.settingslib.widget.RadioButtonPreference |
||||||
|
|
||||||
|
import org.lineageos.dap.R |
||||||
|
|
||||||
|
class DolbyFragment : PreferenceFragment(), OnMainSwitchChangeListener { |
||||||
|
|
||||||
|
private lateinit var switchBar: MainSwitchPreference |
||||||
|
|
||||||
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { |
||||||
|
addPreferencesFromResource(R.xml.dolby_settings) |
||||||
|
|
||||||
|
switchBar = findPreference<MainSwitchPreference>(PREF_DOLBY_ENABLE)!! |
||||||
|
switchBar.addOnSwitchChangeListener(this) |
||||||
|
switchBar.isChecked = DolbyCore.isEnabled() |
||||||
|
|
||||||
|
for ((key, value) in PREF_DOLBY_MODES) { |
||||||
|
val preference = findPreference<RadioButtonPreference>(key)!! |
||||||
|
preference.setOnPreferenceClickListener { |
||||||
|
setProfile(value) |
||||||
|
true |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override fun onSwitchChanged(switchView: Switch, isChecked: Boolean) { |
||||||
|
DolbyCore.setEnabled(isChecked) |
||||||
|
} |
||||||
|
|
||||||
|
private fun setProfile(profile: Int) { |
||||||
|
DolbyCore.setProfile(profile) |
||||||
|
|
||||||
|
for ((key, value) in PREF_DOLBY_MODES) { |
||||||
|
val preference = findPreference<RadioButtonPreference>(key)!! |
||||||
|
preference.isChecked = value == profile |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
companion object { |
||||||
|
const val PREF_DOLBY_ENABLE = "dolby_enable" |
||||||
|
|
||||||
|
val PREF_DOLBY_MODES = mapOf( |
||||||
|
"dolby_profile_auto" to DolbyCore.PROFILE_AUTO, |
||||||
|
"dolby_profile_movie" to DolbyCore.PROFILE_MOVIE, |
||||||
|
"dolby_profile_music" to DolbyCore.PROFILE_MUSIC, |
||||||
|
"dolby_profile_voice" to DolbyCore.PROFILE_VOICE, |
||||||
|
"dolby_profile_game" to DolbyCore.PROFILE_GAME, |
||||||
|
"dolby_profile_off" to DolbyCore.PROFILE_OFF, |
||||||
|
"dolby_profile_game_1" to DolbyCore.PROFILE_GAME_1, |
||||||
|
"dolby_profile_game_2" to DolbyCore.PROFILE_GAME_2, |
||||||
|
"dolby_profile_spacial_audio" to DolbyCore.PROFILE_SPACIAL_AUDIO, |
||||||
|
) |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
/* |
||||||
|
* Copyright (C) 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.dap |
||||||
|
|
||||||
|
import android.service.quicksettings.Tile |
||||||
|
import android.service.quicksettings.TileService |
||||||
|
|
||||||
|
import androidx.preference.PreferenceManager |
||||||
|
|
||||||
|
import org.lineageos.dap.DolbyFragment.Companion.PREF_DOLBY_ENABLE |
||||||
|
|
||||||
|
class DolbyTile : TileService() { |
||||||
|
private var isEnabled = false |
||||||
|
set(value) { |
||||||
|
field = value |
||||||
|
qsTile.state = if (value) Tile.STATE_ACTIVE else Tile.STATE_INACTIVE |
||||||
|
qsTile.updateTile() |
||||||
|
} |
||||||
|
|
||||||
|
override fun onStartListening() { |
||||||
|
super.onStartListening() |
||||||
|
isEnabled = DolbyCore.isEnabled() |
||||||
|
} |
||||||
|
|
||||||
|
override fun onClick() { |
||||||
|
isEnabled = !isEnabled |
||||||
|
DolbyCore.setEnabled(isEnabled) |
||||||
|
PreferenceManager.getDefaultSharedPreferences(this) |
||||||
|
.edit() |
||||||
|
.putBoolean(PREF_DOLBY_ENABLE, isEnabled) |
||||||
|
.commit() |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue