From f9f3696fb97be54410f596b5e08449ead4599a56 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Tue, 19 Jan 2016 11:10:34 -0200 Subject: [PATCH] run bluetooth adapter enabling/disabling in background thread also run setting the default preferences in a background thread Closes #184 --- .../org/briarproject/android/SettingsActivity.java | 4 ++-- .../briarproject/android/SplashScreenActivity.java | 14 ++++++++++++-- .../android/invitation/AddContactActivity.java | 3 ++- .../briarproject/android/util/AndroidUtils.java | 13 +++++++++++++ 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/briar-android/src/org/briarproject/android/SettingsActivity.java b/briar-android/src/org/briarproject/android/SettingsActivity.java index 7c48355a99..8433bc114e 100644 --- a/briar-android/src/org/briarproject/android/SettingsActivity.java +++ b/briar-android/src/org/briarproject/android/SettingsActivity.java @@ -17,6 +17,7 @@ import android.widget.TextView; import org.briarproject.R; import org.briarproject.android.panic.PanicPreferencesActivity; +import org.briarproject.android.util.AndroidUtils; import org.briarproject.android.util.FixedVerticalSpace; import org.briarproject.android.util.HorizontalBorder; import org.briarproject.android.util.LayoutUtils; @@ -330,8 +331,7 @@ OnClickListener { bluetoothSetting = !bluetoothSetting; BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if (adapter != null) { - if (bluetoothSetting) adapter.enable(); - else adapter.disable(); + AndroidUtils.setBluetooth(adapter, bluetoothSetting); } storeBluetoothSetting(); displaySettings(); diff --git a/briar-android/src/org/briarproject/android/SplashScreenActivity.java b/briar-android/src/org/briarproject/android/SplashScreenActivity.java index e74056341b..ffc926b1cf 100644 --- a/briar-android/src/org/briarproject/android/SplashScreenActivity.java +++ b/briar-android/src/org/briarproject/android/SplashScreenActivity.java @@ -65,8 +65,7 @@ public class SplashScreenActivity extends RoboSplashActivity { logo.setImageResource(R.drawable.briar_logo_large); layout.addView(logo); - PreferenceManager - .setDefaultValues(this, R.xml.panic_preferences, false); + setPreferencesDefaults(); setContentView(layout); } @@ -111,4 +110,15 @@ public class SplashScreenActivity extends RoboSplashActivity { if (f.isFile()) f.delete(); else if (f.isDirectory()) for (File child : f.listFiles()) delete(child); } + + private void setPreferencesDefaults() { + new Thread() { + @Override + public void run() { + PreferenceManager + .setDefaultValues(SplashScreenActivity.this, + R.xml.panic_preferences, false); + } + }.start(); + } } diff --git a/briar-android/src/org/briarproject/android/invitation/AddContactActivity.java b/briar-android/src/org/briarproject/android/invitation/AddContactActivity.java index 7d2ab13417..ef2fc44d07 100644 --- a/briar-android/src/org/briarproject/android/invitation/AddContactActivity.java +++ b/briar-android/src/org/briarproject/android/invitation/AddContactActivity.java @@ -7,6 +7,7 @@ import android.widget.Toast; import org.briarproject.R; import org.briarproject.android.BriarActivity; +import org.briarproject.android.util.AndroidUtils; import org.briarproject.api.TransportConfig; import org.briarproject.api.TransportId; import org.briarproject.api.android.ReferenceManager; @@ -333,7 +334,7 @@ implements InvitationListener { if (LOG.isLoggable(INFO)) LOG.info("Turning off Bluetooth again"); BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); - if (adapter != null) adapter.disable(); + if (adapter != null) AndroidUtils.setBluetooth(adapter, false); } } diff --git a/briar-android/src/org/briarproject/android/util/AndroidUtils.java b/briar-android/src/org/briarproject/android/util/AndroidUtils.java index abbafafd37..01d2cbf4b1 100644 --- a/briar-android/src/org/briarproject/android/util/AndroidUtils.java +++ b/briar-android/src/org/briarproject/android/util/AndroidUtils.java @@ -1,6 +1,7 @@ package org.briarproject.android.util; import android.annotation.SuppressLint; +import android.bluetooth.BluetoothAdapter; import android.os.Build; import android.support.design.widget.TextInputLayout; @@ -32,4 +33,16 @@ public class AndroidUtils { } else til.setError(null); } + + public static void setBluetooth(final BluetoothAdapter adapter, + final boolean activate) { + + new Thread() { + @Override + public void run() { + if (activate) adapter.enable(); + else adapter.disable(); + } + }.start(); + } } -- GitLab