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