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