From b73a1c532bd302e7ebbd03474445a9b9b6483847 Mon Sep 17 00:00:00 2001 From: antonio Date: Thu, 20 Jul 2023 12:33:10 +0200 Subject: [PATCH] fix: checking for the presence of a system equalizer --- .../tempo/ui/fragment/SettingsFragment.java | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java index 8437ae9b..7e07aa58 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java @@ -15,6 +15,7 @@ import androidx.annotation.OptIn; import androidx.lifecycle.ViewModelProvider; import androidx.media3.common.util.UnstableApi; import androidx.preference.ListPreference; +import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import com.cappielloantonio.tempo.BuildConfig; @@ -70,6 +71,8 @@ public class SettingsFragment extends PreferenceFragmentCompat { public void onResume() { super.onResume(); + checkEqualizer(); + findPreference("version").setSummary(BuildConfig.VERSION_NAME); findPreference("logout").setOnPreferenceClickListener(preference -> { @@ -93,12 +96,6 @@ public class SettingsFragment extends PreferenceFragmentCompat { return true; }); - findPreference("equalizer").setOnPreferenceClickListener(preference -> { - Intent intent = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL); - someActivityResultLauncher.launch(intent); - return true; - }); - findPreference("sync_starred_tracks_for_offline_use").setOnPreferenceChangeListener((preference, newValue) -> { if (newValue instanceof Boolean) { if ((Boolean) newValue) { @@ -130,6 +127,23 @@ public class SettingsFragment extends PreferenceFragmentCompat { } } + private void checkEqualizer() { + Preference equalizer = findPreference("equalizer"); + + if (equalizer == null) return; + + Intent intent = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL); + + if ((intent.resolveActivity(requireActivity().getPackageManager()) != null)) { + equalizer.setOnPreferenceClickListener(preference -> { + someActivityResultLauncher.launch(intent); + return true; + }); + } else { + equalizer.setVisible(false); + } + } + private void getScanStatus() { settingViewModel.getScanStatus(new ScanCallback() { @Override