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; 31f9cb86aebe9647e0fe0137fc198ba16c017445c6Robert Greenwalt public final NetworkCapabilities networkCapabilities; 3221b5ee3f0e39be4a79bcfb2b79b0529f75f5cb58Sreeram Ramachandran public final Network network; 33b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey public final String subscriberId; 34e8914c36276710de50b347c1e6aecfa45d6a56cdJeff Sharkey public final String networkId; 35d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 36d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public NetworkState(NetworkInfo networkInfo, LinkProperties linkProperties, 3721b5ee3f0e39be4a79bcfb2b79b0529f75f5cb58Sreeram Ramachandran NetworkCapabilities networkCapabilities, Network network, String subscriberId, 3821b5ee3f0e39be4a79bcfb2b79b0529f75f5cb58Sreeram Ramachandran String networkId) { 39d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey this.networkInfo = networkInfo; 40d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey this.linkProperties = linkProperties; 41f9cb86aebe9647e0fe0137fc198ba16c017445c6Robert Greenwalt this.networkCapabilities = networkCapabilities; 4221b5ee3f0e39be4a79bcfb2b79b0529f75f5cb58Sreeram Ramachandran this.network = network; 43b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey this.subscriberId = subscriberId; 44e8914c36276710de50b347c1e6aecfa45d6a56cdJeff Sharkey this.networkId = networkId; 45d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 46d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 47d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public NetworkState(Parcel in) { 48d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey networkInfo = in.readParcelable(null); 49d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey linkProperties = in.readParcelable(null); 50f9cb86aebe9647e0fe0137fc198ba16c017445c6Robert Greenwalt networkCapabilities = in.readParcelable(null); 5121b5ee3f0e39be4a79bcfb2b79b0529f75f5cb58Sreeram Ramachandran network = in.readParcelable(null); 52b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey subscriberId = in.readString(); 53e8914c36276710de50b347c1e6aecfa45d6a56cdJeff Sharkey networkId = in.readString(); 54d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 55d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 56bfdd680ab44da173a4a39fcd6feccdebb9d1f855Jeff Sharkey @Override 57d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public int describeContents() { 58d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey return 0; 59d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 60d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 61bfdd680ab44da173a4a39fcd6feccdebb9d1f855Jeff Sharkey @Override 62d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public void writeToParcel(Parcel out, int flags) { 63d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey out.writeParcelable(networkInfo, flags); 64d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey out.writeParcelable(linkProperties, flags); 65f9cb86aebe9647e0fe0137fc198ba16c017445c6Robert Greenwalt out.writeParcelable(networkCapabilities, flags); 6621b5ee3f0e39be4a79bcfb2b79b0529f75f5cb58Sreeram Ramachandran out.writeParcelable(network, flags); 67b09540f33a6cabe50edec0ef32d0b1d0b0d96fffJeff Sharkey out.writeString(subscriberId); 68e8914c36276710de50b347c1e6aecfa45d6a56cdJeff Sharkey out.writeString(networkId); 69d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 70d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 71d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public static final Creator<NetworkState> CREATOR = new Creator<NetworkState>() { 72bfdd680ab44da173a4a39fcd6feccdebb9d1f855Jeff Sharkey @Override 73d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public NetworkState createFromParcel(Parcel in) { 74d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey return new NetworkState(in); 75d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 76d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey 77bfdd680ab44da173a4a39fcd6feccdebb9d1f855Jeff Sharkey @Override 78d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey public NetworkState[] newArray(int size) { 79d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey return new NetworkState[size]; 80d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey } 81d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey }; 82d2a458750e5a3d490af09cecb5c28370baf0a913Jeff Sharkey} 83