/*
* Copyright (C) 2014 Alex Korovyansky.
*/
package com.alexkorovyansky.wearpomodoro.app.services;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import com.alexkorovyansky.wearpomodoro.helpers.PomodoroMaster;
import com.alexkorovyansky.wearpomodoro.helpers.ServiceProvider;
import hugo.weaving.DebugLog;
public class PomodoroNotificationService extends Service {
private PomodoroMaster pomodoroMaster;
private BroadcastReceiver broadcastReceiverScreenOff;
private BroadcastReceiver broadcastReceiverScreenOn;
public PomodoroNotificationService() {
}
@DebugLog
@Override
public void onCreate() {
super.onCreate();
this.pomodoroMaster = ServiceProvider.getInstance().getPomodoroMaster(this);
this.broadcastReceiverScreenOn = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
handleScreenOnOff(true);
}
};
this.broadcastReceiverScreenOff = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
handleScreenOnOff(false);
}
};
registerReceiver(broadcastReceiverScreenOn, new IntentFilter(Intent.ACTION_SCREEN_ON));
registerReceiver(broadcastReceiverScreenOff, new IntentFilter(Intent.ACTION_SCREEN_OFF));
}
@DebugLog
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@DebugLog
@Override
public IBinder onBind(Intent intent) {
return null;
}
@DebugLog
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(broadcastReceiverScreenOn);
unregisterReceiver(broadcastReceiverScreenOff);
}
@DebugLog
private void handleScreenOnOff(boolean isOn) {
if (!pomodoroMaster.isActive()) {
stopSelf();
return;
}
pomodoroMaster.syncNotification(isOn);
}
}