gt: 				for (int i = 0; i< names.length; i++){
context: /* 
   * Copyright (C) 2014 TU Darmstadt, Hessen, Germany.
   * Department of Computer Science Databases and Distributed Systems
   *
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   *
   * This program is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
   */ 
   
   package de.tudarmstadt.dvs.myhealthassistant.myhealthhub.activities;
  
  import de.tudarmstadt.dvs.myhealthassistant.myhealthhub.R;
  import de.tudarmstadt.dvs.myhealthassistant.myhealthhub.fragments.SensorConfigFragment;
  import android.annotation.SuppressLint;
  import android.app.ActionBar;
  import android.app.AlertDialog;
  import android.app.Dialog;
  import android.bluetooth.BluetoothAdapter;
  import android.bluetooth.BluetoothDevice;
  import android.content.DialogInterface;
  import android.content.SharedPreferences;
  import android.os.Bundle;
  import android.preference.PreferenceManager;
  import android.support.v4.app.DialogFragment;
  import android.support.v4.app.FragmentActivity;
  import android.util.Log;
  import android.view.MenuItem;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.LinearLayout;
  import android.widget.TextView;
  
  /**
   * 
   * @author HieuHa
   *
   * Open a windows to point to each type of sensor with its mac address 
   */
  public class SensorSettingsActivity extends FragmentActivity {
  	private static String TAG = SensorSettingsActivity.class.getName();
  	private ViewHolder viewHolder;
  	private String sensorType;
  	private String deviceType;
  	private String deviceMacAdd;
  	private SharedPreferences pref;
  
  	// private CheckBoxPreference discoverableBox;
  
  	@Override
  	public void onCreate(Bundle bundle) {
  		super.onCreate(bundle);
  		Log.e(TAG, "onCreate");
  
  		setContentView(R.layout.sensor_connection_settings_fragment);
  
  		ActionBar actionBar = getActionBar();
  		actionBar.setDisplayHomeAsUpEnabled(true);
  
  		Bundle extras = getIntent().getExtras();
  		sensorType = extras.getString("type");
  
  		pref = PreferenceManager
  				.getDefaultSharedPreferences(getApplicationContext());
  
  		// Keeps reference to avoid future findViewById()
  		viewHolder = new ViewHolder();
  		viewHolder.tv_sensor_type = (TextView) findViewById(R.id.tv_sensor_type);
  		viewHolder.tv_sensor_type.setText(sensorType);
  		// -----
  		viewHolder.ll_bt_type = (LinearLayout) findViewById(R.id.ll_bluetooth_type);
  		viewHolder.ll_bt_type.setOnClickListener(new OnClickListener() {
  
  			@Override
  			public void onClick(View v) {
  				openSelectSensorType();
  			}
  		});
  
  		deviceType = pref.getString(sensorType
  				+ SensorConfigFragment.deviceType, "");
  		viewHolder.tv_bt_type_sum = (TextView) findViewById(R.id.tv_bluetooth_type_summary);
  		viewHolder.tv_bt_type_sum.setText(deviceType);
  		// -----
  		viewHolder.ll_bt_sel = (LinearLayout) findViewById(R.id.ll_bluetooth_sel);
  		viewHolder.ll_bt_sel.setOnClickListener(new OnClickListener() {
  
  			@Override
  			public void onClick(View v) {
  				openSelectDeviceDialog();
  			}
  		});
  
  		viewHolder.tv_bt_sel_sum = (TextView) findViewById(R.id.tv_bluetooth_sel_summary);
  		deviceMacAdd = pref.getString(sensorType
  				+ SensorConfigFragment.deviceMac, "");
  		if (!deviceMacAdd.isEmpty()){
  			String name = getDeviceName(deviceMacAdd);
  			viewHolder.tv_bt_sel_sum.setText(name + " (" + deviceMacAdd + ")");
  		}
  	}
  
  	private String getDeviceName(String deviceAddress) {
  		BluetoothAdapter mBluetoothAdapter = BluetoothAdapter
  				.getDefaultAdapter();
  		BluetoothDevice[] bondDevice = (BluetoothDevice[]) mBluetoothAdapter
  				.getBondedDevices().toArray(new BluetoothDevice[0]);
  		for (BluetoothDevice bd : bondDevice) {
  			if (bd.getAddress().equals(deviceAddress))
  				return bd.getName();
  		}
  		return null;
  	}
  
  	@Override
  	public boolean onOptionsItemSelected(MenuItem item) {
  		switch (item.getItemId()) {
  		// Respond to the action bar's Up/Home button
  		case android.R.id.home:
  			this.finish();
  			return true;
  		}
  		return super.onOptionsItemSelected(item);
  	}
  
  	private static class ViewHolder {
  		TextView tv_sensor_type;
  		// -------
  		LinearLayout ll_bt_type;
  		TextView tv_bt_type_sum;
  		// -------
  		LinearLayout ll_bt_sel;
  		TextView tv_bt_sel_sum;
  
  	}
  
  	private void openSelectSensorType() {
  		Bundle extras = getIntent().getExtras();
  		DialogFragment deviceDialog = new SelectDeviceDialogFragment();
  		extras.putInt("position", -1);
  		extras.putBoolean("device", false);
  		deviceDialog.setArguments(extras);
  		getFragmentManager().beginTransaction();
  		deviceDialog.show(getSupportFragmentManager().beginTransaction(),
  				"deviceDialog");
  	}
  
  	private void openSelectDeviceDialog() {
  		BluetoothAdapter mBluetoothAdapter = BluetoothAdapter
  				.getDefaultAdapter();
  		if (mBluetoothAdapter != null) {
  			BluetoothDevice[] mAllBondedDevices = (BluetoothDevice[]) mBluetoothAdapter
  					.getBondedDevices().toArray(new BluetoothDevice[0]);
  
  			int mDeviceIndex = 0;
  			if (mAllBondedDevices.length > 0) {
  				int deviceCount = mAllBondedDevices.length;
  				String[] deviceNames = new String[deviceCount];
  				for (int i = 0; i < deviceCount; i++) {
  					BluetoothDevice device = mAllBondedDevices[i];
  					deviceNames[i] = device.getName() + "\n|"
  							+ device.getAddress();
  					if (deviceMacAdd.equals(device.getAddress())) {
  						mDeviceIndex = i;
  					}
  				}
  				DialogFragment deviceDialog = new SelectDeviceDialogFragment();
  				Bundle args = new Bundle();
  				args.putStringArray("names", deviceNames);
  				args.putInt("position", mDeviceIndex);
  				args.putBoolean("device", true);
  				deviceDialog.setArguments(args);
  				getFragmentManager().beginTransaction();
  				deviceDialog.show(getSupportFragmentManager()
  						.beginTransaction(), "deviceDialog");
  			}
  		}
  	}
  
  	/**
  	 * Dialog to display a list of bonded Bluetooth devices for user to select
  	 * from. This is needed only for connection initiated from the application.
  	 */
  	@SuppressLint("ValidFragment")
  	public class SelectDeviceDialogFragment extends DialogFragment {
  		@Override
  		public Dialog onCreateDialog(Bundle savedInstanceState) {
  			Bundle arg = getArguments();
  			final boolean isSelectingDevice = arg.getBoolean("device");
  			final String[] names = arg.getStringArray("names");
  			int position = arg.getInt("position", 0);
  			if (position == -1){
  