1919import com .android .internal .view .RotationPolicy ;
2020import com .android .internal .widget .LockPatternUtils ;
2121import com .android .systemui .R ;
22+
23+ import com .android .systemui .statusbar .phone .QuickSettingsModel .BluetoothState ;
2224import com .android .systemui .statusbar .phone .QuickSettingsModel .RSSIState ;
2325import com .android .systemui .statusbar .phone .QuickSettingsModel .State ;
2426import com .android .systemui .statusbar .phone .QuickSettingsModel .UserState ;
27+ import com .android .systemui .statusbar .phone .QuickSettingsModel .WifiState ;
2528import com .android .systemui .statusbar .policy .BatteryController ;
2629import com .android .systemui .statusbar .policy .BluetoothController ;
2730import com .android .systemui .statusbar .policy .BrightnessController ;
@@ -90,7 +93,7 @@ class QuickSettings {
9093 private DisplayManager mDisplayManager ;
9194 private WifiDisplayStatus mWifiDisplayStatus ;
9295 private PhoneStatusBar mStatusBarService ;
93- private QuickSettingsModel . BluetoothState mBluetoothState ;
96+ private BluetoothState mBluetoothState ;
9497
9598 private BrightnessController mBrightnessController ;
9699 private BluetoothController mBluetoothController ;
@@ -305,6 +308,8 @@ public void refreshView(QuickSettingsTileView view, State state) {
305308 if (us .avatar != null ) {
306309 iv .setImageDrawable (us .avatar );
307310 }
311+ view .setContentDescription (mContext .getString (
312+ R .string .accessibility_quick_settings_user , state .label ));
308313 }
309314 });
310315 parent .addView (userTile );
@@ -363,9 +368,14 @@ public void onClick(View v) {
363368 mModel .addWifiTile (wifiTile , new QuickSettingsModel .RefreshCallback () {
364369 @ Override
365370 public void refreshView (QuickSettingsTileView view , State state ) {
371+ WifiState wifiState = (WifiState ) state ;
366372 TextView tv = (TextView ) view .findViewById (R .id .wifi_textview );
367- tv .setCompoundDrawablesWithIntrinsicBounds (0 , state .iconId , 0 , 0 );
368- tv .setText (state .label );
373+ tv .setCompoundDrawablesWithIntrinsicBounds (0 , wifiState .iconId , 0 , 0 );
374+ tv .setText (wifiState .label );
375+ view .setContentDescription (mContext .getString (
376+ R .string .accessibility_quick_settings_wifi ,
377+ wifiState .signalContentDescription ,
378+ (wifiState .connected ) ? wifiState .label : "" ));
369379 }
370380 });
371381 parent .addView (wifiTile );
@@ -393,12 +403,17 @@ public void refreshView(QuickSettingsTileView view, State state) {
393403 ImageView iov = (ImageView ) view .findViewById (R .id .rssi_overlay_image );
394404 TextView tv = (TextView ) view .findViewById (R .id .rssi_textview );
395405 iv .setImageResource (rssiState .signalIconId );
406+
396407 if (rssiState .dataTypeIconId > 0 ) {
397408 iov .setImageResource (rssiState .dataTypeIconId );
398409 } else {
399410 iov .setImageDrawable (null );
400411 }
401412 tv .setText (state .label );
413+ view .setContentDescription (mContext .getResources ().getString (
414+ R .string .accessibility_quick_settings_mobile ,
415+ rssiState .signalContentDescription , rssiState .dataContentDescription ,
416+ state .label ));
402417 }
403418 });
404419 parent .addView (rssiTile );
@@ -460,6 +475,8 @@ public void refreshView(QuickSettingsTileView view, State state) {
460475 iv .setImageDrawable (d );
461476 iv .setImageLevel (batteryState .batteryLevel );
462477 tv .setText (t );
478+ view .setContentDescription (
479+ mContext .getString (R .string .accessibility_quick_settings_battery , t ));
463480 }
464481 });
465482 parent .addView (batteryTile );
@@ -473,6 +490,12 @@ public void refreshView(QuickSettingsTileView view, State state) {
473490 public void refreshView (QuickSettingsTileView view , State state ) {
474491 TextView tv = (TextView ) view .findViewById (R .id .airplane_mode_textview );
475492 tv .setCompoundDrawablesWithIntrinsicBounds (0 , state .iconId , 0 , 0 );
493+
494+ String airplaneState = mContext .getString (
495+ (state .enabled ) ? R .string .accessibility_desc_on
496+ : R .string .accessibility_desc_off );
497+ view .setContentDescription (
498+ mContext .getString (R .string .accessibility_quick_settings_airplane , airplaneState ));
476499 tv .setText (state .label );
477500 }
478501 });
@@ -492,6 +515,7 @@ public void onClick(View v) {
492515 mModel .addBluetoothTile (bluetoothTile , new QuickSettingsModel .RefreshCallback () {
493516 @ Override
494517 public void refreshView (QuickSettingsTileView view , State state ) {
518+ BluetoothState bluetoothState = (BluetoothState ) state ;
495519 TextView tv = (TextView ) view .findViewById (R .id .bluetooth_textview );
496520 tv .setCompoundDrawablesWithIntrinsicBounds (0 , state .iconId , 0 , 0 );
497521
@@ -510,6 +534,9 @@ public void refreshView(QuickSettingsTileView view, State state) {
510534 btDevices.size());
511535 }
512536 */
537+ view .setContentDescription (mContext .getString (
538+ R .string .accessibility_quick_settings_bluetooth ,
539+ bluetoothState .stateContentDescription ));
513540 tv .setText (label );
514541 }
515542 });
@@ -561,6 +588,8 @@ public void refreshView(QuickSettingsTileView view, State alarmState) {
561588 TextView tv = (TextView ) view .findViewById (R .id .alarm_textview );
562589 tv .setText (alarmState .label );
563590 view .setVisibility (alarmState .enabled ? View .VISIBLE : View .GONE );
591+ view .setContentDescription (mContext .getString (
592+ R .string .accessibility_quick_settings_alarm , alarmState .label ));
564593 }
565594 });
566595 parent .addView (alarmTile );
@@ -697,7 +726,7 @@ void updateResources() {
697726 showBrightnessDialog ();
698727 }
699728 }
700-
729+
701730 private void removeAllBrightnessDialogCallbacks () {
702731 mHandler .removeCallbacks (mDismissBrightnessDialogRunnable );
703732 }
@@ -717,7 +746,7 @@ private void showBrightnessDialog() {
717746 mBrightnessDialog .requestWindowFeature (Window .FEATURE_NO_TITLE );
718747 mBrightnessDialog .setContentView (R .layout .quick_settings_brightness_dialog );
719748 mBrightnessDialog .setCanceledOnTouchOutside (true );
720-
749+
721750 mBrightnessController = new BrightnessController (mContext ,
722751 (ToggleSlider ) mBrightnessDialog .findViewById (R .id .brightness_slider ));
723752 mBrightnessController .addStateChangedCallback (mModel );
@@ -727,7 +756,7 @@ public void onDismiss(DialogInterface dialog) {
727756 mBrightnessController = null ;
728757 }
729758 });
730-
759+
731760 mBrightnessDialog .getWindow ().setType (WindowManager .LayoutParams .TYPE_SYSTEM_ALERT );
732761 mBrightnessDialog .getWindow ().clearFlags (WindowManager .LayoutParams .FLAG_DIM_BEHIND );
733762 }
@@ -831,6 +860,7 @@ public void onReceive(Context context, Intent intent) {
831860 Log .e (TAG , "Couldn't get current user id for profile change" , e );
832861 }
833862 }
863+
834864 }
835865 };
836866}
0 commit comments