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 SetRingerModeResponder extends AbstractResponder { public SetRingerModeResponder(Context context) { super(context); } @Override public GeneratedMessageLite respond(Wire.Envelope envelope) throws InvalidProtocolBufferException { Wire.SetRingerModeRequest request = Wire.SetRingerModeRequest.parseFrom(envelope.getMessage()); AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE); switch (request.getMode()) { case SILENT: am.setRingerMode(AudioManager.RINGER_MODE_SILENT); break; case VIBRATE: am.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); break; case NORMAL: am.setRingerMode(AudioManager.RINGER_MODE_NORMAL); break; } return Wire.Envelope.newBuilder() .setId(envelope.getId()) .setType(Wire.MessageType.SET_RINGER_MODE) .setMessage(Wire.SetRingerModeResponse.newBuilder() .setSuccess(true) .build() .toByteString()) .build(); } @Override public void cleanup() { // No-op } }