Panagiotis Triantafyllou

accessibility couponset

...@@ -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
......