aboutsummaryrefslogtreecommitdiff
path: root/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink
diff options
context:
space:
mode:
authorHongwei Wang <hwwang@google.com>2017-12-15 14:41:14 -0800
committerHongwei Wang <hwwang@google.com>2017-12-18 11:01:05 -0800
commitf0f1fad619c90782aa3830269b7b16efbd320ea7 (patch)
tree196e1749bd909905c4c14d9e080f3318942c4e52 /tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink
parent52d8f7d353c67d89f6a248a15fb893da8fdccbf6 (diff)
downloadCar-f0f1fad619c90782aa3830269b7b16efbd320ea7.tar.gz
Cleanup CarAudioService - part 2
This is a continuous work of ag/3346133 - Removed audio focus APIs in CarAudioManager - Prefer lambda - Removed dead code Bug: 70725845 Test: lunch gcar_emu_x86-userdebug && m -j // Verify in kitchensink Change-Id: Ib92e922a4079e4242138fdd76b69ce87cf0d441b
Diffstat (limited to 'tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink')
-rw-r--r--tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java413
-rw-r--r--tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/radio/RadioTestFragment.java308
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);