10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.ServiceState;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class RestrictedState {
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Set true to block packet data access due to restriction
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private boolean mPsRestricted;
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Set true to block all normal voice/SMS/USSD/SS/AV64 due to restriction
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private boolean mCsNormalRestricted;
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Set true to block emergency call due to restriction
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private boolean mCsEmergencyRestricted;
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public RestrictedState() {
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        setPsRestricted(false);
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        setCsNormalRestricted(false);
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        setCsEmergencyRestricted(false);
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param csEmergencyRestricted the csEmergencyRestricted to set
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setCsEmergencyRestricted(boolean csEmergencyRestricted) {
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCsEmergencyRestricted = csEmergencyRestricted;
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return the csEmergencyRestricted
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isCsEmergencyRestricted() {
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mCsEmergencyRestricted;
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param csNormalRestricted the csNormalRestricted to set
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setCsNormalRestricted(boolean csNormalRestricted) {
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mCsNormalRestricted = csNormalRestricted;
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return the csNormalRestricted
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isCsNormalRestricted() {
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mCsNormalRestricted;
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param psRestricted the psRestricted to set
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setPsRestricted(boolean psRestricted) {
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        mPsRestricted = psRestricted;
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @return the psRestricted
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isPsRestricted() {
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mPsRestricted;
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean isCsRestricted() {
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mCsNormalRestricted && mCsEmergencyRestricted;
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Override
890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public boolean equals (Object o) {
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        RestrictedState s;
910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        try {
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            s = (RestrictedState) o;
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } catch (ClassCastException ex) {
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return false;
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (o == null) {
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return false;
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return mPsRestricted == s.mPsRestricted
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        && mCsNormalRestricted == s.mCsNormalRestricted
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        && mCsEmergencyRestricted == s.mCsEmergencyRestricted;
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Override
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public String toString() {
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        String csString = "none";
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (mCsEmergencyRestricted && mCsNormalRestricted) {
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            csString = "all";
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else if (mCsEmergencyRestricted && !mCsNormalRestricted) {
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            csString = "emergency";
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        } else if (!mCsEmergencyRestricted && mCsNormalRestricted) {
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            csString = "normal call";
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        return  "Restricted State CS: " + csString + " PS:" + mPsRestricted;
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
123