diff --git a/universal7885-common/apps/SamsungParts/AndroidManifest.xml b/universal7885-common/apps/SamsungParts/AndroidManifest.xml index 489fb42..d39f6d8 100644 --- a/universal7885-common/apps/SamsungParts/AndroidManifest.xml +++ b/universal7885-common/apps/SamsungParts/AndroidManifest.xml @@ -3,7 +3,7 @@ package="com.eurekateam.samsungextras" android:sharedUserId="android.uid.system"> - + @@ -12,6 +12,13 @@ android:supportsRtl="true" android:theme="@style/Theme.SubSettingsBase" android:fullBackupOnly="true"> + + + + + + (PREF_CLEAR_SPEAKER)!! mClearSpeakerPref.onPreferenceClickListener = Preference.OnPreferenceClickListener { @@ -44,14 +44,16 @@ class DeviceSettings : PreferenceFragmentCompat(), Preference.OnPreferenceChange true } val mFpsInfo = findPreference(PREF_KEY_FPS_INFO)!! - mFpsInfo.isChecked = prefs.getBoolean(PREF_KEY_FPS_INFO, false) + mFpsInfo.isChecked = mPrefs.getBoolean(PREF_KEY_FPS_INFO, false) mFpsInfo.onPreferenceChangeListener = this val mDT2W = findPreference(PREF_DOUBLE_TAP)!! mDT2W.onPreferenceChangeListener = this mDT2W.isEnabled = !(Build.PRODUCT == "a10" || Build.PRODUCT == "a20e") + mDT2W.isChecked = mPrefs.getBoolean(PREF_DOUBLE_TAP, false) val mGloveMode = findPreference(PREF_GLOVE_MODE)!! mGloveMode.onPreferenceChangeListener = this mGloveMode.isEnabled = !(Build.PRODUCT == "a10" || Build.PRODUCT == "a20e") + mGloveMode.isChecked = mPrefs.getBoolean(PREF_GLOVE_MODE, false) val mFlashLight = findPreference(PREF_FLASHLIGHT)!! mFlashLight.onPreferenceClickListener = Preference.OnPreferenceClickListener { @@ -71,23 +73,26 @@ class DeviceSettings : PreferenceFragmentCompat(), Preference.OnPreferenceChange override fun onPreferenceChange(preference: Preference, value: Any): Boolean { when (preference.key) { PREF_KEY_FPS_INFO -> { - val fps_enabled = value as Boolean - val fpsinfo = Intent(this.context, FPSInfoService::class.java) - if (fps_enabled) { - requireContext().startService(fpsinfo) + val mEnabled = value as Boolean + val mFPSService = Intent(this.context, FPSInfoService::class.java) + if (mEnabled) { + requireContext().startService(mFPSService) } else { - requireContext().stopService(fpsinfo) + requireContext().stopService(mFPSService) } + mPrefs.edit().putBoolean(PREF_KEY_FPS_INFO, mEnabled).apply() } PREF_DOUBLE_TAP -> { DT2W = value as Boolean + mPrefs.edit().putBoolean(PREF_DOUBLE_TAP, value).apply() + } + PREF_GLOVE_MODE -> { + GloveMode = value as Boolean + mPrefs.edit().putBoolean(PREF_GLOVE_MODE, value).apply() } - PREF_GLOVE_MODE -> { - GloveMode = value as Boolean - } else -> { - return false - } + return false + } } return true } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/GlobalConstants.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/GlobalConstants.kt deleted file mode 100644 index fe18170..0000000 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/GlobalConstants.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2022 Eureka Team - * - * 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 com.eurekateam.samsungextras - -object GlobalConstants { - /** - * Global Variables - */ - const val FLASHLIGHT_SYSFS = "/sys/class/camera/flash/torch_brightness_lvl" - const val TAG = "SamsungExtras" -} \ No newline at end of file diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/utils/SurfaceFlingerFPS.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/SurfaceFlingerFPS.kt similarity index 99% rename from universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/utils/SurfaceFlingerFPS.kt rename to universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/SurfaceFlingerFPS.kt index 7ac7dff..16f2831 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/utils/SurfaceFlingerFPS.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/SurfaceFlingerFPS.kt @@ -1,4 +1,4 @@ -package com.eurekateam.samsungextras.utils +package com.eurekateam.samsungextras import android.os.Parcel import android.os.ServiceManager diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryActivity.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryActivity.kt index fc2c8eb..a5a8429 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryActivity.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryActivity.kt @@ -18,17 +18,17 @@ package com.eurekateam.samsungextras.battery import android.os.Bundle import android.view.MenuItem import androidx.fragment.app.FragmentActivity -import com.android.internal.R.id.content -import com.android.internal.R.id.home +import android.R.id.content +import android.R.id.home class BatteryActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val fragment = this.supportFragmentManager.findFragmentById(content) + val fragment = supportFragmentManager.findFragmentById(content) val batteryFragment: BatteryFragment if (fragment == null) { batteryFragment = BatteryFragment() - this.supportFragmentManager.beginTransaction() + supportFragmentManager.beginTransaction() .add(content, batteryFragment) .commit() } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.kt index 7ab2e41..fabb98d 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.kt @@ -20,23 +20,23 @@ import android.widget.Toast import androidx.preference.ListPreference import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat +import androidx.preference.PreferenceManager import androidx.preference.SwitchPreference import com.eurekateam.samsungextras.R import com.eurekateam.samsungextras.interfaces.Battery class BatteryFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener { - private var mFastChargePref: SwitchPreference? = null - private var mChargePref: SwitchPreference? = null + private lateinit var mFastChargePref: SwitchPreference + private lateinit var mChargePref: SwitchPreference + private val mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.battery_settings) - mFastChargePref = findPreference(PREF_FASTCHARGE) - assert(mFastChargePref != null) - mFastChargePref!!.onPreferenceChangeListener = this - mFastChargePref!!.isChecked = Battery.chargeSysfs == 0 - mChargePref = findPreference(PREF_CHARGE) - assert(mChargePref != null) - mChargePref!!.onPreferenceChangeListener = this - mChargePref!!.isChecked = Battery.fastChargeSysfs == 0 + mFastChargePref = findPreference(PREF_FASTCHARGE)!! + mFastChargePref.onPreferenceChangeListener = this + mFastChargePref.isChecked = mSharedPreferences.getBoolean(PREF_FASTCHARGE, true) + mChargePref = findPreference(PREF_CHARGE)!! + mChargePref.onPreferenceChangeListener = this + mChargePref.isChecked = mSharedPreferences.getBoolean(PREF_CHARGE, true) val mBatteryInfo : ListPreference = findPreference(BATTERY_INFO)!! val items = arrayOf( Battery.getGeneralBatteryStats(1).toString() + " mAh", @@ -60,21 +60,22 @@ class BatteryFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChang if (preference === mChargePref) { val value = newValue as Boolean Battery.chargeSysfs = if (value) 0 else 1 - mChargePref!!.isChecked = Battery.chargeSysfs == 0 + mChargePref.isChecked = Battery.chargeSysfs == 0 + mSharedPreferences.edit().putBoolean(PREF_CHARGE, Battery.chargeSysfs == 0).apply() return true } else if (preference === mFastChargePref) { val value = newValue as Boolean Battery.setFastCharge(if (value) 0 else 1) - mFastChargePref!!.isChecked = - Battery.fastChargeSysfs == 0 + mFastChargePref.isChecked = Battery.fastChargeSysfs == 0 + mSharedPreferences.edit().putBoolean(PREF_FASTCHARGE, Battery.fastChargeSysfs == 0).apply() return true } return false } companion object { - private const val PREF_FASTCHARGE = "fastcharge_pref" - private const val PREF_CHARGE = "charge_pref" + const val PREF_FASTCHARGE = "fastcharge_pref" + const val PREF_CHARGE = "charge_pref" private const val BATTERY_INFO = "battery_info" } } \ No newline at end of file diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyActivity.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyActivity.kt index 4b7e9f8..b8b1269 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyActivity.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyActivity.kt @@ -19,7 +19,7 @@ package com.eurekateam.samsungextras.dolby import android.os.Bundle import androidx.fragment.app.FragmentActivity -import com.android.internal.R.id.content +import android.R.id.content class DolbyActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -28,7 +28,7 @@ class DolbyActivity : FragmentActivity() { val dolbyFragment: DolbyFragment if (fragment == null) { dolbyFragment = DolbyFragment() - this.supportFragmentManager.beginTransaction() + supportFragmentManager.beginTransaction() .add(content, dolbyFragment) .commit() } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyFragment.kt index 92484f6..ee818b9 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyFragment.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyFragment.kt @@ -17,9 +17,11 @@ package com.eurekateam.samsungextras.dolby import android.os.Bundle +import android.os.PerformanceHintManager import android.widget.Switch import androidx.preference.PreferenceFragmentCompat +import androidx.preference.PreferenceManager import com.android.settingslib.widget.MainSwitchPreference import com.android.settingslib.widget.OnMainSwitchChangeListener @@ -30,7 +32,7 @@ import com.eurekateam.samsungextras.R class DolbyFragment : PreferenceFragmentCompat(), OnMainSwitchChangeListener { private lateinit var switchBar: MainSwitchPreference - + private val mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.dolby_settings) @@ -49,6 +51,7 @@ class DolbyFragment : PreferenceFragmentCompat(), OnMainSwitchChangeListener { override fun onSwitchChanged(switchView: Switch, isChecked: Boolean) { DolbyCore.setEnabled(isChecked) + mSharedPreferences.edit().putBoolean(PREF_DOLBY_ENABLE, true).apply() } private fun setProfile(profile: Int) { @@ -58,11 +61,12 @@ class DolbyFragment : PreferenceFragmentCompat(), OnMainSwitchChangeListener { val preference = findPreference(key)!! preference.isChecked = value == profile } + mSharedPreferences.edit().putInt(PREF_DOLBY_PROFILE, profile).apply() } companion object { const val PREF_DOLBY_ENABLE = "dolby_enable" - + const val PREF_DOLBY_PROFILE = "dolby_profile" val PREF_DOLBY_MODES = mapOf( "dolby_profile_auto" to DolbyCore.PROFILE_AUTO, "dolby_profile_movie" to DolbyCore.PROFILE_MOVIE, diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyTile.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyTile.kt index 1e6afdf..c38c557 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyTile.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyTile.kt @@ -43,6 +43,6 @@ class DolbyTile : TileService() { PreferenceManager.getDefaultSharedPreferences(this) .edit() .putBoolean(PREF_DOLBY_ENABLE, isEnabled) - .commit() + .apply() } } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightActivity.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightActivity.kt index bfdf7a3..9b19c2c 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightActivity.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightActivity.kt @@ -19,12 +19,12 @@ import android.R.id.content import android.os.Bundle import android.view.MenuItem import androidx.fragment.app.FragmentActivity -import com.android.internal.R.id.home +import android.R.id.home class FlashLightActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val fragment = this.supportFragmentManager.findFragmentById(content) + val fragment = supportFragmentManager.findFragmentById(content) val flashLightFragment: FlashLightFragment if (fragment == null) { flashLightFragment = FlashLightFragment() diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.kt index 7d24297..14644f8 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.kt @@ -15,43 +15,39 @@ */ package com.eurekateam.samsungextras.flashlight -import android.os.Bundle import android.os.Build +import android.os.Bundle +import android.os.PerformanceHintManager import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat -import com.eurekateam.samsungextras.GlobalConstants +import androidx.preference.PreferenceManager import com.eurekateam.samsungextras.R import com.eurekateam.samsungextras.interfaces.Flashlight import com.eurekateam.samsungextras.preferences.CustomSeekBarPreference -import java.io.File class FlashLightFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener { - private var mFlashLightPref: CustomSeekBarPreference? = null + private lateinit var mFlashLightPref: CustomSeekBarPreference + private val mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.flashlight_settings) - mFlashLightPref = findPreference(PREF_FLASHLIGHT) - assert(mFlashLightPref != null) - mFlashLightPref!!.onPreferenceChangeListener = this - if (!File(GlobalConstants.FLASHLIGHT_SYSFS).exists()) { - mFlashLightPref!!.isEnabled = false - } - mFlashLightPref!!.setMax(10) - mFlashLightPref!!.setMin(1) - val isa10 = Build.DEVICE == "a10" - mFlashLightPref!!.value = Flashlight.getFlash(if (isa10) 1 else 0) + mFlashLightPref = findPreference(PREF_FLASHLIGHT)!! + mFlashLightPref.onPreferenceChangeListener = this + mFlashLightPref.setMax(10) + mFlashLightPref.setMin(1) + mFlashLightPref.value = Flashlight.getFlash(if (Build.DEVICE == "a10") 1 else 0) } override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean { - if (preference === mFlashLightPref) { + if (preference == mFlashLightPref) { val value = newValue as Int Flashlight.setFlash(value) - mFlashLightPref!!.setValue(value, true) + mSharedPreferences.edit().putInt(PREF_FLASHLIGHT, value).apply() return true } return false } companion object { - private const val PREF_FLASHLIGHT = "flashlight_pref" + const val PREF_FLASHLIGHT = "flashlight_pref" } } \ No newline at end of file diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/fps/FPSInfoService.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/fps/FPSInfoService.kt index 585c79b..9ec05ca 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/fps/FPSInfoService.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/fps/FPSInfoService.kt @@ -28,7 +28,7 @@ import android.util.Log import android.view.Gravity import android.view.View import android.view.WindowManager -import com.eurekateam.samsungextras.utils.SurfaceFlingerFPS +import com.eurekateam.samsungextras.SurfaceFlingerFPS import kotlin.math.roundToInt open class FPSInfoService : Service() { diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/speaker/ClearSpeakerActivity.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/speaker/ClearSpeakerActivity.kt index 66670f6..e8e1dd7 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/speaker/ClearSpeakerActivity.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/speaker/ClearSpeakerActivity.kt @@ -24,11 +24,11 @@ import androidx.fragment.app.FragmentActivity class ClearSpeakerActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val fragment = this.supportFragmentManager.findFragmentById(content) + val fragment = supportFragmentManager.findFragmentById(content) val clearSpeakerFragment: ClearSpeakerFragment if (fragment == null) { clearSpeakerFragment = ClearSpeakerFragment() - this.supportFragmentManager.beginTransaction() + supportFragmentManager.beginTransaction() .add(content, clearSpeakerFragment) .commit() } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/speaker/ClearSpeakerFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/speaker/ClearSpeakerFragment.kt index a05ffd7..02bb966 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/speaker/ClearSpeakerFragment.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/speaker/ClearSpeakerFragment.kt @@ -15,7 +15,6 @@ */ package com.eurekateam.samsungextras.speaker -import android.content.Context import android.media.AudioManager import android.media.MediaPlayer import android.os.Bundle @@ -29,16 +28,14 @@ import com.eurekateam.samsungextras.R import java.io.IOException class ClearSpeakerFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener { - private var mAudioManager: AudioManager? = null - private var mHandler: Handler? = null - private var mMediaPlayer: MediaPlayer? = null - private var mClearSpeakerPref: SwitchPreference? = null + private lateinit var mHandler: Handler + private lateinit var mMediaPlayer: MediaPlayer + private lateinit var mClearSpeakerPref: SwitchPreference override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { addPreferencesFromResource(R.xml.clear_speaker_settings) - mClearSpeakerPref = findPreference(PREF_CLEAR_SPEAKER) - mClearSpeakerPref!!.onPreferenceChangeListener = this + mClearSpeakerPref = findPreference(PREF_CLEAR_SPEAKER)!! + mClearSpeakerPref.onPreferenceChangeListener = this mHandler = Handler(Looper.getMainLooper()) - mAudioManager = requireContext().getSystemService(Context.AUDIO_SERVICE) as AudioManager } override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean { @@ -46,8 +43,8 @@ class ClearSpeakerFragment : PreferenceFragmentCompat(), Preference.OnPreference val value = newValue as Boolean if (value) { if (startPlaying()) { - mHandler!!.removeCallbacksAndMessages(null) - mHandler!!.postDelayed({ stopPlaying() }, 30000) + mHandler.removeCallbacksAndMessages(null) + mHandler.postDelayed({ stopPlaying() }, 30000) return true } } @@ -65,23 +62,22 @@ class ClearSpeakerFragment : PreferenceFragmentCompat(), Preference.OnPreference * @return true on success, else false */ private fun startPlaying(): Boolean { - mAudioManager!!.setParameters("status_earpiece_clean=on") mMediaPlayer = MediaPlayer() requireActivity().volumeControlStream = AudioManager.STREAM_MUSIC - mMediaPlayer!!.setAudioStreamType(AudioManager.STREAM_MUSIC) - mMediaPlayer!!.isLooping = true + mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC) + mMediaPlayer.isLooping = true try { resources.openRawResourceFd(R.raw.clear_speaker_sound).use { file -> - mMediaPlayer!!.setDataSource( + mMediaPlayer.setDataSource( file.fileDescriptor, file.startOffset, file.length ) } - mClearSpeakerPref!!.isEnabled = false - mMediaPlayer!!.setVolume(1.0f, 1.0f) - mMediaPlayer!!.prepare() - mMediaPlayer!!.start() + mClearSpeakerPref.isEnabled = false + mMediaPlayer.setVolume(1.0f, 1.0f) + mMediaPlayer.prepare() + mMediaPlayer.start() } catch (ioe: IOException) { Log.e(TAG, "Failed to play speaker clean sound!", ioe) return false @@ -93,14 +89,13 @@ class ClearSpeakerFragment : PreferenceFragmentCompat(), Preference.OnPreference * Stops and invalidates */ private fun stopPlaying() { - if (mMediaPlayer != null) { - mMediaPlayer!!.stop() - mMediaPlayer!!.reset() - mMediaPlayer!!.release() + if (::mMediaPlayer.isInitialized) { + mMediaPlayer.stop() + mMediaPlayer.reset() + mMediaPlayer.release() } - mAudioManager!!.setParameters("status_earpiece_clean=off") - mClearSpeakerPref!!.isEnabled = true - mClearSpeakerPref!!.isChecked = false + mClearSpeakerPref.isEnabled = true + mClearSpeakerPref.isChecked = false } companion object {