1d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal/* 2d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** Copyright 2015, The Android Open Source Project 3d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** 4d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** Licensed under the Apache License, Version 2.0 (the "License"); 5d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** you may not use this file except in compliance with the License. 6d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** You may obtain a copy of the License at 7d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** 8d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** http://www.apache.org/licenses/LICENSE-2.0 9d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** 10d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** Unless required by applicable law or agreed to in writing, software 11d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** distributed under the License is distributed on an "AS IS" BASIS, 12d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** See the License for the specific language governing permissions and 14d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal** limitations under the License. 15d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal*/ 16d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 17d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalpackage com.android.internal.telephony; 18d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 19d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalimport android.os.Parcel; 20d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalimport android.os.Parcelable; 21d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalimport java.util.ArrayList; 22d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalimport java.util.List; 23d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 24d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal/** 25d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * Response for querying available cellular networks. 26d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * 27d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * @hide 28d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal */ 29d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawalpublic class CellNetworkScanResult implements Parcelable { 30d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 31d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal /** 32d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * Possible status values. 33d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal */ 34d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public static final int STATUS_SUCCESS = 1; 35d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public static final int STATUS_RADIO_NOT_AVAILABLE = 2; 36d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public static final int STATUS_RADIO_GENERIC_FAILURE = 3; 37d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public static final int STATUS_UNKNOWN_ERROR = 4; 38d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 39d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal private final int mStatus; 40d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal private final List<OperatorInfo> mOperators; 41d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 42d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal /** 43d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * Constructor. 44d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * 45d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * @hide 46d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal */ 47d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public CellNetworkScanResult(int status, List<OperatorInfo> operators) { 48d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal mStatus = status; 49d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal mOperators = operators; 50d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 51d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 52d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal /** 53d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * Construct a CellNetworkScanResult from a given parcel. 54d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal */ 55d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal private CellNetworkScanResult(Parcel in) { 56d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal mStatus = in.readInt(); 57d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal int len = in.readInt(); 58d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal if (len > 0) { 59d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal mOperators = new ArrayList(); 60d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal for (int i = 0; i < len; ++i) { 61d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal mOperators.add(OperatorInfo.CREATOR.createFromParcel(in)); 62d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 63d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } else { 64d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal mOperators = null; 65d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 66d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 67d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 68d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal /** 69d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * @return the status of the command. 70d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal */ 71d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public int getStatus() { 72d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal return mStatus; 73d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 74d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 75d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal /** 76d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal * @return the operators. 77d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal */ 78d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public List<OperatorInfo> getOperators() { 79d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal return mOperators; 80d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 81d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 82d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal @Override 83d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public int describeContents() { 84d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal return 0; 85d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 86d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 87d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal @Override 88d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public void writeToParcel(Parcel out, int flags) { 89d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal out.writeInt(mStatus); 90d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal if (mOperators != null && mOperators.size() > 0) { 91554beb58dbfb0eccf4304fd5c58b0e2a9331bf27Anil Muthineni out.writeInt(mOperators.size()); 92d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal for (OperatorInfo network : mOperators) { 93d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal network.writeToParcel(out, flags); 94d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 95d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } else { 96d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal out.writeInt(0); 97d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 98d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 99d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 100d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal @Override 101d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public String toString() { 102d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal StringBuffer sb = new StringBuffer(); 103d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal sb.append("CellNetworkScanResult: {"); 104d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal sb.append(" status:").append(mStatus); 105d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal if (mOperators != null) { 106d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal for (OperatorInfo network : mOperators) { 107d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal sb.append(" network:").append(network); 108d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 109d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 110d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal sb.append("}"); 111d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal return sb.toString(); 112d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 113d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 114d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public static final Parcelable.Creator<CellNetworkScanResult> CREATOR 115d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal = new Parcelable.Creator<CellNetworkScanResult>() { 116d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 117d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal @Override 118d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public CellNetworkScanResult createFromParcel(Parcel in) { 119d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal return new CellNetworkScanResult(in); 120d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 121d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal 122d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal public CellNetworkScanResult[] newArray(int size) { 123d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal return new CellNetworkScanResult[size]; 124d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal } 125d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal }; 126d4f2bcdab5a43e6439babfd5eefeaff908b73870Shishir Agrawal} 127