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