17d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon/* 27d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Copyright (C) 2007 The Android Open Source Project 37d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * 47d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Licensed under the Apache License, Version 2.0 (the "License"); 57d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * you may not use this file except in compliance with the License. 67d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * You may obtain a copy of the License at 77d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * 87d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * http://www.apache.org/licenses/LICENSE-2.0 97d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * 107d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Unless required by applicable law or agreed to in writing, software 117d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * distributed under the License is distributed on an "AS IS" BASIS, 127d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * See the License for the specific language governing permissions and 147d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * limitations under the License. 157d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon */ 167d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 177d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonpackage com.android.phone; 187d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 197d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.app.Activity; 207d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.app.NotificationManager; 217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.os.Bundle; 227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport com.android.internal.telephony.test.SimulatedRadioControl; 237d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.util.Log; 247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.view.View.OnClickListener; 257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.view.View; 267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.widget.Button; 277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.widget.EditText; 287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.widget.Toast; 297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon/** 317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * A simple activity that presents you with a UI for faking incoming phone operations. 327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon */ 337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonpublic class FakePhoneActivity extends Activity { 347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String TAG = "FakePhoneActivity"; 357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private Button mPlaceCall; 377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private EditText mPhoneNumber; 387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon SimulatedRadioControl mRadioControl; 397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon @Override 417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon public void onCreate(Bundle icicle) { 427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon super.onCreate(icicle); 437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon setContentView(R.layout.fake_phone_activity); 457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPlaceCall = (Button) findViewById(R.id.placeCall); 477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPlaceCall.setOnClickListener(new ButtonListener()); 487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhoneNumber = (EditText) findViewById(R.id.phoneNumber); 507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhoneNumber.setOnClickListener( 517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon new View.OnClickListener() { 527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon public void onClick(View v) { 537d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPlaceCall.requestFocus(); 547d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon }); 567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mRadioControl = PhoneGlobals.getPhone().getSimulatedRadioControl(); 587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.i(TAG, "- PhoneApp.getInstance(): " + PhoneGlobals.getInstance()); 607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.i(TAG, "- PhoneApp.getPhone(): " + PhoneGlobals.getPhone()); 617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.i(TAG, "- mRadioControl: " + mRadioControl); 627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private class ButtonListener implements OnClickListener { 657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon public void onClick(View v) { 667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if (mRadioControl == null) { 677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.e("Phone", "SimulatedRadioControl not available, abort!"); 687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon NotificationManager nm = 697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 707d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Toast.makeText(FakePhoneActivity.this, "null mRadioControl!", 717d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Toast.LENGTH_SHORT).show(); 727d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return; 737d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 747d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 757d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mRadioControl.triggerRing(mPhoneNumber.getText().toString()); 767d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 777d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 787d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon} 79