blob: 64414e99a84472c4725975467c7f01e4a8d2f5fb [file] [log] [blame]
Santos Cordon7d4ddf62013-07-10 11:58:08 -07001/*
2 * Copyright (C) 2011 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.phone;
18
19/**
20 * App-wide constants and enums for the phone app.
21 *
22 * Any constants that need to be shared between two or more classes within
23 * the com.android.phone package should be defined here. (Constants that
24 * are private to only one class can go in that class's .java file.)
25 */
26public class Constants {
27
28 /**
29 * Complete list of error / diagnostic indications we might possibly
30 * need to present to the user.
31 *
32 * This enum is basically a high-level list of the kinds of failures
33 * or "exceptional conditions" that can occur when making a phone
34 * call. When an error occurs, the CallController stashes away one of
35 * these codes in the InCallUiState.pendingCallStatusCode flag and
36 * launches the InCallScreen; the InCallScreen will then display some
37 * kind of message to the user (usually an error dialog) explaining
38 * what happened.
39 *
40 * The enum values here cover all possible result status / error
41 * conditions that can happen when attempting to place an outgoing
42 * call (see CallController.placeCall() and placeCallInternal()), as
43 * well as some other conditions (like CDMA_CALL_LOST and EXITED_ECM)
44 * that don't technically result from the placeCall() sequence but
45 * still need to be communicated to the user.
46 */
47 public enum CallStatusCode {
48 /**
49 * No error or exceptional condition occurred.
50 * The InCallScreen does not need to display any kind of alert to the user.
51 */
52 SUCCESS,
53
54 /**
55 * Radio is explictly powered off, presumably because the
56 * device is in airplane mode.
57 */
58 POWER_OFF,
59
60 /**
61 * Only emergency numbers are allowed, but we tried to dial
62 * a non-emergency number.
63 */
64 EMERGENCY_ONLY,
65
66 /**
67 * No network connection.
68 */
69 OUT_OF_SERVICE,
70
71 /**
72 * The supplied CALL Intent didn't contain a valid phone number.
73 */
74 NO_PHONE_NUMBER_SUPPLIED,
75
76 /**
77 * Our initial phone number was actually an MMI sequence.
78 */
79 DIALED_MMI,
80
81 /**
82 * We couldn't successfully place the call due to an
83 * unknown failure in the telephony layer.
84 */
85 CALL_FAILED,
86
87 /**
88 * We tried to call a voicemail: URI but the device has no
89 * voicemail number configured.
90 *
91 * When InCallUiState.pendingCallStatusCode is set to this
92 * value, the InCallScreen will bring up a UI explaining what
93 * happened, and allowing the user to go into Settings to fix the
94 * problem.
95 */
96 VOICEMAIL_NUMBER_MISSING,
97
98 /**
99 * This status indicates that InCallScreen should display the
100 * CDMA-specific "call lost" dialog. (If an outgoing call fails,
101 * and the CDMA "auto-retry" feature is enabled, *and* the retried
102 * call fails too, we display this specific dialog.)
103 *
104 * TODO: this is currently unused, since the "call lost" dialog
105 * needs to be triggered by a *disconnect* event, rather than when
106 * the InCallScreen first comes to the foreground. For now we use
107 * the needToShowCallLostDialog field for this (see below.)
108 */
109 CDMA_CALL_LOST,
110
111 /**
112 * This status indicates that the call was placed successfully,
113 * but additionally, the InCallScreen needs to display the
114 * "Exiting ECM" dialog.
115 *
116 * (Details: "Emergency callback mode" is a CDMA-specific concept
117 * where the phone disallows data connections over the cell
118 * network for some period of time after you make an emergency
119 * call. If the phone is in ECM and you dial a non-emergency
120 * number, that automatically *cancels* ECM, but we additionally
121 * need to warn the user that ECM has been canceled (see bug
122 * 4207607.))
123 */
124 EXITED_ECM
125 }
126
127 //
Santos Cordon7d4ddf62013-07-10 11:58:08 -0700128 // TODO: Move all the various EXTRA_* and intent action constants here too.
129 // (Currently they're all over the place: InCallScreen,
130 // OutgoingCallBroadcaster, OtaUtils, etc.)
131 //
132
Santos Cordon7d4ddf62013-07-10 11:58:08 -0700133}