Android Open Source - Mamytas Wunderlist Service Helper






From Project

Back to project page Mamytas.

License

The source code is released under:

GNU General Public License

If you think the Android project Mamytas 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 mn.aug.restfulandroid.service;
/*from   www  .  j ava  2  s .  co  m*/
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.os.ResultReceiver;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import mn.aug.restfulandroid.rest.resource.Listw;
import mn.aug.restfulandroid.rest.resource.Task;
import mn.aug.restfulandroid.rest.resource.Timer;


/**
 * Twitter API
 *
 * @author jeremyhaberman
 */
public class WunderlistServiceHelper {

  public static String ACTION_REQUEST_RESULT = "REQUEST_RESULT";
  public static String EXTRA_REQUEST_ID = "EXTRA_REQUEST_ID";
  public static String EXTRA_RESULT_CODE = "EXTRA_RESULT_CODE";

  private static final String REQUEST_ID = "REQUEST_ID";
  private static final String getTasksHashkey = "GET_TASKS";
    private static final String postTaskHashkey = "POST_TASK";
    private static final String putTaskHashkey = "PUT_TASK";
    private static final String deleteTaskHashkey = "DELETE_TASK";
    private static final String getListsHashkey = "GET_LISTS";
    private static final String postListHashkey = "POST_LIST";
    private static final String putListHashkey = "PUT_LIST";
    private static final String deleteListHashkey = "DELETE_LIST";
    private static final String loginHashkey = "LOGIN";
    private static final String getTimersHashkey = "GET_TIMERS";
    private static final String postTimerHashkey = "POST_TIMER";
    private static final String putTimerHashkey = "PUT_TIMER";
    private static final String shareHashkey = "share";

  private static Object lock = new Object();

  private static WunderlistServiceHelper instance;

  private Map<String,Long> pendingRequests = new HashMap<String,Long>();
  private Context ctx;

  private WunderlistServiceHelper(Context ctx){
    this.ctx = ctx.getApplicationContext();
  }

  public static WunderlistServiceHelper getInstance(Context ctx){
    synchronized (lock) {
      if(instance == null){
        instance = new WunderlistServiceHelper(ctx);
      }
    }

    return instance;
  }

  public long getTasks(Long list_id) {

    long requestId = generateRequestID();
    pendingRequests.put(getTasksHashkey, requestId);

    ResultReceiver serviceCallback = new ResultReceiver(null){
      @Override
      protected void onReceiveResult(int resultCode, Bundle resultData) {
        handleResponse(resultCode, resultData, getTasksHashkey);
      }
    };
        String body_text="list_id="+list_id;
        byte[] body= body_text.getBytes();
    Intent intent = new Intent(this.ctx, WunderlistService.class);
    intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_GET);
    intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_TASKS);
    intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,list_id);
    intent.putExtra(REQUEST_ID, requestId);

    this.ctx.startService(intent);

    return requestId;
  }

    public long getLists() {

        long requestId = generateRequestID();
        pendingRequests.put(getListsHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, getListsHashkey);
            }
        };

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_GET);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_LISTS);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }

    public long getTimers(Long task_id) {

        long requestId = generateRequestID();
        pendingRequests.put(getTimersHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, getTimersHashkey);
            }
        };

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_GET);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_TIMERS);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,task_id);
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }

    public long postTimer(Timer timer) {

        long requestId = generateRequestID();
        pendingRequests.put(postTimerHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, postTimerHashkey);
            }
        };



        byte[] body= timer.toString().getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_POST);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_TIMERS);
        intent.putExtra(WunderlistService.BODY_EXTRA, body);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,timer.getTask_id());
        intent.putExtra(WunderlistService.INFO_EXTRA_2,timer.getOwnership_id());
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }

    public long postTask(Task task) {

        long requestId = generateRequestID();
        pendingRequests.put(postTaskHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, postTaskHashkey);
            }
        };



        byte[] body= task.toString().getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_POST);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_TASKS);
        intent.putExtra(WunderlistService.BODY_EXTRA, body);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,task.getId());
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }

    public long postList(Listw list) {

        long requestId = generateRequestID();
        pendingRequests.put(postListHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, postListHashkey);
            }
        };



        byte[] body= list.toString().getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_POST);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_LISTS);
        intent.putExtra(WunderlistService.BODY_EXTRA, body);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,list.getId());
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }

    public long putTask(Task task) {

        long requestId = generateRequestID();
        pendingRequests.put(putTaskHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, putTaskHashkey);
            }
        };



        byte[] body= task.toString().getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_PUT);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_TASK);
        intent.putExtra(WunderlistService.BODY_EXTRA, body);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,task.getId());
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }


    public long putTimer(Timer timer) {

        long requestId = generateRequestID();
        pendingRequests.put(putTimerHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, putTimerHashkey);
            }
        };



        byte[] body= timer.toString().getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_PUT);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_TIMERS);
        intent.putExtra(WunderlistService.BODY_EXTRA, body);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,timer.getTask_id());
        intent.putExtra(WunderlistService.INFO_EXTRA_2,timer.getOwnership_id());
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }

    public long putList(Listw list) {

        long requestId = generateRequestID();
        pendingRequests.put(putListHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, putListHashkey);
            }
        };



        byte[] body=list.toString().getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_PUT);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_LIST);
        intent.putExtra(WunderlistService.BODY_EXTRA, body);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,list.getId());
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }


    public long deleteTask(Task task) {

        long requestId = generateRequestID();
        pendingRequests.put(deleteTaskHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, deleteTaskHashkey);
            }
        };



        byte[] body= task.toString().getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_DELETE);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_TASK);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,task.getId());
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }


    public long deleteList(Listw list) {

        long requestId = generateRequestID();
        pendingRequests.put(deleteListHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, deleteListHashkey);
            }
        };



        byte[] body= list.toString().getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_DELETE);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_LIST);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,list.getId());
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }


    public long login(String email,String password) {

        long requestId = generateRequestID();
        pendingRequests.put(loginHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData, loginHashkey);
            }
        };

        String body_char= "email="+email+"&password="+password;
        byte[] body= body_char.getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_POST);
        intent.putExtra(WunderlistService.BODY_EXTRA, body);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_LOGIN);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }

    public long shareList(long id, String recipient) {

        long requestId = generateRequestID();
        pendingRequests.put(shareHashkey, requestId);

        ResultReceiver serviceCallback = new ResultReceiver(null){
            @Override
            protected void onReceiveResult(int resultCode, Bundle resultData) {
                handleResponse(resultCode, resultData,shareHashkey);
            }
        };



        byte[] body= ("recipient="+recipient).getBytes();

        Intent intent = new Intent(this.ctx, WunderlistService.class);
        intent.putExtra(WunderlistService.METHOD_EXTRA, WunderlistService.METHOD_POST);
        intent.putExtra(WunderlistService.RESOURCE_TYPE_EXTRA, WunderlistService.RESOURCE_TYPE_SHARE);
        intent.putExtra(WunderlistService.BODY_EXTRA, body);
        intent.putExtra(WunderlistService.SERVICE_CALLBACK, serviceCallback);
        intent.putExtra(WunderlistService.INFO_EXTRA,id);
        intent.putExtra(REQUEST_ID, requestId);

        this.ctx.startService(intent);

        return requestId;
    }

  private long generateRequestID() {
    long requestId = UUID.randomUUID().getLeastSignificantBits();
    return requestId;
  }

  public boolean isRequestPending(long requestId){
    return this.pendingRequests.containsValue(requestId);
  }


  private void handleResponse(int resultCode, Bundle resultData, String hashKey){

    Intent origIntent = (Intent)resultData.getParcelable(WunderlistService.ORIGINAL_INTENT_EXTRA);

    if(origIntent != null){
      long requestId = origIntent.getLongExtra(REQUEST_ID, 0);
            Parcelable resource= origIntent.getParcelableExtra(WunderlistService.RESOURCE_EXTRA);

      pendingRequests.remove(hashKey);

      Intent resultBroadcast = new Intent(ACTION_REQUEST_RESULT);
      resultBroadcast.putExtra(EXTRA_REQUEST_ID, requestId);
      resultBroadcast.putExtra(EXTRA_RESULT_CODE, resultCode);
            resultBroadcast.putExtra(WunderlistService.RESOURCE_EXTRA, resource);

      ctx.sendBroadcast(resultBroadcast);
    }
  }



}




Java Source Code List

mn.aug.restfulandroid.activity.AboutActivity.java
mn.aug.restfulandroid.activity.LoginActivity.java
mn.aug.restfulandroid.activity.ProjectEditor.java
mn.aug.restfulandroid.activity.ProjectsActivity.java
mn.aug.restfulandroid.activity.ProjectsArrayAdapter.java
mn.aug.restfulandroid.activity.TaskActivity.java
mn.aug.restfulandroid.activity.TaskEditor.java
mn.aug.restfulandroid.activity.TasksActivity.java
mn.aug.restfulandroid.activity.TasksArrayAdapter.java
mn.aug.restfulandroid.activity.TimerServiceHelper.java
mn.aug.restfulandroid.activity.TimerService.java
mn.aug.restfulandroid.activity.TimersArrayAdapter.java
mn.aug.restfulandroid.activity.base.RESTfulActivity.java
mn.aug.restfulandroid.activity.base.RESTfulListActivity.java
mn.aug.restfulandroid.activity.base.UndoBarController.java
mn.aug.restfulandroid.provider.CommentsDBAccess.java
mn.aug.restfulandroid.provider.ListsDBAccess.java
mn.aug.restfulandroid.provider.OwnershipDBAccess.java
mn.aug.restfulandroid.provider.ProviderDbHelper.java
mn.aug.restfulandroid.provider.RemindersDBAccess.java
mn.aug.restfulandroid.provider.TasksDBAccess.java
mn.aug.restfulandroid.provider.UsersDBAccess.java
mn.aug.restfulandroid.rest.AbstractRestMethod.java
mn.aug.restfulandroid.rest.DeleteListRestMethod.java
mn.aug.restfulandroid.rest.DeleteTaskRestMethod.java
mn.aug.restfulandroid.rest.GetListsRestMethod.java
mn.aug.restfulandroid.rest.GetTasksRestMethod.java
mn.aug.restfulandroid.rest.GetTimersRestMethod.java
mn.aug.restfulandroid.rest.LoginRestMethod.java
mn.aug.restfulandroid.rest.PostListRestMethod.java
mn.aug.restfulandroid.rest.PostTaskRestMethod.java
mn.aug.restfulandroid.rest.PostTimerRestMethod.java
mn.aug.restfulandroid.rest.PutListRestMethod.java
mn.aug.restfulandroid.rest.PutTaskRestMethod.java
mn.aug.restfulandroid.rest.PutTimerRestMethod.java
mn.aug.restfulandroid.rest.Request.java
mn.aug.restfulandroid.rest.Response.java
mn.aug.restfulandroid.rest.RestClient.java
mn.aug.restfulandroid.rest.RestMethodFactory.java
mn.aug.restfulandroid.rest.RestMethodResult.java
mn.aug.restfulandroid.rest.RestMethod.java
mn.aug.restfulandroid.rest.ShareListRestMethod.java
mn.aug.restfulandroid.rest.resource.Comment.java
mn.aug.restfulandroid.rest.resource.Lists.java
mn.aug.restfulandroid.rest.resource.Listw.java
mn.aug.restfulandroid.rest.resource.Login.java
mn.aug.restfulandroid.rest.resource.Reminder.java
mn.aug.restfulandroid.rest.resource.Resource.java
mn.aug.restfulandroid.rest.resource.TaskList.java
mn.aug.restfulandroid.rest.resource.Task.java
mn.aug.restfulandroid.rest.resource.Tasks.java
mn.aug.restfulandroid.rest.resource.Timer.java
mn.aug.restfulandroid.rest.resource.Timers.java
mn.aug.restfulandroid.security.AuthorizationManager.java
mn.aug.restfulandroid.security.RequestSigner.java
mn.aug.restfulandroid.service.ListProcessor.java
mn.aug.restfulandroid.service.ListsProcessor.java
mn.aug.restfulandroid.service.LoginProcessor.java
mn.aug.restfulandroid.service.ProcessorCallback.java
mn.aug.restfulandroid.service.ShareProcessor.java
mn.aug.restfulandroid.service.TaskProcessor.java
mn.aug.restfulandroid.service.TasksProcessor.java
mn.aug.restfulandroid.service.TimersProcessor.java
mn.aug.restfulandroid.service.WunderlistServiceHelper.java
mn.aug.restfulandroid.service.WunderlistService.java
mn.aug.restfulandroid.util.DateHelper.java
mn.aug.restfulandroid.util.DatePickerFragment.java
mn.aug.restfulandroid.util.Logger.java
mn.aug.restfulandroid.util.TimePickerFragment.java