package com.distantfuture.videos.misc;
import android.content.Context;
import android.media.AudioManager;
public class SoundManager {
private boolean mMuteState = false;
private boolean mSavedMute;
private int mSavedVolume;
private boolean mWasModified;
private Context mContext;
public SoundManager(Context context) {
super();
mContext = context.getApplicationContext();
}
// call when owning fragment or activity onPause
public void restoreMuteIfNeeded() {
if (mMuteState) {
mute(false);
}
}
public boolean isMute() {
return mMuteState;
}
public void mute(boolean mute) {
if (mMuteState != mute) {
mMuteState = mute;
AudioManager manager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
// setStreamMute is broken on my 4.1 (16) galaxy nexus, so using volume instead
if (Utils.isJellyBean()) {
int saved = manager.getStreamVolume(AudioManager.STREAM_MUSIC);
manager.setStreamVolume(AudioManager.STREAM_MUSIC, (mMuteState ? 0 : mSavedVolume), 0);
mSavedVolume = saved;
} else
manager.setStreamMute(AudioManager.STREAM_MUSIC, mMuteState);
}
}
}