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 GetRingerModeResponder extends AbstractResponder { public GetRingerModeResponder(Context context) { super(context); } @Override public GeneratedMessageLite respond(Wire.Envelope envelope) throws InvalidProtocolBufferException { AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); Wire.RingerMode ringerMode = null; switch (am.getRingerMode()) { case AudioManager.RINGER_MODE_SILENT: ringerMode = Wire.RingerMode.SILENT; break; case AudioManager.RINGER_MODE_VIBRATE: ringerMode = Wire.RingerMode.VIBRATE; break; case AudioManager.RINGER_MODE_NORMAL: ringerMode = Wire.RingerMode.NORMAL; break; } Wire.GetRingerModeResponse.Builder message = Wire.GetRingerModeResponse.newBuilder(); if(ringerMode != null) { message.setSuccess(true).setMode(ringerMode); } else { message.setSuccess(false); } return Wire.Envelope.newBuilder() .setId(envelope.getId()) .setType(Wire.MessageType.GET_RINGER_MODE) .setMessage(message.build().toByteString()) .build(); } @Override public void cleanup() { // No-op } }