From e4be64852dac9e2c55ce8dd5b7063b0c21b9700e Mon Sep 17 00:00:00 2001 From: Sailesh Nepal Date: Sun, 21 Feb 2016 13:43:45 -0800 Subject: Remove CallAudioStateCompat Now that we're no longer backwards compatible with Lollipop we don't need CallAudioStateCompat. See ag/870962 for more info. Bug: 26676586 Change-Id: I7c754d89a6c9e13bf5a004b7c5b15b88b9aff9ad --- .../com/android/incallui/AudioModeProvider.java | 12 +- .../com/android/incallui/CallButtonFragment.java | 40 +-- .../com/android/incallui/CallButtonPresenter.java | 12 +- .../src/com/android/incallui/ProximitySensor.java | 10 +- .../incallui/ringtone/InCallTonePlayer.java | 4 +- .../dialer/compat/CallAudioStateCompat.java | 331 --------------------- .../dialer/voicemail/VoicemailAudioManager.java | 56 ++-- 7 files changed, 66 insertions(+), 399 deletions(-) delete mode 100644 src/com/android/dialer/compat/CallAudioStateCompat.java diff --git a/InCallUI/src/com/android/incallui/AudioModeProvider.java b/InCallUI/src/com/android/incallui/AudioModeProvider.java index 961fb11ff..ea56dd624 100644 --- a/InCallUI/src/com/android/incallui/AudioModeProvider.java +++ b/InCallUI/src/com/android/incallui/AudioModeProvider.java @@ -16,9 +16,9 @@ package com.android.incallui; -import com.google.common.collect.Lists; +import android.telecom.CallAudioState; -import com.android.dialer.compat.CallAudioStateCompat; +import com.google.common.collect.Lists; import java.util.List; @@ -30,11 +30,11 @@ public class AudioModeProvider { static final int AUDIO_MODE_INVALID = 0; private static AudioModeProvider sAudioModeProvider = new AudioModeProvider(); - private int mAudioMode = CallAudioStateCompat.ROUTE_EARPIECE; + private int mAudioMode = CallAudioState.ROUTE_EARPIECE; private boolean mMuted = false; - private int mSupportedModes = CallAudioStateCompat.ROUTE_EARPIECE - | CallAudioStateCompat.ROUTE_BLUETOOTH | CallAudioStateCompat.ROUTE_WIRED_HEADSET - | CallAudioStateCompat.ROUTE_SPEAKER; + private int mSupportedModes = CallAudioState.ROUTE_EARPIECE + | CallAudioState.ROUTE_BLUETOOTH | CallAudioState.ROUTE_WIRED_HEADSET + | CallAudioState.ROUTE_SPEAKER; private final List mListeners = Lists.newArrayList(); public static AudioModeProvider getInstance() { diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java index d9e474de5..9859f4e7b 100644 --- a/InCallUI/src/com/android/incallui/CallButtonFragment.java +++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java @@ -39,6 +39,7 @@ import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.RippleDrawable; import android.graphics.drawable.StateListDrawable; import android.os.Bundle; +import android.telecom.CallAudioState; import android.util.SparseIntArray; import android.view.ContextThemeWrapper; import android.view.HapticFeedbackConstants; @@ -55,7 +56,6 @@ import android.widget.PopupMenu.OnMenuItemClickListener; import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette; import com.android.dialer.R; -import com.android.dialer.compat.CallAudioStateCompat; /** * Fragment for call control buttons @@ -523,17 +523,17 @@ public class CallButtonFragment Log.d(this, " id: " + item.getItemId()); Log.d(this, " title: '" + item.getTitle() + "'"); - int mode = CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE; + int mode = CallAudioState.ROUTE_WIRED_OR_EARPIECE; int resId = item.getItemId(); if (resId == R.id.audio_mode_speaker) { - mode = CallAudioStateCompat.ROUTE_SPEAKER; + mode = CallAudioState.ROUTE_SPEAKER; } else if (resId == R.id.audio_mode_earpiece || resId == R.id.audio_mode_wired_headset) { // InCallCallAudioState.ROUTE_EARPIECE means either the handset earpiece, // or the wired headset (if connected.) - mode = CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE; + mode = CallAudioState.ROUTE_WIRED_OR_EARPIECE; } else if (resId == R.id.audio_mode_bluetooth) { - mode = CallAudioStateCompat.ROUTE_BLUETOOTH; + mode = CallAudioState.ROUTE_BLUETOOTH; } else { Log.e(this, "onMenuItemClick: unexpected View ID " + item.getItemId() + " (MenuItem = '" + item + "')"); @@ -561,9 +561,9 @@ public class CallButtonFragment */ private void onAudioButtonClicked() { Log.d(this, "onAudioButtonClicked: " + - CallAudioStateCompat.audioRouteToString(getPresenter().getSupportedAudio())); + CallAudioState.audioRouteToString(getPresenter().getSupportedAudio())); - if (isSupported(CallAudioStateCompat.ROUTE_BLUETOOTH)) { + if (isSupported(CallAudioState.ROUTE_BLUETOOTH)) { showAudioModePopup(); } else { getPresenter().toggleSpeakerphone(); @@ -598,8 +598,8 @@ public class CallButtonFragment * are visible based on the supported audio formats. */ private void updateAudioButtons(int supportedModes) { - final boolean bluetoothSupported = isSupported(CallAudioStateCompat.ROUTE_BLUETOOTH); - final boolean speakerSupported = isSupported(CallAudioStateCompat.ROUTE_SPEAKER); + final boolean bluetoothSupported = isSupported(CallAudioState.ROUTE_BLUETOOTH); + final boolean speakerSupported = isSupported(CallAudioState.ROUTE_SPEAKER); boolean audioButtonEnabled = false; boolean audioButtonChecked = false; @@ -619,9 +619,9 @@ public class CallButtonFragment showMoreIndicator = true; // Update desired layers: - if (isAudio(CallAudioStateCompat.ROUTE_BLUETOOTH)) { + if (isAudio(CallAudioState.ROUTE_BLUETOOTH)) { showBluetoothIcon = true; - } else if (isAudio(CallAudioStateCompat.ROUTE_SPEAKER)) { + } else if (isAudio(CallAudioState.ROUTE_SPEAKER)) { showSpeakerphoneIcon = true; } else { showHandsetIcon = true; @@ -640,7 +640,7 @@ public class CallButtonFragment // The audio button *is* a toggle in this state, and indicated the // current state of the speakerphone. - audioButtonChecked = isAudio(CallAudioStateCompat.ROUTE_SPEAKER); + audioButtonChecked = isAudio(CallAudioState.ROUTE_SPEAKER); mAudioButton.setSelected(audioButtonChecked); // update desired layers: @@ -701,20 +701,20 @@ public class CallButtonFragment // If bluetooth is not supported, the audio buttion will toggle, so use the label "speaker". // Otherwise, use the label of the currently selected audio mode. - if (!isSupported(CallAudioStateCompat.ROUTE_BLUETOOTH)) { + if (!isSupported(CallAudioState.ROUTE_BLUETOOTH)) { stringId = R.string.audio_mode_speaker; } else { switch (mode) { - case CallAudioStateCompat.ROUTE_EARPIECE: + case CallAudioState.ROUTE_EARPIECE: stringId = R.string.audio_mode_earpiece; break; - case CallAudioStateCompat.ROUTE_BLUETOOTH: + case CallAudioState.ROUTE_BLUETOOTH: stringId = R.string.audio_mode_bluetooth; break; - case CallAudioStateCompat.ROUTE_WIRED_HEADSET: + case CallAudioState.ROUTE_WIRED_HEADSET: stringId = R.string.audio_mode_wired_headset; break; - case CallAudioStateCompat.ROUTE_SPEAKER: + case CallAudioState.ROUTE_SPEAKER: stringId = R.string.audio_mode_speaker; break; } @@ -744,7 +744,7 @@ public class CallButtonFragment // See comments below for the exact logic. final MenuItem speakerItem = menu.findItem(R.id.audio_mode_speaker); - speakerItem.setEnabled(isSupported(CallAudioStateCompat.ROUTE_SPEAKER)); + speakerItem.setEnabled(isSupported(CallAudioState.ROUTE_SPEAKER)); // TODO: Show speakerItem as initially "selected" if // speaker is on. @@ -753,7 +753,7 @@ public class CallButtonFragment final MenuItem earpieceItem = menu.findItem(R.id.audio_mode_earpiece); final MenuItem wiredHeadsetItem = menu.findItem(R.id.audio_mode_wired_headset); - final boolean usingHeadset = isSupported(CallAudioStateCompat.ROUTE_WIRED_HEADSET); + final boolean usingHeadset = isSupported(CallAudioState.ROUTE_WIRED_HEADSET); earpieceItem.setVisible(!usingHeadset); earpieceItem.setEnabled(!usingHeadset); wiredHeadsetItem.setVisible(usingHeadset); @@ -763,7 +763,7 @@ public class CallButtonFragment // bluetoothIndicatorOn are both false. final MenuItem bluetoothItem = menu.findItem(R.id.audio_mode_bluetooth); - bluetoothItem.setEnabled(isSupported(CallAudioStateCompat.ROUTE_BLUETOOTH)); + bluetoothItem.setEnabled(isSupported(CallAudioState.ROUTE_BLUETOOTH)); // TODO: Show bluetoothItem as initially "selected" if // bluetoothIndicatorOn is true. diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java index fd0dd7639..e8c2d4b13 100644 --- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java +++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java @@ -31,12 +31,12 @@ import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_UPGRADE_TO_ import android.content.Context; import android.os.Build; import android.os.Bundle; +import android.telecom.CallAudioState; import android.telecom.InCallService.VideoCall; import android.telecom.VideoProfile; import com.android.contacts.common.compat.CallSdkCompat; import com.android.contacts.common.compat.SdkVersionOverride; -import com.android.dialer.compat.CallAudioStateCompat; import com.android.dialer.compat.UserManagerCompat; import com.android.incallui.AudioModeProvider.AudioModeListener; import com.android.incallui.InCallCameraManager.Listener; @@ -189,7 +189,7 @@ public class CallButtonPresenter extends Presenter CREATOR = - new Parcelable.Creator() { - - @Override - public CallAudioStateBase createFromParcel(Parcel source) { - boolean isMuted = source.readByte() == 0 ? false : true; - int route = source.readInt(); - int supportedRouteMask = source.readInt(); - return new CallAudioStateBase(isMuted, route, supportedRouteMask); - } - - @Override - public CallAudioStateBase[] newArray(int size) { - return new CallAudioStateBase[size]; - } - }; - - /** - * {@inheritDoc} - */ - @Override - public int describeContents() { - return 0; - } - - /** - * Writes AudioState object into a serializeable Parcel. - */ - @Override - public void writeToParcel(Parcel destination, int flags) { - destination.writeByte((byte) (isMuted ? 1 : 0)); - destination.writeInt(route); - destination.writeInt(supportedRouteMask); - } - - private static void listAppend(StringBuffer buffer, String str) { - if (buffer.length() > 0) { - buffer.append(", "); - } - buffer.append(str); - } - } - - /** - * CallAudioStateImpl to use if the Sdk version is at least - * {@link android.os.Build.VERSION_CODES.M} - */ - private static class CallAudioStateMarshmallow implements CallAudioStateImpl { - - private final CallAudioState mCallAudioStateDelegate; - - public CallAudioStateMarshmallow(boolean muted, int route, int supportedRouteMask) { - mCallAudioStateDelegate = new CallAudioState(muted, route, supportedRouteMask); - } - - @Override - public boolean isMuted() { - return mCallAudioStateDelegate.isMuted(); - } - - @Override - public int getRoute() { - return mCallAudioStateDelegate.getRoute(); - } - - @Override - public int getSupportedRouteMask() { - return mCallAudioStateDelegate.getSupportedRouteMask(); - } - - public static String audioRouteToString(int route) { - return CallAudioState.audioRouteToString(route); - } - } -} diff --git a/src/com/android/dialer/voicemail/VoicemailAudioManager.java b/src/com/android/dialer/voicemail/VoicemailAudioManager.java index 712b20bf1..fe6cf5f45 100644 --- a/src/com/android/dialer/voicemail/VoicemailAudioManager.java +++ b/src/com/android/dialer/voicemail/VoicemailAudioManager.java @@ -19,10 +19,9 @@ package com.android.dialer.voicemail; import android.content.Context; import android.media.AudioManager; import android.media.AudioManager.OnAudioFocusChangeListener; +import android.telecom.CallAudioState; import android.util.Log; -import com.android.dialer.compat.CallAudioStateCompat; - import java.util.concurrent.RejectedExecutionException; /** @@ -38,7 +37,7 @@ final class VoicemailAudioManager implements OnAudioFocusChangeListener, private VoicemailPlaybackPresenter mVoicemailPlaybackPresenter; private WiredHeadsetManager mWiredHeadsetManager; private boolean mWasSpeakerOn; - private CallAudioStateCompat mCallAudioState; + private CallAudioState mCallAudioState; public VoicemailAudioManager(Context context, VoicemailPlaybackPresenter voicemailPlaybackPresenter) { @@ -82,26 +81,25 @@ final class VoicemailAudioManager implements OnAudioFocusChangeListener, int newRoute = mCallAudioState.getRoute(); // start out with existing route if (newIsPluggedIn) { - newRoute = CallAudioStateCompat.ROUTE_WIRED_HEADSET; + newRoute = CallAudioState.ROUTE_WIRED_HEADSET; } else { if (mWasSpeakerOn) { - newRoute = CallAudioStateCompat.ROUTE_SPEAKER; + newRoute = CallAudioState.ROUTE_SPEAKER; } else { - newRoute = CallAudioStateCompat.ROUTE_EARPIECE; + newRoute = CallAudioState.ROUTE_EARPIECE; } } - mVoicemailPlaybackPresenter.setSpeakerphoneOn(newRoute == CallAudioStateCompat.ROUTE_SPEAKER); + mVoicemailPlaybackPresenter.setSpeakerphoneOn(newRoute == CallAudioState.ROUTE_SPEAKER); // We need to call this every time even if we do not change the route because the supported // routes changed either to include or not include WIRED_HEADSET. setSystemAudioState( - new CallAudioStateCompat(false /* muted */, newRoute, calculateSupportedRoutes())); + new CallAudioState(false /* muted */, newRoute, calculateSupportedRoutes())); } public void setSpeakerphoneOn(boolean on) { - setAudioRoute(on ? CallAudioStateCompat.ROUTE_SPEAKER - : CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE); + setAudioRoute(on ? CallAudioState.ROUTE_SPEAKER : CallAudioState.ROUTE_WIRED_OR_EARPIECE); } public boolean isWiredHeadsetPluggedIn() { @@ -120,10 +118,10 @@ final class VoicemailAudioManager implements OnAudioFocusChangeListener, /** * Change the audio route, for example from earpiece to speakerphone. * - * @param route The new audio route to use. See {@link CallAudioStateCompat}. + * @param route The new audio route to use. See {@link CallAudioState}. */ void setAudioRoute(int route) { - Log.v(TAG, "setAudioRoute, route: " + CallAudioStateCompat.audioRouteToString(route)); + Log.v(TAG, "setAudioRoute, route: " + CallAudioState.audioRouteToString(route)); // Change ROUTE_WIRED_OR_EARPIECE to a single entry. int newRoute = selectWiredOrEarpiece(route, mCallAudioState.getSupportedRouteMask()); @@ -137,25 +135,25 @@ final class VoicemailAudioManager implements OnAudioFocusChangeListener, if (mCallAudioState.getRoute() != newRoute) { // Remember the new speaker state so it can be restored when the user plugs and unplugs // a headset. - mWasSpeakerOn = newRoute == CallAudioStateCompat.ROUTE_SPEAKER; - setSystemAudioState(new CallAudioStateCompat(false /* muted */, newRoute, + mWasSpeakerOn = newRoute == CallAudioState.ROUTE_SPEAKER; + setSystemAudioState(new CallAudioState(false /* muted */, newRoute, mCallAudioState.getSupportedRouteMask())); } } - private CallAudioStateCompat getInitialAudioState() { + private CallAudioState getInitialAudioState() { int supportedRouteMask = calculateSupportedRoutes(); - int route = selectWiredOrEarpiece(CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE, + int route = selectWiredOrEarpiece(CallAudioState.ROUTE_WIRED_OR_EARPIECE, supportedRouteMask); - return new CallAudioStateCompat(false /* muted */, route, supportedRouteMask); + return new CallAudioState(false /* muted */, route, supportedRouteMask); } private int calculateSupportedRoutes() { - int routeMask = CallAudioStateCompat.ROUTE_SPEAKER; + int routeMask = CallAudioState.ROUTE_SPEAKER; if (mWiredHeadsetManager.isPluggedIn()) { - routeMask |= CallAudioStateCompat.ROUTE_WIRED_HEADSET; + routeMask |= CallAudioState.ROUTE_WIRED_HEADSET; } else { - routeMask |= CallAudioStateCompat.ROUTE_EARPIECE; + routeMask |= CallAudioState.ROUTE_EARPIECE; } return routeMask; } @@ -164,29 +162,29 @@ final class VoicemailAudioManager implements OnAudioFocusChangeListener, // Since they are mutually exclusive and one is ALWAYS valid, we allow a special input of // ROUTE_WIRED_OR_EARPIECE so that callers don't have to make a call to check which is // supported before calling setAudioRoute. - if (route == CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE) { - route = CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE & supportedRouteMask; + if (route == CallAudioState.ROUTE_WIRED_OR_EARPIECE) { + route = CallAudioState.ROUTE_WIRED_OR_EARPIECE & supportedRouteMask; if (route == 0) { Log.wtf(TAG, "One of wired headset or earpiece should always be valid."); // assume earpiece in this case. - route = CallAudioStateCompat.ROUTE_EARPIECE; + route = CallAudioState.ROUTE_EARPIECE; } } return route; } - private void setSystemAudioState(CallAudioStateCompat callAudioState) { - CallAudioStateCompat oldAudioState = mCallAudioState; + private void setSystemAudioState(CallAudioState callAudioState) { + CallAudioState oldAudioState = mCallAudioState; mCallAudioState = callAudioState; Log.i(TAG, "setSystemAudioState: changing from " + oldAudioState + " to " + mCallAudioState); // Audio route. - if (mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_SPEAKER) { + if (mCallAudioState.getRoute() == CallAudioState.ROUTE_SPEAKER) { turnOnSpeaker(true); - } else if (mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_EARPIECE || - mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_WIRED_HEADSET) { + } else if (mCallAudioState.getRoute() == CallAudioState.ROUTE_EARPIECE || + mCallAudioState.getRoute() == CallAudioState.ROUTE_WIRED_HEADSET) { // Just handle turning off the speaker, the system will handle switching between wired // headset and earpiece. turnOnSpeaker(false); @@ -199,4 +197,4 @@ final class VoicemailAudioManager implements OnAudioFocusChangeListener, mAudioManager.setSpeakerphoneOn(on); } } -} \ No newline at end of file +} -- cgit v1.2.3