package androidx.media; import android.media.AudioAttributes; import android.media.AudioFocusRequest; import android.media.AudioManager; import android.os.Build; import android.os.Handler; import android.os.Looper; import android.os.Message; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; import androidx.core.util.ObjectsCompat; import androidx.media.AudioAttributesCompat; import c.d.b.a.a; import java.util.Objects; public class AudioFocusRequestCompat { public static final AudioAttributesCompat FOCUS_DEFAULT_ATTR = new AudioAttributesCompat.Builder().setUsage(1).build(); private final AudioAttributesCompat mAudioAttributesCompat; private final Handler mFocusChangeHandler; private final int mFocusGain; private final Object mFrameworkAudioFocusRequest; private final AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener; private final boolean mPauseOnDuck; public static final class Builder { private AudioAttributesCompat mAudioAttributesCompat = AudioFocusRequestCompat.FOCUS_DEFAULT_ATTR; private Handler mFocusChangeHandler; private int mFocusGain; private AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener; private boolean mPauseOnDuck; public Builder(int i) { setFocusGain(i); } public Builder(@NonNull AudioFocusRequestCompat audioFocusRequestCompat) { if (audioFocusRequestCompat != null) { this.mFocusGain = audioFocusRequestCompat.getFocusGain(); this.mOnAudioFocusChangeListener = audioFocusRequestCompat.getOnAudioFocusChangeListener(); this.mFocusChangeHandler = audioFocusRequestCompat.getFocusChangeHandler(); this.mAudioAttributesCompat = audioFocusRequestCompat.getAudioAttributesCompat(); this.mPauseOnDuck = audioFocusRequestCompat.willPauseWhenDucked(); return; } throw new IllegalArgumentException("AudioFocusRequestCompat to copy must not be null"); } private static boolean isValidFocusGain(int i) { return i == 1 || i == 2 || i == 3 || i == 4; } public AudioFocusRequestCompat build() { if (this.mOnAudioFocusChangeListener != null) { return new AudioFocusRequestCompat(this.mFocusGain, this.mOnAudioFocusChangeListener, this.mFocusChangeHandler, this.mAudioAttributesCompat, this.mPauseOnDuck); } throw new IllegalStateException("Can't build an AudioFocusRequestCompat instance without a listener"); } @NonNull public Builder setAudioAttributes(@NonNull AudioAttributesCompat audioAttributesCompat) { Objects.requireNonNull(audioAttributesCompat, "Illegal null AudioAttributes"); this.mAudioAttributesCompat = audioAttributesCompat; return this; } @NonNull public Builder setFocusGain(int i) { if (isValidFocusGain(i)) { this.mFocusGain = i; return this; } throw new IllegalArgumentException(a.k("Illegal audio focus gain type ", i)); } @NonNull public Builder setOnAudioFocusChangeListener(@NonNull AudioManager.OnAudioFocusChangeListener onAudioFocusChangeListener) { return setOnAudioFocusChangeListener(onAudioFocusChangeListener, new Handler(Looper.getMainLooper())); } @NonNull public Builder setOnAudioFocusChangeListener(@NonNull AudioManager.OnAudioFocusChangeListener onAudioFocusChangeListener, @NonNull Handler handler) { if (onAudioFocusChangeListener == null) { throw new IllegalArgumentException("OnAudioFocusChangeListener must not be null"); } else if (handler != null) { this.mOnAudioFocusChangeListener = onAudioFocusChangeListener; this.mFocusChangeHandler = handler; return this; } else { throw new IllegalArgumentException("Handler must not be null"); } } @NonNull public Builder setWillPauseWhenDucked(boolean z2) { this.mPauseOnDuck = z2; return this; } } public static class OnAudioFocusChangeListenerHandlerCompat implements Handler.Callback, AudioManager.OnAudioFocusChangeListener { private static final int FOCUS_CHANGE = 2782386; private final Handler mHandler; private final AudioManager.OnAudioFocusChangeListener mListener; public OnAudioFocusChangeListenerHandlerCompat(@NonNull AudioManager.OnAudioFocusChangeListener onAudioFocusChangeListener, @NonNull Handler handler) { this.mListener = onAudioFocusChangeListener; this.mHandler = new Handler(handler.getLooper(), this); } @Override // android.os.Handler.Callback public boolean handleMessage(Message message) { if (message.what != 2782386) { return false; } this.mListener.onAudioFocusChange(message.arg1); return true; } @Override // android.media.AudioManager.OnAudioFocusChangeListener public void onAudioFocusChange(int i) { Handler handler = this.mHandler; handler.sendMessage(Message.obtain(handler, 2782386, i, 0)); } } public AudioFocusRequestCompat(int i, AudioManager.OnAudioFocusChangeListener onAudioFocusChangeListener, Handler handler, AudioAttributesCompat audioAttributesCompat, boolean z2) { this.mFocusGain = i; this.mFocusChangeHandler = handler; this.mAudioAttributesCompat = audioAttributesCompat; this.mPauseOnDuck = z2; int i2 = Build.VERSION.SDK_INT; if (i2 >= 26 || handler.getLooper() == Looper.getMainLooper()) { this.mOnAudioFocusChangeListener = onAudioFocusChangeListener; } else { this.mOnAudioFocusChangeListener = new OnAudioFocusChangeListenerHandlerCompat(onAudioFocusChangeListener, handler); } if (i2 >= 26) { this.mFrameworkAudioFocusRequest = new AudioFocusRequest.Builder(i).setAudioAttributes(getAudioAttributes()).setWillPauseWhenDucked(z2).setOnAudioFocusChangeListener(this.mOnAudioFocusChangeListener, handler).build(); } else { this.mFrameworkAudioFocusRequest = null; } } public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof AudioFocusRequestCompat)) { return false; } AudioFocusRequestCompat audioFocusRequestCompat = (AudioFocusRequestCompat) obj; return this.mFocusGain == audioFocusRequestCompat.mFocusGain && this.mPauseOnDuck == audioFocusRequestCompat.mPauseOnDuck && ObjectsCompat.equals(this.mOnAudioFocusChangeListener, audioFocusRequestCompat.mOnAudioFocusChangeListener) && ObjectsCompat.equals(this.mFocusChangeHandler, audioFocusRequestCompat.mFocusChangeHandler) && ObjectsCompat.equals(this.mAudioAttributesCompat, audioFocusRequestCompat.mAudioAttributesCompat); } @RequiresApi(21) public AudioAttributes getAudioAttributes() { AudioAttributesCompat audioAttributesCompat = this.mAudioAttributesCompat; if (audioAttributesCompat != null) { return (AudioAttributes) audioAttributesCompat.unwrap(); } return null; } @NonNull public AudioAttributesCompat getAudioAttributesCompat() { return this.mAudioAttributesCompat; } @RequiresApi(26) public AudioFocusRequest getAudioFocusRequest() { return (AudioFocusRequest) this.mFrameworkAudioFocusRequest; } @NonNull public Handler getFocusChangeHandler() { return this.mFocusChangeHandler; } public int getFocusGain() { return this.mFocusGain; } @NonNull public AudioManager.OnAudioFocusChangeListener getOnAudioFocusChangeListener() { return this.mOnAudioFocusChangeListener; } public int hashCode() { return ObjectsCompat.hash(Integer.valueOf(this.mFocusGain), this.mOnAudioFocusChangeListener, this.mFocusChangeHandler, this.mAudioAttributesCompat, Boolean.valueOf(this.mPauseOnDuck)); } public boolean willPauseWhenDucked() { return this.mPauseOnDuck; } }