Android Open Source - final_year_frontend Add Device 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  w w  . j a  va2  s  .com
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 org.apache.http.message.BasicNameValuePair;

import android.app.AlertDialog;
import android.content.Context;
import android.util.Log;

/**
 * A {@link java.util.TimerTask} for adding a device to the server
 * @author james
 *
 */

public class AddDeviceTask extends TimerTask{
  
  private static String regId;
  private static int failures;
  private static ArrayList<AlertDialog> dialogs = new ArrayList<AlertDialog>();
  private static Context context;

  @SuppressWarnings({ "deprecation", "serial" })
  @Override
  public void run() {
    //boolean success;
    try{
      MiscNetworkingHelpers.postInformationToServer(AddDeviceTask.regId, "devices.json", 
          new ArrayList<BasicNameValuePair>() { { add(new BasicNameValuePair("gcm_device[registration_id]", AddDeviceTask.regId)); } });
    //  success = true;
      for(AlertDialog retryDialog : AddDeviceTask.dialogs)
      {
        retryDialog.dismiss();
      }
    } catch (HttpHostConnectException e) {
    //  success = false;
      if(AddDeviceTask.failures < 2)
      {
        Log.e("AddDeviceTask", "Failed to register device, re-trying...");
        AddDeviceTask task = new AddDeviceTask();
        Timer t = new Timer("AddDeviceTimer");
        Date d = Calendar.getInstance().getTime();
        d.setSeconds(Calendar.getInstance().getTime().getSeconds() + 10);
        t.schedule(task, d);
        MiscNetworkingHelpers.handler.post(new Runnable() {

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

          @Override
          public void run() {
            AlertDialog.Builder builder = new AlertDialog.Builder(AddDeviceTask.context);
            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 : AddDeviceTask.dialogs)
            {
              retryDialog.dismiss();
            }
            dialog.show();
          }  });
        AddDeviceTask.failures = 0;
      }
    } catch (Exception e) {
      Log.e("run", "otherexcpetion");
      e.printStackTrace();
    }
    
    
  }

  /**
   * Sets the registration id
   * @param regId The String to set the registration id to
   */
  public void setRegId(String regId)
  {
    AddDeviceTask.regId = regId;
  }
  
  /**
   * Sets the {@link android.content.Context}
   * @param c The context to set the context field to
   */
  public static void setContext(Context c)
  {
    AddDeviceTask.context = c;
  }

}




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