RadioInfo.java revision 0d4c500e98f7499db524c8073e2c8e9dfaa1febb
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; 259302986035f46d2868c23db6349fd04b543eb676Jeff Sharkeyimport android.net.TrafficStats; 26afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.net.Uri; 27afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.AsyncResult; 28afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Bundle; 29afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Handler; 30afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Message; 31afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.SystemProperties; 3279bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Savilleimport android.telephony.CellInfo; 33afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.CellLocation; 344f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Savilleimport android.telephony.DataConnectionRealTimeInfo; 35afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.PhoneStateListener; 36afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.ServiceState; 37afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.TelephonyManager; 38afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.NeighboringCellInfo; 39534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jshimport android.telephony.cdma.CdmaCellLocation; 40afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.gsm.GsmCellLocation; 41afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.util.Log; 42afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.Menu; 43afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.MenuItem; 44afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.View; 45afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.View.OnClickListener; 46afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.AdapterView; 47afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.ArrayAdapter; 48afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.Button; 49afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.Spinner; 50afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.TextView; 51afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.EditText; 52afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 53afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.Phone; 545543404ae0ec9635b59d37fa01074ea598d539ebWink Savilleimport com.android.internal.telephony.PhoneConstants; 55afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.PhoneFactory; 56afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.PhoneStateIntentReceiver; 57afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.TelephonyProperties; 58afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.HttpResponse; 59afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.client.HttpClient; 60afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.client.methods.HttpGet; 61afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.impl.client.DefaultHttpClient; 62afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 63afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.io.IOException; 64afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.net.UnknownHostException; 65afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.util.ArrayList; 66afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.util.List; 67afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 68afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectpublic class RadioInfo extends Activity { 69afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final String TAG = "phone"; 70342101a0729a30587dc4fa79b5f017634bd985c0johnwang 71afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_PHONE_STATE_CHANGED = 100; 72afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SIGNAL_STRENGTH_CHANGED = 200; 73afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SERVICE_STATE_CHANGED = 300; 74afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_CFI_CHANGED = 302; 75afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 76afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_PREFERRED_TYPE_DONE = 1000; 77afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SET_PREFERRED_TYPE_DONE = 1001; 78afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_NEIGHBORING_CIDS_DONE = 1002; 79afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_SMSC_DONE = 1005; 80afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_UPDATE_SMSC_DONE = 1006; 81afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 82afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_SELECT_BAND = 0; 83afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_ADN = 1; 84afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_FDN = 2; 85afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_SDN = 3; 86afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_GET_PDP_LIST = 4; 87afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_TOGGLE_DATA = 5; 88a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink 89a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink static final String ENABLE_DATA_STR = "Enable data connection"; 90a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink static final String DISABLE_DATA_STR = "Disable data connection"; 91afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 92c38866843e966622346dc8f7b028749cac9c2198Wink Saville private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA 93afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView number; 94afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView callState; 95afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView operatorName; 96afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView roamingState; 97afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView gsmState; 98afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView gprsState; 99afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView network; 100afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView dBm; 101afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mMwi; 102afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mCfi; 103afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mLocation; 104afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mNeighboringCids; 10579bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville private TextView mCellInfo; 1064f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville private TextView mDcRtInfoTv; 107afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView resets; 108afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView attempts; 109afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView successes; 110afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView disconnects; 111afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView sentSinceReceived; 112afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView sent; 113afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView received; 114afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mPingIpAddr; 115afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mPingHostname; 116afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mHttpClientTest; 117afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView dnsCheckState; 118afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private EditText smsc; 119afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button radioPowerButton; 120bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville private Button cellInfoListRateButton; 121afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button dnsCheckToggleButton; 122afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button pingTestButton; 123afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button updateSmscButton; 124afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button refreshSmscButton; 125a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink private Button oemInfoButton; 126afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Spinner preferredNetworkType; 127afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 128afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TelephonyManager mTelephonyManager; 129afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Phone phone = null; 130afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private PhoneStateIntentReceiver mPhoneStateReceiver; 131afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 132afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mPingIpAddrResult; 133afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mPingHostnameResult; 134afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mHttpClientTestResult; 135afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean mMwiValue = false; 136afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean mCfiValue = false; 13779bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville private List<CellInfo> mCellInfoValue; 138afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 139afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private PhoneStateListener mPhoneStateListener = new PhoneStateListener() { 140afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 141afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onDataConnectionStateChanged(int state) { 142afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState(); 143afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats(); 144afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePdpList(); 145afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateNetworkType(); 146afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 147afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 148afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 149afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onDataActivity(int direction) { 150afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats2(); 151afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 152afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 153afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 154afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCellLocationChanged(CellLocation location) { 155afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateLocation(location); 156afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 157afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 158afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 159afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onMessageWaitingIndicatorChanged(boolean mwi) { 160afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwiValue = mwi; 161afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting(); 162afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 163afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 164afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 165afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCallForwardingIndicatorChanged(boolean cfi) { 166afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfiValue = cfi; 167afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect(); 168afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 16979bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville 17079bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville @Override 17179bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville public void onCellInfoChanged(List<CellInfo> arrayCi) { 172bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("onCellInfoChanged: arrayCi=" + arrayCi); 173bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville updateCellInfoTv(arrayCi); 17479bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 1754f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville 1764f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville @Override 1774f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville public void onDataConnectionRealTimeInfoChanged(DataConnectionRealTimeInfo dcRtInfo) { 1784f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville log("onDataConnectionRealTimeInfoChanged: dcRtInfo=" + dcRtInfo); 1794f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville updateDcRtInfoTv(dcRtInfo); 1804f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville } 181afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 182afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 183afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Handler mHandler = new Handler() { 184afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void handleMessage(Message msg) { 185afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project AsyncResult ar; 186afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (msg.what) { 187afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_PHONE_STATE_CHANGED: 188afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState(); 189afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 190afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 191afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SIGNAL_STRENGTH_CHANGED: 192afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength(); 193afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 194afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 195afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SERVICE_STATE_CHANGED: 196afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState(); 197afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePowerState(); 198afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 199afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 200afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_PREFERRED_TYPE_DONE: 201afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 202afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception == null) { 203afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int type = ((int[])ar.result)[0]; 20432310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira if (type >= mPreferredNetworkLabels.length) { 205bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("EVENT_QUERY_PREFERRED_TYPE_DONE: unknown " + 20632310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "type=" + type); 20732310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira type = mPreferredNetworkLabels.length - 1; 20832310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira } 209afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setSelection(type, true); 210afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 21132310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira preferredNetworkType.setSelection(mPreferredNetworkLabels.length - 1, true); 212afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 213afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 214afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SET_PREFERRED_TYPE_DONE: 215afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 216afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 217afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getPreferredNetworkType( 218afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE)); 219afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 220afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 221afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_NEIGHBORING_CIDS_DONE: 222afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 223afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception == null) { 224afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateNeighboringCids((ArrayList<NeighboringCellInfo>)ar.result); 225afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 226afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mNeighboringCids.setText("unknown"); 227afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 228afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 229afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_SMSC_DONE: 230afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 231afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 232afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc.setText("refresh error"); 233afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 23421dd407c10bb1bade10233e8468ea6729bcf71efjsh smsc.setText((String)ar.result); 235afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 236afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 237afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_UPDATE_SMSC_DONE: 238afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setEnabled(true); 239afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 240afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 241afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc.setText("update error"); 242afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 243afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 244afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 245afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 246afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 247afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 248afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 249afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 250afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 251afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 252afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCreate(Bundle icicle) { 253afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onCreate(icicle); 254afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 255afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project setContentView(R.layout.radio_info); 256afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 257afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 258afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone = PhoneFactory.getDefaultPhone(); 259afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 260c38866843e966622346dc8f7b028749cac9c2198Wink Saville mDeviceId= (TextView) findViewById(R.id.imei); 261afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project number = (TextView) findViewById(R.id.number); 262afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project callState = (TextView) findViewById(R.id.call); 263afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project operatorName = (TextView) findViewById(R.id.operator); 264afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState = (TextView) findViewById(R.id.roaming); 265afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gsmState = (TextView) findViewById(R.id.gsm); 266afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gprsState = (TextView) findViewById(R.id.gprs); 267afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project network = (TextView) findViewById(R.id.network); 268afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm = (TextView) findViewById(R.id.dbm); 269afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwi = (TextView) findViewById(R.id.mwi); 270afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfi = (TextView) findViewById(R.id.cfi); 271afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mLocation = (TextView) findViewById(R.id.location); 272afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mNeighboringCids = (TextView) findViewById(R.id.neighboring); 27379bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville mCellInfo = (TextView) findViewById(R.id.cellinfo); 2744f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville mDcRtInfoTv = (TextView) findViewById(R.id.dcrtinfo); 275afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 276afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project resets = (TextView) findViewById(R.id.resets); 277afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project attempts = (TextView) findViewById(R.id.attempts); 278afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project successes = (TextView) findViewById(R.id.successes); 279afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project disconnects = (TextView) findViewById(R.id.disconnects); 280afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sentSinceReceived = (TextView) findViewById(R.id.sentSinceReceived); 281afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sent = (TextView) findViewById(R.id.sent); 282afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project received = (TextView) findViewById(R.id.received); 283afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc = (EditText) findViewById(R.id.smsc); 284afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckState = (TextView) findViewById(R.id.dnsCheckState); 285afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 286afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr = (TextView) findViewById(R.id.pingIpAddr); 287afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname = (TextView) findViewById(R.id.pingHostname); 288afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest = (TextView) findViewById(R.id.httpClientTest); 289afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 290afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType); 291afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, 292afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project android.R.layout.simple_spinner_item, mPreferredNetworkLabels); 293342101a0729a30587dc4fa79b5f017634bd985c0johnwang adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 294afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setAdapter(adapter); 295afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler); 296afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 297afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project radioPowerButton = (Button) findViewById(R.id.radio_power); 298afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project radioPowerButton.setOnClickListener(mPowerButtonHandler); 299afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 300bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville cellInfoListRateButton = (Button) findViewById(R.id.cell_info_list_rate); 301bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville cellInfoListRateButton.setOnClickListener(mCellInfoListRateHandler); 302bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville 3031e596f303520d211aebc87dfc0c08108efe80921Wink Saville imsRegRequiredButton = (Button) findViewById(R.id.ims_reg_required); 3041e596f303520d211aebc87dfc0c08108efe80921Wink Saville imsRegRequiredButton.setOnClickListener(mImsRegRequiredHandler); 3051e596f303520d211aebc87dfc0c08108efe80921Wink Saville 306382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville smsOverImsButton = (Button) findViewById(R.id.sms_over_ims); 307382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville smsOverImsButton.setOnClickListener(mSmsOverImsHandler); 308382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville 309426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville lteRamDumpButton = (Button) findViewById(R.id.lte_ram_dump); 310426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville lteRamDumpButton.setOnClickListener(mLteRamDumpHandler); 311426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 312afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingTestButton = (Button) findViewById(R.id.ping_test); 313afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingTestButton.setOnClickListener(mPingButtonHandler); 314afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton = (Button) findViewById(R.id.update_smsc); 315afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setOnClickListener(mUpdateSmscButtonHandler); 316afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmscButton = (Button) findViewById(R.id.refresh_smsc); 317afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmscButton.setOnClickListener(mRefreshSmscButtonHandler); 318afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckToggleButton = (Button) findViewById(R.id.dns_check_toggle); 319afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckToggleButton.setOnClickListener(mDnsCheckButtonHandler); 320342101a0729a30587dc4fa79b5f017634bd985c0johnwang 321a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink oemInfoButton = (Button) findViewById(R.id.oem_info); 322a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink oemInfoButton.setOnClickListener(mOemInfoButtonHandler); 323a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink PackageManager pm = getPackageManager(); 324a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink Intent oemInfoIntent = new Intent("com.android.settings.OEM_RADIO_INFO"); 325a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink List<ResolveInfo> oemInfoIntentList = pm.queryIntentActivities(oemInfoIntent, 0); 326a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink if (oemInfoIntentList.size() == 0) { 327a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink oemInfoButton.setEnabled(false); 328a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink } 329a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink 330afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler); 331afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED); 332afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED); 333afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifyPhoneCallState(EVENT_PHONE_STATE_CHANGED); 334342101a0729a30587dc4fa79b5f017634bd985c0johnwang 335afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getPreferredNetworkType( 336afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE)); 337afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getNeighboringCids( 338afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_QUERY_NEIGHBORING_CIDS_DONE)); 339afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 340afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project CellLocation.requestLocationUpdate(); 34179bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville 34279bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville // Get current cell info 34379bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville mCellInfoValue = mTelephonyManager.getAllCellInfo(); 344bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("onCreate: mCellInfoValue=" + mCellInfoValue); 345afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 346afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 347afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 348afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project protected void onResume() { 349afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onResume(); 350afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 351afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState(); 352afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength(); 353afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting(); 354afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect(); 355afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState(); 356afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateLocation(mTelephonyManager.getCellLocation()); 357afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState(); 358afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats(); 359afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats2(); 360afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePowerState(); 361bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville updateCellInfoListRate(); 3621e596f303520d211aebc87dfc0c08108efe80921Wink Saville updateImsRegRequiredState(); 363382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville updateSmsOverImsState(); 364426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville updateLteRamDumpState(); 365afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateProperties(); 366afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDnsCheckState(); 367afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 368bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("onResume: register phone & data intents"); 369afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 370afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.registerIntent(); 371afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager.listen(mPhoneStateListener, 372afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project PhoneStateListener.LISTEN_DATA_CONNECTION_STATE 373afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_DATA_ACTIVITY 374afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_CELL_LOCATION 375afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR 37679bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR 3774f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville | PhoneStateListener.LISTEN_CELL_INFO 3784f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville | PhoneStateListener.LISTEN_DATA_CONNECTION_REAL_TIME_INFO); 379afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 380afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 381afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 382afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onPause() { 383afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onPause(); 384afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 385bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("onPause: unregister phone & data intents"); 386afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 387afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.unregisterIntent(); 388afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); 389afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 390afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 391afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 392afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onCreateOptionsMenu(Menu menu) { 393c38866843e966622346dc8f7b028749cac9c2198Wink Saville menu.add(0, MENU_ITEM_SELECT_BAND, 0, R.string.radio_info_band_mode_label) 394c38866843e966622346dc8f7b028749cac9c2198Wink Saville .setOnMenuItemClickListener(mSelectBandCallback) 395afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .setAlphabeticShortcut('b'); 396afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_ADN, 0, 397afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewADN).setOnMenuItemClickListener(mViewADNCallback); 398afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_FDN, 0, 399afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback); 400afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_SDN, 0, 401afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback); 402afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_GET_PDP_LIST, 403afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 0, R.string.radioInfo_menu_getPDP).setOnMenuItemClickListener(mGetPdpList); 404afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_TOGGLE_DATA, 405a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink 0, DISABLE_DATA_STR).setOnMenuItemClickListener(mToggleData); 406afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 407afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 408afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 409afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 410c38866843e966622346dc8f7b028749cac9c2198Wink Saville public boolean onPrepareOptionsMenu(Menu menu) { 411afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // Get the TOGGLE DATA menu item in the right state. 412afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project MenuItem item = menu.findItem(MENU_ITEM_TOGGLE_DATA); 413afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 414afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project boolean visible = true; 415afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 416afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 417afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 418afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_SUSPENDED: 419a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink item.setTitle(DISABLE_DATA_STR); 420afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 421afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 422a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink item.setTitle(ENABLE_DATA_STR); 423afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 424afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 425afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project visible = false; 426afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 427afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 428afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project item.setVisible(visible); 429afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 430afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 431afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 432afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean isRadioOn() { 433afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return phone.getServiceState().getState() != ServiceState.STATE_POWER_OFF; 434afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 435342101a0729a30587dc4fa79b5f017634bd985c0johnwang 436afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void updatePowerState() { 437afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String buttonText = isRadioOn() ? 438afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project getString(R.string.turn_off_radio) : 439afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project getString(R.string.turn_on_radio); 440c38866843e966622346dc8f7b028749cac9c2198Wink Saville radioPowerButton.setText(buttonText); 441afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 442afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 443bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville private void updateCellInfoListRate() { 444bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville cellInfoListRateButton.setText("CellInfoListRate " + mCellInfoListRateHandler.getRate()); 445bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville updateCellInfoTv(mTelephonyManager.getAllCellInfo()); 446bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville } 447bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville 448afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void updateDnsCheckState() { 4495304c7e38f89f7616bd4c834a14b4d764356d19bMike Lockwood dnsCheckState.setText(phone.isDnsCheckDisabled() ? 450afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "0.0.0.0 allowed" :"0.0.0.0 not allowed"); 451afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 452e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 453afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 454afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength() { 455e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville // TODO PhoneStateIntentReceiver is deprecated and PhoneStateListener 456e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville // should probably used instead. 457e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville int state = mPhoneStateReceiver.getServiceState().getState(); 458afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 459afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 460afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if ((ServiceState.STATE_OUT_OF_SERVICE == state) || 461afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project (ServiceState.STATE_POWER_OFF == state)) { 462afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm.setText("0"); 463afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 464e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 465afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int signalDbm = mPhoneStateReceiver.getSignalStrengthDbm(); 466e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 467afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (-1 == signalDbm) signalDbm = 0; 468afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 469882c74a6799d24c766e3db81a316743bbe11e0beWink Saville int signalAsu = mPhoneStateReceiver.getSignalStrengthLevelAsu(); 470afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 471afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (-1 == signalAsu) signalAsu = 0; 472afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 473afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm.setText(String.valueOf(signalDbm) + " " 474afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + r.getString(R.string.radioInfo_display_dbm) + " " 475afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + String.valueOf(signalAsu) + " " 476afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + r.getString(R.string.radioInfo_display_asu)); 477afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 478afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 479afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateLocation(CellLocation location) { 480534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh Resources r = getResources(); 481c38866843e966622346dc8f7b028749cac9c2198Wink Saville if (location instanceof GsmCellLocation) { 482c38866843e966622346dc8f7b028749cac9c2198Wink Saville GsmCellLocation loc = (GsmCellLocation)location; 483534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lac = loc.getLac(); 484534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int cid = loc.getCid(); 485534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText(r.getString(R.string.radioInfo_lac) + " = " 486534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lac == -1) ? "unknown" : Integer.toHexString(lac)) 487534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 488534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + r.getString(R.string.radioInfo_cid) + " = " 489534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((cid == -1) ? "unknown" : Integer.toHexString(cid))); 490534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh } else if (location instanceof CdmaCellLocation) { 491534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh CdmaCellLocation loc = (CdmaCellLocation)location; 492534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int bid = loc.getBaseStationId(); 493534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int sid = loc.getSystemId(); 494534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int nid = loc.getNetworkId(); 495534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lat = loc.getBaseStationLatitude(); 496534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lon = loc.getBaseStationLongitude(); 497534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText("BID = " 498534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((bid == -1) ? "unknown" : Integer.toHexString(bid)) 499534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 500534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "SID = " 501534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((sid == -1) ? "unknown" : Integer.toHexString(sid)) 502534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 503534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "NID = " 504534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((nid == -1) ? "unknown" : Integer.toHexString(nid)) 505534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "\n" 506534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "LAT = " 507534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lat == -1) ? "unknown" : Integer.toHexString(lat)) 508534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 509534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "LONG = " 510534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lon == -1) ? "unknown" : Integer.toHexString(lon))); 511534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh } else { 512534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText("unknown"); 513c38866843e966622346dc8f7b028749cac9c2198Wink Saville } 514afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 515afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 516afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 517afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 518afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateNeighboringCids(ArrayList<NeighboringCellInfo> cids) { 519f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang StringBuilder sb = new StringBuilder(); 520f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang 521afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (cids != null) { 522afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if ( cids.isEmpty() ) { 523f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append("no neighboring cells"); 524afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 525afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project for (NeighboringCellInfo cell : cids) { 526f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append(cell.toString()).append(" "); 527afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 528afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 529afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 530f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append("unknown"); 531afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 532f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang mNeighboringCids.setText(sb.toString()); 533afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 534afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 535bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville private final void updateCellInfoTv(List<CellInfo> arrayCi) { 536bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville mCellInfoValue = arrayCi; 53779bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville StringBuilder value = new StringBuilder(); 53879bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville if (mCellInfoValue != null) { 53979bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville int index = 0; 54079bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville for (CellInfo ci : mCellInfoValue) { 54179bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append('['); 54279bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append(index); 54379bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append("]="); 54479bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append(ci.toString()); 54579bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville if (++index < mCellInfoValue.size()) { 54679bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville value.append("\n"); 54779bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 54879bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 54979bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 55079bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville mCellInfo.setText(value.toString()); 55179bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville } 55279bff2a254eb7785b2b8fb6b8b700c274105cfd9Wink Saville 5534f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville private final void updateDcRtInfoTv(DataConnectionRealTimeInfo dcRtInfo) { 5544f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville mDcRtInfoTv.setText(dcRtInfo.toString()); 5554f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville } 5564f0d881871edde6430e9dad045c8a9bdf1f7f904Wink Saville 557afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 558afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting() { 559afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwi.setText(String.valueOf(mMwiValue)); 560afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 561afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 562afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 563afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect() { 564afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfi.setText(String.valueOf(mCfiValue)); 565afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 566afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 567afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 568afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 569afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState() { 570afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ServiceState serviceState = mPhoneStateReceiver.getServiceState(); 571afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = serviceState.getState(); 572afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 573afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 574342101a0729a30587dc4fa79b5f017634bd985c0johnwang 575afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 576afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_IN_SERVICE: 577afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_in); 578afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 579afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_OUT_OF_SERVICE: 580afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_EMERGENCY_ONLY: 581afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_emergency); 582afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 583afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_POWER_OFF: 584afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_off); 585afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 586afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 587342101a0729a30587dc4fa79b5f017634bd985c0johnwang 588afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gsmState.setText(display); 589342101a0729a30587dc4fa79b5f017634bd985c0johnwang 590afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (serviceState.getRoaming()) { 591afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState.setText(R.string.radioInfo_roaming_in); 592afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 593afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState.setText(R.string.radioInfo_roaming_not); 594afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 595afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 596afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project operatorName.setText(serviceState.getOperatorAlphaLong()); 597afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 598afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 599afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 600afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState() { 6015543404ae0ec9635b59d37fa01074ea598d539ebWink Saville PhoneConstants.State state = mPhoneStateReceiver.getPhoneState(); 602afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 603afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 604afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 605afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 606afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case IDLE: 607afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_idle); 608afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 609afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case RINGING: 610afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_ringing); 611afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 612afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case OFFHOOK: 613afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_offhook); 614afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 615afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 616afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 617afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project callState.setText(display); 618afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 619afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 620afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 621afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState() { 622afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 623afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 624afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 625afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 626afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 627afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 628afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_connected); 629afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 630afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTING: 631afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_connecting); 632afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 633afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 634afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_disconnected); 635afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 636afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_SUSPENDED: 637afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_suspended); 638afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 639afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 640342101a0729a30587dc4fa79b5f017634bd985c0johnwang 641afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gprsState.setText(display); 642afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 643afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 644afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateNetworkType() { 645afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 646afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = SystemProperties.get(TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE, 647afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project r.getString(R.string.radioInfo_unknown)); 648afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 649afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project network.setText(display); 650afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 651afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 652afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 653afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateProperties() { 654afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String s; 655afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 656afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 657afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = phone.getDeviceId(); 658342101a0729a30587dc4fa79b5f017634bd985c0johnwang if (s == null) s = r.getString(R.string.radioInfo_unknown); 659c38866843e966622346dc8f7b028749cac9c2198Wink Saville mDeviceId.setText(s); 660342101a0729a30587dc4fa79b5f017634bd985c0johnwang 661c38866843e966622346dc8f7b028749cac9c2198Wink Saville 662afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = phone.getLine1Number(); 663342101a0729a30587dc4fa79b5f017634bd985c0johnwang if (s == null) s = r.getString(R.string.radioInfo_unknown); 664afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project number.setText(s); 665afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 666afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 667afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateDataStats() { 668afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String s; 669afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 670afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.radio-reset", "0"); 671afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project resets.setText(s); 672afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 673afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.attempt-gprs", "0"); 674afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project attempts.setText(s); 675afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 676afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.succeed-gprs", "0"); 677afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project successes.setText(s); 678afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 679afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //s = SystemProperties.get("net.gsm.disconnect", "0"); 680afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //disconnects.setText(s); 681afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 682afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.ppp.reset-by-timeout", "0"); 683afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sentSinceReceived.setText(s); 684afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 685afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 686afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateDataStats2() { 687afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 688afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 6899302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey long txPackets = TrafficStats.getMobileTxPackets(); 6909302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey long rxPackets = TrafficStats.getMobileRxPackets(); 6919302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey long txBytes = TrafficStats.getMobileTxBytes(); 6929302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey long rxBytes = TrafficStats.getMobileRxBytes(); 693342101a0729a30587dc4fa79b5f017634bd985c0johnwang 6949302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey String packets = r.getString(R.string.radioInfo_display_packets); 6959302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey String bytes = r.getString(R.string.radioInfo_display_bytes); 696342101a0729a30587dc4fa79b5f017634bd985c0johnwang 6979302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey sent.setText(txPackets + " " + packets + ", " + txBytes + " " + bytes); 6989302986035f46d2868c23db6349fd04b543eb676Jeff Sharkey received.setText(rxPackets + " " + packets + ", " + rxBytes + " " + bytes); 699afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 700afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 701afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 702afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Ping a IP address. 703afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 704afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void pingIpAddr() { 705afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 706afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // This is hardcoded IP addr. This is for testing purposes. 707afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // We would need to get rid of this before release. 708afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String ipAddress = "74.125.47.104"; 709afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Process p = Runtime.getRuntime().exec("ping -c 1 " + ipAddress); 710afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int status = p.waitFor(); 711afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (status == 0) { 712afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Pass"; 713afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 714afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: IP addr not reachable"; 715afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 716afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 717afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: IOException"; 718afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (InterruptedException e) { 719afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: InterruptedException"; 720afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 721afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 722afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 723afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 724afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Ping a host name 725afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 726afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void pingHostname() { 727afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 728342101a0729a30587dc4fa79b5f017634bd985c0johnwang Process p = Runtime.getRuntime().exec("ping -c 1 www.google.com"); 729afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int status = p.waitFor(); 730afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (status == 0) { 731afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Pass"; 732afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 733afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: Host unreachable"; 734afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 735afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (UnknownHostException e) { 736afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: Unknown Host"; 737afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 738afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult= "Fail: IOException"; 739afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (InterruptedException e) { 740afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: InterruptedException"; 741afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 742afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 743afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 744afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 745afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * This function checks for basic functionality of HTTP Client. 746afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 747afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void httpClientTest() { 748afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpClient client = new DefaultHttpClient(); 749afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 750afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpGet request = new HttpGet("http://www.google.com"); 751afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpResponse response = client.execute(request); 752afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (response.getStatusLine().getStatusCode() == 200) { 753afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Pass"; 754afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 755afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Fail: Code: " + String.valueOf(response); 756afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 757afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project request.abort(); 758afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 759afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Fail: IOException"; 760afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 761afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 762afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 763afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void refreshSmsc() { 76421dd407c10bb1bade10233e8468ea6729bcf71efjsh phone.getSmscAddress(mHandler.obtainMessage(EVENT_QUERY_SMSC_DONE)); 765afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 766afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 767afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updatePingState() { 768afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project final Handler handler = new Handler(); 769afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // Set all to unknown since the threads will take a few secs to update. 770afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = getResources().getString(R.string.radioInfo_unknown); 771afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = getResources().getString(R.string.radioInfo_unknown); 772afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = getResources().getString(R.string.radioInfo_unknown); 773afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 774afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr.setText(mPingIpAddrResult); 775afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname.setText(mPingHostnameResult); 776afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest.setText(mHttpClientTestResult); 777afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 778afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project final Runnable updatePingResults = new Runnable() { 779afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 780afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr.setText(mPingIpAddrResult); 781afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname.setText(mPingHostnameResult); 782afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest.setText(mHttpClientTestResult); 783afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 784afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 785afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread ipAddr = new Thread() { 786afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 787afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 788afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingIpAddr(); 789afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 790afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 791afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 792afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ipAddr.start(); 793afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 794afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread hostname = new Thread() { 795afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 796afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 797afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingHostname(); 798afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 799afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 800afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 801afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project hostname.start(); 802afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 803afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread httpClient = new Thread() { 804afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 805afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 806afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project httpClientTest(); 807afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 808afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 809afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 810afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project httpClient.start(); 811afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 812afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 813afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updatePdpList() { 814afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project StringBuilder sb = new StringBuilder("========DATA=======\n"); 815afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 8162c3ec09261bf1503e75328175b5286af5676845eWink Saville// List<DataConnection> dcs = phone.getCurrentDataConnectionList(); 8172c3ec09261bf1503e75328175b5286af5676845eWink Saville// 8182c3ec09261bf1503e75328175b5286af5676845eWink Saville// for (DataConnection dc : dcs) { 8192c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" State=").append(dc.getStateAsString()).append("\n"); 8202c3ec09261bf1503e75328175b5286af5676845eWink Saville// if (dc.isActive()) { 8212c3ec09261bf1503e75328175b5286af5676845eWink Saville// long timeElapsed = 8222c3ec09261bf1503e75328175b5286af5676845eWink Saville// (System.currentTimeMillis() - dc.getConnectionTime())/1000; 8232c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" connected at ") 8242c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(DateUtils.timeString(dc.getConnectionTime())) 8252c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(" and elapsed ") 8262c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(DateUtils.formatElapsedTime(timeElapsed)); 8272c3ec09261bf1503e75328175b5286af5676845eWink Saville// 8282c3ec09261bf1503e75328175b5286af5676845eWink Saville// if (dc instanceof GsmDataConnection) { 8292c3ec09261bf1503e75328175b5286af5676845eWink Saville// GsmDataConnection pdp = (GsmDataConnection)dc; 8302c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append("\n to ") 8312c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(pdp.getApn().toString()); 8322c3ec09261bf1503e75328175b5286af5676845eWink Saville// } 8332c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append("\nLinkProperties: "); 8342c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(phone.getLinkProperties(phone.getActiveApnTypes()[0]).toString()); 8352c3ec09261bf1503e75328175b5286af5676845eWink Saville// } else if (dc.isInactive()) { 8362c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" disconnected with last try at ") 8372c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(DateUtils.timeString(dc.getLastFailTime())) 8382c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append("\n fail because ") 8392c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(dc.getLastFailCause().toString()); 8402c3ec09261bf1503e75328175b5286af5676845eWink Saville// } else { 8412c3ec09261bf1503e75328175b5286af5676845eWink Saville// if (dc instanceof GsmDataConnection) { 8422c3ec09261bf1503e75328175b5286af5676845eWink Saville// GsmDataConnection pdp = (GsmDataConnection)dc; 8432c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" is connecting to ") 8442c3ec09261bf1503e75328175b5286af5676845eWink Saville// .append(pdp.getApn().toString()); 8452c3ec09261bf1503e75328175b5286af5676845eWink Saville// } else { 8462c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append(" is connecting"); 8472c3ec09261bf1503e75328175b5286af5676845eWink Saville// } 8482c3ec09261bf1503e75328175b5286af5676845eWink Saville// } 8492c3ec09261bf1503e75328175b5286af5676845eWink Saville// sb.append("\n==================="); 8502c3ec09261bf1503e75328175b5286af5676845eWink Saville// } 851afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 852afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project disconnects.setText(sb.toString()); 853afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 854afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 855afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewADNCallback = new MenuItem.OnMenuItemClickListener() { 856afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 857afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent(Intent.ACTION_VIEW); 858afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 859afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 860afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 861afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 862afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 863afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 864afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.SimContacts"); 865afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 866afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 867afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 868afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 869afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 870afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewFDNCallback = new MenuItem.OnMenuItemClickListener() { 871afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 872afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent(Intent.ACTION_VIEW); 873afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 874afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 875afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 876afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 877afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 878afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 879afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.FdnList"); 880afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 881afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 882afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 883afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 884afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 885afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewSDNCallback = new MenuItem.OnMenuItemClickListener() { 886afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 887afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent( 888c38866843e966622346dc8f7b028749cac9c2198Wink Saville Intent.ACTION_VIEW, Uri.parse("content://icc/sdn")); 889afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 890afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 891afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 892afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 893afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 894afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 895afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.ADNList"); 896afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 897afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 898afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 899afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 900afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 901a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink private MenuItem.OnMenuItemClickListener mGetPdpList = new MenuItem.OnMenuItemClickListener() { 902a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink public boolean onMenuItemClick(MenuItem item) { 903a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink phone.getDataCallList(null); 904a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink return true; 905afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 906a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink }; 907afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 908a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink private MenuItem.OnMenuItemClickListener mSelectBandCallback = new MenuItem.OnMenuItemClickListener() { 909afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 910a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink Intent intent = new Intent(); 911a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink intent.setClass(RadioInfo.this, BandMode.class); 912a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink startActivity(intent); 913afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 914afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 915afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 916342101a0729a30587dc4fa79b5f017634bd985c0johnwang 917afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mToggleData = new MenuItem.OnMenuItemClickListener() { 918afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 919afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 920afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 921afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 9220d4c500e98f7499db524c8073e2c8e9dfaa1febbRobert Greenwalt phone.setDataEnabled(false); 923afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 924afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 9250d4c500e98f7499db524c8073e2c8e9dfaa1febbRobert Greenwalt phone.setDataEnabled(true); 926afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 927afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 928afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // do nothing 929afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 930afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 931afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 932afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 933afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 934afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 935afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mPowerButtonHandler = new OnClickListener() { 936afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 937afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //log("toggle radio power: currently " + (isRadioOn()?"on":"off")); 938afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.setRadioPower(!isRadioOn()); 939afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 940afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 941afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 942bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville class CellInfoListRateHandler implements OnClickListener { 943bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville int rates[] = {Integer.MAX_VALUE, 0, 1000}; 944bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville int index = 0; 945bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville 946bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville public int getRate() { 947bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville return rates[index]; 948bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville } 949bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville 950bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville @Override 951bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville public void onClick(View v) { 952bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville index += 1; 953bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville if (index >= rates.length) { 954bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville index = 0; 955bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville } 956bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville phone.setCellInfoListRate(rates[index]); 957bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville updateCellInfoListRate(); 958bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville } 959bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville } 960bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville CellInfoListRateHandler mCellInfoListRateHandler = new CellInfoListRateHandler(); 961bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville 962426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private Button imsRegRequiredButton; 963426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville static final String PROPERTY_IMS_REG_REQUIRED = "persist.radio.imsregrequired"; 9641e596f303520d211aebc87dfc0c08108efe80921Wink Saville OnClickListener mImsRegRequiredHandler = new OnClickListener() { 9651e596f303520d211aebc87dfc0c08108efe80921Wink Saville @Override 9661e596f303520d211aebc87dfc0c08108efe80921Wink Saville public void onClick(View v) { 967bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log(String.format("toggle %s: currently %s", 968426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville PROPERTY_IMS_REG_REQUIRED, (isImsRegRequired() ? "on":"off"))); 9691e596f303520d211aebc87dfc0c08108efe80921Wink Saville boolean newValue = !isImsRegRequired(); 970426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville SystemProperties.set(PROPERTY_IMS_REG_REQUIRED, 9711e596f303520d211aebc87dfc0c08108efe80921Wink Saville newValue ? "1":"0"); 9721e596f303520d211aebc87dfc0c08108efe80921Wink Saville updateImsRegRequiredState(); 9731e596f303520d211aebc87dfc0c08108efe80921Wink Saville } 9741e596f303520d211aebc87dfc0c08108efe80921Wink Saville }; 9751e596f303520d211aebc87dfc0c08108efe80921Wink Saville 976426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private boolean isImsRegRequired() { 977426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville return SystemProperties.getBoolean(PROPERTY_IMS_REG_REQUIRED, false); 978426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 979426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 980426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private void updateImsRegRequiredState() { 981bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("updateImsRegRequiredState isImsRegRequired()=" + isImsRegRequired()); 982426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville String buttonText = isImsRegRequired() ? 983426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.ims_reg_required_off) : 984426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.ims_reg_required_on); 985426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville imsRegRequiredButton.setText(buttonText); 986426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 987426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 988426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private Button smsOverImsButton; 989382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville static final String PROPERTY_SMS_OVER_IMS = "persist.radio.imsallowmtsms"; 990382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville OnClickListener mSmsOverImsHandler = new OnClickListener() { 991382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville @Override 992382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville public void onClick(View v) { 993bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log(String.format("toggle %s: currently %s", 994382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville PROPERTY_SMS_OVER_IMS, (isSmsOverImsEnabled() ? "on":"off"))); 995382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville boolean newValue = !isSmsOverImsEnabled(); 996382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville SystemProperties.set(PROPERTY_SMS_OVER_IMS, newValue ? "1":"0"); 997382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville updateSmsOverImsState(); 998382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville } 999382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville }; 1000382a75b105506f9ef8e6e735fcfa40ddccbd87ccWink Saville 1001426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private boolean isSmsOverImsEnabled() { 1002426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville return SystemProperties.getBoolean(PROPERTY_SMS_OVER_IMS, false); 1003426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 1004426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 1005426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private void updateSmsOverImsState() { 1006bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("updateSmsOverImsState isSmsOverImsEnabled()=" + isSmsOverImsEnabled()); 1007426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville String buttonText = isSmsOverImsEnabled() ? 1008426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.sms_over_ims_off) : 1009426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.sms_over_ims_on); 1010426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville smsOverImsButton.setText(buttonText); 1011426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 1012426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 1013426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private Button lteRamDumpButton; 1014426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville static final String PROPERTY_LTE_RAM_DUMP = "persist.radio.ramdump"; 1015426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville OnClickListener mLteRamDumpHandler = new OnClickListener() { 1016426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville @Override 1017426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville public void onClick(View v) { 1018bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log(String.format("toggle %s: currently %s", 1019426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville PROPERTY_LTE_RAM_DUMP, (isSmsOverImsEnabled() ? "on":"off"))); 1020426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville boolean newValue = !isLteRamDumpEnabled(); 1021426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville SystemProperties.set(PROPERTY_LTE_RAM_DUMP, newValue ? "1":"0"); 1022426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville updateLteRamDumpState(); 1023426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 1024426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville }; 1025426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 1026426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private boolean isLteRamDumpEnabled() { 1027426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville return SystemProperties.getBoolean(PROPERTY_LTE_RAM_DUMP, false); 1028426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 1029426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 1030426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville private void updateLteRamDumpState() { 1031bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("updateLteRamDumpState isLteRamDumpEnabled()=" + isLteRamDumpEnabled()); 1032426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville String buttonText = isLteRamDumpEnabled() ? 1033426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.lte_ram_dump_off) : 1034426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville getString(R.string.lte_ram_dump_on); 1035426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville lteRamDumpButton.setText(buttonText); 1036426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville } 1037426fc66a8a9371e34d936d18d5b254fd002b4c11Wink Saville 1038a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink OnClickListener mDnsCheckButtonHandler = new OnClickListener() { 1039afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1040a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink phone.disableDnsCheck(!phone.isDnsCheckDisabled()); 1041a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink updateDnsCheckState(); 1042afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1043afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1044342101a0729a30587dc4fa79b5f017634bd985c0johnwang 1045a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink OnClickListener mOemInfoButtonHandler = new OnClickListener() { 1046afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1047a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink Intent intent = new Intent("com.android.settings.OEM_RADIO_INFO"); 1048a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink try { 1049a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink startActivity(intent); 1050a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink } catch (android.content.ActivityNotFoundException ex) { 1051bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville log("OEM-specific Info/Settings Activity Not Found : " + ex); 1052a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink // If the activity does not exist, there are no OEM 1053a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink // settings, and so we can just do nothing... 1054a5f4c8f8c91405038797e1529d465fd7fe06edb2Tammo Spalink } 1055afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1056afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1057342101a0729a30587dc4fa79b5f017634bd985c0johnwang 1058afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mPingButtonHandler = new OnClickListener() { 1059afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1060afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePingState(); 1061afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1062afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1063afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1064afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mUpdateSmscButtonHandler = new OnClickListener() { 1065afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1066afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setEnabled(false); 106721dd407c10bb1bade10233e8468ea6729bcf71efjsh phone.setSmscAddress(smsc.getText().toString(), 1068afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_UPDATE_SMSC_DONE)); 1069afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1070afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1071afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1072afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mRefreshSmscButtonHandler = new OnClickListener() { 1073afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1074afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmsc(); 1075afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1076afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1077afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1078afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project AdapterView.OnItemSelectedListener 1079afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPreferredNetworkHandler = new AdapterView.OnItemSelectedListener() { 1080afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onItemSelected(AdapterView parent, View v, int pos, long id) { 1081afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Message msg = mHandler.obtainMessage(EVENT_SET_PREFERRED_TYPE_DONE); 108232310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira if (pos>=0 && pos<=(mPreferredNetworkLabels.length - 2)) { 1083afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.setPreferredNetworkType(pos, msg); 1084afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1085afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1086afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1087afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onNothingSelected(AdapterView parent) { 1088afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1089afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1090afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1091afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String[] mPreferredNetworkLabels = { 109287fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "WCDMA preferred", 109387fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM only", 109487fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "WCDMA only", 109587fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM auto (PRL)", 109687fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "CDMA auto (PRL)", 109787fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "CDMA only", 109887fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "EvDo only", 109987fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM/CDMA auto (PRL)", 110032310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "LTE/CDMA auto (PRL)", 110132310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "LTE/GSM auto (PRL)", 110232310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "LTE/GSM/CDMA auto (PRL)", 110332310ee560d7a700fb1d910666eaaf096d84b643Ricardo Cerqueira "LTE only", 110487fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "Unknown"}; 1105bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville 1106bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville private void log(String s) { 1107bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville Log.d(TAG, "[RadioInfo] " + s); 1108bf4712895a570ce360db57f775b47c858f1d71b2Wink Saville } 1109afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project} 1110