RadioInfo.java revision 534f5ae34ee8fa76ed1cecb34c1d7898892f14f8
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; 20afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.app.AlertDialog; 21afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.DialogInterface; 22afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.Intent; 23afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.SharedPreferences; 24afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.content.res.Resources; 25afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.net.Uri; 26afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.AsyncResult; 27afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Bundle; 28afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Handler; 29afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.INetStatService; 30afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Message; 31afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.RemoteException; 32afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.ServiceManager; 33afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.SystemProperties; 34afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.preference.PreferenceManager; 35afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.CellLocation; 36afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.PhoneStateListener; 37afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.ServiceState; 38afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.TelephonyManager; 39afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.NeighboringCellInfo; 40534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jshimport android.telephony.cdma.CdmaCellLocation; 41afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.telephony.gsm.GsmCellLocation; 42afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.text.format.DateUtils; 43afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.util.Log; 44afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.Menu; 45afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.MenuItem; 46afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.View; 47afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.view.View.OnClickListener; 48afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.AdapterView; 49afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.ArrayAdapter; 50afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.Button; 51afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.Spinner; 52afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.TextView; 53afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.widget.EditText; 54afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 5587fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jshimport com.android.internal.telephony.DataConnection; 56afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.Phone; 57afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.PhoneFactory; 58afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.PhoneStateIntentReceiver; 59afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.TelephonyProperties; 60afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.gsm.GSMPhone; 61afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport com.android.internal.telephony.gsm.PdpConnection; 62afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 63afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.HttpResponse; 64afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.client.HttpClient; 65afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.client.methods.HttpGet; 66afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport org.apache.http.impl.client.DefaultHttpClient; 67afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 68afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.io.ByteArrayOutputStream; 69afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.io.DataOutputStream; 70afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.io.IOException; 71afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.net.UnknownHostException; 72afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.util.ArrayList; 73afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport java.util.List; 74afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 75afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectpublic class RadioInfo extends Activity { 76afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final String TAG = "phone"; 77342101a0729a30587dc4fa79b5f017634bd985c0johnwang 78afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_PHONE_STATE_CHANGED = 100; 79afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SIGNAL_STRENGTH_CHANGED = 200; 80afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SERVICE_STATE_CHANGED = 300; 81afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_CFI_CHANGED = 302; 82afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 83afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_PREFERRED_TYPE_DONE = 1000; 84afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SET_PREFERRED_TYPE_DONE = 1001; 85afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_NEIGHBORING_CIDS_DONE = 1002; 86afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SET_QXDMLOG_DONE = 1003; 87afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_SET_CIPHER_DONE = 1004; 88afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_QUERY_SMSC_DONE = 1005; 89afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int EVENT_UPDATE_SMSC_DONE = 1006; 90afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 91afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_SELECT_BAND = 0; 92afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_ADN = 1; 93afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_FDN = 2; 94afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_VIEW_SDN = 3; 95afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_GET_PDP_LIST = 4; 96afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_TOGGLE_DATA = 5; 97afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final int MENU_ITEM_TOGGLE_DATA_ON_BOOT = 6; 98afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 99c38866843e966622346dc8f7b028749cac9c2198Wink Saville private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA 100afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView number; 101afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView callState; 102afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView operatorName; 103afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView roamingState; 104afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView gsmState; 105afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView gprsState; 106afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView network; 107afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView dBm; 108afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mMwi; 109afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mCfi; 110afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mLocation; 111afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mNeighboringCids; 112afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView resets; 113afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView attempts; 114afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView successes; 115afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView disconnects; 116afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView sentSinceReceived; 117afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView sent; 118afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView received; 119afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mPingIpAddr; 120afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mPingHostname; 121afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView mHttpClientTest; 122afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView cipherState; 123afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TextView dnsCheckState; 124afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private EditText smsc; 125afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button radioPowerButton; 126afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button qxdmLogButton; 127afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button cipherToggleButton; 128afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button dnsCheckToggleButton; 129afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button pingTestButton; 130afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button updateSmscButton; 131afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Button refreshSmscButton; 132afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Spinner preferredNetworkType; 133afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 134afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private TelephonyManager mTelephonyManager; 135afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Phone phone = null; 136afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private PhoneStateIntentReceiver mPhoneStateReceiver; 137afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private INetStatService netstat; 138afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 139afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private OemCommands mOem = null; 140afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean mQxdmLogEnabled; 141afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // The requested cipher state 142afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean mCipherOn; 143afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 144afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mPingIpAddrResult; 145afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mPingHostnameResult; 146afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String mHttpClientTestResult; 147afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean mMwiValue = false; 148afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean mCfiValue = false; 149afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 150afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private PhoneStateListener mPhoneStateListener = new PhoneStateListener() { 151afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 152afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onDataConnectionStateChanged(int state) { 153afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState(); 154afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats(); 155afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePdpList(); 156afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateNetworkType(); 157afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 158afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 159afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 160afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onDataActivity(int direction) { 161afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats2(); 162afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 163afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 164afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 165afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCellLocationChanged(CellLocation location) { 166afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateLocation(location); 167afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 168afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 169afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 170afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onMessageWaitingIndicatorChanged(boolean mwi) { 171afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwiValue = mwi; 172afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting(); 173afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 174afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 175afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 176afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCallForwardingIndicatorChanged(boolean cfi) { 177afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfiValue = cfi; 178afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect(); 179afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 180afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 181afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 182afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private Handler mHandler = new Handler() { 183afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void handleMessage(Message msg) { 184afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project AsyncResult ar; 185afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (msg.what) { 186afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_PHONE_STATE_CHANGED: 187afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState(); 188afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 189afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 190afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SIGNAL_STRENGTH_CHANGED: 191afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength(); 192afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 193afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 194afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SERVICE_STATE_CHANGED: 195afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState(); 196afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePowerState(); 197afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 198afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 199afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_PREFERRED_TYPE_DONE: 200afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 201afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception == null) { 202afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int type = ((int[])ar.result)[0]; 203afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setSelection(type, true); 204afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 20587fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh preferredNetworkType.setSelection(8, true); 206afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 207afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 208afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SET_PREFERRED_TYPE_DONE: 209afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 210afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 211afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getPreferredNetworkType( 212afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE)); 213afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 214afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 215afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_NEIGHBORING_CIDS_DONE: 216afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 217afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception == null) { 218afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateNeighboringCids((ArrayList<NeighboringCellInfo>)ar.result); 219afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 220afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mNeighboringCids.setText("unknown"); 221afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 222afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 223afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SET_QXDMLOG_DONE: 224afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 225afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception == null) { 226afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mQxdmLogEnabled = !mQxdmLogEnabled; 227342101a0729a30587dc4fa79b5f017634bd985c0johnwang 228afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateQxdmState(mQxdmLogEnabled); 229afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project displayQxdmEnableResult(); 230afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 231afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 232afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_SET_CIPHER_DONE: 233afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 234afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception == null) { 235afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project setCiphPref(mCipherOn); 236afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 237afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCiphState(); 238afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 239afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_QUERY_SMSC_DONE: 240afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 241afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 242afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc.setText("refresh error"); 243afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 24421dd407c10bb1bade10233e8468ea6729bcf71efjsh smsc.setText((String)ar.result); 245afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 246afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 247afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case EVENT_UPDATE_SMSC_DONE: 248afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setEnabled(true); 249afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ar= (AsyncResult) msg.obj; 250afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (ar.exception != null) { 251afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc.setText("update error"); 252afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 253afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 254afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 255afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 256afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 257afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 258afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 259afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 260afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 2618762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static private class OemCommands { 2628762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan 2638762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan public static final int OEM_QXDM_SDLOG_DEFAULT_FILE_SIZE = 32; 2648762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan public static final int OEM_QXDM_SDLOG_DEFAULT_MASK = 0; 2658762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan public static final int OEM_QXDM_SDLOG_DEFAULT_MAX_INDEX = 8; 2668762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan 2678762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static final int SIZE_OF_INT = 4; 2688762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static final int OEM_FEATURE_ENABLE = 1; 2698762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static final int OEM_FEATURE_DISABLE = 0; 2708762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static final int OEM_SIMPE_FEAUTURE_LEN = 1; 2718762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan 2728762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static final int OEM_QXDM_SDLOG_FUNCTAG = 0x00010000; 2738762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static final int OEM_QXDM_SDLOG_LEN = 4; 2748762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static final int OEM_PS_AUTO_ATTACH_FUNCTAG = 0x00020000; 2758762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan static final int OEM_CIPHERING_FUNCTAG = 0x00020001; 276342101a0729a30587dc4fa79b5f017634bd985c0johnwang 277afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 278afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * The OEM interface to store QXDM to SD. 279afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 280afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * To start/stop logging QXDM logs to SD card, use tag 281afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * OEM_RIL_HOOK_QXDM_SD_LOG_SETUP 0x00010000 282afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 283afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * "data" is a const oem_ril_hook_qxdm_sdlog_setup_data_st * 284afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * ((const oem_ril_hook_qxdm_sdlog_setup_data_st *)data)->head.func_tag 285afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * should be OEM_RIL_HOOK_QXDM_SD_LOG_SETUP 286afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * ((const oem_ril_hook_qxdm_sdlog_setup_data_st *)data)->head.len 287afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * should be "sizeof(unsigned int) * 4" 288afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * ((const oem_ril_hook_qxdm_sdlog_setup_data_st *)data)->mode 289afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * could be 0 for 'stop logging', or 1 for 'start logging' 290afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * ((const oem_ril_hook_qxdm_sdlog_setup_data_st *)data)->log_file_size 291afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * will assign the size of each log file, and it could be a value between 292afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 1 and 512 (in megabytes, default value is recommended to set as 32). 293afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * This value will be ignored when mode == 0. 294afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * ((const oem_ril_hook_qxdm_sdlog_setup_data_st *)data)->log_mask will 295afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * assign the rule to filter logs, and it is a bitmask (bit0 is for MsgAll, 296afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * bit1 is for LogAll, and bit2 is for EventAll) recommended to be set as 0 297afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * by default. This value will be ignored when mode == 0. 298afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * ((const oem_ril_hook_qxdm_sdlog_setup_data_st *)data)->log_max_fileindex 299afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * set the how many logfiles will storted before roll over. This value will 300afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * be ignored when mode == 0. 301afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 302afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * "response" is NULL 303afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 304afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * typedef struct _oem_ril_hook_raw_head_st { 305afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * unsigned int func_tag; 306afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * unsigned int len; 307afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * } oem_ril_hook_raw_head_st; 308afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 309afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * typedef struct _oem_ril_hook_qxdm_sdlog_setup_data_st { 310afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * oem_ril_hook_raw_head_st head; 311afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * unsigned int mode; 312afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * unsigned int log_file_size; 313afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * unsigned int log_mask; 314afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * unsigned int log_max_fileindex; 315afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * } oem_ril_hook_qxdm_sdlog_setup_data_st; 316afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 317afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * @param enable set true to start logging QXDM in SD card 318afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * @param fileSize is the log file size in MB 319afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * @param mask is the log mask to filter 320afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * @param maxIndex is the maximum roll-over file number 321afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * @return byteArray to use in RIL RAW command 322afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 323afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project byte[] getQxdmSdlogData(boolean enable, int fileSize, int mask, int maxIndex) { 324afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ByteArrayOutputStream bos = new ByteArrayOutputStream(); 325afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project DataOutputStream dos = new DataOutputStream(bos); 326afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 327afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, OEM_QXDM_SDLOG_FUNCTAG); 328afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, OEM_QXDM_SDLOG_LEN * SIZE_OF_INT); 329afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, enable ? 330afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OEM_FEATURE_ENABLE : OEM_FEATURE_DISABLE); 331afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, fileSize); 332afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, mask); 333afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, maxIndex); 334afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 335afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return null; 336afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 337afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return bos.toByteArray(); 338afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 339afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 340afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project byte[] getPsAutoAttachData(boolean enable) { 341afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return getSimpleFeatureData(OEM_PS_AUTO_ATTACH_FUNCTAG, enable); 342afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 343afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 344afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project byte[] getCipheringData(boolean enable) { 345afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return getSimpleFeatureData(OEM_CIPHERING_FUNCTAG, enable); 346afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 347342101a0729a30587dc4fa79b5f017634bd985c0johnwang 348afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private byte[] getSimpleFeatureData(int tag, boolean enable) { 349afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ByteArrayOutputStream bos = new ByteArrayOutputStream(); 350afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project DataOutputStream dos = new DataOutputStream(bos); 351afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 352afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, tag); 353afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, OEM_SIMPE_FEAUTURE_LEN * SIZE_OF_INT); 354afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project writeIntLittleEndian(dos, enable ? 355afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OEM_FEATURE_ENABLE : OEM_FEATURE_DISABLE); 356afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 357afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return null; 358afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 359afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return bos.toByteArray(); 360afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 361afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 362afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void writeIntLittleEndian(DataOutputStream dos, int val) 363afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project throws IOException { 364afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dos.writeByte(val); 365afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dos.writeByte(val >> 8); 366afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dos.writeByte(val >> 16); 367afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dos.writeByte(val >> 24); 368afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 369afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 370afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 371afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 372afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onCreate(Bundle icicle) { 373afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onCreate(icicle); 374afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 375afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project setContentView(R.layout.radio_info); 376afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 377afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 378afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone = PhoneFactory.getDefaultPhone(); 379afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 380c38866843e966622346dc8f7b028749cac9c2198Wink Saville mDeviceId= (TextView) findViewById(R.id.imei); 381afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project number = (TextView) findViewById(R.id.number); 382afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project callState = (TextView) findViewById(R.id.call); 383afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project operatorName = (TextView) findViewById(R.id.operator); 384afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState = (TextView) findViewById(R.id.roaming); 385afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gsmState = (TextView) findViewById(R.id.gsm); 386afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gprsState = (TextView) findViewById(R.id.gprs); 387afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project network = (TextView) findViewById(R.id.network); 388afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm = (TextView) findViewById(R.id.dbm); 389afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwi = (TextView) findViewById(R.id.mwi); 390afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfi = (TextView) findViewById(R.id.cfi); 391afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mLocation = (TextView) findViewById(R.id.location); 392afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mNeighboringCids = (TextView) findViewById(R.id.neighboring); 393afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 394afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project resets = (TextView) findViewById(R.id.resets); 395afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project attempts = (TextView) findViewById(R.id.attempts); 396afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project successes = (TextView) findViewById(R.id.successes); 397afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project disconnects = (TextView) findViewById(R.id.disconnects); 398afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sentSinceReceived = (TextView) findViewById(R.id.sentSinceReceived); 399afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sent = (TextView) findViewById(R.id.sent); 400afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project received = (TextView) findViewById(R.id.received); 401afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project cipherState = (TextView) findViewById(R.id.ciphState); 402afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project smsc = (EditText) findViewById(R.id.smsc); 403afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckState = (TextView) findViewById(R.id.dnsCheckState); 404afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 405afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr = (TextView) findViewById(R.id.pingIpAddr); 406afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname = (TextView) findViewById(R.id.pingHostname); 407afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest = (TextView) findViewById(R.id.httpClientTest); 408afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 409afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType); 410afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, 411afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project android.R.layout.simple_spinner_item, mPreferredNetworkLabels); 412342101a0729a30587dc4fa79b5f017634bd985c0johnwang adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 413afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setAdapter(adapter); 414afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project preferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler); 415afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 416afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project radioPowerButton = (Button) findViewById(R.id.radio_power); 417afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project radioPowerButton.setOnClickListener(mPowerButtonHandler); 418afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 419afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project qxdmLogButton = (Button) findViewById(R.id.qxdm_log); 420afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project qxdmLogButton.setOnClickListener(mQxdmButtonHandler); 421afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 422afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project cipherToggleButton = (Button) findViewById(R.id.ciph_toggle); 423afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project cipherToggleButton.setOnClickListener(mCipherButtonHandler); 424afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingTestButton = (Button) findViewById(R.id.ping_test); 425afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingTestButton.setOnClickListener(mPingButtonHandler); 426afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton = (Button) findViewById(R.id.update_smsc); 427afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setOnClickListener(mUpdateSmscButtonHandler); 428afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmscButton = (Button) findViewById(R.id.refresh_smsc); 429afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmscButton.setOnClickListener(mRefreshSmscButtonHandler); 430afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckToggleButton = (Button) findViewById(R.id.dns_check_toggle); 431afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dnsCheckToggleButton.setOnClickListener(mDnsCheckButtonHandler); 432342101a0729a30587dc4fa79b5f017634bd985c0johnwang 433afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler); 434afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED); 435afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED); 436afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.notifyPhoneCallState(EVENT_PHONE_STATE_CHANGED); 437342101a0729a30587dc4fa79b5f017634bd985c0johnwang 438afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateQxdmState(null); 439afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mOem = new OemCommands(); 440afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 441afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getPreferredNetworkType( 442afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE)); 443afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.getNeighboringCids( 444afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_QUERY_NEIGHBORING_CIDS_DONE)); 445afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 446afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project netstat = INetStatService.Stub.asInterface(ServiceManager.getService("netstat")); 447afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 448afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project CellLocation.requestLocationUpdate(); 449afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 450afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 451afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 452afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project protected void onResume() { 453afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onResume(); 454afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 455afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState(); 456afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength(); 457afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting(); 458afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect(); 459afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState(); 460afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateLocation(mTelephonyManager.getCellLocation()); 461afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState(); 462afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats(); 463afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataStats2(); 464afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePowerState(); 465afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateQxdmState(null); 466afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateProperties(); 467afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCiphState(); 468afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDnsCheckState(); 469afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 470afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Log.i(TAG, "[RadioInfo] onResume: register phone & data intents"); 471afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 472afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.registerIntent(); 473afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager.listen(mPhoneStateListener, 474afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project PhoneStateListener.LISTEN_DATA_CONNECTION_STATE 475afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_DATA_ACTIVITY 476afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_CELL_LOCATION 477afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR 478afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR); 479afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 480afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 481afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 482afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onPause() { 483afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onPause(); 484afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 485afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Log.i(TAG, "[RadioInfo] onPause: unregister phone & data intents"); 486afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 487afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPhoneStateReceiver.unregisterIntent(); 488afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); 489afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 490afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 491afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 492afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onCreateOptionsMenu(Menu menu) { 493c38866843e966622346dc8f7b028749cac9c2198Wink Saville menu.add(0, MENU_ITEM_SELECT_BAND, 0, R.string.radio_info_band_mode_label) 494c38866843e966622346dc8f7b028749cac9c2198Wink Saville .setOnMenuItemClickListener(mSelectBandCallback) 495afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .setAlphabeticShortcut('b'); 496afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_ADN, 0, 497afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewADN).setOnMenuItemClickListener(mViewADNCallback); 498afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_FDN, 0, 499afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback); 500afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_VIEW_SDN, 0, 501afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback); 502afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_GET_PDP_LIST, 503afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 0, R.string.radioInfo_menu_getPDP).setOnMenuItemClickListener(mGetPdpList); 504afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_TOGGLE_DATA, 505afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 0, R.string.radioInfo_menu_disableData).setOnMenuItemClickListener(mToggleData); 506afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project menu.add(1, MENU_ITEM_TOGGLE_DATA_ON_BOOT, 507c38866843e966622346dc8f7b028749cac9c2198Wink Saville 0, R.string.radioInfo_menu_disableDataOnBoot).setOnMenuItemClickListener( 508c38866843e966622346dc8f7b028749cac9c2198Wink Saville mToggleDataOnBoot); 509afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 510afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 511afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 512afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 513afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 514c38866843e966622346dc8f7b028749cac9c2198Wink Saville public boolean onPrepareOptionsMenu(Menu menu) { 515afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // Get the TOGGLE DATA menu item in the right state. 516afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project MenuItem item = menu.findItem(MENU_ITEM_TOGGLE_DATA); 517afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 518afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project boolean visible = true; 519afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 520afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 521afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 522afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_SUSPENDED: 523afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project item.setTitle(R.string.radioInfo_menu_disableData); 524afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 525afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 526afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project item.setTitle(R.string.radioInfo_menu_enableData); 527afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 528afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 529afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project visible = false; 530afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 531afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 532afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project item.setVisible(visible); 533afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 534afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // Get the toggle-data-on-boot menu item in the right state. 535afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project item = menu.findItem(MENU_ITEM_TOGGLE_DATA_ON_BOOT); 53686997beac8ccd3d9e1deedb4a7afe6ddeb3a0bd7The Android Open Source Project SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(phone.getContext()); 537afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project boolean value = sp.getBoolean(GSMPhone.DATA_DISABLED_ON_BOOT_KEY, false); 538afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (value) { 539afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project item.setTitle(R.string.radioInfo_menu_enableDataOnBoot); 540afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 541afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project item.setTitle(R.string.radioInfo_menu_disableDataOnBoot); 542afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 543afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 544afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 545afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 546afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean isRadioOn() { 547afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return phone.getServiceState().getState() != ServiceState.STATE_POWER_OFF; 548afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 549342101a0729a30587dc4fa79b5f017634bd985c0johnwang 550afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void updatePowerState() { 551afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String buttonText = isRadioOn() ? 552afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project getString(R.string.turn_off_radio) : 553afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project getString(R.string.turn_on_radio); 554c38866843e966622346dc8f7b028749cac9c2198Wink Saville radioPowerButton.setText(buttonText); 555afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 556afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 557afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void updateQxdmState(Boolean newQxdmStatus) { 558342101a0729a30587dc4fa79b5f017634bd985c0johnwang SharedPreferences sp = 55986997beac8ccd3d9e1deedb4a7afe6ddeb3a0bd7The Android Open Source Project PreferenceManager.getDefaultSharedPreferences(phone.getContext()); 560afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mQxdmLogEnabled = sp.getBoolean("qxdmstatus", false); 561afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // This is called from onCreate, onResume, and the handler when the status 562342101a0729a30587dc4fa79b5f017634bd985c0johnwang // is updated. 563afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (newQxdmStatus != null) { 564afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project SharedPreferences.Editor editor = sp.edit(); 565afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project editor.putBoolean("qxdmstatus", newQxdmStatus); 566afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project editor.commit(); 567afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mQxdmLogEnabled = newQxdmStatus; 568afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 569342101a0729a30587dc4fa79b5f017634bd985c0johnwang 570afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String buttonText = mQxdmLogEnabled ? 571afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project getString(R.string.turn_off_qxdm) : 572afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project getString(R.string.turn_on_qxdm); 573afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project qxdmLogButton.setText(buttonText); 574afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 575afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 576afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void setCiphPref(boolean value) { 57786997beac8ccd3d9e1deedb4a7afe6ddeb3a0bd7The Android Open Source Project SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(phone.getContext()); 578afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project SharedPreferences.Editor editor = sp.edit(); 579afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project editor.putBoolean(GSMPhone.CIPHERING_KEY, value); 580afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project editor.commit(); 581afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 582afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 583afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private boolean getCiphPref() { 58486997beac8ccd3d9e1deedb4a7afe6ddeb3a0bd7The Android Open Source Project SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(phone.getContext()); 585afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project boolean ret = sp.getBoolean(GSMPhone.CIPHERING_KEY, true); 586afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return ret; 587afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 588afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 589afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void updateCiphState() { 590afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project cipherState.setText(getCiphPref() ? "Ciphering ON" : "Ciphering OFF"); 591afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 592afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 593afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void updateDnsCheckState() { 5945304c7e38f89f7616bd4c834a14b4d764356d19bMike Lockwood dnsCheckState.setText(phone.isDnsCheckDisabled() ? 595afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "0.0.0.0 allowed" :"0.0.0.0 not allowed"); 596afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 597e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 598afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 599afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSignalStrength() { 600e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville // TODO PhoneStateIntentReceiver is deprecated and PhoneStateListener 601e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville // should probably used instead. 602e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville int state = mPhoneStateReceiver.getServiceState().getState(); 603afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 604afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 605afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if ((ServiceState.STATE_OUT_OF_SERVICE == state) || 606afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project (ServiceState.STATE_POWER_OFF == state)) { 607afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm.setText("0"); 608afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 609e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 610afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int signalDbm = mPhoneStateReceiver.getSignalStrengthDbm(); 611e2a14e35aa525de6cbc0179c67ec971295f2db03Wink Saville 612afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (-1 == signalDbm) signalDbm = 0; 613afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 614afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int signalAsu = mPhoneStateReceiver.getSignalStrength(); 615afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 616afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (-1 == signalAsu) signalAsu = 0; 617afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 618afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project dBm.setText(String.valueOf(signalDbm) + " " 619afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + r.getString(R.string.radioInfo_display_dbm) + " " 620afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + String.valueOf(signalAsu) + " " 621afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project + r.getString(R.string.radioInfo_display_asu)); 622afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 623afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 624afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateLocation(CellLocation location) { 625534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh Resources r = getResources(); 626c38866843e966622346dc8f7b028749cac9c2198Wink Saville if (location instanceof GsmCellLocation) { 627c38866843e966622346dc8f7b028749cac9c2198Wink Saville GsmCellLocation loc = (GsmCellLocation)location; 628534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lac = loc.getLac(); 629534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int cid = loc.getCid(); 630534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText(r.getString(R.string.radioInfo_lac) + " = " 631534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lac == -1) ? "unknown" : Integer.toHexString(lac)) 632534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 633534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + r.getString(R.string.radioInfo_cid) + " = " 634534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((cid == -1) ? "unknown" : Integer.toHexString(cid))); 635534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh } else if (location instanceof CdmaCellLocation) { 636534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh CdmaCellLocation loc = (CdmaCellLocation)location; 637534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int bid = loc.getBaseStationId(); 638534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int sid = loc.getSystemId(); 639534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int nid = loc.getNetworkId(); 640534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lat = loc.getBaseStationLatitude(); 641534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh int lon = loc.getBaseStationLongitude(); 642534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText("BID = " 643534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((bid == -1) ? "unknown" : Integer.toHexString(bid)) 644534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 645534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "SID = " 646534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((sid == -1) ? "unknown" : Integer.toHexString(sid)) 647534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 648534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "NID = " 649534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((nid == -1) ? "unknown" : Integer.toHexString(nid)) 650534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "\n" 651534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "LAT = " 652534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lat == -1) ? "unknown" : Integer.toHexString(lat)) 653534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + " " 654534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + "LONG = " 655534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh + ((lon == -1) ? "unknown" : Integer.toHexString(lon))); 656534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh } else { 657534f5ae34ee8fa76ed1cecb34c1d7898892f14f8jsh mLocation.setText("unknown"); 658c38866843e966622346dc8f7b028749cac9c2198Wink Saville } 659afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 660afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 661afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 662afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 663afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateNeighboringCids(ArrayList<NeighboringCellInfo> cids) { 664f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang StringBuilder sb = new StringBuilder(); 665f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang 666afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (cids != null) { 667afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if ( cids.isEmpty() ) { 668f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append("no neighboring cells"); 669afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 670afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project for (NeighboringCellInfo cell : cids) { 671f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append(cell.toString()).append(" "); 672afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 673afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 674afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 675f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang sb.append("unknown"); 676afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 677f02c65f8c1092b0d10fe2783f2f9fd9857146f7fjohnwang mNeighboringCids.setText(sb.toString()); 678afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 679afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 680afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 681afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateMessageWaiting() { 682afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mMwi.setText(String.valueOf(mMwiValue)); 683afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 684afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 685afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 686afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateCallRedirect() { 687afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCfi.setText(String.valueOf(mCfiValue)); 688afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 689afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 690afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 691afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 692afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateServiceState() { 693afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ServiceState serviceState = mPhoneStateReceiver.getServiceState(); 694afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = serviceState.getState(); 695afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 696afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 697342101a0729a30587dc4fa79b5f017634bd985c0johnwang 698afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 699afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_IN_SERVICE: 700afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_in); 701afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 702afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_OUT_OF_SERVICE: 703afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_EMERGENCY_ONLY: 704afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_emergency); 705afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 706afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case ServiceState.STATE_POWER_OFF: 707afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_service_off); 708afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 709afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 710342101a0729a30587dc4fa79b5f017634bd985c0johnwang 711afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gsmState.setText(display); 712342101a0729a30587dc4fa79b5f017634bd985c0johnwang 713afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (serviceState.getRoaming()) { 714afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState.setText(R.string.radioInfo_roaming_in); 715afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 716afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project roamingState.setText(R.string.radioInfo_roaming_not); 717afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 718afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 719afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project operatorName.setText(serviceState.getOperatorAlphaLong()); 720afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 721afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 722afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 723afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePhoneState() { 724afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Phone.State state = mPhoneStateReceiver.getPhoneState(); 725afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 726afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 727afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 728afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 729afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case IDLE: 730afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_idle); 731afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 732afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case RINGING: 733afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_ringing); 734afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 735afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case OFFHOOK: 736afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_phone_offhook); 737afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 738afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 739afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 740afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project callState.setText(display); 741afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 742afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 743afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 744afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDataState() { 745afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 746afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 747afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = r.getString(R.string.radioInfo_unknown); 748afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 749afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 750afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 751afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_connected); 752afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 753afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTING: 754afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_connecting); 755afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 756afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 757afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_disconnected); 758afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 759afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_SUSPENDED: 760afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project display = r.getString(R.string.radioInfo_data_suspended); 761afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 762afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 763342101a0729a30587dc4fa79b5f017634bd985c0johnwang 764afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project gprsState.setText(display); 765afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 766afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 767afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateNetworkType() { 768afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 769afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String display = SystemProperties.get(TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE, 770afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project r.getString(R.string.radioInfo_unknown)); 771afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 772afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project network.setText(display); 773afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 774afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 775afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void 776afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateProperties() { 777afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String s; 778afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 779afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 780afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = phone.getDeviceId(); 781342101a0729a30587dc4fa79b5f017634bd985c0johnwang if (s == null) s = r.getString(R.string.radioInfo_unknown); 782c38866843e966622346dc8f7b028749cac9c2198Wink Saville mDeviceId.setText(s); 783342101a0729a30587dc4fa79b5f017634bd985c0johnwang 784c38866843e966622346dc8f7b028749cac9c2198Wink Saville 785afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = phone.getLine1Number(); 786342101a0729a30587dc4fa79b5f017634bd985c0johnwang if (s == null) s = r.getString(R.string.radioInfo_unknown); 787afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project number.setText(s); 788afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 789afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 790afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateDataStats() { 791afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String s; 792afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 793afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.radio-reset", "0"); 794afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project resets.setText(s); 795afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 796afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.attempt-gprs", "0"); 797afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project attempts.setText(s); 798afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 799afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.gsm.succeed-gprs", "0"); 800afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project successes.setText(s); 801afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 802afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //s = SystemProperties.get("net.gsm.disconnect", "0"); 803afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //disconnects.setText(s); 804afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 805afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project s = SystemProperties.get("net.ppp.reset-by-timeout", "0"); 806afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sentSinceReceived.setText(s); 807afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 808afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 809afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updateDataStats2() { 810afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Resources r = getResources(); 811afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 812afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 813afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project long txPackets = netstat.getMobileTxPackets(); 814afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project long rxPackets = netstat.getMobileRxPackets(); 815afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project long txBytes = netstat.getMobileTxBytes(); 816afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project long rxBytes = netstat.getMobileRxBytes(); 817342101a0729a30587dc4fa79b5f017634bd985c0johnwang 818afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String packets = r.getString(R.string.radioInfo_display_packets); 819afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String bytes = r.getString(R.string.radioInfo_display_bytes); 820342101a0729a30587dc4fa79b5f017634bd985c0johnwang 821afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sent.setText(txPackets + " " + packets + ", " + txBytes + " " + bytes); 822afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project received.setText(rxPackets + " " + packets + ", " + rxBytes + " " + bytes); 823afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (RemoteException e) { 824afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 825afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 826afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 827afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 828afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Ping a IP address. 829afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 830afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void pingIpAddr() { 831afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 832afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // This is hardcoded IP addr. This is for testing purposes. 833afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // We would need to get rid of this before release. 834afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String ipAddress = "74.125.47.104"; 835afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Process p = Runtime.getRuntime().exec("ping -c 1 " + ipAddress); 836afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int status = p.waitFor(); 837afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (status == 0) { 838afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Pass"; 839afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 840afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: IP addr not reachable"; 841afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 842afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 843afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: IOException"; 844afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (InterruptedException e) { 845afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = "Fail: InterruptedException"; 846afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 847afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 848afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 849afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 850afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Ping a host name 851afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 852afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void pingHostname() { 853afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 854342101a0729a30587dc4fa79b5f017634bd985c0johnwang Process p = Runtime.getRuntime().exec("ping -c 1 www.google.com"); 855afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int status = p.waitFor(); 856afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (status == 0) { 857afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Pass"; 858afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 859afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: Host unreachable"; 860afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 861afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (UnknownHostException e) { 862afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: Unknown Host"; 863afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 864afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult= "Fail: IOException"; 865afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (InterruptedException e) { 866afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = "Fail: InterruptedException"; 867afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 868afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 869afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 870afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project /** 871afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * This function checks for basic functionality of HTTP Client. 872afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 873afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void httpClientTest() { 874afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpClient client = new DefaultHttpClient(); 875afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project try { 876afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpGet request = new HttpGet("http://www.google.com"); 877afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project HttpResponse response = client.execute(request); 878afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (response.getStatusLine().getStatusCode() == 200) { 879afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Pass"; 880afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 881afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Fail: Code: " + String.valueOf(response); 882afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 883afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project request.abort(); 884afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } catch (IOException e) { 885afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = "Fail: IOException"; 886afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 887afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 888afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 889afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void refreshSmsc() { 89021dd407c10bb1bade10233e8468ea6729bcf71efjsh phone.getSmscAddress(mHandler.obtainMessage(EVENT_QUERY_SMSC_DONE)); 891afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 892afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 893afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updatePingState() { 894afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project final Handler handler = new Handler(); 895afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // Set all to unknown since the threads will take a few secs to update. 896afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddrResult = getResources().getString(R.string.radioInfo_unknown); 897afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostnameResult = getResources().getString(R.string.radioInfo_unknown); 898afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTestResult = getResources().getString(R.string.radioInfo_unknown); 899afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 900afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr.setText(mPingIpAddrResult); 901afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname.setText(mPingHostnameResult); 902afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest.setText(mHttpClientTestResult); 903afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 904afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project final Runnable updatePingResults = new Runnable() { 905afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 906afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingIpAddr.setText(mPingIpAddrResult); 907afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPingHostname.setText(mPingHostnameResult); 908afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHttpClientTest.setText(mHttpClientTestResult); 909afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 910afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 911afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread ipAddr = new Thread() { 912afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 913afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 914afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingIpAddr(); 915afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 916afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 917afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 918afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project ipAddr.start(); 919afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 920afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread hostname = new Thread() { 921afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 922afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 923afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project pingHostname(); 924afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 925afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 926afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 927afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project hostname.start(); 928afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 929afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Thread httpClient = new Thread() { 930afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 931afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 932afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project httpClientTest(); 933afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project handler.post(updatePingResults); 934afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 935afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 936afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project httpClient.start(); 937afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 938afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 939afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private final void updatePdpList() { 940afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project StringBuilder sb = new StringBuilder("========DATA=======\n"); 941afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 94287fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh List<DataConnection> dcs = phone.getCurrentDataConnectionList(); 943afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 94487fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh for (DataConnection dc : dcs) { 94587fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh sb.append(" State: ").append(dc.getState().toString()).append("\n"); 94687fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh if (dc.getState().isActive()) { 947afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project long timeElapsed = 94887fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh (System.currentTimeMillis() - dc.getConnectionTime())/1000; 949afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sb.append(" connected at ") 95087fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh .append(DateUtils.timeString(dc.getConnectionTime())) 951afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .append(" and elapsed ") 95287fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh .append(DateUtils.formatElapsedTime(timeElapsed)); 95387fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh 95487fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh if (dc instanceof PdpConnection) { 95587fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh PdpConnection pdp = (PdpConnection)dc; 95687fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh sb.append("\n to ") 95787fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh .append(pdp.getApn().toString()); 95887fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh } 95987fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh sb.append("\ninterface: ") 960afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .append(phone.getInterfaceName(phone.getActiveApnTypes()[0])) 961afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .append("\naddress: ") 962afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .append(phone.getIpAddress(phone.getActiveApnTypes()[0])) 963afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .append("\ngateway: ") 964afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .append(phone.getGateway(phone.getActiveApnTypes()[0])); 965afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String[] dns = phone.getDnsServers(phone.getActiveApnTypes()[0]); 966afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (dns != null) { 967afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sb.append("\ndns: ").append(dns[0]).append(", ").append(dns[1]); 968afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 96987fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh } else if (dc.getState().isInactive()) { 970afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sb.append(" disconnected with last try at ") 97187fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh .append(DateUtils.timeString(dc.getLastFailTime())) 972afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project .append("\n fail because ") 97387fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh .append(dc.getLastFailCause().toString()); 974afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } else { 97587fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh if (dc instanceof PdpConnection) { 97687fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh PdpConnection pdp = (PdpConnection)dc; 97787fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh sb.append(" is connecting to ") 97887fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh .append(pdp.getApn().toString()); 97987fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh } else { 98087fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh sb.append(" is connecting"); 98187fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh } 982afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 983afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project sb.append("\n==================="); 984afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 985afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 986afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 987afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project disconnects.setText(sb.toString()); 988afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 989afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 990afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void displayQxdmEnableResult() { 991afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project String status = mQxdmLogEnabled ? "Start QXDM Log" : "Stop QXDM Log"; 992afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 9938762093e0094e09493fa6cbac8e8fbf265f18165Michael Chan new AlertDialog.Builder(this).setMessage(status).show(); 994afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 995afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.postDelayed( 996afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project new Runnable() { 997afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void run() { 998afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project finish(); 999afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1000afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }, 2000); 1001afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1002afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1003afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewADNCallback = new MenuItem.OnMenuItemClickListener() { 1004afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 1005afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent(Intent.ACTION_VIEW); 1006afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 1007afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 1008afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 1009afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 1010afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 1011afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 1012afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.SimContacts"); 1013afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 1014afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 1015afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1016afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1017afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1018afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewFDNCallback = new MenuItem.OnMenuItemClickListener() { 1019afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 1020afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent(Intent.ACTION_VIEW); 1021afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 1022afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 1023afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 1024afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 1025afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 1026afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 1027afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.FdnList"); 1028afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 1029afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 1030afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1031afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1032afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1033afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mViewSDNCallback = new MenuItem.OnMenuItemClickListener() { 1034afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 1035afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent( 1036c38866843e966622346dc8f7b028749cac9c2198Wink Saville Intent.ACTION_VIEW, Uri.parse("content://icc/sdn")); 1037afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // XXX We need to specify the component here because if we don't 1038afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the activity manager will try to resolve the type by calling 1039afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // the content provider, which causes it to be loaded in a process 1040afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // other than the Dialer process, which causes a lot of stuff to 1041afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // break. 1042afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClassName("com.android.phone", 1043afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project "com.android.phone.ADNList"); 1044afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 1045afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 1046afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1047afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1048afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1049afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private void toggleDataDisabledOnBoot() { 105086997beac8ccd3d9e1deedb4a7afe6ddeb3a0bd7The Android Open Source Project SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(phone.getContext()); 1051afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project SharedPreferences.Editor editor = sp.edit(); 1052afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project boolean value = sp.getBoolean(GSMPhone.DATA_DISABLED_ON_BOOT_KEY, false); 1053afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project editor.putBoolean(GSMPhone.DATA_DISABLED_ON_BOOT_KEY, !value); 1054afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project byte[] data = mOem.getPsAutoAttachData(value); 1055afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (data == null) { 1056afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // don't commit 1057afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return; 1058afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1059afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1060afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project editor.commit(); 1061afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.invokeOemRilRequestRaw(data, null); 1062afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1063afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1064afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mToggleDataOnBoot = new MenuItem.OnMenuItemClickListener() { 1065afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 1066afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project toggleDataDisabledOnBoot(); 1067afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 1068afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1069afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1070342101a0729a30587dc4fa79b5f017634bd985c0johnwang 1071afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mToggleData = new MenuItem.OnMenuItemClickListener() { 1072afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 1073afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project int state = mTelephonyManager.getDataState(); 1074afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project switch (state) { 1075afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_CONNECTED: 1076afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.disableDataConnectivity(); 1077afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 1078afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project case TelephonyManager.DATA_DISCONNECTED: 1079afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.enableDataConnectivity(); 1080afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 1081afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project default: 1082afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project // do nothing 1083afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project break; 1084afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1085afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 1086afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1087afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1088afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1089afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mGetPdpList = new MenuItem.OnMenuItemClickListener() { 1090afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 1091c38866843e966622346dc8f7b028749cac9c2198Wink Saville phone.getDataCallList(null); 1092afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 1093afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1094afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1095afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1096afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private MenuItem.OnMenuItemClickListener mSelectBandCallback = new MenuItem.OnMenuItemClickListener() { 1097afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public boolean onMenuItemClick(MenuItem item) { 1098afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Intent intent = new Intent(); 1099afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project intent.setClass(RadioInfo.this, BandMode.class); 1100afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project startActivity(intent); 1101afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return true; 1102afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1103afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1104afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1105afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mPowerButtonHandler = new OnClickListener() { 1106afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1107afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project //log("toggle radio power: currently " + (isRadioOn()?"on":"off")); 1108afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.setRadioPower(!isRadioOn()); 1109afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1110afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1111afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1112afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mCipherButtonHandler = new OnClickListener() { 1113afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1114afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mCipherOn = !getCiphPref(); 1115afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project byte[] data = mOem.getCipheringData(mCipherOn); 1116342101a0729a30587dc4fa79b5f017634bd985c0johnwang 1117afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (data == null) 1118afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return; 1119afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1120afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project cipherState.setText("Setting..."); 1121afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.invokeOemRilRequestRaw(data, 1122afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_SET_CIPHER_DONE)); 1123afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1124afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1125342101a0729a30587dc4fa79b5f017634bd985c0johnwang 1126afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mDnsCheckButtonHandler = new OnClickListener() { 1127afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1128c38866843e966622346dc8f7b028749cac9c2198Wink Saville phone.disableDnsCheck(!phone.isDnsCheckDisabled()); 1129afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateDnsCheckState(); 1130afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1131afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1132342101a0729a30587dc4fa79b5f017634bd985c0johnwang 1133afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mPingButtonHandler = new OnClickListener() { 1134afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1135afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updatePingState(); 1136afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1137afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1138afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1139afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mUpdateSmscButtonHandler = new OnClickListener() { 1140afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1141afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project updateSmscButton.setEnabled(false); 114221dd407c10bb1bade10233e8468ea6729bcf71efjsh phone.setSmscAddress(smsc.getText().toString(), 1143afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_UPDATE_SMSC_DONE)); 1144afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1145afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1146afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1147afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mRefreshSmscButtonHandler = new OnClickListener() { 1148afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1149afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project refreshSmsc(); 1150afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1151afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1152afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1153afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project OnClickListener mQxdmButtonHandler = new OnClickListener() { 1154afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onClick(View v) { 1155afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project byte[] data = mOem.getQxdmSdlogData( 1156afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project !mQxdmLogEnabled, 1157afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mOem.OEM_QXDM_SDLOG_DEFAULT_FILE_SIZE, 1158afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mOem.OEM_QXDM_SDLOG_DEFAULT_MASK, 1159afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mOem.OEM_QXDM_SDLOG_DEFAULT_MAX_INDEX); 1160afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1161afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project if (data == null) 1162afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project return; 1163afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1164afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.invokeOemRilRequestRaw(data, 1165afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mHandler.obtainMessage(EVENT_SET_QXDMLOG_DONE)); 1166afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1167afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1168afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1169afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project AdapterView.OnItemSelectedListener 1170afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mPreferredNetworkHandler = new AdapterView.OnItemSelectedListener() { 1171afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onItemSelected(AdapterView parent, View v, int pos, long id) { 1172afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project Message msg = mHandler.obtainMessage(EVENT_SET_PREFERRED_TYPE_DONE); 1173ead6928894c5f63ba8751962d93987b412b4b209Wink Saville if (pos>=0 && pos<=7) { //IS THIS NEEDED to extend to the entire range of values 1174afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project phone.setPreferredNetworkType(pos, msg); 1175afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1176afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1177afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1178afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project public void onNothingSelected(AdapterView parent) { 1179afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 1180afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project }; 1181afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 1182afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private String[] mPreferredNetworkLabels = { 118387fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "WCDMA preferred", 118487fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM only", 118587fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "WCDMA only", 118687fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM auto (PRL)", 118787fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "CDMA auto (PRL)", 118887fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "CDMA only", 118987fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "EvDo only", 119087fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "GSM/CDMA auto (PRL)", 119187fa11b90e9a4a5fdd73e71e6c0b057f9df1a860jsh "Unknown"}; 1192afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project} 1193