Showing
3 changed files
with
79 additions
and
3 deletions
... | @@ -6,13 +6,18 @@ import android.os.Bundle; | ... | @@ -6,13 +6,18 @@ import android.os.Bundle; |
6 | import android.text.TextUtils; | 6 | import android.text.TextUtils; |
7 | import android.text.method.LinkMovementMethod; | 7 | import android.text.method.LinkMovementMethod; |
8 | import android.view.View; | 8 | import android.view.View; |
9 | +import android.view.accessibility.AccessibilityEvent; | ||
9 | import android.widget.ImageView; | 10 | import android.widget.ImageView; |
10 | import android.widget.LinearLayout; | 11 | import android.widget.LinearLayout; |
11 | import android.widget.RelativeLayout; | 12 | import android.widget.RelativeLayout; |
12 | import android.widget.TextView; | 13 | import android.widget.TextView; |
13 | 14 | ||
15 | +import androidx.annotation.NonNull; | ||
14 | import androidx.appcompat.app.AlertDialog; | 16 | import androidx.appcompat.app.AlertDialog; |
15 | import androidx.core.text.HtmlCompat; | 17 | import androidx.core.text.HtmlCompat; |
18 | +import androidx.core.view.AccessibilityDelegateCompat; | ||
19 | +import androidx.core.view.ViewCompat; | ||
20 | +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; | ||
16 | import androidx.work.OneTimeWorkRequest; | 21 | import androidx.work.OneTimeWorkRequest; |
17 | import androidx.work.WorkManager; | 22 | import androidx.work.WorkManager; |
18 | 23 | ||
... | @@ -111,6 +116,50 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe | ... | @@ -111,6 +116,50 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe |
111 | WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontButtonGetIt); | 116 | WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontButtonGetIt); |
112 | WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvTerms); | 117 | WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvTerms); |
113 | 118 | ||
119 | + //Accessibility | ||
120 | + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() { | ||
121 | + @Override | ||
122 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
123 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
124 | + info.setClassName("android.widget.TextView"); | ||
125 | + info.setHeading(true); | ||
126 | + } | ||
127 | + }); | ||
128 | + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
129 | + | ||
130 | + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() { | ||
131 | + @Override | ||
132 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
133 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
134 | + info.setClassName("android.widget.Button"); | ||
135 | + info.setContentDescription(getString(R.string.accessibility_back)); | ||
136 | + } | ||
137 | + }); | ||
138 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
139 | + mIvBack.postDelayed(() -> { | ||
140 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
141 | + }, 1000); | ||
142 | + | ||
143 | + ViewCompat.setAccessibilityDelegate(mLlRedeem, new AccessibilityDelegateCompat() { | ||
144 | + @Override | ||
145 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
146 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
147 | + info.setClassName("android.widget.Button"); | ||
148 | + info.setContentDescription(getString(R.string.cos_redeem_coupon2)); | ||
149 | + } | ||
150 | + }); | ||
151 | + | ||
152 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
153 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
154 | + @Override | ||
155 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
156 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
157 | + info.setClassName("android.widget.Button"); | ||
158 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
159 | + info.setStateDescription(getString(R.string.accessibility_collapse)); | ||
160 | + } | ||
161 | + }); | ||
162 | + | ||
114 | initViews(); | 163 | initViews(); |
115 | } | 164 | } |
116 | 165 | ||
... | @@ -173,11 +222,38 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe | ... | @@ -173,11 +222,38 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe |
173 | if (view.getId() == R.id.ll_terms_inner) { | 222 | if (view.getId() == R.id.ll_terms_inner) { |
174 | if (mIsTermsPressed) { | 223 | if (mIsTermsPressed) { |
175 | mIsTermsPressed = false; | 224 | mIsTermsPressed = false; |
225 | + | ||
226 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
227 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
228 | + @Override | ||
229 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
230 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
231 | + info.setClassName("android.widget.Button"); | ||
232 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
233 | + info.setStateDescription(getString(R.string.accessibility_collapse)); | ||
234 | + } | ||
235 | + }); | ||
236 | + | ||
176 | mTvTermsValue.setVisibility(View.GONE); | 237 | mTvTermsValue.setVisibility(View.GONE); |
177 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_down_dark_new)); | 238 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_down_dark_new)); |
178 | } else { | 239 | } else { |
179 | mIsTermsPressed = true; | 240 | mIsTermsPressed = true; |
241 | + | ||
242 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
243 | + @Override | ||
244 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
245 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
246 | + info.setClassName("android.widget.Button"); | ||
247 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
248 | + info.setStateDescription(getString(R.string.accessibility_expand)); | ||
249 | + } | ||
250 | + }); | ||
251 | + | ||
180 | mTvTermsValue.setVisibility(View.VISIBLE); | 252 | mTvTermsValue.setVisibility(View.VISIBLE); |
253 | + | ||
254 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
255 | + mTvTermsValue.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
256 | + | ||
181 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_up_dark_new)); | 257 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_up_dark_new)); |
182 | } | 258 | } |
183 | } | 259 | } | ... | ... |
... | @@ -902,9 +902,6 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener | ... | @@ -902,9 +902,6 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener |
902 | .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 902 | .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
903 | dialogPositive.dismiss(); | 903 | dialogPositive.dismiss(); |
904 | }) | 904 | }) |
905 | - .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichPositive) -> { | ||
906 | - dialogNegative.dismiss(); | ||
907 | - }) | ||
908 | .setCancelable(false) | 905 | .setCancelable(false) |
909 | .show(); | 906 | .show(); |
910 | } | 907 | } | ... | ... |
... | @@ -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" /> |
... | @@ -27,6 +28,7 @@ | ... | @@ -27,6 +28,7 @@ |
27 | android:layout_width="wrap_content" | 28 | android:layout_width="wrap_content" |
28 | android:layout_height="wrap_content" | 29 | android:layout_height="wrap_content" |
29 | android:text="@string/cos_coupon_info_title" | 30 | android:text="@string/cos_coupon_info_title" |
31 | + android:contentDescription="@string/cos_coupon_info_title" | ||
30 | android:textColor="@color/cos_light_black" | 32 | android:textColor="@color/cos_light_black" |
31 | android:textSize="19sp" | 33 | android:textSize="19sp" |
32 | app:layout_constraintBottom_toBottomOf="parent" | 34 | app:layout_constraintBottom_toBottomOf="parent" |
... | @@ -57,6 +59,7 @@ | ... | @@ -57,6 +59,7 @@ |
57 | android:layout_width="match_parent" | 59 | android:layout_width="match_parent" |
58 | android:layout_height="222dp" | 60 | android:layout_height="222dp" |
59 | android:scaleType="centerCrop" | 61 | android:scaleType="centerCrop" |
62 | + android:contentDescription="@string/accessibility_coupon_image" | ||
60 | tools:src="@drawable/carousel_banner" /> | 63 | tools:src="@drawable/carousel_banner" /> |
61 | 64 | ||
62 | <TextView | 65 | <TextView | ... | ... |
-
Please register or login to post a comment