diff options
author | Daniel Sandler <dsandler@android.com> | 2011-10-27 14:58:52 -0400 |
---|---|---|
committer | Daniel Sandler <dsandler@android.com> | 2011-10-27 14:58:52 -0400 |
commit | 0f167d75667e1e4f731c2ab1166d345572a4ef46 (patch) | |
tree | c8689a673c8749fc9ad43f5cb52a846c96917958 | |
parent | 27812a8f14ca22f0a709320e5a41d200ac59b63b (diff) | |
download | frameworks_base-0f167d75667e1e4f731c2ab1166d345572a4ef46.zip frameworks_base-0f167d75667e1e4f731c2ab1166d345572a4ef46.tar.gz frameworks_base-0f167d75667e1e4f731c2ab1166d345572a4ef46.tar.bz2 |
Restore bluetooth icons on tablets.
- status bar
- notification panel header area
Bug: 5385369
Change-Id: I382b9e4fbd3dd440919484c70d50b00ce85a8fa1
-rw-r--r-- | packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml | 13 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothController.java | 39 |
2 files changed, 39 insertions, 13 deletions
diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml b/packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml index 5e254e8..739f3aa 100644 --- a/packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml +++ b/packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml @@ -116,22 +116,23 @@ android:orientation="horizontal" android:gravity="center" > + <include layout="@layout/signal_cluster_view" + android:id="@+id/signal_cluster" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + /> <ImageView android:id="@+id/bluetooth" android:layout_height="wrap_content" android:layout_width="wrap_content" + android:paddingLeft="4dip" android:visibility="gone" /> - <include layout="@layout/signal_cluster_view" - android:id="@+id/signal_cluster" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - /> <ImageView android:id="@+id/battery" android:layout_height="wrap_content" android:layout_width="wrap_content" - android:paddingLeft="6dip" + android:paddingLeft="4dip" /> </LinearLayout> </LinearLayout> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothController.java index c6f416f..903a300 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BluetoothController.java @@ -35,6 +35,7 @@ public class BluetoothController extends BroadcastReceiver { private ArrayList<ImageView> mIconViews = new ArrayList<ImageView>(); private int mIconId = R.drawable.stat_sys_data_bluetooth; + private int mContentDescriptionId = 0; private boolean mEnabled; public BluetoothController(Context context) { @@ -44,6 +45,11 @@ public class BluetoothController extends BroadcastReceiver { filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); filter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED); context.registerReceiver(this, filter); + + final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + handleAdapterStateChange(adapter.getState()); + handleConnectionStateChange(adapter.getConnectionState()); + refreshViews(); } public void addIconView(ImageView v) { @@ -52,24 +58,43 @@ public class BluetoothController extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - int state = intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE, - BluetoothAdapter.STATE_DISCONNECTED); - int contentDescriptionResId = 0; + final String action = intent.getAction(); + + if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { + handleAdapterStateChange( + intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)); + } else if (action.equals(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED)) { + handleConnectionStateChange( + intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE, + BluetoothAdapter.STATE_DISCONNECTED)); + } + refreshViews(); + } - if (state == BluetoothAdapter.STATE_CONNECTED) { + public void handleAdapterStateChange(int adapterState) { + mEnabled = (adapterState == BluetoothAdapter.STATE_ON); + } + + public void handleConnectionStateChange(int connectionState) { + final boolean connected = (connectionState == BluetoothAdapter.STATE_CONNECTED); + if (connected) { mIconId = R.drawable.stat_sys_data_bluetooth_connected; - contentDescriptionResId = R.string.accessibility_bluetooth_connected; + mContentDescriptionId = R.string.accessibility_bluetooth_connected; } else { mIconId = R.drawable.stat_sys_data_bluetooth; - contentDescriptionResId = R.string.accessibility_bluetooth_disconnected; + mContentDescriptionId = R.string.accessibility_bluetooth_disconnected; } + } + public void refreshViews() { int N = mIconViews.size(); for (int i=0; i<N; i++) { ImageView v = mIconViews.get(i); v.setImageResource(mIconId); v.setVisibility(mEnabled ? View.VISIBLE : View.GONE); - v.setContentDescription(mContext.getString(contentDescriptionResId)); + v.setContentDescription((mContentDescriptionId == 0) + ? null + : mContext.getString(mContentDescriptionId)); } } } |