Showing
2 changed files
with
78 additions
and
0 deletions
... | @@ -9,12 +9,17 @@ import android.util.Log; | ... | @@ -9,12 +9,17 @@ import android.util.Log; |
9 | import android.view.LayoutInflater; | 9 | import android.view.LayoutInflater; |
10 | import android.view.View; | 10 | import android.view.View; |
11 | import android.view.ViewGroup; | 11 | import android.view.ViewGroup; |
12 | +import android.view.accessibility.AccessibilityEvent; | ||
12 | import android.widget.ImageView; | 13 | import android.widget.ImageView; |
13 | import android.widget.LinearLayout; | 14 | import android.widget.LinearLayout; |
14 | import android.widget.RelativeLayout; | 15 | import android.widget.RelativeLayout; |
15 | import android.widget.TextView; | 16 | import android.widget.TextView; |
16 | 17 | ||
18 | +import androidx.annotation.NonNull; | ||
17 | import androidx.appcompat.app.AlertDialog; | 19 | import androidx.appcompat.app.AlertDialog; |
20 | +import androidx.core.view.AccessibilityDelegateCompat; | ||
21 | +import androidx.core.view.ViewCompat; | ||
22 | +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; | ||
18 | import androidx.work.OneTimeWorkRequest; | 23 | import androidx.work.OneTimeWorkRequest; |
19 | import androidx.work.WorkManager; | 24 | import androidx.work.WorkManager; |
20 | 25 | ||
... | @@ -108,6 +113,50 @@ public class ContextualActivity extends Activity implements View.OnClickListener | ... | @@ -108,6 +113,50 @@ public class ContextualActivity extends Activity implements View.OnClickListener |
108 | WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontActivateButton); | 113 | WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontActivateButton); |
109 | WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvTerms); | 114 | WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvTerms); |
110 | 115 | ||
116 | + //Accessibility | ||
117 | + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() { | ||
118 | + @Override | ||
119 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
120 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
121 | + info.setClassName("android.widget.TextView"); | ||
122 | + info.setHeading(true); | ||
123 | + } | ||
124 | + }); | ||
125 | + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
126 | + | ||
127 | + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() { | ||
128 | + @Override | ||
129 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
130 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
131 | + info.setClassName("android.widget.Button"); | ||
132 | + info.setContentDescription(getString(R.string.accessibility_back)); | ||
133 | + } | ||
134 | + }); | ||
135 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
136 | + mIvBack.postDelayed(() -> { | ||
137 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
138 | + }, 1000); | ||
139 | + | ||
140 | + ViewCompat.setAccessibilityDelegate(mLlActivateOffer, new AccessibilityDelegateCompat() { | ||
141 | + @Override | ||
142 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
143 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
144 | + info.setClassName("android.widget.Button"); | ||
145 | + info.setContentDescription(getString(R.string.cos_dlg_positive_button)); | ||
146 | + } | ||
147 | + }); | ||
148 | + | ||
149 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
150 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
151 | + @Override | ||
152 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
153 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
154 | + info.setClassName("android.widget.Button"); | ||
155 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
156 | + info.setStateDescription(getString(R.string.accessibility_collapse)); | ||
157 | + } | ||
158 | + }); | ||
159 | + | ||
111 | initViews(); | 160 | initViews(); |
112 | } | 161 | } |
113 | 162 | ||
... | @@ -143,11 +192,38 @@ public class ContextualActivity extends Activity implements View.OnClickListener | ... | @@ -143,11 +192,38 @@ public class ContextualActivity extends Activity implements View.OnClickListener |
143 | if (view.getId() == R.id.ll_terms_inner) { | 192 | if (view.getId() == R.id.ll_terms_inner) { |
144 | if (mIsTermsPressed) { | 193 | if (mIsTermsPressed) { |
145 | mIsTermsPressed = false; | 194 | mIsTermsPressed = false; |
195 | + | ||
196 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
197 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
198 | + @Override | ||
199 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
200 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
201 | + info.setClassName("android.widget.Button"); | ||
202 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
203 | + info.setStateDescription(getString(R.string.accessibility_collapse)); | ||
204 | + } | ||
205 | + }); | ||
206 | + | ||
146 | mTvTermsValue.setVisibility(View.GONE); | 207 | mTvTermsValue.setVisibility(View.GONE); |
147 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_down_dark_new)); | 208 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_down_dark_new)); |
148 | } else { | 209 | } else { |
149 | mIsTermsPressed = true; | 210 | mIsTermsPressed = true; |
211 | + | ||
212 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
213 | + @Override | ||
214 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
215 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
216 | + info.setClassName("android.widget.Button"); | ||
217 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
218 | + info.setStateDescription(getString(R.string.accessibility_expand)); | ||
219 | + } | ||
220 | + }); | ||
221 | + | ||
150 | mTvTermsValue.setVisibility(View.VISIBLE); | 222 | mTvTermsValue.setVisibility(View.VISIBLE); |
223 | + | ||
224 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
225 | + mTvTermsValue.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
226 | + | ||
151 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_up_dark_new)); | 227 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_up_dark_new)); |
152 | } | 228 | } |
153 | } | 229 | } | ... | ... |
... | @@ -18,6 +18,7 @@ | ... | @@ -18,6 +18,7 @@ |
18 | android:layout_marginStart="16dp" | 18 | android:layout_marginStart="16dp" |
19 | android:scaleType="centerInside" | 19 | android:scaleType="centerInside" |
20 | android:src="@drawable/ic_back" | 20 | android:src="@drawable/ic_back" |
21 | + android:contentDescription="@string/accessibility_back" | ||
21 | app:layout_constraintBottom_toBottomOf="parent" | 22 | app:layout_constraintBottom_toBottomOf="parent" |
22 | app:layout_constraintStart_toStartOf="parent" | 23 | app:layout_constraintStart_toStartOf="parent" |
23 | app:layout_constraintTop_toTopOf="parent" /> | 24 | app:layout_constraintTop_toTopOf="parent" /> |
... | @@ -61,6 +62,7 @@ | ... | @@ -61,6 +62,7 @@ |
61 | android:layout_width="match_parent" | 62 | android:layout_width="match_parent" |
62 | android:layout_height="222dp" | 63 | android:layout_height="222dp" |
63 | android:scaleType="centerCrop" | 64 | android:scaleType="centerCrop" |
65 | + android:contentDescription="@string/accessibility_coupon_image" | ||
64 | app:layout_constraintStart_toStartOf="parent" | 66 | app:layout_constraintStart_toStartOf="parent" |
65 | app:layout_constraintTop_toTopOf="parent" | 67 | app:layout_constraintTop_toTopOf="parent" |
66 | tools:src="@drawable/carousel_banner" /> | 68 | tools:src="@drawable/carousel_banner" /> | ... | ... |
-
Please register or login to post a comment