Android Open Source - sms-smap-gateway Monitor Service






From Project

Back to project page sms-smap-gateway.

License

The source code is released under:

GNU General Public License

If you think the Android project sms-smap-gateway listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.android.smap.sms;
/*from www .  ja  v a 2s. co  m*/
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.util.Log;

import com.android.smap.commonsware.wakefull.WakefulIntentService;
import com.android.smap.utils.MWAPNUtils;
import com.android.smap.utils.MWConnectionUtils;

/**
 * Keep things moving and running smoothly.
 * 
 * @author Matt Witherow
 * 
 */
public class MonitorService extends WakefulIntentService {
  public static final String  TAG  = MonitorService.class.getCanonicalName();

  public MonitorService() {
    super(MonitorService.class.getName());

  }

  @Override
  protected void doWakefulWork(Intent intent) {

    Log.d(TAG, "==Check service running");
    SharedPreferences prefs = PreferenceManager
        .getDefaultSharedPreferences(getApplicationContext());

    boolean toggleAirplane = prefs.getBoolean("toggle_airplane", false);
    // boolean toggleConnection =
    // Integer.parseInt(prefs.getString("pref_net",
    // "0")) < 2;
    // hm.

    // make sure our SMS modem is hooked up
    if (!ServiceRebooter.checkService(this.getApplicationContext())) {
      Log.d(TAG, "RelayService not started yet, waiting.");
      schedule(this.getApplicationContext());
      return;
    }

    // grab the relayer service, seeing if it started
    GatewayService relayer = GatewayService.get();

    if (relayer == null) {
      Log.d(TAG, "No RelayService started yet, awaiting.");
      return;
    }

    if (GatewayService.doReset && toggleAirplane) {
      Log.d(TAG, " RESTING PROCESS");
      try {
        Log.d(TAG, " REST - tickling airplane mode");
        MWConnectionUtils.tickleAirplaneMode(this);
        Log.d(TAG, " REST - done tickling airplane mode");
        MWAPNUtils.tickleDefaultAPN();
        Log.d(TAG, " REST - done tickling default APN mode");

        // disable the reset message
        GatewayService.doReset = false;
      }
      catch (Throwable t) {
        Log.d(TAG, "Error thrown checking network connectivity", t);
      }
    }

    try {
      // do all the work of sending messages and checking for new ones
      doCheckWork(relayer);

    }
    catch (Throwable t) {
      Log.d(TAG, "Error running check service.", t);
    }

    // reset our connect if need be
    MWConnectionUtils.restoreDefaultNetwork();

    // reschedule ourselves
    schedule(this.getApplicationContext());
  }

  protected void doCheckWork(GatewayService relayer) {

    // set our network to our default
    MWConnectionUtils.restoreDefaultNetwork();

    // if we have any local msgs with error status, resend them out.
    // TODO

    // if we have local pending messages to be sent
    // TODO
    /*
     * try { Log.d(TAG, "  SENDING PENDING MESSAGES");
     * relayer.sendPendingMessagesToServer(); } catch (IOException e) {
     * 
     * MWConnectionUtils.toggleConnection();
     * relayer.sendPendingMessagesToServer(); //relay.resetConnection }
     */

    // if we have succesfully sent stuff. mark the pendings as sent
    // TODO

    // Poll for new stuff from backend.
    // check outbox, use sendMessage.
    // TODO

    /*
     * try { Log.d(TAG, "MARKING DELIVERIES"); relayer.markDeliveries(); }
     * catch (IOException e) {
     * 
     * relayer.toggleConnection(); relayer.markDeliveries();
     */

  }

  public static void schedule(Context context) {
    Log.d(TAG, "STARTING SCHEDULED TASK");
    WakefulIntentService.scheduleAlarms(
        new com.android.smap.sms.ScheduleMonitoringListener(),
        context);
  }
}




Java Source Code List

com.android.smap.AppConfig.java
com.android.smap.GatewayApp.java
com.android.smap.PhoneStateWrapper.java
com.android.smap.activities.BaseActivity.java
com.android.smap.activities.FragmentWrapperActivity.java
com.android.smap.activities.MainActivity.java
com.android.smap.adapters.MenuDrawerAdapter.java
com.android.smap.api.ApiConstants.java
com.android.smap.api.models.Gojo.java
com.android.smap.api.models.Node.java
com.android.smap.api.models.SmapException.java
com.android.smap.api.models.Status.java
com.android.smap.api.models.validator.ModelValidator.java
com.android.smap.api.models.validator.Required.java
com.android.smap.api.requests.ApiRequest.java
com.android.smap.api.requests.GojoRequest.java
com.android.smap.api.requests.StatusRequest.java
com.android.smap.commonsware.wakefull.AlarmReceiver.java
com.android.smap.commonsware.wakefull.WakefulIntentService.java
com.android.smap.controllers.ControllerErrorListener.java
com.android.smap.controllers.ControllerError.java
com.android.smap.controllers.ControllerFactory.java
com.android.smap.controllers.ControllerListener.java
com.android.smap.controllers.Controller.java
com.android.smap.controllers.EmailController.java
com.android.smap.controllers.GojoController.java
com.android.smap.controllers.UIPagingController.java
com.android.smap.controllers.UIRequestController.java
com.android.smap.fragments.BaseFragment.java
com.android.smap.fragments.HomeFragment.java
com.android.smap.models.MenuDrawerItem.java
com.android.smap.models.TextMessage.java
com.android.smap.samuel.Samuel.java
com.android.smap.sms.CellularModem.java
com.android.smap.sms.GatewayService.java
com.android.smap.sms.MonitorService.java
com.android.smap.sms.ScheduleMonitoringListener.java
com.android.smap.sms.ServiceRebooter.java
com.android.smap.ui.ArrayVelocAdapter.java
com.android.smap.ui.OnErrorTouchedListener.java
com.android.smap.ui.Operation.java
com.android.smap.ui.VelocAdapter.java
com.android.smap.ui.ViewBinder.java
com.android.smap.ui.ViewQuery.java
com.android.smap.ui.views.AnimatedNetworkImageView.java
com.android.smap.ui.views.ErrorView.java
com.android.smap.ui.views.FontableTextView.java
com.android.smap.utils.BitmapLruCache.java
com.android.smap.utils.MWAPNUtils.java
com.android.smap.utils.MWAnimUtil.java
com.android.smap.utils.MWAssetsUtils.java
com.android.smap.utils.MWConnectionUtils.java
com.android.smap.utils.MWEmailUtils.java
com.android.smap.utils.MWUiUtils.java
com.android.smap.utils.PreferenceWrapper.java
com.android.smap.utils.Refresher.java
com.android.smap.utils.UriBuilder.java