|
12 | 12 | import android.content.Context; |
13 | 13 | import android.content.DialogInterface; |
14 | 14 | import android.content.res.TypedArray; |
15 | | -import android.os.Build; |
16 | 15 | import android.os.Bundle; |
17 | | -import android.view.LayoutInflater; |
18 | | -import android.view.View; |
19 | | -import android.widget.TextView; |
20 | 16 | import androidx.annotation.Nullable; |
21 | 17 | import androidx.appcompat.app.AlertDialog; |
22 | | -import androidx.core.view.AccessibilityDelegateCompat; |
23 | | -import androidx.core.view.ViewCompat; |
24 | | -import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; |
25 | 18 | import androidx.fragment.app.DialogFragment; |
26 | | -import com.facebook.infer.annotation.Assertions; |
27 | 19 | import com.facebook.infer.annotation.Nullsafe; |
28 | | -import com.facebook.react.R; |
29 | 20 |
|
30 | 21 | /** A fragment used to display the dialog. */ |
31 | 22 | @Nullsafe(Nullsafe.Mode.LOCAL) |
@@ -75,55 +66,15 @@ private static boolean isAppCompatTheme(Context activityContext) { |
75 | 66 | return isAppCompat; |
76 | 67 | } |
77 | 68 |
|
78 | | - /** |
79 | | - * Creates a custom dialog title View that has the role of "Heading" and focusable for |
80 | | - * accessibility purposes. |
81 | | - * |
82 | | - * @returns accessible TextView title |
83 | | - */ |
84 | | - private static View getAccessibleTitle(Context activityContext, String titleText) { |
85 | | - LayoutInflater inflater = LayoutInflater.from(activityContext); |
86 | | - |
87 | | - // This layout matches the sizing and styling of AlertDialog's title_template (minus the icon) |
88 | | - // since the whole thing gets tossed out when setting a custom title |
89 | | - View titleContainer = inflater.inflate(R.layout.alert_title_layout, null); |
90 | | - |
91 | | - TextView accessibleTitle = |
92 | | - Assertions.assertNotNull(titleContainer.findViewById(R.id.alert_title)); |
93 | | - accessibleTitle.setText(titleText); |
94 | | - accessibleTitle.setFocusable(true); |
95 | | - |
96 | | - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { |
97 | | - accessibleTitle.setAccessibilityHeading(true); |
98 | | - } else { |
99 | | - ViewCompat.setAccessibilityDelegate( |
100 | | - accessibleTitle, |
101 | | - new AccessibilityDelegateCompat() { |
102 | | - @Override |
103 | | - public void onInitializeAccessibilityNodeInfo( |
104 | | - View view, AccessibilityNodeInfoCompat info) { |
105 | | - super.onInitializeAccessibilityNodeInfo(accessibleTitle, info); |
106 | | - info.setHeading(true); |
107 | | - } |
108 | | - }); |
109 | | - } |
110 | | - |
111 | | - return titleContainer; |
112 | | - } |
113 | | - |
114 | 69 | /** |
115 | 70 | * Creates a dialog compatible only with AppCompat activities. This function should be kept in |
116 | 71 | * sync with {@link createAppDialog}. |
117 | 72 | */ |
118 | 73 | private static Dialog createAppCompatDialog( |
119 | 74 | Context activityContext, Bundle arguments, DialogInterface.OnClickListener fragment) { |
120 | | - AlertDialog.Builder builder = new AlertDialog.Builder(activityContext); |
| 75 | + AlertDialog.Builder builder = |
| 76 | + new AlertDialog.Builder(activityContext).setTitle(arguments.getString(ARG_TITLE)); |
121 | 77 |
|
122 | | - if (arguments.containsKey(ARG_TITLE)) { |
123 | | - String title = Assertions.assertNotNull(arguments.getString(ARG_TITLE)); |
124 | | - View accessibleTitle = getAccessibleTitle(activityContext, title); |
125 | | - builder.setCustomTitle(accessibleTitle); |
126 | | - } |
127 | 78 | if (arguments.containsKey(ARG_BUTTON_POSITIVE)) { |
128 | 79 | builder.setPositiveButton(arguments.getString(ARG_BUTTON_POSITIVE), fragment); |
129 | 80 | } |
@@ -154,13 +105,10 @@ private static Dialog createAppCompatDialog( |
154 | 105 | @Deprecated(since = "0.75.0", forRemoval = true) |
155 | 106 | private static Dialog createAppDialog( |
156 | 107 | Context activityContext, Bundle arguments, DialogInterface.OnClickListener fragment) { |
157 | | - android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(activityContext); |
| 108 | + android.app.AlertDialog.Builder builder = |
| 109 | + new android.app.AlertDialog.Builder(activityContext) |
| 110 | + .setTitle(arguments.getString(ARG_TITLE)); |
158 | 111 |
|
159 | | - if (arguments.containsKey(ARG_TITLE)) { |
160 | | - String title = Assertions.assertNotNull(arguments.getString(ARG_TITLE)); |
161 | | - View accessibleTitle = getAccessibleTitle(activityContext, title); |
162 | | - builder.setCustomTitle(accessibleTitle); |
163 | | - } |
164 | 112 | if (arguments.containsKey(ARG_BUTTON_POSITIVE)) { |
165 | 113 | builder.setPositiveButton(arguments.getString(ARG_BUTTON_POSITIVE), fragment); |
166 | 114 | } |
|
0 commit comments