1f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen/*
2f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * Copyright (C) 2012 The Android Open Source Project
3f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen *
4f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * Licensed under the Apache License, Version 2.0 (the "License");
5f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * you may not use this file except in compliance with the License.
6f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * You may obtain a copy of the License at
7f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen *
8f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen *      http://www.apache.org/licenses/LICENSE-2.0
9f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen *
10f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * Unless required by applicable law or agreed to in writing, software
11f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * distributed under the License is distributed on an "AS IS" BASIS,
12f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * See the License for the specific language governing permissions and
14f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen * limitations under the License.
15f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen */
16f5a196b643c654c7ea98a5e2935e3bff6683399bMartijn Coenen
1778705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenpackage com.android.nfc.handover;
1878705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen
1978705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenimport android.app.Activity;
2078705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenimport android.app.AlertDialog;
2178705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenimport android.bluetooth.BluetoothDevice;
2278705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenimport android.content.DialogInterface;
2378705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenimport android.content.Intent;
2478705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenimport android.content.res.Resources;
2578705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenimport android.os.Bundle;
2678705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen
2778705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenimport com.android.nfc.R;
2878705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen
2978705adb33530d58f6b25bd3976ef36df196af55Martijn Coenenpublic class ConfirmConnectActivity extends Activity {
3078705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen    BluetoothDevice mDevice;
3178705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen    @Override
3278705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen    protected void onCreate(Bundle savedInstanceState) {
3378705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        super.onCreate(savedInstanceState);
3478705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_HOLO_DARK);
3578705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        Intent launchIntent = getIntent();
3678705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        mDevice = launchIntent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
3778705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        if (mDevice == null) finish();
3878705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        Resources res = getResources();
3978705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        String deviceName = mDevice.getName() != null ? mDevice.getName() : "";
4078705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        String confirmString = String.format(res.getString(R.string.confirm_pairing), deviceName);
4178705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        builder.setMessage(confirmString)
4278705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen               .setCancelable(false)
4378705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen               .setPositiveButton(res.getString(R.string.pair_yes),
4478705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                       new DialogInterface.OnClickListener() {
4578705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                   public void onClick(DialogInterface dialog, int id) {
4678705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                        Intent allowIntent = new Intent(BluetoothHeadsetHandover.ACTION_ALLOW_CONNECT);
4778705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                        allowIntent.putExtra(BluetoothDevice.EXTRA_DEVICE, mDevice);
4878705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                        sendBroadcast(allowIntent);
4978705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                        ConfirmConnectActivity.this.finish();
5078705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                   }
5178705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen               })
5278705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen               .setNegativeButton(res.getString(R.string.pair_no),
5378705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                       new DialogInterface.OnClickListener() {
5478705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                   public void onClick(DialogInterface dialog, int id) {
5578705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                       Intent denyIntent = new Intent(BluetoothHeadsetHandover.ACTION_DENY_CONNECT);
5678705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                       denyIntent.putExtra(BluetoothDevice.EXTRA_DEVICE, mDevice);
5778705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                       sendBroadcast(denyIntent);
5878705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                       ConfirmConnectActivity.this.finish();
5978705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen                   }
6078705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen               });
6178705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        AlertDialog alert = builder.create();
6278705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen        alert.show();
6378705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen    }
6478705adb33530d58f6b25bd3976ef36df196af55Martijn Coenen}
65