package com.android.systemui.statusbar.toggles;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import com.android.systemui.R;
public class VibrateToggle extends Toggle {
public VibrateToggle(Context context) {
super(context);
updateState();
setLabel(R.string.toggle_vibrate);
if (mToggle.isChecked())
setIcon(R.drawable.toggle_vibrate);
else
setIcon(R.drawable.toggle_vibrate_off);
IntentFilter filter = new IntentFilter();
filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
context.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateState();
}
}, filter);
}
@Override
protected boolean updateInternalToggleState() {
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int mode = am.getRingerMode();
mToggle.setChecked(mode == AudioManager.RINGER_MODE_VIBRATE);
if (mToggle.isChecked()) {
setIcon(R.drawable.toggle_vibrate);
return true;
} else {
setIcon(R.drawable.toggle_vibrate_off);
return false;
}
}
@Override
protected void onCheckChanged(boolean isChecked) {
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
am.setRingerMode(isChecked ? AudioManager.RINGER_MODE_VIBRATE
: AudioManager.RINGER_MODE_NORMAL);
if (mToggle.isChecked())
setIcon(R.drawable.toggle_vibrate);
else
setIcon(R.drawable.toggle_vibrate_off);
}
@Override
protected void onStatusbarExpanded() {
super.onStatusbarExpanded();
updateState();
}
@Override
protected boolean onLongPress() {
Intent intent = new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
return true;
}
}