]> iEval git - fonbot.git/blobdiff - src/ro/ieval/fonbot/FonBotMainService.java
Make FonBot more reliable
[fonbot.git] / src / ro / ieval / fonbot / FonBotMainService.java
index e0bc6c0cf5452b7a76868843a167be08a9d372b6..4da70cca45455e011d1d4d126509d41150ee3c48 100644 (file)
@@ -80,6 +80,7 @@ public final class FonBotMainService extends Service {
                                        runnable.run();
                                } catch (final Exception ex){
                                        ex.printStackTrace();
+                                       break;
                                }
                        Log.d("LongPollRunnable", "Long polling stopped");
                }
@@ -93,8 +94,7 @@ public final class FonBotMainService extends Service {
         * Broadcast action: remove an ongoing event
         */
        public static final String ACTION_DELETE_ONGOING="ro.ieval.fonbot.FonBotMainService.ACTION_DELETE_ONGOING";
-       /** Broadcast action: trigger a server poll */
-       public static final String ACTION_TRIGGER_POLL="ro.ieval.fonbot.FonBotMainService.ACTION_TRIGGER_POLL";
+
        /**
         * Extra: ongoing event id
         *
@@ -160,13 +160,14 @@ public final class FonBotMainService extends Service {
 
        @Override
        public int onStartCommand(final @Nullable Intent intent, final int flags, final int startId) {
+               final boolean showOngoing=PreferenceManager.getDefaultSharedPreferences(this).getBoolean("ongoing", false);
                boolean updateNotification = false;
-               if(intent!=null && intent.getAction()==ACTION_PUT_ONGOING && intent.hasExtra(EXTRA_ONGOING_ID)){
+               if(intent!=null && intent.getAction()==ACTION_PUT_ONGOING && intent.hasExtra(EXTRA_ONGOING_ID) && showOngoing){
                        ongoing.add(OngoingEvent.values()[intent.getIntExtra(EXTRA_ONGOING_ID, 0)]);
                        LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(ACTION_ONGOING_UPDATE));
                        updateNotification=true;
                }
-               if(intent!=null && intent.getAction()==ACTION_DELETE_ONGOING && intent.hasExtra(EXTRA_ONGOING_ID)){
+               if(intent!=null && intent.getAction()==ACTION_DELETE_ONGOING && intent.hasExtra(EXTRA_ONGOING_ID) && showOngoing){
                        ongoing.remove(OngoingEvent.values()[intent.getIntExtra(EXTRA_ONGOING_ID, 0)]);
                        LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent(ACTION_ONGOING_UPDATE));
                        updateNotification=true;
@@ -177,6 +178,8 @@ public final class FonBotMainService extends Service {
                        longPollThread.start();
                }
 
+               ExecutableRunnable.retryTasks();
+
                final boolean runForeground=PreferenceManager.getDefaultSharedPreferences(this).getBoolean("foreground", false);
                if(!runForeground)
                        stopForeground(true);
@@ -194,7 +197,7 @@ public final class FonBotMainService extends Service {
                                        setContentIntent(PendingIntent.getActivity(this, 0, mainIntent, 0)).
                                        setOngoing(true);
 
-                       if(!ongoing.isEmpty()) {
+                       if(showOngoing && !ongoing.isEmpty()) {
                                final NotificationCompat.InboxStyle inboxBuilder=new NotificationCompat.InboxStyle(builder);
 
                                for(final OngoingEvent event : ongoing)
This page took 0.025208 seconds and 4 git commands to generate.