package jp.co.cyberagent.stf.query; import android.content.Context; import android.media.AudioManager; import com.google.protobuf.GeneratedMessageLite; import com.google.protobuf.InvalidProtocolBufferException; import jp.co.cyberagent.stf.proto.Wire; public class SetMasterMuteResponder extends AbstractResponder { public SetMasterMuteResponder(Context context) { super(context); } @Override public GeneratedMessageLite respond(Wire.Envelope envelope) throws InvalidProtocolBufferException { Wire.SetMasterMuteRequest request = Wire.SetMasterMuteRequest.parseFrom(envelope.getMessage()); mute(request.getEnabled()); return Wire.Envelope.newBuilder() .setId(envelope.getId()) .setType(Wire.MessageType.SET_MASTER_MUTE) .setMessage(Wire.SetMasterMuteResponse.newBuilder() .setSuccess(true) .build() .toByteString()) .build(); } @Override public void cleanup() { mute(false); } private void mute(boolean state) { AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); am.setStreamMute(AudioManager.STREAM_ALARM, state); am.setStreamMute(AudioManager.STREAM_DTMF, state); am.setStreamMute(AudioManager.STREAM_MUSIC, state); am.setStreamMute(AudioManager.STREAM_NOTIFICATION, state); am.setStreamMute(AudioManager.STREAM_RING, state); am.setStreamMute(AudioManager.STREAM_SYSTEM, state); am.setStreamMute(AudioManager.STREAM_VOICE_CALL, state); } }