1d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey/* 2d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Copyright (C) 2011 The Android Open Source Project 3d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 4d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License"); 5d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * you may not use this file except in compliance with the License. 6d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * You may obtain a copy of the License at 7d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 8d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * http://www.apache.org/licenses/LICENSE-2.0 9d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 10d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Unless required by applicable law or agreed to in writing, software 11d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS, 12d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * See the License for the specific language governing permissions and 14d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * limitations under the License. 15d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey */ 16d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 17d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeypackage android.net; 18d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 19d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeyimport android.os.Parcel; 20d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeyimport android.os.Parcelable; 21d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 22d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey/** 23d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * Snapshot of network state. 24d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * 25d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey * @hide 26d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey */ 27d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkeypublic class NetworkState implements Parcelable { 28d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 29d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public final NetworkInfo networkInfo; 30d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public final LinkProperties linkProperties; 31d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public final LinkCapabilities linkCapabilities; 32b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey /** Currently only used by testing. */ 33b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey public final String subscriberId; 34d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 35d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public NetworkState(NetworkInfo networkInfo, LinkProperties linkProperties, 36d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey LinkCapabilities linkCapabilities) { 37b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey this(networkInfo, linkProperties, linkCapabilities, null); 38b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey } 39b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey 40b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey public NetworkState(NetworkInfo networkInfo, LinkProperties linkProperties, 41b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey LinkCapabilities linkCapabilities, String subscriberId) { 42d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey this.networkInfo = networkInfo; 43d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey this.linkProperties = linkProperties; 44d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey this.linkCapabilities = linkCapabilities; 45b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey this.subscriberId = subscriberId; 46d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 47d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 48d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public NetworkState(Parcel in) { 49d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey networkInfo = in.readParcelable(null); 50d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey linkProperties = in.readParcelable(null); 51d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey linkCapabilities = in.readParcelable(null); 52b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey subscriberId = in.readString(); 53d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 54d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 55d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey /** {@inheritDoc} */ 56d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public int describeContents() { 57d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey return 0; 58d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 59d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 60d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey /** {@inheritDoc} */ 61d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public void writeToParcel(Parcel out, int flags) { 62d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey out.writeParcelable(networkInfo, flags); 63d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey out.writeParcelable(linkProperties, flags); 64d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey out.writeParcelable(linkCapabilities, flags); 65b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey out.writeString(subscriberId); 66d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 67d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 68d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public static final Creator<NetworkState> CREATOR = new Creator<NetworkState>() { 69d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public NetworkState createFromParcel(Parcel in) { 70d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey return new NetworkState(in); 71d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 72d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 73d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public NetworkState[] newArray(int size) { 74d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey return new NetworkState[size]; 75d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 76d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey }; 77d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 78d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey} 79