Disabling Bluetooth adapter on UI thread violates Strict Mode
On the Galaxy Nexus (Android 4.3), BluetoothAdapter#disable() results in a disk write, which violates strict mode. Maybe we should run the enable() and disable() calls on the AndroidExecutor? ``` 12-17 12:19:33.868 29626-29626/org.briarproject D/StrictMode: StrictMode policy violation; ~duration=319 ms: android.os.StrictMode$StrictModeDiskWriteViolation: policy=287 violation=1 at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1097) at android.database.sqlite.SQLiteConnection.applyBlockGuardPolicy(SQLiteConnection.java:1043) at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:779) at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788) at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86) at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469) at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339) at com.android.providers.settings.SettingsProvider.insertForUser(SettingsProvider.java:914) at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:634) at android.content.ContentProvider$Transport.call(ContentProvider.java:279) at android.provider.Settings$NameValueCache.putStringForUser(Settings.java:818) at android.provider.Settings$Global.putStringForUser(Settings.java:5529) at android.provider.Settings$Global.putString(Settings.java:5519) at android.provider.Settings$Global.putInt(Settings.java:5607) at com.android.server.BluetoothManagerService.persistBluetoothSetting(BluetoothManagerService.java:255) at com.android.server.BluetoothManagerService.disable(BluetoothManagerService.java:439) at android.bluetooth.IBluetoothManager$Stub.onTransact(IBluetoothManager.java:116) at android.os.Binder.execTransact(Binder.java:388) at dalvik.system.NativeStart.run(Native Method) # via Binder call with stack: android.os.StrictMode$LogStackTrace at android.os.StrictMode.readAndHandleBinderCallViolations(StrictMode.java:1687) at android.os.Parcel.readExceptionCode(Parcel.java:1413) at android.os.Parcel.readException(Parcel.java:1382) at android.bluetooth.IBluetoothManager$Stub$Proxy.disable(IBluetoothManager.java:286) at android.bluetooth.BluetoothAdapter.disable(BluetoothAdapter.java:550) at org.briarproject.android.SettingsActivity.onClick(SettingsActivity.java:297) at android.view.View.performClick(View.java:4240) at android.view.View$PerformClick.run(View.java:17721) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) ```
issue