diff options
author | Daniel Sandler <dsandler@android.com> | 2012-11-26 11:43:42 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-11-26 11:43:42 -0800 |
commit | 41886ecf331c40e4888a3f4010fded8679fa2a58 (patch) | |
tree | 8caea4836f1f7e8e7a04c1790ac92280ec5747f8 /packages | |
parent | 625ac3086af4eb572f92b305a7d0c27724edde7e (diff) | |
parent | 90e3dfa55c52f202f3d5a54d915fdd1ddb3cd47a (diff) | |
download | frameworks_base-41886ecf331c40e4888a3f4010fded8679fa2a58.zip frameworks_base-41886ecf331c40e4888a3f4010fded8679fa2a58.tar.gz frameworks_base-41886ecf331c40e4888a3f4010fded8679fa2a58.tar.bz2 |
am 90e3dfa5: am b4a63987: am 53d96599: Merge "Allow long-press on Wifi and Bluetooth tiles to toggle." into jb-mr1.1-dev
* commit '90e3dfa55c52f202f3d5a54d915fdd1ddb3cd47a':
Allow long-press on Wifi and Bluetooth tiles to toggle.
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index f232856..a616490 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -55,6 +55,7 @@ import android.graphics.drawable.Drawable; import android.graphics.drawable.LevelListDrawable; import android.hardware.display.DisplayManager; import android.hardware.display.WifiDisplayStatus; +import android.net.wifi.WifiManager; import android.os.AsyncTask; import android.os.Handler; import android.os.RemoteException; @@ -85,6 +86,8 @@ class QuickSettings { private static final String TAG = "QuickSettings"; public static final boolean SHOW_IME_TILE = false; + public static final boolean LONG_PRESS_TOGGLES = true; + private Context mContext; private PanelBar mBar; private QuickSettingsModel mModel; @@ -94,6 +97,8 @@ class QuickSettings { private WifiDisplayStatus mWifiDisplayStatus; private PhoneStatusBar mStatusBarService; private BluetoothState mBluetoothState; + private BluetoothAdapter mBluetoothAdapter; + private WifiManager mWifiManager; private BrightnessController mBrightnessController; private BluetoothController mBluetoothController; @@ -131,6 +136,9 @@ class QuickSettings { mModel = new QuickSettingsModel(context); mWifiDisplayStatus = new WifiDisplayStatus(); mBluetoothState = new QuickSettingsModel.BluetoothState(); + mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + mHandler = new Handler(); Resources r = mContext.getResources(); @@ -391,7 +399,7 @@ class QuickSettings { private void addSystemTiles(ViewGroup parent, LayoutInflater inflater) { // Wi-fi - QuickSettingsTileView wifiTile = (QuickSettingsTileView) + final QuickSettingsTileView wifiTile = (QuickSettingsTileView) inflater.inflate(R.layout.quick_settings_tile, parent, false); wifiTile.setContent(R.layout.quick_settings_tile_wifi, inflater); wifiTile.setOnClickListener(new View.OnClickListener() { @@ -400,6 +408,30 @@ class QuickSettings { startSettingsActivity(android.provider.Settings.ACTION_WIFI_SETTINGS); } }); + if (LONG_PRESS_TOGGLES) { + wifiTile.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + final boolean enable = + (mWifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED); + new AsyncTask<Void, Void, Void>() { + @Override + protected Void doInBackground(Void... args) { + // Disable tethering if enabling Wifi + final int wifiApState = mWifiManager.getWifiApState(); + if (enable && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) || + (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) { + mWifiManager.setWifiApEnabled(null, false); + } + + mWifiManager.setWifiEnabled(enable); + return null; + } + }.execute(); + wifiTile.setPressed(false); + return true; + }} ); + } mModel.addWifiTile(wifiTile, new QuickSettingsModel.RefreshCallback() { @Override public void refreshView(QuickSettingsTileView view, State state) { @@ -538,7 +570,7 @@ class QuickSettings { // Bluetooth if (mModel.deviceSupportsBluetooth()) { - QuickSettingsTileView bluetoothTile = (QuickSettingsTileView) + final QuickSettingsTileView bluetoothTile = (QuickSettingsTileView) inflater.inflate(R.layout.quick_settings_tile, parent, false); bluetoothTile.setContent(R.layout.quick_settings_tile_bluetooth, inflater); bluetoothTile.setOnClickListener(new View.OnClickListener() { @@ -547,6 +579,19 @@ class QuickSettings { startSettingsActivity(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS); } }); + if (LONG_PRESS_TOGGLES) { + bluetoothTile.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (mBluetoothAdapter.isEnabled()) { + mBluetoothAdapter.disable(); + } else { + mBluetoothAdapter.enable(); + } + bluetoothTile.setPressed(false); + return true; + }}); + } mModel.addBluetoothTile(bluetoothTile, new QuickSettingsModel.RefreshCallback() { @Override public void refreshView(QuickSettingsTileView view, State state) { |