summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaikumar Ganesh <jaikumarg@android.com>2011-02-28 15:26:59 -0800
committerAndroid Code Review <code-review@android.com>2011-02-28 15:26:59 -0800
commitc5813a6dcf079202d8dce16a37cbadd427804d9c (patch)
treecf678788a71a033d430711901939c2a7d3a42f19
parent72d2f1d8b81087c0a00310ff43e5d060dc8b7867 (diff)
parentc83ffa5289995a4071b5d84055da07e2c72de2d9 (diff)
downloadandroid_packages_apps_Bluetooth-c5813a6dcf079202d8dce16a37cbadd427804d9c.tar.gz
android_packages_apps_Bluetooth-c5813a6dcf079202d8dce16a37cbadd427804d9c.tar.bz2
android_packages_apps_Bluetooth-c5813a6dcf079202d8dce16a37cbadd427804d9c.zip
Merge "Check if BT is allowed in airplane mode"
-rw-r--r--src/com/android/bluetooth/opp/BluetoothOppLauncherActivity.java39
1 files changed, 34 insertions, 5 deletions
diff --git a/src/com/android/bluetooth/opp/BluetoothOppLauncherActivity.java b/src/com/android/bluetooth/opp/BluetoothOppLauncherActivity.java
index 353cadc3d..d358b8c22 100644
--- a/src/com/android/bluetooth/opp/BluetoothOppLauncherActivity.java
+++ b/src/com/android/bluetooth/opp/BluetoothOppLauncherActivity.java
@@ -43,6 +43,7 @@ import java.util.ArrayList;
import android.app.Activity;
import android.bluetooth.BluetoothDevicePicker;
import android.content.Intent;
+import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
@@ -118,7 +119,7 @@ public class BluetoothOppLauncherActivity extends Activity {
}
}
- if (isAirplaneModeOn()) {
+ if (!isBluetoothAllowed()) {
Intent in = new Intent(this, BluetoothOppBtErrorActivity.class);
in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
in.putExtra("title", this.getString(R.string.airplane_error_title));
@@ -164,11 +165,39 @@ public class BluetoothOppLauncherActivity extends Activity {
finish();
}
- /* Returns true if airplane mode is currently on */
- private final boolean isAirplaneModeOn() {
- return Settings.System.getInt(this.getContentResolver(), Settings.System.AIRPLANE_MODE_ON,
- 0) == 1;
+ /* Returns true if Bluetooth is allowed given current airplane mode settings. */
+ private final boolean isBluetoothAllowed() {
+ final ContentResolver resolver = this.getContentResolver();
+
+ // Check if airplane mode is on
+ final boolean isAirplaneModeOn = Settings.System.getInt(resolver,
+ Settings.System.AIRPLANE_MODE_ON, 0) == 1;
+ if (!isAirplaneModeOn) {
+ return true;
+ }
+
+ // Check if airplane mode matters
+ final String airplaneModeRadios = Settings.System.getString(resolver,
+ Settings.System.AIRPLANE_MODE_RADIOS);
+ final boolean isAirplaneSensitive = airplaneModeRadios == null ? true :
+ airplaneModeRadios.contains(Settings.System.RADIO_BLUETOOTH);
+ if (!isAirplaneSensitive) {
+ return true;
+ }
+
+ // Check if Bluetooth may be enabled in airplane mode
+ final String airplaneModeToggleableRadios = Settings.System.getString(resolver,
+ Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
+ final boolean isAirplaneToggleable = airplaneModeToggleableRadios == null ? false :
+ airplaneModeToggleableRadios.contains(Settings.System.RADIO_BLUETOOTH);
+ if (isAirplaneToggleable) {
+ return true;
+ }
+
+ // If we get here we're not allowed to use Bluetooth right now
+ return false;
}
+
private Uri creatFileForSharedContent(Context context, CharSequence shareContent) {
if (shareContent == null) {
return null;