EpicServiceState.java :  » UnTagged » epic-architecture » org » mobilesynergies » android » epic » service » core » states » Android Open Source

Android Open Source » UnTagged » epic architecture 
epic architecture » org » mobilesynergies » android » epic » service » core » states » EpicServiceState.java
package org.mobilesynergies.android.epic.service.core.states;

import java.util.HashSet;
import java.util.Iterator;

import org.mobilesynergies.android.epic.service.interfaces.IApplicationStatusChangeCallback;
import org.mobilesynergies.android.epic.service.interfaces.IIncomingMessageCallback;
import org.mobilesynergies.android.epic.service.interfaces.IServiceStatusChangeCallback;

import android.os.Bundle;
import android.os.RemoteException;

/**
 * 
 * 
 * State object 
 * @author Peter  
 *
 */
public class EpicServiceState {
  
  public static final int STATE_UNCONNECTED = 1;
  public static final int STATE_INTERNETCONNECTED = 2;
  public static final int STATE_SERVERCONNECTED= 3;
  public static final int STATE_AUTHENTICATED = 4; 
  
  /**
   * Stores the callbacks that wish to be informed about changes in service availability.
   */
  private HashSet<IServiceStatusChangeCallback> mSetServiceStatusCallbacks = new HashSet<IServiceStatusChangeCallback>();


  private int mState = STATE_UNCONNECTED;
    
  public void changeState(int newState){
    if(mState!=newState){
      mState = newState;
      
      Iterator<IServiceStatusChangeCallback> iter = mSetServiceStatusCallbacks.iterator();
      while(iter.hasNext()){
        IServiceStatusChangeCallback s = iter.next();
        try {
          s.onServiceStatusChanged(newState);
        } catch (RemoteException e) {
          e.printStackTrace();
        }
      }
    }
  }

  public void addServiceStatusCallback(IServiceStatusChangeCallback callback) {
    mSetServiceStatusCallbacks.add(callback);    
  }

  public String getStateAsHumanReadableString(int state) {
    switch(state) {
      case STATE_UNCONNECTED:
        return "not connected";
      case STATE_INTERNETCONNECTED:
        return "connected to the internet";
      case STATE_SERVERCONNECTED:
        return "connected to the epic server";
      case STATE_AUTHENTICATED:
        return "connected to the epic network";
    }
    return "unknown";
  }

  public String getStateAsHumanReadableString() {
    return getStateAsHumanReadableString(mState);
  }
    
  

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.