1afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project/* 2afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Copyright (C) 2006 The Android Open Source Project 3afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 4afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * you may not use this file except in compliance with the License. 6afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * You may obtain a copy of the License at 7afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 8afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 10afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * See the License for the specific language governing permissions and 14afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * limitations under the License. 15afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 16afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 17afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectpackage com.android.settings; 18afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 19afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.app.Activity; 2099be5007ef13a403404d5455c622cdf7af96a1caRobert Greenwaltimport android.content.Context; 21afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.Intent; 22a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalinkimport android.content.pm.PackageManager; 23a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalinkimport android.content.pm.ResolveInfo; 24afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.res.Resources; 2599be5007ef13a403404d5455c622cdf7af96a1caRobert Greenwaltimport android.net.ConnectivityManager; 26ae04c1a912db57708dca1431016db68c041c82f7Robert Greenwaltimport android.net.LinkProperties; 279302986035f46d2868c23db6349fd04b543eb676Jeff Sharkeyimport android.net.TrafficStats; 28afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.net.Uri; 29afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.AsyncResult; 30afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Bundle; 31afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Handler; 32afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Message; 33afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.RemoteException; 34afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.ServiceManager; 35afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.SystemProperties; 3679bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Savilleimport android.telephony.CellInfo; 37afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.CellLocation; 38afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.PhoneStateListener; 39afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.ServiceState; 40afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.TelephonyManager; 41afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.NeighboringCellInfo; 42534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jshimport android.telephony.cdma.CdmaCellLocation; 43afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.gsm.GsmCellLocation; 44afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.text.format.DateUtils; 45afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.util.Log; 46afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.Menu; 47afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.MenuItem; 48afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.View; 49afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.View.OnClickListener; 50afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.AdapterView; 51afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.ArrayAdapter; 52afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.Button; 53afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.Spinner; 54afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.TextView; 55afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.EditText; 56afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 5787fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jshimport com.android.internal.telephony.DataConnection; 58afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.Phone; 595543404ae0ec9635b59d37fa01074ea598d539ebWink Savilleimport com.android.internal.telephony.PhoneConstants; 60afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.PhoneFactory; 61afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.PhoneStateIntentReceiver; 62afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.TelephonyProperties; 630d93697d3a52f7b9db37b403715c3a27678df4ffWink Savilleimport com.android.internal.telephony.gsm.GsmDataConnection; 64afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 65afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.HttpResponse; 66afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.client.HttpClient; 67afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.client.methods.HttpGet; 68afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.impl.client.DefaultHttpClient; 69afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 70afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.io.IOException; 71a9f163744a3b7beb9579df19045029032a16f6ddWink Savilleimport java.net.InetAddress; 72afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.net.UnknownHostException; 73afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.util.ArrayList; 74afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.util.List; 75afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 76a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalinkimport android.util.Log; 77a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink 78afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectpublic class RadioInfo extends Activity { 79afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final String TAG = "phone"; 80342101a0729a30587dc4fa79b5f017634bd985c0johnwang 81afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_PHONE_STATE_CHANGED = 100; 82afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SIGNAL_STRENGTH_CHANGED = 200; 83afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SERVICE_STATE_CHANGED = 300; 84afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_CFI_CHANGED = 302; 85afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 86afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_PREFERRED_TYPE_DONE = 1000; 87afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SET_PREFERRED_TYPE_DONE = 1001; 88afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_NEIGHBORING_CIDS_DONE = 1002; 89afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_SMSC_DONE = 1005; 90afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_UPDATE_SMSC_DONE = 1006; 91afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 92afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_SELECT_BAND = 0; 93afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_ADN = 1; 94afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_FDN = 2; 95afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_SDN = 3; 96afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_GET_PDP_LIST = 4; 97afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_TOGGLE_DATA = 5; 98a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink 99a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink static final String ENABLE_DATA_STR = "Enable data connection"; 100a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink static final String DISABLE_DATA_STR = "Disable data connection"; 101afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 102c38866843e966622346dc8f7b028749cac9c2198Wink Saville private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA 103afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView number; 104afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView callState; 105afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView operatorName; 106afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView roamingState; 107afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView gsmState; 108afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView gprsState; 109afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView network; 110afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView dBm; 111afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mMwi; 112afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mCfi; 113afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mLocation; 114afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mNeighboringCids; 11579bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville private TextView mCellInfo; 116afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView resets; 117afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView attempts; 118afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView successes; 119afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView disconnects; 120afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView sentSinceReceived; 121afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView sent; 122afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView received; 123afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mPingIpAddr; 124afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mPingHostname; 125afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mHttpClientTest; 126afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView dnsCheckState; 127afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private EditText smsc; 128afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button radioPowerButton; 129afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button dnsCheckToggleButton; 130afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button pingTestButton; 131afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button updateSmscButton; 132afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button refreshSmscButton; 133a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink private Button oemInfoButton; 134afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Spinner preferredNetworkType; 135afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 136afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TelephonyManager mTelephonyManager; 137afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Phone phone = null; 138afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private PhoneStateIntentReceiver mPhoneStateReceiver; 139afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 140afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mPingIpAddrResult; 141afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mPingHostnameResult; 142afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mHttpClientTestResult; 143afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean mMwiValue = false; 144afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean mCfiValue = false; 14579bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville private List<CellInfo> mCellInfoValue; 146afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 147afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private PhoneStateListener mPhoneStateListener = new PhoneStateListener() { 148afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 149afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onDataConnectionStateChanged(int state) { 150afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState(); 151afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats(); 152afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePdpList(); 153afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateNetworkType(); 154afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 155afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 156afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 157afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onDataActivity(int direction) { 158afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats2(); 159afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 160afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 161afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 162afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCellLocationChanged(CellLocation location) { 163afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateLocation(location); 164afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 165afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 166afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 167afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onMessageWaitingIndicatorChanged(boolean mwi) { 168afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwiValue = mwi; 169afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting(); 170afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 171afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 172afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 173afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCallForwardingIndicatorChanged(boolean cfi) { 174afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfiValue = cfi; 175afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect(); 176afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 17779bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville 17879bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville @Override 17979bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville public void onCellInfoChanged(List<CellInfo> arrayCi) { 18079bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville Log.d(TAG, "[RadioInfo] onCellInfoChanged: arrayCi=" + arrayCi); 18179bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville mCellInfoValue = arrayCi; 18279bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville updateCellInfoTv(); 18379bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 184afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 185afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 186afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Handler mHandler = new Handler() { 187afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void handleMessage(Message msg) { 188afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project AsyncResult ar; 189afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (msg.what) { 190afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_PHONE_STATE_CHANGED: 191afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState(); 192afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 193afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 194afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SIGNAL_STRENGTH_CHANGED: 195afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength(); 196afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 197afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 198afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SERVICE_STATE_CHANGED: 199afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState(); 200afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePowerState(); 201afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 202afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 203afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_PREFERRED_TYPE_DONE: 204afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 205afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception == null) { 206afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int type = ((int[])ar.result)[0]; 20732310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira if (type >= mPreferredNetworkLabels.length) { 20832310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira Log.e(TAG, "[RadioInfo] EVENT_QUERY_PREFERRED_TYPE_DONE: unknown " + 20932310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "type=" + type); 21032310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira type = mPreferredNetworkLabels.length - 1; 21132310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira } 212afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setSelection(type, true); 213afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 21432310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira preferredNetworkType.setSelection(mPreferredNetworkLabels.length - 1, true); 215afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 216afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 217afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SET_PREFERRED_TYPE_DONE: 218afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 219afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 220afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getPreferredNetworkType( 221afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE)); 222afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 223afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 224afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_NEIGHBORING_CIDS_DONE: 225afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 226afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception == null) { 227afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateNeighboringCids((ArrayList<NeighboringCellInfo>)ar.result); 228afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 229afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mNeighboringCids.setText("unknown"); 230afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 231afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 232afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_SMSC_DONE: 233afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 234afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 235afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc.setText("refresh error"); 236afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 23721dd407c10bb1bade10233e8468ea6729bcf71efjsh smsc.setText((String)ar.result); 238afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 239afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 240afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_UPDATE_SMSC_DONE: 241afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setEnabled(true); 242afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 243afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 244afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc.setText("update error"); 245afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 246afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 247afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 248afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 249afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 250afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 251afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 252afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 253afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 254afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 255afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCreate(Bundle icicle) { 256afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onCreate(icicle); 257afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 258afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project setContentView(R.layout.radio_info); 259afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 260afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 261afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone = PhoneFactory.getDefaultPhone(); 262afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 263c38866843e966622346dc8f7b028749cac9c2198Wink Saville mDeviceId= (TextView) findViewById(R.id.imei); 264afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project number = (TextView) findViewById(R.id.number); 265afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project callState = (TextView) findViewById(R.id.call); 266afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project operatorName = (TextView) findViewById(R.id.operator); 267afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState = (TextView) findViewById(R.id.roaming); 268afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gsmState = (TextView) findViewById(R.id.gsm); 269afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gprsState = (TextView) findViewById(R.id.gprs); 270afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project network = (TextView) findViewById(R.id.network); 271afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm = (TextView) findViewById(R.id.dbm); 272afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwi = (TextView) findViewById(R.id.mwi); 273afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfi = (TextView) findViewById(R.id.cfi); 274afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mLocation = (TextView) findViewById(R.id.location); 275afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mNeighboringCids = (TextView) findViewById(R.id.neighboring); 27679bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville mCellInfo = (TextView) findViewById(R.id.cellinfo); 277afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 278afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project resets = (TextView) findViewById(R.id.resets); 279afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project attempts = (TextView) findViewById(R.id.attempts); 280afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project successes = (TextView) findViewById(R.id.successes); 281afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project disconnects = (TextView) findViewById(R.id.disconnects); 282afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sentSinceReceived = (TextView) findViewById(R.id.sentSinceReceived); 283afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sent = (TextView) findViewById(R.id.sent); 284afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project received = (TextView) findViewById(R.id.received); 285afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc = (EditText) findViewById(R.id.smsc); 286afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckState = (TextView) findViewById(R.id.dnsCheckState); 287afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 288afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr = (TextView) findViewById(R.id.pingIpAddr); 289afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname = (TextView) findViewById(R.id.pingHostname); 290afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest = (TextView) findViewById(R.id.httpClientTest); 291afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 292afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType); 293afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, 294afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project android.R.layout.simple_spinner_item, mPreferredNetworkLabels); 295342101a0729a30587dc4fa79b5f017634bd985c0johnwang adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 296afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setAdapter(adapter); 297afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler); 298afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 299afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project radioPowerButton = (Button) findViewById(R.id.radio_power); 300afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project radioPowerButton.setOnClickListener(mPowerButtonHandler); 301afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 3021e596f303520d211aebc87dfc0c08108efe80921Wink Saville imsRegRequiredButton = (Button) findViewById(R.id.ims_reg_required); 3031e596f303520d211aebc87dfc0c08108efe80921Wink Saville imsRegRequiredButton.setOnClickListener(mImsRegRequiredHandler); 3041e596f303520d211aebc87dfc0c08108efe80921Wink Saville 305382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville smsOverImsButton = (Button) findViewById(R.id.sms_over_ims); 306382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville smsOverImsButton.setOnClickListener(mSmsOverImsHandler); 307382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville 308426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville lteRamDumpButton = (Button) findViewById(R.id.lte_ram_dump); 309426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville lteRamDumpButton.setOnClickListener(mLteRamDumpHandler); 310426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 311afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingTestButton = (Button) findViewById(R.id.ping_test); 312afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingTestButton.setOnClickListener(mPingButtonHandler); 313afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton = (Button) findViewById(R.id.update_smsc); 314afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setOnClickListener(mUpdateSmscButtonHandler); 315afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmscButton = (Button) findViewById(R.id.refresh_smsc); 316afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmscButton.setOnClickListener(mRefreshSmscButtonHandler); 317afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckToggleButton = (Button) findViewById(R.id.dns_check_toggle); 318afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckToggleButton.setOnClickListener(mDnsCheckButtonHandler); 319342101a0729a30587dc4fa79b5f017634bd985c0johnwang 320a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink oemInfoButton = (Button) findViewById(R.id.oem_info); 321a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink oemInfoButton.setOnClickListener(mOemInfoButtonHandler); 322a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink PackageManager pm = getPackageManager(); 323a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink Intent oemInfoIntent = new Intent("com.android.settings.OEM_RADIO_INFO"); 324a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink List<ResolveInfo> oemInfoIntentList = pm.queryIntentActivities(oemInfoIntent, 0); 325a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink if (oemInfoIntentList.size() == 0) { 326a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink oemInfoButton.setEnabled(false); 327a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink } 328a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink 329afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler); 330afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED); 331afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED); 332afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifyPhoneCallState(EVENT_PHONE_STATE_CHANGED); 333342101a0729a30587dc4fa79b5f017634bd985c0johnwang 334afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getPreferredNetworkType( 335afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE)); 336afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getNeighboringCids( 337afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_QUERY_NEIGHBORING_CIDS_DONE)); 338afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 339afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project CellLocation.requestLocationUpdate(); 34079bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville 34179bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville // Get current cell info 34279bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville mCellInfoValue = mTelephonyManager.getAllCellInfo(); 34379bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville Log.d(TAG, "[RadioInfo] onCreate: mCellInfoValue=" + mCellInfoValue); 344afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 345afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 346afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 347afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project protected void onResume() { 348afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onResume(); 349afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 350afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState(); 351afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength(); 352afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting(); 353afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect(); 354afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState(); 355afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateLocation(mTelephonyManager.getCellLocation()); 356afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState(); 357afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats(); 358afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats2(); 359afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePowerState(); 3601e596f303520d211aebc87dfc0c08108efe80921Wink Saville updateImsRegRequiredState(); 361382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville updateSmsOverImsState(); 362426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville updateLteRamDumpState(); 363afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateProperties(); 364afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDnsCheckState(); 365afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 366afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Log.i(TAG, "[RadioInfo] onResume: register phone & data intents"); 367afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 368afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.registerIntent(); 369afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager.listen(mPhoneStateListener, 370afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project PhoneStateListener.LISTEN_DATA_CONNECTION_STATE 371afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_DATA_ACTIVITY 372afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_CELL_LOCATION 373afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR 37479bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR 37579bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville | PhoneStateListener.LISTEN_CELL_INFO); 376afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 377afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 378afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 379afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onPause() { 380afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onPause(); 381afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 382afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Log.i(TAG, "[RadioInfo] onPause: unregister phone & data intents"); 383afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 384afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.unregisterIntent(); 385afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); 386afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 387afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 388afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 389afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onCreateOptionsMenu(Menu menu) { 390c38866843e966622346dc8f7b028749cac9c2198Wink Saville menu.add(0, MENU_ITEM_SELECT_BAND, 0, R.string.radio_info_band_mode_label) 391c38866843e966622346dc8f7b028749cac9c2198Wink Saville .setOnMenuItemClickListener(mSelectBandCallback) 392afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .setAlphabeticShortcut('b'); 393afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_ADN, 0, 394afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewADN).setOnMenuItemClickListener(mViewADNCallback); 395afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_FDN, 0, 396afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback); 397afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_SDN, 0, 398afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback); 399afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_GET_PDP_LIST, 400afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 0, R.string.radioInfo_menu_getPDP).setOnMenuItemClickListener(mGetPdpList); 401afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_TOGGLE_DATA, 402a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink 0, DISABLE_DATA_STR).setOnMenuItemClickListener(mToggleData); 403afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 404afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 405afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 406afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 407c38866843e966622346dc8f7b028749cac9c2198Wink Saville public boolean onPrepareOptionsMenu(Menu menu) { 408afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // Get the TOGGLE DATA menu item in the right state. 409afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project MenuItem item = menu.findItem(MENU_ITEM_TOGGLE_DATA); 410afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 411afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project boolean visible = true; 412afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 413afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 414afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 415afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_SUSPENDED: 416a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink item.setTitle(DISABLE_DATA_STR); 417afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 418afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 419a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink item.setTitle(ENABLE_DATA_STR); 420afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 421afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 422afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project visible = false; 423afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 424afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 425afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project item.setVisible(visible); 426afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 427afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 428afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 429afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean isRadioOn() { 430afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return phone.getServiceState().getState() != ServiceState.STATE_POWER_OFF; 431afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 432342101a0729a30587dc4fa79b5f017634bd985c0johnwang 433afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void updatePowerState() { 434afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String buttonText = isRadioOn() ? 435afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project getString(R.string.turn_off_radio) : 436afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project getString(R.string.turn_on_radio); 437c38866843e966622346dc8f7b028749cac9c2198Wink Saville radioPowerButton.setText(buttonText); 438afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 439afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 440afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void updateDnsCheckState() { 4415304c7e38f89f7616bd4c834a14b4d764356d19bMike Lockwood dnsCheckState.setText(phone.isDnsCheckDisabled() ? 442afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "0.0.0.0 allowed" :"0.0.0.0 not allowed"); 443afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 444e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 445afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 446afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength() { 447e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville // TODO PhoneStateIntentReceiver is deprecated and PhoneStateListener 448e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville // should probably used instead. 449e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville int state = mPhoneStateReceiver.getServiceState().getState(); 450afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 451afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 452afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if ((ServiceState.STATE_OUT_OF_SERVICE == state) || 453afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project (ServiceState.STATE_POWER_OFF == state)) { 454afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm.setText("0"); 455afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 456e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 457afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int signalDbm = mPhoneStateReceiver.getSignalStrengthDbm(); 458e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 459afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (-1 == signalDbm) signalDbm = 0; 460afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 461882c74a6799d24c766e3db81a316743bbe11e0beWink Saville int signalAsu = mPhoneStateReceiver.getSignalStrengthLevelAsu(); 462afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 463afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (-1 == signalAsu) signalAsu = 0; 464afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 465afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm.setText(String.valueOf(signalDbm) + " " 466afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + r.getString(R.string.radioInfo_display_dbm) + " " 467afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + String.valueOf(signalAsu) + " " 468afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + r.getString(R.string.radioInfo_display_asu)); 469afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 470afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 471afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateLocation(CellLocation location) { 472534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh Resources r = getResources(); 473c38866843e966622346dc8f7b028749cac9c2198Wink Saville if (location instanceof GsmCellLocation) { 474c38866843e966622346dc8f7b028749cac9c2198Wink Saville GsmCellLocation loc = (GsmCellLocation)location; 475534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lac = loc.getLac(); 476534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int cid = loc.getCid(); 477534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText(r.getString(R.string.radioInfo_lac) + " = " 478534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lac == -1) ? "unknown" : Integer.toHexString(lac)) 479534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 480534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + r.getString(R.string.radioInfo_cid) + " = " 481534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((cid == -1) ? "unknown" : Integer.toHexString(cid))); 482534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh } else if (location instanceof CdmaCellLocation) { 483534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh CdmaCellLocation loc = (CdmaCellLocation)location; 484534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int bid = loc.getBaseStationId(); 485534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int sid = loc.getSystemId(); 486534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int nid = loc.getNetworkId(); 487534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lat = loc.getBaseStationLatitude(); 488534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lon = loc.getBaseStationLongitude(); 489534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText("BID = " 490534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((bid == -1) ? "unknown" : Integer.toHexString(bid)) 491534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 492534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "SID = " 493534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((sid == -1) ? "unknown" : Integer.toHexString(sid)) 494534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 495534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "NID = " 496534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((nid == -1) ? "unknown" : Integer.toHexString(nid)) 497534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "\n" 498534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "LAT = " 499534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lat == -1) ? "unknown" : Integer.toHexString(lat)) 500534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 501534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "LONG = " 502534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lon == -1) ? "unknown" : Integer.toHexString(lon))); 503534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh } else { 504534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText("unknown"); 505c38866843e966622346dc8f7b028749cac9c2198Wink Saville } 506afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 507afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 508afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 509afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 510afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateNeighboringCids(ArrayList<NeighboringCellInfo> cids) { 511f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang StringBuilder sb = new StringBuilder(); 512f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang 513afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (cids != null) { 514afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if ( cids.isEmpty() ) { 515f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append("no neighboring cells"); 516afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 517afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project for (NeighboringCellInfo cell : cids) { 518f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append(cell.toString()).append(" "); 519afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 520afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 521afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 522f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append("unknown"); 523afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 524f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang mNeighboringCids.setText(sb.toString()); 525afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 526afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 52779bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville private final void updateCellInfoTv() { 52879bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville StringBuilder value = new StringBuilder(); 52979bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville if (mCellInfoValue != null) { 53079bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville int index = 0; 53179bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville for (CellInfo ci : mCellInfoValue) { 53279bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append('['); 53379bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append(index); 53479bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append("]="); 53579bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append(ci.toString()); 53679bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville if (++index < mCellInfoValue.size()) { 53779bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append("\n"); 53879bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 53979bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 54079bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 54179bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville mCellInfo.setText(value.toString()); 54279bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 54379bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville 544afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 545afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting() { 546afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwi.setText(String.valueOf(mMwiValue)); 547afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 548afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 549afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 550afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect() { 551afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfi.setText(String.valueOf(mCfiValue)); 552afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 553afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 554afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 555afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 556afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState() { 557afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ServiceState serviceState = mPhoneStateReceiver.getServiceState(); 558afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = serviceState.getState(); 559afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 560afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 561342101a0729a30587dc4fa79b5f017634bd985c0johnwang 562afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 563afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_IN_SERVICE: 564afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_in); 565afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 566afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_OUT_OF_SERVICE: 567afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_EMERGENCY_ONLY: 568afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_emergency); 569afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 570afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_POWER_OFF: 571afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_off); 572afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 573afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 574342101a0729a30587dc4fa79b5f017634bd985c0johnwang 575afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gsmState.setText(display); 576342101a0729a30587dc4fa79b5f017634bd985c0johnwang 577afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (serviceState.getRoaming()) { 578afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState.setText(R.string.radioInfo_roaming_in); 579afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 580afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState.setText(R.string.radioInfo_roaming_not); 581afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 582afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 583afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project operatorName.setText(serviceState.getOperatorAlphaLong()); 584afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 585afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 586afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 587afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState() { 5885543404ae0ec9635b59d37fa01074ea598d539ebWink Saville PhoneConstants.State state = mPhoneStateReceiver.getPhoneState(); 589afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 590afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 591afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 592afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 593afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case IDLE: 594afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_idle); 595afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 596afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case RINGING: 597afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_ringing); 598afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 599afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case OFFHOOK: 600afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_offhook); 601afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 602afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 603afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 604afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project callState.setText(display); 605afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 606afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 607afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 608afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState() { 609afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 610afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 611afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 612afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 613afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 614afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 615afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_connected); 616afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 617afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTING: 618afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_connecting); 619afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 620afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 621afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_disconnected); 622afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 623afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_SUSPENDED: 624afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_suspended); 625afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 626afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 627342101a0729a30587dc4fa79b5f017634bd985c0johnwang 628afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gprsState.setText(display); 629afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 630afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 631afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateNetworkType() { 632afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 633afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = SystemProperties.get(TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE, 634afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project r.getString(R.string.radioInfo_unknown)); 635afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 636afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project network.setText(display); 637afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 638afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 639afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 640afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateProperties() { 641afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String s; 642afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 643afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 644afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = phone.getDeviceId(); 645342101a0729a30587dc4fa79b5f017634bd985c0johnwang if (s == null) s = r.getString(R.string.radioInfo_unknown); 646c38866843e966622346dc8f7b028749cac9c2198Wink Saville mDeviceId.setText(s); 647342101a0729a30587dc4fa79b5f017634bd985c0johnwang 648c38866843e966622346dc8f7b028749cac9c2198Wink Saville 649afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = phone.getLine1Number(); 650342101a0729a30587dc4fa79b5f017634bd985c0johnwang if (s == null) s = r.getString(R.string.radioInfo_unknown); 651afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project number.setText(s); 652afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 653afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 654afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateDataStats() { 655afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String s; 656afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 657afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.radio-reset", "0"); 658afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project resets.setText(s); 659afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 660afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.attempt-gprs", "0"); 661afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project attempts.setText(s); 662afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 663afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.succeed-gprs", "0"); 664afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project successes.setText(s); 665afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 666afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //s = SystemProperties.get("net.gsm.disconnect", "0"); 667afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //disconnects.setText(s); 668afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 669afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.ppp.reset-by-timeout", "0"); 670afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sentSinceReceived.setText(s); 671afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 672afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 673afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateDataStats2() { 674afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 675afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 6769302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey long txPackets = TrafficStats.getMobileTxPackets(); 6779302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey long rxPackets = TrafficStats.getMobileRxPackets(); 6789302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey long txBytes = TrafficStats.getMobileTxBytes(); 6799302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey long rxBytes = TrafficStats.getMobileRxBytes(); 680342101a0729a30587dc4fa79b5f017634bd985c0johnwang 6819302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey String packets = r.getString(R.string.radioInfo_display_packets); 6829302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey String bytes = r.getString(R.string.radioInfo_display_bytes); 683342101a0729a30587dc4fa79b5f017634bd985c0johnwang 6849302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey sent.setText(txPackets + " " + packets + ", " + txBytes + " " + bytes); 6859302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey received.setText(rxPackets + " " + packets + ", " + rxBytes + " " + bytes); 686afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 687afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 688afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 689afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Ping a IP address. 690afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 691afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void pingIpAddr() { 692afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 693afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // This is hardcoded IP addr. This is for testing purposes. 694afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // We would need to get rid of this before release. 695afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String ipAddress = "74.125.47.104"; 696afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Process p = Runtime.getRuntime().exec("ping -c 1 " + ipAddress); 697afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int status = p.waitFor(); 698afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (status == 0) { 699afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Pass"; 700afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 701afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: IP addr not reachable"; 702afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 703afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 704afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: IOException"; 705afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (InterruptedException e) { 706afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: InterruptedException"; 707afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 708afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 709afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 710afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 711afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Ping a host name 712afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 713afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void pingHostname() { 714afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 715342101a0729a30587dc4fa79b5f017634bd985c0johnwang Process p = Runtime.getRuntime().exec("ping -c 1 www.google.com"); 716afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int status = p.waitFor(); 717afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (status == 0) { 718afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Pass"; 719afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 720afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: Host unreachable"; 721afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 722afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (UnknownHostException e) { 723afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: Unknown Host"; 724afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 725afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult= "Fail: IOException"; 726afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (InterruptedException e) { 727afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: InterruptedException"; 728afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 729afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 730afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 731afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 732afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * This function checks for basic functionality of HTTP Client. 733afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 734afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void httpClientTest() { 735afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpClient client = new DefaultHttpClient(); 736afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 737afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpGet request = new HttpGet("http://www.google.com"); 738afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpResponse response = client.execute(request); 739afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (response.getStatusLine().getStatusCode() == 200) { 740afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Pass"; 741afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 742afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Fail: Code: " + String.valueOf(response); 743afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 744afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project request.abort(); 745afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 746afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Fail: IOException"; 747afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 748afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 749afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 750afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void refreshSmsc() { 75121dd407c10bb1bade10233e8468ea6729bcf71efjsh phone.getSmscAddress(mHandler.obtainMessage(EVENT_QUERY_SMSC_DONE)); 752afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 753afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 754afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updatePingState() { 755afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project final Handler handler = new Handler(); 756afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // Set all to unknown since the threads will take a few secs to update. 757afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = getResources().getString(R.string.radioInfo_unknown); 758afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = getResources().getString(R.string.radioInfo_unknown); 759afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = getResources().getString(R.string.radioInfo_unknown); 760afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 761afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr.setText(mPingIpAddrResult); 762afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname.setText(mPingHostnameResult); 763afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest.setText(mHttpClientTestResult); 764afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 765afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project final Runnable updatePingResults = new Runnable() { 766afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 767afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr.setText(mPingIpAddrResult); 768afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname.setText(mPingHostnameResult); 769afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest.setText(mHttpClientTestResult); 770afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 771afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 772afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread ipAddr = new Thread() { 773afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 774afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 775afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingIpAddr(); 776afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 777afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 778afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 779afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ipAddr.start(); 780afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 781afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread hostname = new Thread() { 782afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 783afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 784afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingHostname(); 785afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 786afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 787afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 788afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project hostname.start(); 789afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 790afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread httpClient = new Thread() { 791afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 792afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 793afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project httpClientTest(); 794afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 795afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 796afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 797afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project httpClient.start(); 798afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 799afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 800afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updatePdpList() { 801afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project StringBuilder sb = new StringBuilder("========DATA=======\n"); 802afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 8032c3ec09261bf1503e75328175b5286af5676845eWink Saville// List<DataConnection> dcs = phone.getCurrentDataConnectionList(); 8042c3ec09261bf1503e75328175b5286af5676845eWink Saville// 8052c3ec09261bf1503e75328175b5286af5676845eWink Saville// for (DataConnection dc : dcs) { 8062c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" State=").append(dc.getStateAsString()).append("\n"); 8072c3ec09261bf1503e75328175b5286af5676845eWink Saville// if (dc.isActive()) { 8082c3ec09261bf1503e75328175b5286af5676845eWink Saville// long timeElapsed = 8092c3ec09261bf1503e75328175b5286af5676845eWink Saville// (System.currentTimeMillis() - dc.getConnectionTime())/1000; 8102c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" connected at ") 8112c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(DateUtils.timeString(dc.getConnectionTime())) 8122c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(" and elapsed ") 8132c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(DateUtils.formatElapsedTime(timeElapsed)); 8142c3ec09261bf1503e75328175b5286af5676845eWink Saville// 8152c3ec09261bf1503e75328175b5286af5676845eWink Saville// if (dc instanceof GsmDataConnection) { 8162c3ec09261bf1503e75328175b5286af5676845eWink Saville// GsmDataConnection pdp = (GsmDataConnection)dc; 8172c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append("\n to ") 8182c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(pdp.getApn().toString()); 8192c3ec09261bf1503e75328175b5286af5676845eWink Saville// } 8202c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append("\nLinkProperties: "); 8212c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(phone.getLinkProperties(phone.getActiveApnTypes()[0]).toString()); 8222c3ec09261bf1503e75328175b5286af5676845eWink Saville// } else if (dc.isInactive()) { 8232c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" disconnected with last try at ") 8242c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(DateUtils.timeString(dc.getLastFailTime())) 8252c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append("\n fail because ") 8262c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(dc.getLastFailCause().toString()); 8272c3ec09261bf1503e75328175b5286af5676845eWink Saville// } else { 8282c3ec09261bf1503e75328175b5286af5676845eWink Saville// if (dc instanceof GsmDataConnection) { 8292c3ec09261bf1503e75328175b5286af5676845eWink Saville// GsmDataConnection pdp = (GsmDataConnection)dc; 8302c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" is connecting to ") 8312c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(pdp.getApn().toString()); 8322c3ec09261bf1503e75328175b5286af5676845eWink Saville// } else { 8332c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" is connecting"); 8342c3ec09261bf1503e75328175b5286af5676845eWink Saville// } 8352c3ec09261bf1503e75328175b5286af5676845eWink Saville// } 8362c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append("\n==================="); 8372c3ec09261bf1503e75328175b5286af5676845eWink Saville// } 838afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 839afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project disconnects.setText(sb.toString()); 840afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 841afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 842afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewADNCallback = new MenuItem.OnMenuItemClickListener() { 843afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 844afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent(Intent.ACTION_VIEW); 845afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 846afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 847afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 848afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 849afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 850afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 851afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.SimContacts"); 852afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 853afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 854afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 855afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 856afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 857afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewFDNCallback = new MenuItem.OnMenuItemClickListener() { 858afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 859afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent(Intent.ACTION_VIEW); 860afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 861afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 862afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 863afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 864afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 865afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 866afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.FdnList"); 867afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 868afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 869afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 870afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 871afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 872afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewSDNCallback = new MenuItem.OnMenuItemClickListener() { 873afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 874afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent( 875c38866843e966622346dc8f7b028749cac9c2198Wink Saville Intent.ACTION_VIEW, Uri.parse("content://icc/sdn")); 876afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 877afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 878afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 879afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 880afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 881afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 882afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.ADNList"); 883afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 884afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 885afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 886afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 887afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 888a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink private MenuItem.OnMenuItemClickListener mGetPdpList = new MenuItem.OnMenuItemClickListener() { 889a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink public boolean onMenuItemClick(MenuItem item) { 890a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink phone.getDataCallList(null); 891a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink return true; 892afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 893a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink }; 894afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 895a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink private MenuItem.OnMenuItemClickListener mSelectBandCallback = new MenuItem.OnMenuItemClickListener() { 896afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 897a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink Intent intent = new Intent(); 898a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink intent.setClass(RadioInfo.this, BandMode.class); 899a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink startActivity(intent); 900afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 901afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 902afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 903342101a0729a30587dc4fa79b5f017634bd985c0johnwang 904afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mToggleData = new MenuItem.OnMenuItemClickListener() { 905afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 90699be5007ef13a403404d5455c622cdf7af96a1caRobert Greenwalt ConnectivityManager cm = 90799be5007ef13a403404d5455c622cdf7af96a1caRobert Greenwalt (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 908afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 909afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 910afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 91199be5007ef13a403404d5455c622cdf7af96a1caRobert Greenwalt cm.setMobileDataEnabled(false); 912afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 913afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 91499be5007ef13a403404d5455c622cdf7af96a1caRobert Greenwalt cm.setMobileDataEnabled(true); 915afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 916afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 917afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // do nothing 918afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 919afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 920afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 921afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 922afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 923afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 924afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mPowerButtonHandler = new OnClickListener() { 925afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 926afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //log("toggle radio power: currently " + (isRadioOn()?"on":"off")); 927afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.setRadioPower(!isRadioOn()); 928afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 929afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 930afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 931426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private Button imsRegRequiredButton; 932426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville static final String PROPERTY_IMS_REG_REQUIRED = "persist.radio.imsregrequired"; 9331e596f303520d211aebc87dfc0c08108efe80921Wink Saville OnClickListener mImsRegRequiredHandler = new OnClickListener() { 9341e596f303520d211aebc87dfc0c08108efe80921Wink Saville @Override 9351e596f303520d211aebc87dfc0c08108efe80921Wink Saville public void onClick(View v) { 9361e596f303520d211aebc87dfc0c08108efe80921Wink Saville Log.d(TAG, String.format("toggle %s: currently %s", 937426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville PROPERTY_IMS_REG_REQUIRED, (isImsRegRequired() ? "on":"off"))); 9381e596f303520d211aebc87dfc0c08108efe80921Wink Saville boolean newValue = !isImsRegRequired(); 939426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville SystemProperties.set(PROPERTY_IMS_REG_REQUIRED, 9401e596f303520d211aebc87dfc0c08108efe80921Wink Saville newValue ? "1":"0"); 9411e596f303520d211aebc87dfc0c08108efe80921Wink Saville updateImsRegRequiredState(); 9421e596f303520d211aebc87dfc0c08108efe80921Wink Saville } 9431e596f303520d211aebc87dfc0c08108efe80921Wink Saville }; 9441e596f303520d211aebc87dfc0c08108efe80921Wink Saville 945426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private boolean isImsRegRequired() { 946426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville return SystemProperties.getBoolean(PROPERTY_IMS_REG_REQUIRED, false); 947426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 948426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 949426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private void updateImsRegRequiredState() { 950426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville Log.d(TAG, "updateImsRegRequiredState isImsRegRequired()=" + isImsRegRequired()); 951426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville String buttonText = isImsRegRequired() ? 952426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.ims_reg_required_off) : 953426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.ims_reg_required_on); 954426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville imsRegRequiredButton.setText(buttonText); 955426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 956426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 957426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private Button smsOverImsButton; 958382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville static final String PROPERTY_SMS_OVER_IMS = "persist.radio.imsallowmtsms"; 959382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville OnClickListener mSmsOverImsHandler = new OnClickListener() { 960382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville @Override 961382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville public void onClick(View v) { 962382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville Log.d(TAG, String.format("toggle %s: currently %s", 963382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville PROPERTY_SMS_OVER_IMS, (isSmsOverImsEnabled() ? "on":"off"))); 964382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville boolean newValue = !isSmsOverImsEnabled(); 965382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville SystemProperties.set(PROPERTY_SMS_OVER_IMS, newValue ? "1":"0"); 966382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville updateSmsOverImsState(); 967382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville } 968382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville }; 969382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville 970426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private boolean isSmsOverImsEnabled() { 971426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville return SystemProperties.getBoolean(PROPERTY_SMS_OVER_IMS, false); 972426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 973426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 974426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private void updateSmsOverImsState() { 975426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville Log.d(TAG, "updateSmsOverImsState isSmsOverImsEnabled()=" + isSmsOverImsEnabled()); 976426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville String buttonText = isSmsOverImsEnabled() ? 977426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.sms_over_ims_off) : 978426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.sms_over_ims_on); 979426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville smsOverImsButton.setText(buttonText); 980426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 981426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 982426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private Button lteRamDumpButton; 983426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville static final String PROPERTY_LTE_RAM_DUMP = "persist.radio.ramdump"; 984426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville OnClickListener mLteRamDumpHandler = new OnClickListener() { 985426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville @Override 986426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville public void onClick(View v) { 987426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville Log.d(TAG, String.format("toggle %s: currently %s", 988426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville PROPERTY_LTE_RAM_DUMP, (isSmsOverImsEnabled() ? "on":"off"))); 989426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville boolean newValue = !isLteRamDumpEnabled(); 990426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville SystemProperties.set(PROPERTY_LTE_RAM_DUMP, newValue ? "1":"0"); 991426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville updateLteRamDumpState(); 992426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 993426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville }; 994426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 995426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private boolean isLteRamDumpEnabled() { 996426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville return SystemProperties.getBoolean(PROPERTY_LTE_RAM_DUMP, false); 997426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 998426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 999426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private void updateLteRamDumpState() { 1000426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville Log.d(TAG, "updateLteRamDumpState isLteRamDumpEnabled()=" + isLteRamDumpEnabled()); 1001426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville String buttonText = isLteRamDumpEnabled() ? 1002426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.lte_ram_dump_off) : 1003426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.lte_ram_dump_on); 1004426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville lteRamDumpButton.setText(buttonText); 1005426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 1006426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 1007a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink OnClickListener mDnsCheckButtonHandler = new OnClickListener() { 1008afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1009a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink phone.disableDnsCheck(!phone.isDnsCheckDisabled()); 1010a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink updateDnsCheckState(); 1011afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1012afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1013342101a0729a30587dc4fa79b5f017634bd985c0johnwang 1014a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink OnClickListener mOemInfoButtonHandler = new OnClickListener() { 1015afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1016a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink Intent intent = new Intent("com.android.settings.OEM_RADIO_INFO"); 1017a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink try { 1018a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink startActivity(intent); 1019a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink } catch (android.content.ActivityNotFoundException ex) { 1020a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink Log.d(TAG, "OEM-specific Info/Settings Activity Not Found : " + ex); 1021a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink // If the activity does not exist, there are no OEM 1022a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink // settings, and so we can just do nothing... 1023a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink } 1024afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1025afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1026342101a0729a30587dc4fa79b5f017634bd985c0johnwang 1027afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mPingButtonHandler = new OnClickListener() { 1028afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1029afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePingState(); 1030afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1031afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1032afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1033afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mUpdateSmscButtonHandler = new OnClickListener() { 1034afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1035afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setEnabled(false); 103621dd407c10bb1bade10233e8468ea6729bcf71efjsh phone.setSmscAddress(smsc.getText().toString(), 1037afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_UPDATE_SMSC_DONE)); 1038afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1039afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1040afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1041afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mRefreshSmscButtonHandler = new OnClickListener() { 1042afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1043afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmsc(); 1044afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1045afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1046afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1047afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project AdapterView.OnItemSelectedListener 1048afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPreferredNetworkHandler = new AdapterView.OnItemSelectedListener() { 1049afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onItemSelected(AdapterView parent, View v, int pos, long id) { 1050afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Message msg = mHandler.obtainMessage(EVENT_SET_PREFERRED_TYPE_DONE); 105132310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira if (pos>=0 && pos<=(mPreferredNetworkLabels.length - 2)) { 1052afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.setPreferredNetworkType(pos, msg); 1053afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1054afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1055afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1056afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onNothingSelected(AdapterView parent) { 1057afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1058afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1059afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1060afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String[] mPreferredNetworkLabels = { 106187fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "WCDMA preferred", 106287fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM only", 106387fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "WCDMA only", 106487fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM auto (PRL)", 106587fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "CDMA auto (PRL)", 106687fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "CDMA only", 106787fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "EvDo only", 106887fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM/CDMA auto (PRL)", 106932310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "LTE/CDMA auto (PRL)", 107032310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "LTE/GSM auto (PRL)", 107132310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "LTE/GSM/CDMA auto (PRL)", 107232310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "LTE only", 107387fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "Unknown"}; 1074afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project} 1075