Fix discoverability timeout issues. (a) implement timeout logic (b) persist 'never timeout' after reboot (c) code cleanup

Change-Id: I9313277c39c69f90d0b0556cf24d9c30a774a0a6
diff --git a/src/com/android/bluetooth/btservice/AdapterProperties.java b/src/com/android/bluetooth/btservice/AdapterProperties.java
old mode 100644
new mode 100755
index bd8ae4b..36de84f
--- a/src/com/android/bluetooth/btservice/AdapterProperties.java
+++ b/src/com/android/bluetooth/btservice/AdapterProperties.java
@@ -430,7 +430,15 @@
         synchronized (mObject) {
             if (getState() == BluetoothAdapter.STATE_TURNING_ON &&
                     mScanMode == BluetoothAdapter.SCAN_MODE_NONE) {
-                    setScanMode(AbstractionLayer.BT_SCAN_MODE_CONNECTABLE);
+                    /* mDiscoverableTimeout is part of the
+                       adapterPropertyChangedCallback received before
+                       onBluetoothReady */
+                    if (mDiscoverableTimeout != 0)
+                      setScanMode(AbstractionLayer.BT_SCAN_MODE_CONNECTABLE);
+                    else /* if timeout == never (0) at startup */
+                      setScanMode(AbstractionLayer.BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE);
+                    /* though not always required, this keeps NV up-to date on first-boot after flash */
+                    setDiscoverableTimeout(mDiscoverableTimeout);
             }
         }
     }
diff --git a/src/com/android/bluetooth/btservice/RemoteDevices.java b/src/com/android/bluetooth/btservice/RemoteDevices.java
index 4d31751..1bafdf6 100755
--- a/src/com/android/bluetooth/btservice/RemoteDevices.java
+++ b/src/com/android/bluetooth/btservice/RemoteDevices.java
@@ -222,7 +222,7 @@
                         intent.putExtra(BluetoothDevice.EXTRA_NAME, device.mName);
                         intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
                         mContext.sendBroadcast(intent, mAdapterService.BLUETOOTH_PERM);
-                        debugLog("Remote Device ame is: " + device.mName);
+                        debugLog("Remote Device name is: " + device.mName);
                         break;
                     case AbstractionLayer.BT_PROPERTY_REMOTE_FRIENDLY_NAME:
                         // TODO(BT) is null device.mAlias a valid senario?