diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:11:12 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:11:12 +0000 |
commit | 4154175a84481849178053c82a3fc1c13b7e616b (patch) | |
tree | 7a859673cf48e52e5be768c2fdf9f07511e11f3e | |
parent | abba5c9675d98c2e206cbf67b57c59d9de8ae286 (diff) | |
parent | 6c008e99e6b24ab4e0fa5245d97c066dd043408b (diff) | |
download | MusicFX-4154175a84481849178053c82a3fc1c13b7e616b.tar.gz |
Snap for 10453563 from 6c008e99e6b24ab4e0fa5245d97c066dd043408b to mainline-neuralnetworks-releaseaml_neu_341010080aml_neu_341010000
Change-Id: I37b716660d472839b1c02312b8196c387f6394ba
-rw-r--r-- | res/values-bs/strings.xml | 2 | ||||
-rw-r--r-- | res/values-fa/strings.xml | 2 | ||||
-rw-r--r-- | res/values-iw/strings.xml | 2 | ||||
-rw-r--r-- | res/values-or/strings.xml | 2 | ||||
-rw-r--r-- | res/values-ro/strings.xml | 4 | ||||
-rw-r--r-- | src/com/android/musicfx/ActivityMusic.java | 210 |
6 files changed, 126 insertions, 96 deletions
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index 37c80cd..311862b 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -18,7 +18,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name" msgid="2227320688818248940">"MusicFX"</string> <string name="no_effects" msgid="9023408561505030260">"Efekti nisu dostupni."</string> - <string name="eq_dialog_title" msgid="3237402214371962070">"Mikseta"</string> + <string name="eq_dialog_title" msgid="3237402214371962070">"Ekvalizator"</string> <string name="headset_plug" msgid="1774198554148807517">"Priključite slušalice da čujete ove efekte."</string> <string name="bass_boost_strength" msgid="8643071340166812205">"Pojačavanje basova"</string> <string name="virtualizer_strength" msgid="2139410708760989842">"Okružujući zvuk"</string> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index e829921..72cfbe3 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -18,7 +18,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name" msgid="2227320688818248940">"MusicFX"</string> <string name="no_effects" msgid="9023408561505030260">"جلوهها دردسترس نیستند."</string> - <string name="eq_dialog_title" msgid="3237402214371962070">"یکسانساز"</string> + <string name="eq_dialog_title" msgid="3237402214371962070">"میزانگر"</string> <string name="headset_plug" msgid="1774198554148807517">"برای این جلوهها هدفون را وصل کنید."</string> <string name="bass_boost_strength" msgid="8643071340166812205">"تقویت صدای بم"</string> <string name="virtualizer_strength" msgid="2139410708760989842">"صدای فراگیر"</string> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 7baa30f..0228792 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -18,7 +18,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name" msgid="2227320688818248940">"MusicFX"</string> <string name="no_effects" msgid="9023408561505030260">"האפקטים לא זמינים."</string> - <string name="eq_dialog_title" msgid="3237402214371962070">"אקולייזר"</string> + <string name="eq_dialog_title" msgid="3237402214371962070">"אקוולייזר"</string> <string name="headset_plug" msgid="1774198554148807517">"צריך לחבר אוזניות כדי לשמוע את האפקטים האלה."</string> <string name="bass_boost_strength" msgid="8643071340166812205">"הגברת הבס"</string> <string name="virtualizer_strength" msgid="2139410708760989842">"צליל סראונד"</string> diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index ebc8717..3546364 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -34,6 +34,6 @@ <string name="pop" msgid="8568493898002509539">"ପପ୍"</string> <string name="rock" msgid="4226553710464965901">"ରକ୍"</string> <string name="ci_extreme" msgid="67259122484788490">"FX ବୁଷ୍ଟର୍"</string> - <string name="user" msgid="8392147515328861077">"ଉପଯୋଗକର୍ତ୍ତା"</string> + <string name="user" msgid="8392147515328861077">"ୟୁଜର"</string> <string name="picker_title" msgid="4756201760847390691">"ମ୍ୟୁଜିକ ଇଫେକ୍ଟ କଣ୍ଟ୍ରୋଲପ୍ୟାନେଲ"</string> </resources> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 1df8740..776d4af 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -19,10 +19,10 @@ <string name="app_name" msgid="2227320688818248940">"MusicFX"</string> <string name="no_effects" msgid="9023408561505030260">"Efectele nu sunt disponibile."</string> <string name="eq_dialog_title" msgid="3237402214371962070">"Egalizator"</string> - <string name="headset_plug" msgid="1774198554148807517">"Pentru aceste efecte trebuie să conectați căștile."</string> + <string name="headset_plug" msgid="1774198554148807517">"Pentru aceste efecte trebuie să conectezi căștile."</string> <string name="bass_boost_strength" msgid="8643071340166812205">"Amplificare bas"</string> <string name="virtualizer_strength" msgid="2139410708760989842">"Sunet surround"</string> - <string name="setup" msgid="4811197673396615722">"Configurați"</string> + <string name="setup" msgid="4811197673396615722">"Configurează"</string> <string name="normal" msgid="757786146857325609">"Normal"</string> <string name="classical" msgid="1975693421508209132">"Clasică"</string> <string name="dance" msgid="212617702657103572">"Dance"</string> diff --git a/src/com/android/musicfx/ActivityMusic.java b/src/com/android/musicfx/ActivityMusic.java index a2c356d..8ec4b98 100644 --- a/src/com/android/musicfx/ActivityMusic.java +++ b/src/com/android/musicfx/ActivityMusic.java @@ -16,36 +16,22 @@ package com.android.musicfx; -import com.android.audiofx.OpenSLESConstants; - import android.app.ActionBar; import android.app.Activity; -import android.app.AlertDialog; -import android.app.Dialog; -import android.bluetooth.BluetoothClass; -import android.bluetooth.BluetoothDevice; -import android.content.BroadcastReceiver; import android.content.Context; -import android.content.DialogInterface; -import android.content.DialogInterface.OnCancelListener; import android.content.Intent; -import android.content.IntentFilter; -import android.media.AudioAttributes; +import android.media.AudioDeviceCallback; import android.media.AudioDeviceInfo; import android.media.AudioFormat; import android.media.AudioManager; -import android.media.AudioManager.AudioPlaybackCallback; -import android.media.AudioPlaybackConfiguration; import android.media.audiofx.AudioEffect; import android.media.audiofx.AudioEffect.Descriptor; import android.media.audiofx.Virtualizer; import android.os.Bundle; import android.util.Log; import android.view.Gravity; -import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; -import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.widget.AdapterView; @@ -53,9 +39,6 @@ import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; -import android.widget.LinearLayout; -import android.widget.ListView; -import android.widget.RelativeLayout; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.Spinner; @@ -63,14 +46,13 @@ import android.widget.Switch; import android.widget.TextView; import android.widget.Toast; +import com.android.audiofx.OpenSLESConstants; + import java.util.Formatter; -import java.util.HashMap; import java.util.HashSet; -import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; -import java.util.UUID; /** * @@ -96,20 +78,20 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { /** * Indicates if Virtualizer effect is supported. */ - private boolean mVirtualizerSupported; - private boolean mVirtualizerIsHeadphoneOnly; + private boolean mVirtualizerSupported = false; + private boolean mVirtualizerIsHeadphoneOnly = false; /** * Indicates if BassBoost effect is supported. */ - private boolean mBassBoostSupported; + private boolean mBassBoostSupported = false; /** * Indicates if Equalizer effect is supported. */ - private boolean mEqualizerSupported; + private boolean mEqualizerSupported = false; /** * Indicates if Preset Reverb effect is supported. */ - private boolean mPresetReverbSupported; + private boolean mPresetReverbSupported = false; // Equalizer fields private final SeekBar[] mEqualizerSeekBar = new SeekBar[EQUALIZER_MAX_BANDS]; @@ -177,19 +159,17 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { /** * Default localized equalizer preset names. Keep the same as EffectBundle::gEqualizerPresets. */ - private static final Map<String, Integer> LOCALIZED_EQUALIZER_PRESET_NAMES - = new HashMap<String, Integer>() {{ - put("Normal", R.string.normal); - put("Classical", R.string.classical); - put("Dance", R.string.dance); - put("Flat", R.string.flat); - put("Folk", R.string.folk); - put("Heavy Metal", R.string.heavy_metal); - put("Hip Hop", R.string.hip_hop); - put("Jazz", R.string.jazz); - put("Pop", R.string.pop); - put("Rock", R.string.rock); - }}; + private static final Map<String, Integer> LOCALIZED_EQUALIZER_PRESET_NAMES = Map.of( + "Normal", R.string.normal, + "Classical", R.string.classical, + "Dance", R.string.dance, + "Flat", R.string.flat, + "Folk", R.string.folk, + "Heavy Metal", R.string.heavy_metal, + "Hip Hop", R.string.hip_hop, + "Jazz", R.string.jazz, + "Pop", R.string.pop, + "Rock", R.string.rock); /** * Context field @@ -201,27 +181,51 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { */ private String mCallingPackageName = "empty"; - // Audio Playback monitoring Callback to determine if a headset is used for music playback - private final AudioPlaybackCallback mMyAudioPlaybackCallback = new AudioPlaybackCallback() { - @Override - public void onPlaybackConfigChanged(List<AudioPlaybackConfiguration> configs) { - boolean isHeadsetOn = isHeadsetUsedForMedia(configs); - if (isHeadsetOn != mIsHeadsetOn) { - mIsHeadsetOn = isHeadsetOn; - updateUIHeadset(); - } - } - }; - - private static boolean isConfigForMedia(AudioPlaybackConfiguration apc) { - AudioAttributes attr = apc.getAudioAttributes(); - if (attr.getUsage() == AudioAttributes.USAGE_MEDIA - || attr.getUsage() == AudioAttributes.USAGE_GAME - || attr.getUsage() == AudioAttributes.USAGE_UNKNOWN) { - return true; - } - return false; - } + // Listen to AudioDeviceCallback to determine if a headset is connected + private final AudioDeviceCallback mMyAudioDeviceCallback = + new AudioDeviceCallback() { + + /** + * Called by the {@link AudioManager} to indicate that one or more audio devices + * have been connected. + * + * @see AudioDeviceCallback. + */ + @Override + public void onAudioDevicesAdded(AudioDeviceInfo[] addedDevices) { + // do nothing if mIsHeadsetOn is true and new devices added + if (mIsHeadsetOn) { + return; + } + final boolean isHeadsetOn = isHeadSetDeviceConnected(); + if (isHeadsetOn) { + Log.v(TAG, " HeadSet connected"); + mIsHeadsetOn = true; + updateUIHeadset(); + } + } + + /** + * Called by the {@link AudioManager} to indicate that one or more audio devices + * have been disconnected. + * + * @param removedDevices An array of {@link AudioDeviceInfo} objects corresponding + * to any newly removed audio devices. + */ + @Override + public void onAudioDevicesRemoved(AudioDeviceInfo[] removedDevices) { + // do nothing if mIsHeadsetOn is false and some devices removed + if (!mIsHeadsetOn) { + return; + } + final boolean isHeadsetOn = isHeadSetDeviceConnected(); + if (!isHeadsetOn) { + Log.v(TAG, " HeadSet disconnected"); + mIsHeadsetOn = false; + updateUIHeadset(); + } + } + }; public static final Set<Integer> HEADSET_DEVICE_TYPES = new HashSet<>(); static { @@ -234,23 +238,26 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { HEADSET_DEVICE_TYPES.add(AudioDeviceInfo.TYPE_BLE_HEADSET); } - private static boolean isConfigForHeadset(AudioPlaybackConfiguration apc) { - AudioDeviceInfo device = apc.getAudioDeviceInfo(); - if (device == null) { - return false; - } - return HEADSET_DEVICE_TYPES.contains(device.getType()); - } - - private static boolean isHeadsetUsedForMedia(List<AudioPlaybackConfiguration> configs) { - for (AudioPlaybackConfiguration config : configs) { - if (config.isActive() && isConfigForMedia(config) && isConfigForHeadset(config)) { + private boolean isHeadSetDeviceConnected() { + final AudioManager audioManager = getSystemService(AudioManager.class); + final AudioDeviceInfo[] deviceInfos = + audioManager.getDevicesStatic(AudioManager.GET_DEVICES_OUTPUTS); + for (AudioDeviceInfo deviceInfo : deviceInfos) { + if (deviceInfo == null) { + continue; + } + final int type = deviceInfo.getType(); + if (HEADSET_DEVICE_TYPES.contains(type)) { + Log.v(TAG, " at least a HeadSet device type " + type + " connected"); return true; } } + + Log.v(TAG, " no HeadSet device type connected"); return false; } - /* + + /* * Declares and initializes all objects and widgets in the layouts and the CheckBox and SeekBar * onchange methods on creation. * @@ -418,6 +425,8 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { ControlPanelEffect.Key.virt_enabled, isChecked); } }); + } else { + findViewById(R.id.vILayout).setVisibility(View.GONE); } // Initialize the Bass Boost elements. @@ -468,9 +477,10 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { ControlPanelEffect.setParameterBoolean(mContext, mCallingPackageName, ControlPanelEffect.Key.bb_enabled, false); } - } }); + } else { + findViewById(R.id.bBLayout).setVisibility(View.GONE); } // Initialize the Equalizer elements. @@ -483,6 +493,8 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { mEQPresetPrevious = mEQPreset; equalizerSpinnerInit((Spinner)findViewById(R.id.eqSpinner)); equalizerBandsInit(findViewById(R.id.eqcontainer)); + } else { + findViewById(R.id.eqSpinner).setVisibility(View.GONE); } // Initialize the Preset Reverb elements. @@ -492,6 +504,8 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { ControlPanelEffect.Key.pr_current_preset); mPRPresetPrevious = mPRPreset; reverbSpinnerInit((Spinner)findViewById(R.id.prSpinner)); + } else { + findViewById(R.id.prSpinner).setVisibility(View.GONE); } ActionBar ab = getActionBar(); @@ -520,10 +534,10 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { super.onResume(); if ((mVirtualizerSupported) || (mBassBoostSupported) || (mEqualizerSupported) || (mPresetReverbSupported)) { - // Monitor active playback configurations used for media and playing on a headset. - final AudioManager audioManager = (AudioManager) getSystemService(AudioManager.class); - audioManager.registerAudioPlaybackCallback(mMyAudioPlaybackCallback, null); - mIsHeadsetOn = isHeadsetUsedForMedia(audioManager.getActivePlaybackConfigurations()); + // Monitor AudioDeviceCallback for device change + final AudioManager audioManager = getSystemService(AudioManager.class); + audioManager.registerAudioDeviceCallback(mMyAudioDeviceCallback, null); + mIsHeadsetOn = isHeadSetDeviceConnected(); Log.v(TAG, "onResume: mIsHeadsetOn : " + mIsHeadsetOn); // Update UI updateUI(); @@ -539,12 +553,14 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { protected void onPause() { super.onPause(); - // Stop monitoring active playback configurations. (These affect the visible UI, - // so we only care about them while we're in the foreground.) - if ((mVirtualizerSupported) || (mBassBoostSupported) || (mEqualizerSupported) + // Stop monitoring AudioDeviceCallback, (these affect the visible UI, so we only care about + // them while we're in the foreground). + if ((mVirtualizerSupported) + || (mBassBoostSupported) + || (mEqualizerSupported) || (mPresetReverbSupported)) { - final AudioManager audioManager = (AudioManager) getSystemService(AudioManager.class); - audioManager.unregisterAudioPlaybackCallback(mMyAudioPlaybackCallback); + final AudioManager audioManager = getSystemService(AudioManager.class); + audioManager.unregisterAudioDeviceCallback(mMyAudioDeviceCallback); } } @@ -661,14 +677,28 @@ public class ActivityMusic extends Activity implements OnSeekBarChangeListener { */ private void updateUIHeadset() { if (mToggleSwitch.isChecked()) { - ((TextView) findViewById(R.id.vIStrengthText)).setEnabled( - mIsHeadsetOn || !mVirtualizerIsHeadphoneOnly); - ((SeekBar) findViewById(R.id.vIStrengthSeekBar)).setEnabled( - mIsHeadsetOn || !mVirtualizerIsHeadphoneOnly); - findViewById(R.id.vILayout).setEnabled(!mIsHeadsetOn || !mVirtualizerIsHeadphoneOnly); - ((TextView) findViewById(R.id.bBStrengthText)).setEnabled(mIsHeadsetOn); - ((SeekBar) findViewById(R.id.bBStrengthSeekBar)).setEnabled(mIsHeadsetOn); - findViewById(R.id.bBLayout).setEnabled(!mIsHeadsetOn); + if (mVirtualizerSupported) { + // virtualizer is on if headset is on or transaural virtualizer supported + final boolean isVirtualizerOn = mIsHeadsetOn || !mVirtualizerIsHeadphoneOnly; + ControlPanelEffect.setParameterBoolean( + mContext, + mCallingPackageName, + ControlPanelEffect.Key.virt_enabled, + isVirtualizerOn); + ((TextView) findViewById(R.id.vIStrengthText)).setEnabled(isVirtualizerOn); + ((SeekBar) findViewById(R.id.vIStrengthSeekBar)).setEnabled(isVirtualizerOn); + findViewById(R.id.vILayout).setEnabled(!isVirtualizerOn); + } + if (mBassBoostSupported) { + ControlPanelEffect.setParameterBoolean( + mContext, + mCallingPackageName, + ControlPanelEffect.Key.bb_enabled, + mIsHeadsetOn); + ((TextView) findViewById(R.id.bBStrengthText)).setEnabled(mIsHeadsetOn); + ((SeekBar) findViewById(R.id.bBStrengthSeekBar)).setEnabled(mIsHeadsetOn); + findViewById(R.id.bBLayout).setEnabled(!mIsHeadsetOn); + } } } |