OSDN Git Service

Fix a11y readout of notification importance buttons
authorJulia Reynolds <juliacr@google.com>
Thu, 30 May 2019 14:31:40 +0000 (10:31 -0400)
committerJulia Reynolds <juliacr@google.com>
Thu, 30 May 2019 14:31:40 +0000 (10:31 -0400)
Test: manual with TB
Bug: 134047401
Change-Id: Idab3426a37ed3f25c2cde47e0747ac9a31850f62

res/layout/notif_importance_preference.xml
src/com/android/settings/notification/ImportancePreference.java
src/com/android/settings/notification/NotificationButtonRelativeLayout.java [new file with mode: 0644]

index 2fc2740..395e049 100644 (file)
@@ -24,7 +24,7 @@
     android:padding="@dimen/notification_importance_toggle_marginTop"
     android:orientation="vertical">
 
-    <RelativeLayout
+    <com.android.settings.notification.NotificationButtonRelativeLayout
         android:id="@+id/alert"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
@@ -65,7 +65,7 @@
             android:layout_below="@id/alert_icon"
             android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"
             android:visibility="gone" />
-    </RelativeLayout>
+    </com.android.settings.notification.NotificationButtonRelativeLayout>
 
     <RelativeLayout
         android:id="@+id/silence"
index 0d39c8f..3e81d0c 100644 (file)
@@ -117,11 +117,13 @@ public class ImportancePreference extends Preference {
             case IMPORTANCE_LOW:
                 mAlertButton.setBackground(unselectedBackground);
                 mSilenceButton.setBackground(selectedBackground);
+                mSilenceButton.setSelected(true);
                 break;
             case IMPORTANCE_HIGH:
             default:
                 mSilenceButton.setBackground(unselectedBackground);
                 mAlertButton.setBackground(selectedBackground);
+                mAlertButton.setSelected(true);
                 break;
         }
         setImportanceSummary((ViewGroup) holder.itemView, mImportance, false);
diff --git a/src/com/android/settings/notification/NotificationButtonRelativeLayout.java b/src/com/android/settings/notification/NotificationButtonRelativeLayout.java
new file mode 100644 (file)
index 0000000..358cbf3
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.Button;
+import android.widget.RelativeLayout;
+
+public class NotificationButtonRelativeLayout extends RelativeLayout {
+
+    public NotificationButtonRelativeLayout(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public CharSequence getAccessibilityClassName() {
+        return Button.class.getName();
+    }
+}
\ No newline at end of file