| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.phone; |
| |
| /** |
| * App-wide constants and enums for the phone app. |
| * |
| * Any constants that need to be shared between two or more classes within |
| * the com.android.phone package should be defined here. (Constants that |
| * are private to only one class can go in that class's .java file.) |
| */ |
| public class Constants { |
| |
| /** |
| * Complete list of error / diagnostic indications we might possibly |
| * need to present to the user. |
| * |
| * This enum is basically a high-level list of the kinds of failures |
| * or "exceptional conditions" that can occur when making a phone |
| * call. When an error occurs, the CallController stashes away one of |
| * these codes in the InCallUiState.pendingCallStatusCode flag and |
| * launches the InCallScreen; the InCallScreen will then display some |
| * kind of message to the user (usually an error dialog) explaining |
| * what happened. |
| * |
| * The enum values here cover all possible result status / error |
| * conditions that can happen when attempting to place an outgoing |
| * call (see CallController.placeCall() and placeCallInternal()), as |
| * well as some other conditions (like CDMA_CALL_LOST and EXITED_ECM) |
| * that don't technically result from the placeCall() sequence but |
| * still need to be communicated to the user. |
| */ |
| public enum CallStatusCode { |
| /** |
| * No error or exceptional condition occurred. |
| * The InCallScreen does not need to display any kind of alert to the user. |
| */ |
| SUCCESS, |
| |
| /** |
| * Radio is explictly powered off, presumably because the |
| * device is in airplane mode. |
| */ |
| POWER_OFF, |
| |
| /** |
| * Only emergency numbers are allowed, but we tried to dial |
| * a non-emergency number. |
| */ |
| EMERGENCY_ONLY, |
| |
| /** |
| * No network connection. |
| */ |
| OUT_OF_SERVICE, |
| |
| /** |
| * The supplied CALL Intent didn't contain a valid phone number. |
| */ |
| NO_PHONE_NUMBER_SUPPLIED, |
| |
| /** |
| * Our initial phone number was actually an MMI sequence. |
| */ |
| DIALED_MMI, |
| |
| /** |
| * We couldn't successfully place the call due to an |
| * unknown failure in the telephony layer. |
| */ |
| CALL_FAILED, |
| |
| /** |
| * We tried to call a voicemail: URI but the device has no |
| * voicemail number configured. |
| * |
| * When InCallUiState.pendingCallStatusCode is set to this |
| * value, the InCallScreen will bring up a UI explaining what |
| * happened, and allowing the user to go into Settings to fix the |
| * problem. |
| */ |
| VOICEMAIL_NUMBER_MISSING, |
| |
| /** |
| * This status indicates that InCallScreen should display the |
| * CDMA-specific "call lost" dialog. (If an outgoing call fails, |
| * and the CDMA "auto-retry" feature is enabled, *and* the retried |
| * call fails too, we display this specific dialog.) |
| * |
| * TODO: this is currently unused, since the "call lost" dialog |
| * needs to be triggered by a *disconnect* event, rather than when |
| * the InCallScreen first comes to the foreground. For now we use |
| * the needToShowCallLostDialog field for this (see below.) |
| */ |
| CDMA_CALL_LOST, |
| |
| /** |
| * This status indicates that the call was placed successfully, |
| * but additionally, the InCallScreen needs to display the |
| * "Exiting ECM" dialog. |
| * |
| * (Details: "Emergency callback mode" is a CDMA-specific concept |
| * where the phone disallows data connections over the cell |
| * network for some period of time after you make an emergency |
| * call. If the phone is in ECM and you dial a non-emergency |
| * number, that automatically *cancels* ECM, but we additionally |
| * need to warn the user that ECM has been canceled (see bug |
| * 4207607.)) |
| */ |
| EXITED_ECM |
| } |
| |
| // |
| // URI schemes |
| // |
| |
| public static final String SCHEME_SIP = "sip"; |
| public static final String SCHEME_SMS = "sms"; |
| public static final String SCHEME_SMSTO = "smsto"; |
| public static final String SCHEME_TEL = "tel"; |
| public static final String SCHEME_VOICEMAIL = "voicemail"; |
| |
| // |
| // TODO: Move all the various EXTRA_* and intent action constants here too. |
| // (Currently they're all over the place: InCallScreen, |
| // OutgoingCallBroadcaster, OtaUtils, etc.) |
| // |
| } |