package tv.piratemedia.lightcontroler;
import android.app.Service;
import android.appwidget.AppWidgetManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.os.IBinder;
import android.preference.PreferenceManager;
import android.util.Log;
/**
* Created by eliotstocker on 24/06/16.
*/
public class ClockUpdateService extends Service {
private static final String ACTION_UPDATE =
"tv.piratemedia.lightcontroler.clock.action.UPDATE";
private SharedPreferences prefs;
private final static IntentFilter intentFilter;
static {
intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_TIME_TICK);
intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
intentFilter.addAction(Intent.ACTION_TIME_CHANGED);
intentFilter.addAction(ACTION_UPDATE);
}
/**
* BroadcastReceiver receiving the updates.
*/
private final BroadcastReceiver clockChangedReceiver = new
BroadcastReceiver() {
/**
* {@inheritDoc}
*/
public void onReceive(Context context, Intent intent) {
Log.d("wear", "Update Clock");
Intent updateIntent = new Intent();
updateIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
updateIntent.putExtra("action", "update");
context.sendBroadcast(updateIntent);
}
};
/**
* {@inheritDoc}
*/
public IBinder onBind(Intent intent) {
return null;
}
/**
* {@inheritDoc}
*/
public void onCreate() {
super.onCreate();
prefs = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext());
registerReceiver(clockChangedReceiver, intentFilter);
}
/**
* {@inheritDoc}
*/
public void onDestroy() {
super.onDestroy();
unregisterReceiver(clockChangedReceiver);
}
/**
* {@inheritDoc}
*/
public void onStart(Intent intent, int startId) {
if (intent != null && intent.getAction() != null) {
if (intent.getAction().equals(ACTION_UPDATE)) {
Intent updateIntent = new Intent();
updateIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
this.sendBroadcast(updateIntent);
}
}
}
}