package org.primftpd.services; import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.IBinder; import org.primftpd.PrefsBean; import org.primftpd.prefs.LoadPrefsUtil; import org.primftpd.util.ServersRunningBean; import org.primftpd.util.ServicesStartStopUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Wrapper class which can be called by an @{link Intent} and which handles starting and stopping of services. */ public class ServicesStartingService extends Service { protected Logger logger = LoggerFactory.getLogger(getClass()); @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { } @Override public int onStartCommand(Intent intent, int flags, int startId) { Context context = getBaseContext(); ServersRunningBean serversRunningBean = ServicesStartStopUtil.checkServicesRunning(context); if (!serversRunningBean.atLeastOneRunning()) { SharedPreferences prefs = LoadPrefsUtil.getPrefs(context); PrefsBean prefsBean = LoadPrefsUtil.loadPrefs(logger, prefs); ServicesStartStopUtil.startServers(context, prefsBean, null); } else { ServicesStartStopUtil.stopServers(context); } // this service is not intended to run in background // it is just used as relay for widget pendingIntent stopSelf(); return 0; } @Override public void onDestroy() { } }