Android Open Source - sms-smap-gateway Controller Error






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.controllers;
/* w w  w . j  a va 2 s . c o  m*/
import android.content.Context;
import android.util.Log;

import com.android.smap.api.models.SmapException;
import com.android.volley.ServerError;
import com.android.volley.VolleyError;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;

/**
 * Controller Errors can be passed to an Error View to be dealt with. You can
 * display the appropriate error to the user.
 * 
 * @author Matt Witherow
 * 
 */
public class ControllerError {

  private String  mTitle      = "";
  private String  mDescription  = "";
  private int    mErrorCode;

  public ControllerError(int errorCode) {
    mTitle = null;
    mDescription = null;
    mErrorCode = errorCode;
  }

  public ControllerError(int errorCode, String title, String description) {
    mTitle = title;
    mDescription = description;
    mErrorCode = errorCode;
  }

  public ControllerError(VolleyError error, Context context) {

    if (error instanceof ServerError) {
      try {
        parseAsSMAPException(error);
        return;
      }
      catch (JsonSyntaxException e) {
        Log.e(ControllerError.class.getCanonicalName(),
            "Malformed Smap Data Exception, default to Generic Error");
        mTitle = "error";// context.getResources().getString(R.string.error_generic);
        mErrorCode = error.networkResponse == null ? 0
            : error.networkResponse.statusCode;
      }

    } else {
      parseAsVolleyException(error, context);
    }

  }

  private void parseAsSMAPException(VolleyError error) {

    Gson gson = new GsonBuilder().create();

    SmapException me = gson.fromJson(
        new String(error.networkResponse.data), SmapException.class);

    mErrorCode = error.networkResponse.statusCode;
    mDescription = me.techMessage;

  }

  private void parseAsVolleyException(VolleyError error, Context context) {

    int msgId = 0;
    // TODO specify error messages

    /*
     * if (error instanceof NoConnectionError) { msgId =
     * R.string.error_no_connection; } else if (error instanceof
     * NetworkError) { msgId = R.string.error_network; } else if (error
     * instanceof TimeoutError) { msgId = R.string.error_timeout; } else if
     * (error instanceof ParseError) { msgId = R.string.error_parse; } else
     * if (error instanceof AuthFailureError) { msgId =
     * R.string.error_auth_failed; } else { msgId = R.string.error_generic;
     * }
     */

    mTitle = "error";// context.getResources().getString(msgId);
    mErrorCode = error.networkResponse == null ? 0
        : error.networkResponse.statusCode;
  }

  public String getTitle() {
    return mTitle;
  }

  public String getDescription() {
    return mDescription;
  }

  public int getErrorCode() {
    return mErrorCode;
  }

}




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