From a024010fef287a2da5745e19634d2761e4fba338 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Tue, 24 Aug 2021 15:09:28 +0200 Subject: [PATCH] Add ability to open equalizer from SettingsFragment --- .../play/ui/fragment/SettingsFragment.java | 34 +++++++++++++++++-- .../play/util/MappingUtil.java | 1 + app/src/main/res/xml/global_preferences.xml | 5 +++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SettingsFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SettingsFragment.java index f8c911d0..b3bc3a3d 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SettingsFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SettingsFragment.java @@ -1,11 +1,20 @@ package com.cappielloantonio.play.ui.fragment; +import android.app.Activity; +import android.content.Intent; +import android.media.audiofx.AudioEffect; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.activity.result.ActivityResult; +import androidx.activity.result.ActivityResultCallback; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContract; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProvider; import androidx.preference.ListPreference; import androidx.preference.PreferenceFragmentCompat; @@ -23,6 +32,21 @@ public class SettingsFragment extends PreferenceFragmentCompat { private MainActivity activity; private SettingViewModel settingViewModel; + private ActivityResultLauncher someActivityResultLauncher; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + someActivityResultLauncher = registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() != Activity.RESULT_OK) { + findPreference("equalizer").setSummary("No equalizer available"); + } + }); + } + @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { activity = (MainActivity) getActivity(); @@ -70,10 +94,16 @@ public class SettingsFragment extends PreferenceFragmentCompat { @Override public void onSuccess(boolean isScanning, long count) { if (isScanning) getScanStatus(); - else - findPreference("scan_library").setSummary("Scanning: counting " + count + " tracks"); + else findPreference("scan_library").setSummary("Scanning: counting " + count + " tracks"); } }); + + return true; + }); + + findPreference("equalizer").setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL); + someActivityResultLauncher.launch(intent); return true; }); } diff --git a/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java b/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java index c3858330..39154b91 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java @@ -17,6 +17,7 @@ import com.cappielloantonio.play.subsonic.models.Genre; import com.cappielloantonio.play.subsonic.models.SimilarArtistID3; import java.util.ArrayList; +import java.util.Collections; import java.util.List; public class MappingUtil { diff --git a/app/src/main/res/xml/global_preferences.xml b/app/src/main/res/xml/global_preferences.xml index bb16029c..25a44b91 100644 --- a/app/src/main/res/xml/global_preferences.xml +++ b/app/src/main/res/xml/global_preferences.xml @@ -28,6 +28,11 @@ app:title="@string/theme_selection" app:useSimpleSummaryProvider="true" /> + +