Android Open Source - final_year_frontend Remove Match Subscription From Server Task






From Project

Back to project page final_year_frontend.

License

The source code is released under:

MIT License

If you think the Android project final_year_frontend 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.james.erebus.networking;
// w ww.  j a v a  2  s  . c  om
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import org.apache.http.conn.HttpHostConnectException;

import android.app.AlertDialog;
import android.util.Log;
import android.widget.Button;

import com.james.erebus.JSONJava.JSONException;
import com.james.erebus.JSONJava.JSONObject;

/**
 * A {@link java.util.TimerTask} for removing a match subscription from the server
 * @author james
 *
 */

public class RemoveMatchSubscriptionFromServerTask extends TimerTask{

  private static JSONObject obj;
  private static String regId;
  private static boolean success;
  private static Button b;
  private static int failures;
  private static ArrayList<AlertDialog> dialogs = new ArrayList<AlertDialog>();

  @SuppressWarnings("deprecation")
  @Override
  public void run() {
    try {
      success = MiscNetworkingHelpers.deleteInformationFromServer(regId, "subscriptions/" + Integer.toString(obj.getInt("id")) + ".json");
      if(success)
      {
        for(AlertDialog retryDialog : dialogs)
        {
          retryDialog.dismiss();
        }
        MiscNetworkingHelpers.handler.post(new Runnable() {
          @Override
          public void run() {
            b.setEnabled(true);
            b.setClickable(true);
            b.setText("Unsubscribed");
          }  });
      }
      else
      {
        MiscNetworkingHelpers.handler.post(new Runnable() {
          @Override
          public void run() {
            b.setEnabled(true);
            b.setClickable(true);
          }  });
      }
    } 
    catch (JSONException e) {
      MiscNetworkingHelpers.handler.post(new Runnable() {

        @Override
        public void run() {
          b.setClickable(true);
          b.setEnabled(true);
        }  });
      e.printStackTrace();
    } catch(HttpHostConnectException e)
    {
      if(failures < 2)
      {
        Log.e("RemoveMatchSubscriptionFromServerTask", "Failed to delete match, re-trying...");
        RemoveMatchSubscriptionFromServerTask task = new RemoveMatchSubscriptionFromServerTask();
        Timer t = new Timer("RemoveMatchSubscriptionFromServerTimer");
        Date d = Calendar.getInstance().getTime();
        d.setSeconds(d.getSeconds() + 10);
        t.schedule(task, d);
        MiscNetworkingHelpers.handler.post(new Runnable() {

          @Override
          public void run() {
            AlertDialog.Builder builder = new AlertDialog.Builder(b.getContext());
            builder.setMessage("No connection to the server - retrying")
            .setTitle("Connection error");
            AlertDialog dialog = builder.create();
            dialogs.add(dialog);
            dialog.show();
          }  });
        failures++;
        
      }
      else
      {
        MiscNetworkingHelpers.handler.post(new Runnable() {

          @Override
          public void run() {
            b.setEnabled(true);
            b.setClickable(true);
            AlertDialog.Builder builder = new AlertDialog.Builder(b.getContext());
            builder.setMessage("No connection to the server - please check your wireless is on and connected to a network")
            .setTitle("Connection error");
            AlertDialog dialog = builder.create();
            for(AlertDialog retryDialog : dialogs)
            {
              retryDialog.dismiss();
            }
            dialog.show();
          }  });
        failures = 0;
      }
    }
    catch (Exception e) {
      MiscNetworkingHelpers.handler.post(new Runnable() {

        @Override
        public void run() {
          b.setClickable(true);
          b.setEnabled(true);
        }  });
      e.printStackTrace();
    }
  }

  /**
   * Sets the {@link android.widget.Button} reference to be used
   * @param b The Button reference to set the Button field to
   */
  public void setButton(Button b)
  {
    RemoveMatchSubscriptionFromServerTask.b = b;    
  }

  /**
   * Sets the registration id
   * @param regId The String to set the registration id to
   */
  public void setRegId(String regId)
  {
    RemoveMatchSubscriptionFromServerTask.regId = regId;
  }

  /**
   * Sets the {@link com.james.erebus.JSONJava.JSONObject} to be used in this task
   * @param obj the JSONObject to be used
   */
  public void setJsonMatchObject(JSONObject obj)
  {
    RemoveMatchSubscriptionFromServerTask.obj = obj;
  }

}




Java Source Code List

com.james.erebus.GCMIntentService.java
com.james.erebus.JSONJava.CDL.java
com.james.erebus.JSONJava.CookieList.java
com.james.erebus.JSONJava.Cookie.java
com.james.erebus.JSONJava.HTTPTokener.java
com.james.erebus.JSONJava.HTTP.java
com.james.erebus.JSONJava.JSONArray.java
com.james.erebus.JSONJava.JSONException.java
com.james.erebus.JSONJava.JSONML.java
com.james.erebus.JSONJava.JSONObject.java
com.james.erebus.JSONJava.JSONString.java
com.james.erebus.JSONJava.JSONStringer.java
com.james.erebus.JSONJava.JSONTokener.java
com.james.erebus.JSONJava.JSONWriter.java
com.james.erebus.JSONJava.XMLTokener.java
com.james.erebus.JSONJava.XML.java
com.james.erebus.core.C2DMRegistrationReceiver.java
com.james.erebus.core.CustomOnItemSelectedListener.java
com.james.erebus.core.MainActivity.java
com.james.erebus.core.MatchActivity.java
com.james.erebus.core.MatchButtonActivity.java
com.james.erebus.core.MatchOptions.java
com.james.erebus.core.MatchPreferencesFragment.java
com.james.erebus.core.Match.java
com.james.erebus.core.NotificationActivity.java
com.james.erebus.core.Notification.java
com.james.erebus.core.ParentPreferencesFragment.java
com.james.erebus.core.TournamentActivity.java
com.james.erebus.core.TournamentButtonActivity.java
com.james.erebus.core.TournamentFactory.java
com.james.erebus.core.TournamentPreferencesFragment.java
com.james.erebus.core.Tournament.java
com.james.erebus.core.TournyMatchOptions.java
com.james.erebus.misc.AppConsts.java
com.james.erebus.misc.MiscJsonHelpers.java
com.james.erebus.misc.misc.java
com.james.erebus.networking.AddDeviceTask.java
com.james.erebus.networking.AddMatchSubscriptionTask.java
com.james.erebus.networking.AddTournamentSubscriptionToServerTask.java
com.james.erebus.networking.GcmRegisterDeviceTask.java
com.james.erebus.networking.GetMatchesTask.java
com.james.erebus.networking.GetTournamentsTask.java
com.james.erebus.networking.MatchRetriever.java
com.james.erebus.networking.MatchSubscriptionManager.java
com.james.erebus.networking.MiscNetworkingHelpers.java
com.james.erebus.networking.NotificationManager.java
com.james.erebus.networking.RemoveMatchSubscriptionFromServerTask.java
com.james.erebus.networking.RemoveTournamentSubscriptionFromServerTask.java
com.james.erebus.networking.Retriever.java
com.james.erebus.networking.SubscriptionManager.java
com.james.erebus.networking.SubscriptionRetriever.java
com.james.erebus.networking.TournamentRetriever.java
com.james.erebus.networking.TournamentSubscriptionManager.java