package com.ptrprograms.silenceringerwidget;
import android.app.PendingIntent;
import android.app.Service;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.IBinder;
import android.widget.RemoteViews;
/**
* Created by paulruiz on 11/16/14.
*/
public class SilenceRingerService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
silencePhone();
RemoteViews views = buildViews();
updateWidget( views );
stopSelf();
return START_NOT_STICKY;
}
private RemoteViews buildViews() {
RemoteViews views = new RemoteViews( getPackageName(), R.layout.widget_silence_ringer );
PendingIntent silenceIntent = PendingIntent.getService( this, 0, new Intent( this, SilenceRingerService.class ), 0 );
views.setOnClickPendingIntent( R.id.button_silence, silenceIntent );
return views;
}
private void updateWidget( RemoteViews views ) {
AppWidgetManager manager = AppWidgetManager.getInstance( this );
ComponentName widget = new ComponentName( this, SilenceRingerWidget.class );
manager.updateAppWidget( widget, views );
}
private void silencePhone() {
setPriorityAndSilence();
new Thread( new Runnable() {
@Override
public void run() {
try {
Thread.sleep( 1000 );
} catch( InterruptedException e ) {
}
setPriorityAndSilence();
}
} ).run();
}
private void setPriorityAndSilence() {
AudioManager audioManager;
audioManager = (AudioManager) getBaseContext().getSystemService( Context.AUDIO_SERVICE );
audioManager.setRingerMode( AudioManager.RINGER_MODE_SILENT );
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}