10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/* 20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2008 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 Savillepublic abstract class SmsAddress { 200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // From TS 23.040 9.1.2.5 and TS 24.008 table 10.5.118 210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // and C.S0005-D table 2.7.1.3.2.4-2 220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int TON_UNKNOWN = 0; 230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int TON_INTERNATIONAL = 1; 240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int TON_NATIONAL = 2; 250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int TON_NETWORK = 3; 260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int TON_SUBSCRIBER = 4; 270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int TON_ALPHANUMERIC = 5; 280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public static final int TON_ABBREVIATED = 6; 290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public int ton; 310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String address; 320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public byte[] origBytes; 330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns the address of the SMS message in String form or null if unavailable 360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public String getAddressString() { 380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return address; 390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns true if this is an alphanumeric address 430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isAlphanumeric() { 450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return ton == TON_ALPHANUMERIC; 460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville /** 490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Returns true if this is a network address 500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */ 510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean isNetworkSpecific() { 520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return ton == TON_NETWORK; 530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville public boolean couldBeEmailGateway() { 560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // Some carriers seems to send email gateway messages in this form: 570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // from: an UNKNOWN TON, 3 or 4 digits long, beginning with a 5 580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // PID: 0x00, Data coding scheme 0x03 590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // So we just attempt to treat any message from an address length <= 4 600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville // as an email gateway 610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville return address.length() <= 4; 630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville } 640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville 650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville} 66