package org.kvj.lima1.sync.controller; import org.kvj.bravo7.SuperActivity; import org.kvj.bravo7.SuperService; import org.kvj.lima1.sync.ConnectionsActivity; import org.kvj.lima1.sync.Lima1SyncApp; import org.kvj.lima1.sync.R; import org.kvj.lima1.sync.SyncServiceInfo; import org.kvj.lima1.sync.controller.SyncController.SyncControllerListener; import android.app.Service; import android.content.Intent; import android.os.Handler; public class BackgroundSyncService extends SuperService<SyncController, Lima1SyncApp> implements SyncControllerListener { Handler handler = new Handler(); public BackgroundSyncService() { super(SyncController.class, "Lima1"); } @Override public void onCreate() { super.onCreate(); controller.setListener(this); raiseNotification(R.drawable.ic_st_idle, "Started", ConnectionsActivity.class); sendBroadcast(new Intent(SyncServiceInfo.STARTED_INTENT)); } @Override public int onStartCommand(Intent intent, int flags, int startId) { return Service.START_STICKY; } @Override public void syncStarted() { raiseNotification(R.drawable.ic_st_sync, "Sync in progress", ConnectionsActivity.class); } @Override public void syncCompleted(final String error) { raiseNotification(R.drawable.ic_st_idle, error != null ? error : "Sync done", ConnectionsActivity.class); if (null != error) { handler.post(new Runnable() { @Override public void run() { SuperActivity.notifyUser(getApplicationContext(), error); } }); } } }