17d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon/*
27d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Copyright (C) 2006 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.content.Intent;
217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.net.Uri;
227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.os.Bundle;
234fa297042722cb22581e6650aaaf6a651cf7e6f9Santos Cordonimport android.text.InputType;
247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.text.TextUtils;
257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.text.method.DigitsKeyListener;
267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.util.Log;
277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.view.KeyEvent;
287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.view.View;
297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.view.inputmethod.EditorInfo;
307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.widget.Button;
317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.widget.EditText;
327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.widget.TextView;
337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon/**
357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Pin2 entry screen.
367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon */
377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonpublic class GetPin2Screen extends Activity implements TextView.OnEditorActionListener {
387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    private static final String LOG_TAG = PhoneGlobals.LOG_TAG;
397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    private EditText mPin2Field;
417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    private Button mOkButton;
427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    @Override
447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    protected void onCreate(Bundle icicle) {
457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        super.onCreate(icicle);
467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        setContentView(R.layout.get_pin2_screen);
487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        mPin2Field = (EditText) findViewById(R.id.pin);
507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        mPin2Field.setKeyListener(DigitsKeyListener.getInstance());
517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        mPin2Field.setMovementMethod(null);
527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        mPin2Field.setOnEditorActionListener(this);
534fa297042722cb22581e6650aaaf6a651cf7e6f9Santos Cordon        mPin2Field.setInputType(
544fa297042722cb22581e6650aaaf6a651cf7e6f9Santos Cordon                InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        mOkButton = (Button) findViewById(R.id.ok);
577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        mOkButton.setOnClickListener(mClicked);
587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    }
597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    private String getPin2() {
617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        return mPin2Field.getText().toString();
627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    }
637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    private void returnResult() {
657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        Bundle map = new Bundle();
667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        map.putString("pin2", getPin2());
677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        Intent intent = getIntent();
697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        Uri uri = intent.getData();
707d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
717d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        Intent action = new Intent();
727d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        if (uri != null) action.setAction(uri.toString());
737d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        setResult(RESULT_OK, action.putExtras(map));
747d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        finish();
757d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    }
767d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
777d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    @Override
787d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
797d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        if (actionId == EditorInfo.IME_ACTION_DONE) {
807d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon            mOkButton.performClick();
817d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon            return true;
827d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        }
837d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        return false;
847d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    }
857d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
867d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    private final View.OnClickListener mClicked = new View.OnClickListener() {
877d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        @Override
887d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        public void onClick(View v) {
897d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon            if (TextUtils.isEmpty(mPin2Field.getText())) {
907d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon                return;
917d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon            }
927d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
937d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon            returnResult();
947d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        }
957d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    };
967d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon
977d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    private void log(String msg) {
987d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon        Log.d(LOG_TAG, "[GetPin2] " + msg);
997d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon    }
1007d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon}
101