1ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville/*
2ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * Copyright (C) 2013 The Android Open Source Project
3ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville *
4ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * Licensed under the Apache License, Version 2.0 (the "License");
5ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * you may not use this file except in compliance with the License.
6ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * You may obtain a copy of the License at
7ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville *
8ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville *      http://www.apache.org/licenses/LICENSE-2.0
9ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville *
10ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * Unless required by applicable law or agreed to in writing, software
11ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * distributed under the License is distributed on an "AS IS" BASIS,
12ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * See the License for the specific language governing permissions and
14ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * limitations under the License.
15ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville */
16ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
17ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Savillepackage com.android.internal.telephony.dataconnection;
18ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
19ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Savilleimport android.content.Intent;
20ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Savilleimport android.telephony.Rlog;
21ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
22ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville/**
23ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * A package visible class for supporting testing failing bringUp commands. This
24ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * saves the parameters from a action_fail_bringup intent. See
25ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville * {@link DataConnection#doOnConnect} and {@see DcTesterFailBringUpAll} for more info.
26ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville */
27e3f497323441d0c9215f6cbad9ce950f054cce72Jack Yupublic class DcFailBringUp {
28ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    private static final String LOG_TAG = "DcFailBringUp";
29ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    private static final boolean DBG = true;
30ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
31ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    static final String INTENT_BASE = DataConnection.class.getPackage().getName();
32ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
33ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    static final String ACTION_FAIL_BRINGUP = "action_fail_bringup";
34ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
35ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    // counter with its --ei option name and default value
36ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    static final String COUNTER = "counter";
370e664d8c9ff3a1f2ab03d2bef4268615335ea1a2Jack Yu    static final int DEFAULT_COUNTER = 2;
38ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    int mCounter;
39ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
40ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    // failCause with its --ei option name and default value
41ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    static final String FAIL_CAUSE = "fail_cause";
42ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    static final DcFailCause DEFAULT_FAIL_CAUSE = DcFailCause.ERROR_UNSPECIFIED;
43ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    DcFailCause mFailCause;
44ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
45ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    // suggestedRetryTime with its --ei option name and default value
46ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    static final String SUGGESTED_RETRY_TIME = "suggested_retry_time";
470852a954be5937a1b0bca94df0c2007d7ee3c0c7Jack Yu    static final int DEFAULT_SUGGESTED_RETRY_TIME = -1;
48ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    int mSuggestedRetryTime;
49ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
50ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    // Get the Extra Intent parameters
51ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    void saveParameters(Intent intent, String s) {
52ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        if (DBG) log(s + ".saveParameters: action=" + intent.getAction());
53ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        mCounter = intent.getIntExtra(COUNTER, DEFAULT_COUNTER);
54ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        mFailCause = DcFailCause.fromInt(
55ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville                intent.getIntExtra(FAIL_CAUSE, DEFAULT_FAIL_CAUSE.getErrorCode()));
56ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        mSuggestedRetryTime =
57ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville                intent.getIntExtra(SUGGESTED_RETRY_TIME, DEFAULT_SUGGESTED_RETRY_TIME);
58ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        if (DBG) {
59ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville            log(s + ".saveParameters: " + this);
60ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        }
61ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    }
62ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
63e3f497323441d0c9215f6cbad9ce950f054cce72Jack Yu    public void saveParameters(int counter, int failCause, int suggestedRetryTime) {
64ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        mCounter = counter;
65ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        mFailCause = DcFailCause.fromInt(failCause);
66ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        mSuggestedRetryTime = suggestedRetryTime;
67ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    }
68ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
69ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    @Override
70ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    public String toString() {
71ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        return "{mCounter=" + mCounter +
72ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville                " mFailCause=" + mFailCause +
73ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville                " mSuggestedRetryTime=" + mSuggestedRetryTime + "}";
74ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
75ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    }
76ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville
77ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    private static void log(String s) {
78ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville        Rlog.d(LOG_TAG, s);
79ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville    }
80ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville}
81