diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-12-19 01:15:19 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-12-19 01:15:19 +0000 |
commit | af766fec63c2d5c5d0f7064ce2e4e9bc60bf82c3 (patch) | |
tree | aecfaf9917c1cb0f68d68b0dee1033b0da275e95 /tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink | |
parent | 325736b29b4ef14700ebe6cee76af9a4551c5a11 (diff) | |
parent | f0f1fad619c90782aa3830269b7b16efbd320ea7 (diff) | |
download | Car-af766fec63c2d5c5d0f7064ce2e4e9bc60bf82c3.tar.gz |
Merge "Cleanup CarAudioService - part 2"
Diffstat (limited to 'tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink')
2 files changed, 214 insertions, 507 deletions
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java index c19a3e8e9e..5a160f17f8 100644 --- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java +++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java @@ -35,11 +35,8 @@ import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; -import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; -import android.widget.CompoundButton; -import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; @@ -47,7 +44,6 @@ import android.widget.ToggleButton; import com.google.android.car.kitchensink.CarEmulator; import com.google.android.car.kitchensink.R; -import com.google.android.car.kitchensink.audio.AudioPlayer.PlayStateListener; public class AudioTestFragment extends Fragment { private static final String TAG = "CAR.AUDIO.KS"; @@ -55,24 +51,6 @@ public class AudioTestFragment extends Fragment { private AudioManager mAudioManager; private FocusHandler mAudioFocusHandler; - private Button mNavPlayOnce; - private Button mVrPlayOnce; - private Button mSystemPlayOnce; - private Button mMediaPlay; - private Button mMediaPlayOnce; - private Button mMediaStop; - private Button mWavPlay; - private Button mWavStop; - private Button mNavStart; - private Button mNavEnd; - private Button mVrStart; - private Button mVrEnd; - private Button mRadioStart; - private Button mRadioEnd; - private Button mSpeakerPhoneOn; - private Button mSpeakerPhoneOff; - private Button mMicrophoneOn; - private Button mMicrophoneOff; private ToggleButton mEnableMocking; private ToggleButton mRejectFocus; @@ -97,26 +75,14 @@ public class AudioTestFragment extends Fragment { private AudioAttributes mSystemSoundAudioAttrib; private CarEmulator mCarEmulator; - private final AudioManager.OnAudioFocusChangeListener mNavFocusListener = - new AudioManager.OnAudioFocusChangeListener() { - @Override - public void onAudioFocusChange(int focusChange) { - Log.i(TAG, "Nav focus change:" + focusChange); - } + private final AudioManager.OnAudioFocusChangeListener mNavFocusListener = (focusChange) -> { + Log.i(TAG, "Nav focus change:" + focusChange); }; - private final AudioManager.OnAudioFocusChangeListener mVrFocusListener = - new AudioManager.OnAudioFocusChangeListener() { - @Override - public void onAudioFocusChange(int focusChange) { - Log.i(TAG, "VR focus change:" + focusChange); - } + private final AudioManager.OnAudioFocusChangeListener mVrFocusListener = (focusChange) -> { + Log.i(TAG, "VR focus change:" + focusChange); }; - private final AudioManager.OnAudioFocusChangeListener mRadioFocusListener = - new AudioManager.OnAudioFocusChangeListener() { - @Override - public void onAudioFocusChange(int focusChange) { - Log.i(TAG, "Radio focus change:" + focusChange); - } + private final AudioManager.OnAudioFocusChangeListener mRadioFocusListener = (focusChange) -> { + Log.i(TAG, "Radio focus change:" + focusChange); }; private final CarAppFocusManager.OnAppFocusOwnershipCallback mOwnershipCallbacks = @@ -211,232 +177,120 @@ public class AudioTestFragment extends Fragment { mAudioManager = (AudioManager) mContext.getSystemService( Context.AUDIO_SERVICE); mAudioFocusHandler = new FocusHandler( - (RadioGroup) view.findViewById(R.id.button_focus_request_selection), - (Button) view.findViewById(R.id.button_audio_focus_request), - (TextView) view.findViewById(R.id.text_audio_focus_state)); - mMediaPlay = (Button) view.findViewById(R.id.button_media_play_start); - mMediaPlay.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - boolean requestFocus = true; - boolean repeat = true; - mMusicPlayer.start(requestFocus, repeat, AudioManager.AUDIOFOCUS_GAIN); - } - }); - mMediaPlayOnce = (Button) view.findViewById(R.id.button_media_play_once); - mMediaPlayOnce.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mMusicPlayerShort.start(true, false, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); - // play only for 1 sec and stop - mHandler.postDelayed(new Runnable() { - @Override - public void run() { - mMusicPlayerShort.stop(); - } - }, 1000); - } - }); - mMediaStop = (Button) view.findViewById(R.id.button_media_play_stop); - mMediaStop.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mMusicPlayer.stop(); - } - }); - mWavPlay = (Button) view.findViewById(R.id.button_wav_play_start); - mWavPlay.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mWavPlayer.start(true, true, AudioManager.AUDIOFOCUS_GAIN); - } + view.findViewById(R.id.button_focus_request_selection), + view.findViewById(R.id.button_audio_focus_request), + view.findViewById(R.id.text_audio_focus_state)); + view.findViewById(R.id.button_media_play_start).setOnClickListener(v -> { + boolean requestFocus = true; + boolean repeat = true; + mMusicPlayer.start(requestFocus, repeat, AudioManager.AUDIOFOCUS_GAIN); }); - mWavStop = (Button) view.findViewById(R.id.button_wav_play_stop); - mWavStop.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mWavPlayer.stop(); - } + view.findViewById(R.id.button_media_play_once).setOnClickListener(v -> { + mMusicPlayerShort.start(true, false, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); + // play only for 1 sec and stop + mHandler.postDelayed(() -> mMusicPlayerShort.stop(), 1000); }); - mNavPlayOnce = (Button) view.findViewById(R.id.button_nav_play_once); - mNavPlayOnce.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if (mAppFocusManager == null) { - return; - } - if (DBG) { - Log.i(TAG, "Nav start"); - } - if (!mNavGuidancePlayer.isPlaying()) { - try { - mAppFocusManager.requestAppFocus( - CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION, mOwnershipCallbacks); - } catch (CarNotConnectedException e) { - Log.e(TAG, "Failed to set active focus", e); - } - mNavGuidancePlayer.start(true, false, - AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, - new PlayStateListener() { - @Override - public void onCompletion() { - mAppFocusManager.abandonAppFocus(mOwnershipCallbacks, - CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION); - } - }); - } + view.findViewById(R.id.button_media_play_stop).setOnClickListener(v -> mMusicPlayer.stop()); + view.findViewById(R.id.button_wav_play_start).setOnClickListener( + v -> mWavPlayer.start(true, true, AudioManager.AUDIOFOCUS_GAIN)); + view.findViewById(R.id.button_wav_play_stop).setOnClickListener(v -> mWavPlayer.stop()); + view.findViewById(R.id.button_nav_play_once).setOnClickListener(v -> { + if (mAppFocusManager == null) { + return; } - }); - mVrPlayOnce = (Button) view.findViewById(R.id.button_vr_play_once); - mVrPlayOnce.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if (mAppFocusManager == null) { - return; - } - if (DBG) { - Log.i(TAG, "VR start"); - } - try { - mAppFocusManager.requestAppFocus( - CarAppFocusManager.APP_FOCUS_TYPE_VOICE_COMMAND, mOwnershipCallbacks); - } catch (CarNotConnectedException e) { - Log.e(TAG, "Failed to set active focus", e); - } - if (!mVrPlayer.isPlaying()) { - mVrPlayer.start(true, false, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, - new PlayStateListener() { - @Override - public void onCompletion() { - mAppFocusManager.abandonAppFocus(mOwnershipCallbacks, - CarAppFocusManager.APP_FOCUS_TYPE_VOICE_COMMAND); - } - }); - } + if (DBG) { + Log.i(TAG, "Nav start"); } - }); - mSystemPlayOnce = (Button) view.findViewById(R.id.button_system_play_once); - mSystemPlayOnce.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "System start"); - } - if (!mSystemPlayer.isPlaying()) { - // system sound played without focus - mSystemPlayer.start(false, false, 0); - } + try { + mAppFocusManager.requestAppFocus( + CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION, mOwnershipCallbacks); + } catch (CarNotConnectedException e) { + Log.e(TAG, "Failed to set active focus", e); } - }); - mNavStart = (Button) view.findViewById(R.id.button_nav_start); - mNavStart.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - handleNavStart(); + if (!mNavGuidancePlayer.isPlaying()) { + mNavGuidancePlayer.start(true, false, + AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, + () -> mAppFocusManager.abandonAppFocus(mOwnershipCallbacks, + CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION)); } }); - mNavEnd = (Button) view.findViewById(R.id.button_nav_end); - mNavEnd.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - handleNavEnd(); + view.findViewById(R.id.button_vr_play_once).setOnClickListener(v -> { + if (mAppFocusManager == null) { + return; } - }); - mVrStart = (Button) view.findViewById(R.id.button_vr_start); - mVrStart.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - handleVrStart(); + if (DBG) { + Log.i(TAG, "VR start"); } - }); - mVrEnd = (Button) view.findViewById(R.id.button_vr_end); - mVrEnd.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - handleVrEnd(); + try { + mAppFocusManager.requestAppFocus( + CarAppFocusManager.APP_FOCUS_TYPE_VOICE_COMMAND, mOwnershipCallbacks); + } catch (CarNotConnectedException e) { + Log.e(TAG, "Failed to set active focus", e); } - }); - mRadioStart = (Button) view.findViewById(R.id.button_radio_start); - mRadioStart.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - handleRadioStart(); + if (!mVrPlayer.isPlaying()) { + mVrPlayer.start(true, false, + AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, + () -> mAppFocusManager.abandonAppFocus(mOwnershipCallbacks, + CarAppFocusManager.APP_FOCUS_TYPE_VOICE_COMMAND)); } }); - mRadioEnd = (Button) view.findViewById(R.id.button_radio_end); - mRadioEnd.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - handleRadioEnd(); + view.findViewById(R.id.button_system_play_once).setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "System start"); } - }); - mSpeakerPhoneOn = (Button) view.findViewById(R.id.button_speaker_phone_on); - mSpeakerPhoneOn.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mAudioManager.setSpeakerphoneOn(true); + if (!mSystemPlayer.isPlaying()) { + // system sound played without focus + mSystemPlayer.start(false, false, 0); } }); - mSpeakerPhoneOff = (Button) view.findViewById(R.id.button_speaker_phone_off); - mSpeakerPhoneOff.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mAudioManager.setSpeakerphoneOn(false); + view.findViewById(R.id.button_nav_start).setOnClickListener(v -> handleNavStart()); + view.findViewById(R.id.button_nav_end).setOnClickListener(v -> handleNavEnd()); + view.findViewById(R.id.button_vr_start).setOnClickListener(v -> handleVrStart()); + view.findViewById(R.id.button_vr_end).setOnClickListener(v -> handleVrEnd()); + view.findViewById(R.id.button_radio_start).setOnClickListener(v -> handleRadioStart()); + view.findViewById(R.id.button_radio_end).setOnClickListener(v -> handleRadioEnd()); + view.findViewById(R.id.button_speaker_phone_on).setOnClickListener( + v -> mAudioManager.setSpeakerphoneOn(true)); + view.findViewById(R.id.button_speaker_phone_off).setOnClickListener( + v -> mAudioManager.setSpeakerphoneOn(false)); + view.findViewById(R.id.button_microphone_on).setOnClickListener( + v -> mAudioManager.setMicrophoneMute(false)); + view.findViewById(R.id.button_microphone_off).setOnClickListener( + v -> mAudioManager.setMicrophoneMute(true)); + + + mRejectFocus = view.findViewById(R.id.button_reject_audio_focus); + mRejectFocus.setOnCheckedChangeListener((buttonView, isChecked) -> { + if (mCarEmulator == null) { + return; } - }); - mMicrophoneOn = (Button) view.findViewById(R.id.button_microphone_on); - mMicrophoneOn.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mAudioManager.setMicrophoneMute(false); // Turn the microphone on. + if (!mEnableMocking.isChecked()) { + return; } - }); - mMicrophoneOff = (Button) view.findViewById(R.id.button_microphone_off); - mMicrophoneOff.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mAudioManager.setMicrophoneMute(true); // Mute the microphone. + if (isChecked) { + mCarEmulator.setAudioFocusControl(true); + } else { + mCarEmulator.setAudioFocusControl(false); } }); + mRejectFocus.setActivated(false); - - mRejectFocus = (ToggleButton) view.findViewById(R.id.button_reject_audio_focus); - mRejectFocus.setOnCheckedChangeListener(new OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (mCarEmulator == null) { - return; - } - if (!mEnableMocking.isChecked()) { - return; - } - if (isChecked) { - mCarEmulator.setAudioFocusControl(true); - } else { - mCarEmulator.setAudioFocusControl(false); - } + mEnableMocking = view.findViewById(R.id.button_mock_audio); + mEnableMocking.setOnCheckedChangeListener((buttonView, isChecked) -> { + if (mCarEmulator == null) { + //TODO(pavelm): need to do a full switch between emulated and normal mode + // all Car*Manager references should be invalidated. + Toast.makeText(AudioTestFragment.this.getContext(), + "Not supported yet :(", Toast.LENGTH_SHORT).show(); + return; } - }); - mRejectFocus.setActivated(false); - mEnableMocking = (ToggleButton) view.findViewById(R.id.button_mock_audio); - mEnableMocking.setOnCheckedChangeListener(new OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (mCarEmulator == null) { - //TODO(pavelm): need to do a full switch between emulated and normal mode - // all Car*Manager references should be invalidated. - Toast.makeText(AudioTestFragment.this.getContext(), - "Not supported yet :(", Toast.LENGTH_SHORT).show(); - return; - } - if (isChecked) { - mRejectFocus.setActivated(true); - mCarEmulator.start(); - } else { - mRejectFocus.setActivated(false); - mCarEmulator.stop(); - mCarEmulator = null; - } + if (isChecked) { + mRejectFocus.setActivated(true); + mCarEmulator.start(); + } else { + mRejectFocus.setActivated(false); + mCarEmulator.stop(); + mCarEmulator = null; } }); return view; @@ -466,16 +320,13 @@ public class AudioTestFragment extends Fragment { if (mAppFocusManager == null) { return; } - if (mCarAudioManager == null) { - return; - } if (DBG) { Log.i(TAG, "Nav start"); } try { mAppFocusManager.requestAppFocus(CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION, mOwnershipCallbacks); - mCarAudioManager.requestAudioFocus(mNavFocusListener, mNavAudioAttrib, + mAudioManager.requestAudioFocus(mNavFocusListener, mNavAudioAttrib, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, 0); } catch (CarNotConnectedException e) { Log.e(TAG, "Failed to set active focus", e); @@ -486,31 +337,25 @@ public class AudioTestFragment extends Fragment { if (mAppFocusManager == null) { return; } - if (mCarAudioManager == null) { - return; - } if (DBG) { Log.i(TAG, "Nav end"); } + mAudioManager.abandonAudioFocus(mNavFocusListener, mNavAudioAttrib); mAppFocusManager.abandonAppFocus(mOwnershipCallbacks, CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION); - mCarAudioManager.abandonAudioFocus(mNavFocusListener, mNavAudioAttrib); } private void handleVrStart() { if (mAppFocusManager == null) { return; } - if (mCarAudioManager == null) { - return; - } if (DBG) { Log.i(TAG, "VR start"); } try { mAppFocusManager.requestAppFocus(CarAppFocusManager.APP_FOCUS_TYPE_VOICE_COMMAND, mOwnershipCallbacks); - mCarAudioManager.requestAudioFocus(mVrFocusListener, mVrAudioAttrib, + mAudioManager.requestAudioFocus(mVrFocusListener, mVrAudioAttrib, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT, 0); } catch (CarNotConnectedException e) { Log.e(TAG, "Failed to set active focus", e); @@ -521,40 +366,27 @@ public class AudioTestFragment extends Fragment { if (mAppFocusManager == null) { return; } - if (mCarAudioManager == null) { - return; - } if (DBG) { Log.i(TAG, "VR end"); } + mAudioManager.abandonAudioFocus(mVrFocusListener, mVrAudioAttrib); mAppFocusManager.abandonAppFocus(mOwnershipCallbacks, CarAppFocusManager.APP_FOCUS_TYPE_VOICE_COMMAND); - mCarAudioManager.abandonAudioFocus(mVrFocusListener, mVrAudioAttrib); } private void handleRadioStart() { - if (mCarAudioManager == null) { - return; - } if (DBG) { Log.i(TAG, "Radio start"); } - try { - mCarAudioManager.requestAudioFocus(mRadioFocusListener, mRadioAudioAttrib, - AudioManager.AUDIOFOCUS_GAIN, 0); - } catch (CarNotConnectedException e) { - Log.e(TAG, "failed", e); - } + mAudioManager.requestAudioFocus(mRadioFocusListener, mRadioAudioAttrib, + AudioManager.AUDIOFOCUS_GAIN, 0); } private void handleRadioEnd() { - if (mCarAudioManager == null) { - return; - } if (DBG) { Log.i(TAG, "Radio end"); } - mCarAudioManager.abandonAudioFocus(mRadioFocusListener, mRadioAudioAttrib); + mAudioManager.abandonAudioFocus(mRadioFocusListener, mRadioAudioAttrib); } private class FocusHandler { @@ -571,24 +403,21 @@ public class AudioTestFragment extends Fragment { mRequestSelection.check(R.id.focus_gain); setFocusText(AUDIO_FOCUS_STATE_RELEASED_UNKNOWN); mFocusListener = new AudioFocusListener(); - requestButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - int selectedButtonId = mRequestSelection.getCheckedRadioButtonId(); - int focusRequest = AudioManager.AUDIOFOCUS_GAIN; - if (selectedButtonId == R.id.focus_gain_transient_duck) { - focusRequest = AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK; - } else if (selectedButtonId == R.id.focus_release) { - mAudioManager.abandonAudioFocus(mFocusListener); - setFocusText(AUDIO_FOCUS_STATE_RELEASED_UNKNOWN); - return; - } - int ret = mAudioManager.requestAudioFocus(mFocusListener, - AudioManager.STREAM_MUSIC, focusRequest); - Log.i(TAG, "requestAudioFocus returned " + ret); - if (ret == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { - setFocusText(AUDIO_FOCUS_STATE_GAIN); - } + requestButton.setOnClickListener(v -> { + int selectedButtonId = mRequestSelection.getCheckedRadioButtonId(); + int focusRequest = AudioManager.AUDIOFOCUS_GAIN; + if (selectedButtonId == R.id.focus_gain_transient_duck) { + focusRequest = AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK; + } else if (selectedButtonId == R.id.focus_release) { + mAudioManager.abandonAudioFocus(mFocusListener); + setFocusText(AUDIO_FOCUS_STATE_RELEASED_UNKNOWN); + return; + } + int ret = mAudioManager.requestAudioFocus(mFocusListener, + AudioManager.STREAM_MUSIC, focusRequest); + Log.i(TAG, "requestAudioFocus returned " + ret); + if (ret == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { + setFocusText(AUDIO_FOCUS_STATE_GAIN); } }); } diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/radio/RadioTestFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/radio/RadioTestFragment.java index 021479168d..1b0f0294f4 100644 --- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/radio/RadioTestFragment.java +++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/radio/RadioTestFragment.java @@ -26,11 +26,8 @@ import android.content.ServiceConnection; import android.hardware.radio.RadioManager; import android.hardware.radio.RadioMetadata; import android.hardware.radio.RadioTuner; -import android.media.AudioAttributes; -import android.media.AudioManager; import android.os.Bundle; import android.os.IBinder; -import android.os.Looper; import android.support.v4.app.Fragment; import android.text.TextUtils; import android.text.method.ScrollingMovementMethod; @@ -40,7 +37,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.CompoundButton; -import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; import android.widget.TextView; import android.widget.ToggleButton; @@ -56,22 +52,6 @@ public class RadioTestFragment extends Fragment { private static final boolean DBG = true; private static final int MAX_LOG_MESSAGES = 100; - private final AudioManager.OnAudioFocusChangeListener mRadioFocusListener = - new AudioManager.OnAudioFocusChangeListener() { - @Override - public void onAudioFocusChange(int focusChange) { - addLog(Log.INFO, "Radio focus change:" + focusChange); - } - }; - - private final AudioManager.OnAudioFocusChangeListener mSecondaryFocusListener = - new AudioManager.OnAudioFocusChangeListener() { - @Override - public void onAudioFocusChange(int focusChange) { - addLog(Log.INFO, "Secondary focus change:" + focusChange); - } - }; - private final RadioTuner.Callback mRadioCallback = new RadioTuner.Callback() { @Override public void onError(int status) { @@ -110,10 +90,6 @@ public class RadioTestFragment extends Fragment { private Button mOpenRadio; private Button mCloseRadio; - private Button mGetRadioFocus; - private Button mReleaseRadioFocus; - private Button mGetFocus; - private Button mReleaseFocus; private Button mRadioNext; private Button mRadioPrev; private Button mRadioScanCancel; @@ -132,10 +108,6 @@ public class RadioTestFragment extends Fragment { private Car mCar; private CarAudioManager mCarAudioManager; - private AudioAttributes mRadioAudioAttrib; - private AudioManager mAudioManager; - private boolean mHasRadioFocus; - private boolean mHasSecondaryFocus; private RadioTuner mRadioTuner; private RadioManager mRadioManager; private RadioManager.FmBandDescriptor mFmDescriptor; @@ -162,32 +134,28 @@ public class RadioTestFragment extends Fragment { init(); View view = inflater.inflate(R.layout.radio, container, false); - mOpenRadio = (Button) view.findViewById(R.id.button_open_radio); - mCloseRadio = (Button) view.findViewById(R.id.button_close_radio); - mGetRadioFocus = (Button) view.findViewById(R.id.button_get_radio_focus); - mReleaseRadioFocus = (Button) view.findViewById(R.id.button_release_radio_focus); - mGetFocus = (Button) view.findViewById(R.id.button_get_focus_in_radio); - mReleaseFocus = (Button) view.findViewById(R.id.button_release_focus_in_radio); - mRadioNext = (Button) view.findViewById(R.id.button_radio_next); - mRadioPrev = (Button) view.findViewById(R.id.button_radio_prev); - mRadioScanCancel = (Button) view.findViewById(R.id.button_radio_scan_cancel); - mRadioGetProgramInfo = (Button) view.findViewById(R.id.button_radio_get_program_info); - mRadioTuneToStation = (Button) view.findViewById(R.id.button_radio_tune_to_station); - mRadioStepUp = (Button) view.findViewById(R.id.button_radio_step_up); - mRadioStepDown = (Button) view.findViewById(R.id.button_radio_step_down); - - mStationFrequency = (EditText) view.findViewById(R.id.edittext_station_frequency); - - mToggleMuteRadio = (ToggleButton) view.findViewById(R.id.togglebutton_mute_radio); + mOpenRadio = view.findViewById(R.id.button_open_radio); + mCloseRadio = view.findViewById(R.id.button_close_radio); + mRadioNext = view.findViewById(R.id.button_radio_next); + mRadioPrev = view.findViewById(R.id.button_radio_prev); + mRadioScanCancel = view.findViewById(R.id.button_radio_scan_cancel); + mRadioGetProgramInfo = view.findViewById(R.id.button_radio_get_program_info); + mRadioTuneToStation = view.findViewById(R.id.button_radio_tune_to_station); + mRadioStepUp = view.findViewById(R.id.button_radio_step_up); + mRadioStepDown = view.findViewById(R.id.button_radio_step_down); + + mStationFrequency = view.findViewById(R.id.edittext_station_frequency); + + mToggleMuteRadio = view.findViewById(R.id.togglebutton_mute_radio); mToggleMuteRadio.setChecked(true); - mRadioBand = (ToggleButton) view.findViewById(R.id.button_band_selection); + mRadioBand = view.findViewById(R.id.button_band_selection); - mStationInfo = (TextView) view.findViewById(R.id.radio_station_info); - mChannelInfo = (TextView) view.findViewById(R.id.radio_channel_info); - mSongInfo = (TextView) view.findViewById(R.id.radio_song_info); - mArtistInfo = (TextView) view.findViewById(R.id.radio_artist_info); + mStationInfo = view.findViewById(R.id.radio_station_info); + mChannelInfo = view.findViewById(R.id.radio_channel_info); + mSongInfo = view.findViewById(R.id.radio_song_info); + mArtistInfo = view.findViewById(R.id.radio_artist_info); - mLog = (TextView) view.findViewById(R.id.radio_log); + mLog = view.findViewById(R.id.radio_log); mLog.setMovementMethod(new ScrollingMovementMethod()); mNaString = getContext().getString(R.string.radio_na); @@ -213,8 +181,6 @@ public class RadioTestFragment extends Fragment { public void onServiceConnected(ComponentName name, IBinder service) { try { mCarAudioManager = (CarAudioManager) mCar.getCarManager(Car.AUDIO_SERVICE); - mRadioAudioAttrib = mCarAudioManager.getAudioAttributesForCarUsage( - CarAudioManager.CAR_AUDIO_USAGE_RADIO); } catch (CarNotConnectedException e) { Log.e(TAG, "Car not connected", e); } @@ -225,7 +191,6 @@ public class RadioTestFragment extends Fragment { } }); mCar.connect(); - mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE); initializeRadio(); } @@ -275,186 +240,103 @@ public class RadioTestFragment extends Fragment { } private void addHandlers() { - mOpenRadio.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - handleRadioStart(); - updateStates(); - } + mOpenRadio.setOnClickListener(v -> { + handleRadioStart(); + updateStates(); }); - mCloseRadio.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - handleRadioEnd(); - mToggleMuteRadio.setChecked(true); - updateStates(); - } + mCloseRadio.setOnClickListener(v -> { + handleRadioEnd(); + mToggleMuteRadio.setChecked(true); + updateStates(); }); - mToggleMuteRadio.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Toggle mute radio"); - } - mRadioTuner.setMute(!mRadioTuner.getMute()); - updateStates(); + mToggleMuteRadio.setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "Toggle mute radio"); } + mRadioTuner.setMute(!mRadioTuner.getMute()); + updateStates(); }); - mGetRadioFocus.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Get radio focus"); - } - try { - mCarAudioManager.requestAudioFocus(mRadioFocusListener, mRadioAudioAttrib, - AudioManager.AUDIOFOCUS_GAIN, 0); - } catch (CarNotConnectedException e) { - //ignore for now - } - mHasRadioFocus = true; - updateStates(); + mRadioNext.setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "Next radio station"); } - }); - mReleaseRadioFocus.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Release radio focus"); - } - mCarAudioManager.abandonAudioFocus(mRadioFocusListener, mRadioAudioAttrib); - mHasRadioFocus = false; - updateStates(); + if (mRadioTuner != null) { + mRadioTuner.scan(RadioTuner.DIRECTION_UP, true); } + updateStates(); }); - mGetFocus.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Get secondary focus"); - } - mAudioManager.requestAudioFocus(mSecondaryFocusListener, - AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); - mHasSecondaryFocus = true; - updateStates(); + mRadioPrev.setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "Previous radio station"); } - }); - mReleaseFocus.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Release secondary focus"); - } - mAudioManager.abandonAudioFocus(mSecondaryFocusListener); - mHasSecondaryFocus = false; - updateStates(); + if (mRadioTuner != null) { + mRadioTuner.scan(RadioTuner.DIRECTION_DOWN, true); } + updateStates(); }); - mRadioNext.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Next radio station"); - } - if (mRadioTuner != null) { - mRadioTuner.scan(RadioTuner.DIRECTION_UP, true); - } - updateStates(); + mRadioScanCancel.setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "Cancel radio scan"); } - }); - mRadioPrev.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Previous radio station"); - } - if (mRadioTuner != null) { - mRadioTuner.scan(RadioTuner.DIRECTION_DOWN, true); - } - updateStates(); + if (mRadioTuner != null) { + mRadioTuner.cancel(); } + updateStates(); }); - mRadioScanCancel.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Cancel radio scan"); - } - if (mRadioTuner != null) { - mRadioTuner.cancel(); - } - updateStates(); + mRadioTuneToStation.setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "Tuning to station"); } - }); - mRadioTuneToStation.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Tuning to station"); - } - String station = mStationFrequency.getText().toString().trim(); - if (mRadioTuner != null && !(station.equals(""))) { - mRadioTuner.tune(Integer.parseInt(station), 0); - } - resetMessages(); - updateMessages(); - updateStates(); + String station = mStationFrequency.getText().toString().trim(); + if (mRadioTuner != null && !(station.equals(""))) { + mRadioTuner.tune(Integer.parseInt(station), 0); } + resetMessages(); + updateMessages(); + updateStates(); }); - mRadioStepUp.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Step up"); - } - if (mRadioTuner != null) { - mRadioTuner.step(RadioTuner.DIRECTION_UP, false); - } - resetMessages(); - updateMessages(); - updateStates(); + mRadioStepUp.setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "Step up"); } + if (mRadioTuner != null) { + mRadioTuner.step(RadioTuner.DIRECTION_UP, false); + } + resetMessages(); + updateMessages(); + updateStates(); }); - mRadioStepDown.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "Step down"); - } - if (mRadioTuner != null) { - mRadioTuner.step(RadioTuner.DIRECTION_DOWN, false); - } - resetMessages(); - updateMessages(); - updateStates(); + mRadioStepDown.setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "Step down"); + } + if (mRadioTuner != null) { + mRadioTuner.step(RadioTuner.DIRECTION_DOWN, false); } + resetMessages(); + updateMessages(); + updateStates(); }); - mRadioGetProgramInfo.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (DBG) { - Log.i(TAG, "getProgramInformation"); - } - if (mRadioTuner != null) { - RadioManager.ProgramInfo[] programInfos = new RadioManager.ProgramInfo[1]; - mRadioTuner.getProgramInformation(programInfos); - addLog(Log.INFO, "mRadioTuner.getProgramInformation() =>" + programInfos[0]); - } + mRadioGetProgramInfo.setOnClickListener(v -> { + if (DBG) { + Log.i(TAG, "getProgramInformation"); + } + if (mRadioTuner != null) { + RadioManager.ProgramInfo[] programInfos = new RadioManager.ProgramInfo[1]; + mRadioTuner.getProgramInformation(programInfos); + addLog(Log.INFO, "mRadioTuner.getProgramInformation() =>" + programInfos[0]); } }); - mRadioBand.setOnCheckedChangeListener(new OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (DBG) { - Log.i(TAG, "Changing radio band"); - } - if (mRadioTuner != null) { - mRadioTuner.setConfiguration(mRadioBand.isChecked() ? mFmConfig : mAmConfig); - } - resetMessages(); - updateMessages(); - updateStates(); + mRadioBand.setOnCheckedChangeListener((buttonView, isChecked) -> { + if (DBG) { + Log.i(TAG, "Changing radio band"); } + if (mRadioTuner != null) { + mRadioTuner.setConfiguration(mRadioBand.isChecked() ? mFmConfig : mAmConfig); + } + resetMessages(); + updateMessages(); + updateStates(); }); } @@ -462,10 +344,6 @@ public class RadioTestFragment extends Fragment { mOpenRadio.setEnabled(mRadioTuner == null); mCloseRadio.setEnabled(mRadioTuner != null); mToggleMuteRadio.setEnabled(mRadioTuner != null); - mGetRadioFocus.setEnabled(!mHasRadioFocus); - mReleaseRadioFocus.setEnabled(mHasRadioFocus); - mGetFocus.setEnabled(!mHasSecondaryFocus); - mReleaseFocus.setEnabled(mHasSecondaryFocus); mRadioNext.setEnabled(mRadioTuner != null); mRadioPrev.setEnabled(mRadioTuner != null); mRadioBand.setEnabled(mRadioTuner != null); |