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