diff options
author | Jaikumar Ganesh <jaikumarg@android.com> | 2011-02-28 15:26:59 -0800 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2011-02-28 15:26:59 -0800 |
commit | c5813a6dcf079202d8dce16a37cbadd427804d9c (patch) | |
tree | cf678788a71a033d430711901939c2a7d3a42f19 | |
parent | 72d2f1d8b81087c0a00310ff43e5d060dc8b7867 (diff) | |
parent | c83ffa5289995a4071b5d84055da07e2c72de2d9 (diff) | |
download | android_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.java | 39 |
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; |