/* * CDDL HEADER START * * The contents of this file are subject to the terms of the Common Development * and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at * src/com/vodafone360/people/VODAFONE.LICENSE.txt or * http://github.com/360/360-Engine-for-Android * See the License for the specific language governing permissions and * limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each file and * include the License file at src/com/vodafone360/people/VODAFONE.LICENSE.txt. * If applicable, add the following below this CDDL HEADER, with the fields * enclosed by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * Copyright 2010 Vodafone Sales & Services Ltd. All rights reserved. * Use is subject to license terms. */ package com.vodafone360.people.service.agent; /** * Stores information about the current status of the NetworkAgent, i.e. whether * we are connected to the Internet, whether the network is available, if Wifi * is active, whether roaming or data roaming are enabled etc. */ public class NetworkAgentState { private NetworkAgent.AgentState mAgentState; private NetworkAgent.AgentDisconnectReason mDisconnectReason = NetworkAgent.AgentDisconnectReason.UNKNOWN; private boolean mInternetConnected; private boolean mIsRoaming; // actual state private boolean mDataRoamingAllowed; // settings private boolean mIsInBackground; // actual state private boolean mBackgroundDataAllowed;// settings private boolean mWifiActive; private boolean mNetworkWorking; private boolean[] changes; /** * Get current NetworkAgent state. * * @return current NetworkAgent state {connected | disconnected | unknown} */ public NetworkAgent.AgentState getAgentState() { return mAgentState; } /** * Sets a new NetworkAgent state. * * @param mAgentState current NetworkAgent state {connected | disconnected | * unknown} */ public void setAgentState(NetworkAgent.AgentState mAgentState) { this.mAgentState = mAgentState; } /** * Return whether we are connected to the Internet. * * @return TRUE if we are connected to Internet. */ public boolean isInternetConnected() { return mInternetConnected; } /** * Sets a new Internet connection state. * * @param internetConnected TRUE if connected to Internet, FALSE otherwise. */ public void setInternetConnected(boolean internetConnected) { this.mInternetConnected = internetConnected; } /** * Return whether roaming is currently enabled. * * @return TrUE if roaming is enabled, FALSE otherwise. */ public boolean isRoaming() { return mIsRoaming; } /** * Set roaming state. * * @param dataRoaming TRUE if enabled, FALSE otherwise. */ public void setRoaming(boolean dataRoaming) { this.mIsRoaming = dataRoaming; } /** * Return data roaming state. * * @return TRUE if data roaming enabled. */ public boolean isRoamingAllowed() { return mDataRoamingAllowed; } /** * Set whether roaming is allowed. * * @param dataRoamingAllowed TRUE if roaming allowed. */ public void setRoamingAllowed(boolean dataRoamingAllowed) { this.mDataRoamingAllowed = dataRoamingAllowed; } /** * Return whether application is in the background. * * @return TRUE if application is in the background. */ public boolean isInBackGround() { return mIsInBackground; } /** * Set application background state. * * @param isBackGround TRUE if application is in the background. */ public void setInBackGround(boolean isBackGround) { this.mIsInBackground = isBackGround; } /** * Return whether Wifi is active. * * @return TRUE if Wifi is active, FALSE otherwise. */ public boolean isWifiActive() { return mWifiActive; } /** * Set Wifi active state. * * @param wifiActive TRUE if Wifi is active. */ public void setWifiActive(boolean wifiActive) { this.mWifiActive = wifiActive; } /** * Return whether the network is currently available. * * @return TRUE if network is available. */ public boolean isNetworkWorking() { return mNetworkWorking; } /** * Set whether network is currently available. * * @param networkWorking TRUE if network is available, FALSE otherwise. */ public void setNetworkWorking(boolean networkWorking) { this.mNetworkWorking = networkWorking; } /** * Return reason for NetworkAgent entering disconnected state. * * @return AgentDisconnectReason object, i.e. reason for disconnection. */ public NetworkAgent.AgentDisconnectReason getDisconnectReason() { return mDisconnectReason; } /** * Set reason for setting NetworkAgent to disconnected state. * * @param disconnectReason NetworkAgent disconnect reason. */ public void setDisconnectReason(NetworkAgent.AgentDisconnectReason disconnectReason) { this.mDisconnectReason = disconnectReason; } /*** * Set if background data connections are allowed. * * @param backgroundDataAllowed TRUE if background data connections are * permitted, FALSE otherwise. */ public void setBackgroundDataAllowed(boolean backgroundDataAllowed) { this.mBackgroundDataAllowed = backgroundDataAllowed; } /*** * Return if background data connections are allowed. * * @return TRUE if background data connections are permitted, FALSE * otherwise. */ public boolean isBackDataAllowed() { return mBackgroundDataAllowed; } /*** * Get which values should be overridden on the Network Agent. * * @return Array of StatesOfService values. */ public boolean[] getChanges() { return changes; } /*** * Set which values should be overridden on the Network Agent. * * @param changes Array of StatesOfService values. */ public void setChanges(boolean[] changes) { this.changes = changes; } @Override public String toString() { final StringBuilder sb = new StringBuilder("NetworkAgentState ["); sb.append("agentState["); sb.append(mAgentState); sb.append("] "); sb.append("isInBackground["); sb.append(mIsInBackground); sb.append("] "); sb.append("isRoaming["); sb.append(mIsRoaming); sb.append("] "); sb.append("disconnectReason["); sb.append(mDisconnectReason); sb.append("]"); sb.append("internetConnected["); sb.append(mInternetConnected); sb.append("] "); sb.append("networkWorking["); sb.append(mNetworkWorking); sb.append("] "); sb.append("wifiActive["); sb.append(mWifiActive); sb.append("]"); sb.append("]"); return sb.toString(); } }