Panagiotis Triantafyllou

accessibility history, minor fixes

...@@ -7,14 +7,19 @@ import android.os.Handler; ...@@ -7,14 +7,19 @@ import android.os.Handler;
7 import android.text.SpannableStringBuilder; 7 import android.text.SpannableStringBuilder;
8 import android.text.Spanned; 8 import android.text.Spanned;
9 import android.view.View; 9 import android.view.View;
10 +import android.view.accessibility.AccessibilityEvent;
10 import android.widget.ImageView; 11 import android.widget.ImageView;
11 import android.widget.LinearLayout; 12 import android.widget.LinearLayout;
12 import android.widget.RelativeLayout; 13 import android.widget.RelativeLayout;
13 import android.widget.TextView; 14 import android.widget.TextView;
14 15
16 +import androidx.annotation.NonNull;
15 import androidx.cardview.widget.CardView; 17 import androidx.cardview.widget.CardView;
16 import androidx.core.content.ContextCompat; 18 import androidx.core.content.ContextCompat;
17 import androidx.core.content.res.ResourcesCompat; 19 import androidx.core.content.res.ResourcesCompat;
20 +import androidx.core.view.AccessibilityDelegateCompat;
21 +import androidx.core.view.ViewCompat;
22 +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
18 import androidx.recyclerview.widget.LinearLayoutManager; 23 import androidx.recyclerview.widget.LinearLayoutManager;
19 import androidx.recyclerview.widget.RecyclerView; 24 import androidx.recyclerview.widget.RecyclerView;
20 25
...@@ -98,6 +103,88 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis ...@@ -98,6 +103,88 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis
98 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mFontExpiredMore, 103 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mFontExpiredMore,
99 mFontSharedMore); 104 mFontSharedMore);
100 105
106 + //Accessibility
107 + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() {
108 + @Override
109 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
110 + super.onInitializeAccessibilityNodeInfo(host, info);
111 + info.setClassName("android.widget.TextView");
112 + info.setHeading(true);
113 + }
114 + });
115 + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
116 +
117 + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() {
118 + @Override
119 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
120 + super.onInitializeAccessibilityNodeInfo(host, info);
121 + info.setClassName("android.widget.Button");
122 + info.setContentDescription(getString(R.string.accessibility_back));
123 + }
124 + });
125 + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
126 + mIvBack.postDelayed(() -> {
127 + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
128 + }, 1000);
129 +
130 + ViewCompat.setAccessibilityDelegate(mLlExpiredTab, 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.setSelected(true);
136 + info.setContentDescription(getString(R.string.cos_redeemed_coupons_tab));
137 + }
138 + });
139 +
140 + ViewCompat.setAccessibilityDelegate(mLlSharedTab, 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.setSelected(false);
146 + info.setContentDescription(getString(R.string.cos_shared_gifts_tab));
147 + }
148 + });
149 +
150 + ViewCompat.setAccessibilityDelegate(mFontExpired, new AccessibilityDelegateCompat() {
151 + @Override
152 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
153 + super.onInitializeAccessibilityNodeInfo(host, info);
154 + info.setClassName("android.widget.TextView");
155 + info.setHeading(true);
156 + }
157 + });
158 +
159 + ViewCompat.setAccessibilityDelegate(mFontShared, new AccessibilityDelegateCompat() {
160 + @Override
161 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
162 + super.onInitializeAccessibilityNodeInfo(host, info);
163 + info.setClassName("android.widget.TextView");
164 + info.setHeading(true);
165 + }
166 + });
167 +
168 + ViewCompat.setAccessibilityDelegate(mLlShowMoreShared, new AccessibilityDelegateCompat() {
169 + @Override
170 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
171 + super.onInitializeAccessibilityNodeInfo(host, info);
172 + info.setClassName("android.widget.Button");
173 + info.setContentDescription(getString(R.string.cos_see_more));
174 + info.setStateDescription(getString(R.string.accessibility_collapse));
175 + }
176 + });
177 +
178 + ViewCompat.setAccessibilityDelegate(mLlShowMoreExpired, new AccessibilityDelegateCompat() {
179 + @Override
180 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
181 + super.onInitializeAccessibilityNodeInfo(host, info);
182 + info.setClassName("android.widget.Button");
183 + info.setContentDescription(getString(R.string.cos_see_more));
184 + info.setStateDescription(getString(R.string.accessibility_collapse));
185 + }
186 + });
187 +
101 initViews(); 188 initViews();
102 } 189 }
103 190
...@@ -182,6 +269,26 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis ...@@ -182,6 +269,26 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis
182 269
183 mRlSharedView.setVisibility(View.GONE); 270 mRlSharedView.setVisibility(View.GONE);
184 mRlExpiredView.setVisibility(View.VISIBLE); 271 mRlExpiredView.setVisibility(View.VISIBLE);
272 +
273 + ViewCompat.setAccessibilityDelegate(mLlExpiredTab, new AccessibilityDelegateCompat() {
274 + @Override
275 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
276 + super.onInitializeAccessibilityNodeInfo(host, info);
277 + info.setClassName("android.widget.Button");
278 + info.setSelected(true);
279 + info.setContentDescription(getString(R.string.cos_redeemed_coupons_tab));
280 + }
281 + });
282 +
283 + ViewCompat.setAccessibilityDelegate(mLlSharedTab, new AccessibilityDelegateCompat() {
284 + @Override
285 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
286 + super.onInitializeAccessibilityNodeInfo(host, info);
287 + info.setClassName("android.widget.Button");
288 + info.setSelected(false);
289 + info.setContentDescription(getString(R.string.cos_shared_gifts_tab));
290 + }
291 + });
185 return; 292 return;
186 } 293 }
187 if (view.getId() == R.id.ll_tab_shared) { 294 if (view.getId() == R.id.ll_tab_shared) {
...@@ -215,6 +322,26 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis ...@@ -215,6 +322,26 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis
215 322
216 mRlExpiredView.setVisibility(View.GONE); 323 mRlExpiredView.setVisibility(View.GONE);
217 mRlSharedView.setVisibility(View.VISIBLE); 324 mRlSharedView.setVisibility(View.VISIBLE);
325 +
326 + ViewCompat.setAccessibilityDelegate(mLlExpiredTab, new AccessibilityDelegateCompat() {
327 + @Override
328 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
329 + super.onInitializeAccessibilityNodeInfo(host, info);
330 + info.setClassName("android.widget.Button");
331 + info.setSelected(false);
332 + info.setContentDescription(getString(R.string.cos_redeemed_coupons_tab));
333 + }
334 + });
335 +
336 + ViewCompat.setAccessibilityDelegate(mLlSharedTab, new AccessibilityDelegateCompat() {
337 + @Override
338 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
339 + super.onInitializeAccessibilityNodeInfo(host, info);
340 + info.setClassName("android.widget.Button");
341 + info.setSelected(true);
342 + info.setContentDescription(getString(R.string.cos_shared_gifts_tab));
343 + }
344 + });
218 return; 345 return;
219 } 346 }
220 if (view.getId() == R.id.ll_show_more_expired) { 347 if (view.getId() == R.id.ll_show_more_expired) {
......
...@@ -8,11 +8,16 @@ import android.os.Handler; ...@@ -8,11 +8,16 @@ import android.os.Handler;
8 import android.text.SpannableStringBuilder; 8 import android.text.SpannableStringBuilder;
9 import android.text.Spanned; 9 import android.text.Spanned;
10 import android.view.View; 10 import android.view.View;
11 +import android.view.accessibility.AccessibilityEvent;
11 import android.widget.ImageView; 12 import android.widget.ImageView;
12 import android.widget.RelativeLayout; 13 import android.widget.RelativeLayout;
13 import android.widget.TextView; 14 import android.widget.TextView;
14 15
16 +import androidx.annotation.NonNull;
15 import androidx.core.content.res.ResourcesCompat; 17 import androidx.core.content.res.ResourcesCompat;
18 +import androidx.core.view.AccessibilityDelegateCompat;
19 +import androidx.core.view.ViewCompat;
20 +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
16 21
17 import org.greenrobot.eventbus.EventBus; 22 import org.greenrobot.eventbus.EventBus;
18 import org.greenrobot.eventbus.Subscribe; 23 import org.greenrobot.eventbus.Subscribe;
...@@ -84,6 +89,30 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList ...@@ -84,6 +89,30 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
84 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvDealsValue, mTvMarketValue, 89 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvDealsValue, mTvMarketValue,
85 mTvGiftsValue, mTvBoxValue); 90 mTvGiftsValue, mTvBoxValue);
86 91
92 + //Accessibility
93 + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() {
94 + @Override
95 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
96 + super.onInitializeAccessibilityNodeInfo(host, info);
97 + info.setClassName("android.widget.TextView");
98 + info.setHeading(true);
99 + }
100 + });
101 + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
102 +
103 + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() {
104 + @Override
105 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
106 + super.onInitializeAccessibilityNodeInfo(host, info);
107 + info.setClassName("android.widget.Button");
108 + info.setContentDescription(getString(R.string.accessibility_back));
109 + }
110 + });
111 + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
112 + mIvBack.postDelayed(() -> {
113 + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
114 + }, 1000);
115 +
87 initViews(); 116 initViews();
88 } 117 }
89 118
...@@ -250,6 +279,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList ...@@ -250,6 +279,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
250 sBuilder.setSpan(typefaceBoldSpanFirst, 24, 24 + badgeValueFirst.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 279 sBuilder.setSpan(typefaceBoldSpanFirst, 24, 24 + badgeValueFirst.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
251 mTvDealsValueAll.setText(sBuilder, TextView.BufferType.SPANNABLE); 280 mTvDealsValueAll.setText(sBuilder, TextView.BufferType.SPANNABLE);
252 mFavValue += WarplyManagerHelper.getDealsCouponsSum(); 281 mFavValue += WarplyManagerHelper.getDealsCouponsSum();
282 +
283 + ViewCompat.setAccessibilityDelegate(mRlDealsBanner, new AccessibilityDelegateCompat() {
284 + @Override
285 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
286 + super.onInitializeAccessibilityNodeInfo(host, info);
287 + info.setClassName("android.widget.Button");
288 + info.setContentDescription(getString(R.string.accessibility_market_dfy) + ", " + mTvDealsValueAll.getText().toString());
289 + }
290 + });
253 /** First Banner */ 291 /** First Banner */
254 292
255 /** Second Expandable Banner */ 293 /** Second Expandable Banner */
...@@ -287,6 +325,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList ...@@ -287,6 +325,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
287 325
288 sBuilderThird.setSpan(typefaceBoldSpanThird, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 326 sBuilderThird.setSpan(typefaceBoldSpanThird, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
289 mTvMarketAll.setText(sBuilderThird, TextView.BufferType.SPANNABLE); 327 mTvMarketAll.setText(sBuilderThird, TextView.BufferType.SPANNABLE);
328 +
329 + ViewCompat.setAccessibilityDelegate(mRlUnifiedBanner, new AccessibilityDelegateCompat() {
330 + @Override
331 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
332 + super.onInitializeAccessibilityNodeInfo(host, info);
333 + info.setClassName("android.widget.Button");
334 + info.setContentDescription(getString(R.string.accessibility_market_sm) + ", " + mTvMarketAll.getText().toString());
335 + }
336 + });
290 } else { 337 } else {
291 String badgeValue = String.format(Locale.GERMAN, "%.02f", 0.0f); 338 String badgeValue = String.format(Locale.GERMAN, "%.02f", 0.0f);
292 mTvMarketValue.setText(String.format(getString(R.string.cos_value), badgeValue)); 339 mTvMarketValue.setText(String.format(getString(R.string.cos_value), badgeValue));
...@@ -298,6 +345,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList ...@@ -298,6 +345,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
298 345
299 sBuilderThird.setSpan(typefaceBoldSpanThird, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 346 sBuilderThird.setSpan(typefaceBoldSpanThird, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
300 mTvMarketAll.setText(sBuilderThird, TextView.BufferType.SPANNABLE); 347 mTvMarketAll.setText(sBuilderThird, TextView.BufferType.SPANNABLE);
348 +
349 + ViewCompat.setAccessibilityDelegate(mRlUnifiedBanner, new AccessibilityDelegateCompat() {
350 + @Override
351 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
352 + super.onInitializeAccessibilityNodeInfo(host, info);
353 + info.setClassName("android.widget.Button");
354 + info.setContentDescription(getString(R.string.accessibility_market_sm) + ", " + mTvMarketAll.getText().toString());
355 + }
356 + });
301 } 357 }
302 /** Second Expandable Banner */ 358 /** Second Expandable Banner */
303 359
...@@ -319,6 +375,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList ...@@ -319,6 +375,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
319 sBuilderSecond.setSpan(typefaceBoldSpanSecond, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 375 sBuilderSecond.setSpan(typefaceBoldSpanSecond, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
320 mTvGiftsValueAll.setText(sBuilderSecond, TextView.BufferType.SPANNABLE); 376 mTvGiftsValueAll.setText(sBuilderSecond, TextView.BufferType.SPANNABLE);
321 mFavValue += WarplyManagerHelper.getLoyaltyBadge().getValue(); 377 mFavValue += WarplyManagerHelper.getLoyaltyBadge().getValue();
378 +
379 + ViewCompat.setAccessibilityDelegate(mRlGiftsBanner, new AccessibilityDelegateCompat() {
380 + @Override
381 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
382 + super.onInitializeAccessibilityNodeInfo(host, info);
383 + info.setClassName("android.widget.Button");
384 + info.setContentDescription(getString(R.string.accessibility_market_free_coupons) + ", " + mTvGiftsValueAll.getText().toString());
385 + }
386 + });
322 } 387 }
323 /** Third Banner */ 388 /** Third Banner */
324 389
...@@ -339,6 +404,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList ...@@ -339,6 +404,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
339 sBuilderFourth.setSpan(typefaceBoldSpanFourth, 24, 24 + badgeValueFourth.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 404 sBuilderFourth.setSpan(typefaceBoldSpanFourth, 24, 24 + badgeValueFourth.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
340 mTvBoxValueAll.setText(sBuilderFourth, TextView.BufferType.SPANNABLE); 405 mTvBoxValueAll.setText(sBuilderFourth, TextView.BufferType.SPANNABLE);
341 mFavValue += WarplyManagerHelper.getBoxCouponsSum(); 406 mFavValue += WarplyManagerHelper.getBoxCouponsSum();
407 +
408 + ViewCompat.setAccessibilityDelegate(mRlBoxBanner, new AccessibilityDelegateCompat() {
409 + @Override
410 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
411 + super.onInitializeAccessibilityNodeInfo(host, info);
412 + info.setClassName("android.widget.Button");
413 + info.setContentDescription(getString(R.string.accessibility_market_box) + ", " + mTvBoxValueAll.getText().toString());
414 + }
415 + });
342 /** Fourth Banner */ 416 /** Fourth Banner */
343 417
344 /** Sum Banner */ 418 /** Sum Banner */
......
...@@ -8,14 +8,19 @@ import android.os.Looper; ...@@ -8,14 +8,19 @@ import android.os.Looper;
8 import android.text.SpannableStringBuilder; 8 import android.text.SpannableStringBuilder;
9 import android.text.Spanned; 9 import android.text.Spanned;
10 import android.view.View; 10 import android.view.View;
11 +import android.view.accessibility.AccessibilityEvent;
11 import android.widget.ImageView; 12 import android.widget.ImageView;
12 import android.widget.LinearLayout; 13 import android.widget.LinearLayout;
13 import android.widget.RelativeLayout; 14 import android.widget.RelativeLayout;
14 import android.widget.TextView; 15 import android.widget.TextView;
15 16
17 +import androidx.annotation.NonNull;
16 import androidx.cardview.widget.CardView; 18 import androidx.cardview.widget.CardView;
17 import androidx.core.content.ContextCompat; 19 import androidx.core.content.ContextCompat;
18 import androidx.core.content.res.ResourcesCompat; 20 import androidx.core.content.res.ResourcesCompat;
21 +import androidx.core.view.AccessibilityDelegateCompat;
22 +import androidx.core.view.ViewCompat;
23 +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
19 import androidx.recyclerview.widget.LinearLayoutManager; 24 import androidx.recyclerview.widget.LinearLayoutManager;
20 import androidx.recyclerview.widget.RecyclerView; 25 import androidx.recyclerview.widget.RecyclerView;
21 26
...@@ -98,6 +103,57 @@ public class LoyaltyMarketAnalysisActivity extends Activity implements View.OnCl ...@@ -98,6 +103,57 @@ public class LoyaltyMarketAnalysisActivity extends Activity implements View.OnCl
98 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mFontExpiredMore, 103 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mFontExpiredMore,
99 mFontSharedMore); 104 mFontSharedMore);
100 105
106 + //Accessibility
107 + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() {
108 + @Override
109 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
110 + super.onInitializeAccessibilityNodeInfo(host, info);
111 + info.setClassName("android.widget.TextView");
112 + info.setHeading(true);
113 + }
114 + });
115 + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
116 +
117 + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() {
118 + @Override
119 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
120 + super.onInitializeAccessibilityNodeInfo(host, info);
121 + info.setClassName("android.widget.Button");
122 + info.setContentDescription(getString(R.string.accessibility_back));
123 + }
124 + });
125 + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
126 + mIvBack.postDelayed(() -> {
127 + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
128 + }, 1000);
129 +
130 + ViewCompat.setAccessibilityDelegate(mFontExpired, new AccessibilityDelegateCompat() {
131 + @Override
132 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
133 + super.onInitializeAccessibilityNodeInfo(host, info);
134 + info.setClassName("android.widget.TextView");
135 + info.setHeading(true);
136 + }
137 + });
138 +
139 + ViewCompat.setAccessibilityDelegate(mFontShared, new AccessibilityDelegateCompat() {
140 + @Override
141 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
142 + super.onInitializeAccessibilityNodeInfo(host, info);
143 + info.setClassName("android.widget.TextView");
144 + info.setHeading(true);
145 + }
146 + });
147 +
148 + ViewCompat.setAccessibilityDelegate(mLlShowMoreExpired, new AccessibilityDelegateCompat() {
149 + @Override
150 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
151 + super.onInitializeAccessibilityNodeInfo(host, info);
152 + info.setClassName("android.widget.Button");
153 + info.setContentDescription(getString(R.string.cos_see_more));
154 + info.setStateDescription(getString(R.string.accessibility_collapse));
155 + }
156 + });
101 157
102 if (WarplyManagerHelper.getMarketCoupons() != null && WarplyManagerHelper.getMarketCoupons().size() > 0) { 158 if (WarplyManagerHelper.getMarketCoupons() != null && WarplyManagerHelper.getMarketCoupons().size() > 0) {
103 final ExecutorService executor = Executors.newFixedThreadPool(1); 159 final ExecutorService executor = Executors.newFixedThreadPool(1);
......
...@@ -28,7 +28,7 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList ...@@ -28,7 +28,7 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList
28 // Fields 28 // Fields
29 // =========================================================== 29 // ===========================================================
30 30
31 - private ImageView mIvBack; 31 + private ImageView mIvBack, mIvGenericImage;
32 private TextView mFontHeader, mTvPassInfoHeader, mTvBasketTitle, mTvBasketSubtitle, 32 private TextView mFontHeader, mTvPassInfoHeader, mTvBasketTitle, mTvBasketSubtitle,
33 mTvEshopTitle, mTvEshopSubtitle, mTvAbTitle, mTvAbSubtitle, mTvPassBack; 33 mTvEshopTitle, mTvEshopSubtitle, mTvAbTitle, mTvAbSubtitle, mTvPassBack;
34 private LinearLayout mLlPassReturn; 34 private LinearLayout mLlPassReturn;
...@@ -53,6 +53,7 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList ...@@ -53,6 +53,7 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList
53 mTvAbSubtitle = findViewById(R.id.tv_pass_info_ab_subtitle); 53 mTvAbSubtitle = findViewById(R.id.tv_pass_info_ab_subtitle);
54 mTvPassBack = findViewById(R.id.tv_button_back); 54 mTvPassBack = findViewById(R.id.tv_button_back);
55 mLlPassReturn = findViewById(R.id.ll_return_back); 55 mLlPassReturn = findViewById(R.id.ll_return_back);
56 + mIvGenericImage = findViewById(R.id.iv_pass_info_logo);
56 57
57 WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader, mTvPassInfoHeader); 58 WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader, mTvPassInfoHeader);
58 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvBasketTitle, mTvEshopTitle, 59 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvBasketTitle, mTvEshopTitle,
...@@ -93,6 +94,16 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList ...@@ -93,6 +94,16 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList
93 } 94 }
94 }); 95 });
95 96
97 + mIvGenericImage.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
98 + ViewCompat.setAccessibilityDelegate(mIvGenericImage, new AccessibilityDelegateCompat() {
99 + @Override
100 + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
101 + super.onInitializeAccessibilityNodeInfo(host, info);
102 + info.setClassName("android.widget.ImageView");
103 + info.setContentDescription(getString(R.string.cos_market_Pass_info_title));
104 + }
105 + });
106 +
96 initViews(); 107 initViews();
97 } 108 }
98 109
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
18 android:layout_width="48dp" 18 android:layout_width="48dp"
19 android:layout_height="48dp" 19 android:layout_height="48dp"
20 android:layout_marginStart="16dp" 20 android:layout_marginStart="16dp"
21 + android:contentDescription="@string/accessibility_back"
21 android:scaleType="centerInside" 22 android:scaleType="centerInside"
22 android:src="@drawable/ic_back" 23 android:src="@drawable/ic_back"
23 app:layout_constraintBottom_toBottomOf="parent" 24 app:layout_constraintBottom_toBottomOf="parent"
...@@ -28,6 +29,7 @@ ...@@ -28,6 +29,7 @@
28 android:id="@+id/textView3" 29 android:id="@+id/textView3"
29 android:layout_width="wrap_content" 30 android:layout_width="wrap_content"
30 android:layout_height="wrap_content" 31 android:layout_height="wrap_content"
32 + android:contentDescription="@string/cos_analysis"
31 android:text="@string/cos_analysis" 33 android:text="@string/cos_analysis"
32 android:textColor="@color/cos_light_black" 34 android:textColor="@color/cos_light_black"
33 android:textSize="19sp" 35 android:textSize="19sp"
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
20 android:layout_marginStart="16dp" 20 android:layout_marginStart="16dp"
21 android:scaleType="centerInside" 21 android:scaleType="centerInside"
22 android:src="@drawable/ic_close" 22 android:src="@drawable/ic_close"
23 + android:contentDescription="@string/accessibility_close"
23 app:layout_constraintBottom_toBottomOf="parent" 24 app:layout_constraintBottom_toBottomOf="parent"
24 app:layout_constraintStart_toStartOf="parent" 25 app:layout_constraintStart_toStartOf="parent"
25 app:layout_constraintTop_toTopOf="parent" /> 26 app:layout_constraintTop_toTopOf="parent" />
...@@ -29,6 +30,7 @@ ...@@ -29,6 +30,7 @@
29 android:layout_width="wrap_content" 30 android:layout_width="wrap_content"
30 android:layout_height="wrap_content" 31 android:layout_height="wrap_content"
31 android:text="@string/cos_loyalty_history" 32 android:text="@string/cos_loyalty_history"
33 + android:contentDescription="@string/cos_loyalty_history"
32 android:textColor="@color/cos_light_black" 34 android:textColor="@color/cos_light_black"
33 android:textSize="19sp" 35 android:textSize="19sp"
34 app:layout_constraintBottom_toBottomOf="parent" 36 app:layout_constraintBottom_toBottomOf="parent"
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
19 android:layout_height="48dp" 19 android:layout_height="48dp"
20 android:layout_marginStart="16dp" 20 android:layout_marginStart="16dp"
21 android:scaleType="centerInside" 21 android:scaleType="centerInside"
22 + android:contentDescription="@string/accessibility_back"
22 android:src="@drawable/ic_back" 23 android:src="@drawable/ic_back"
23 app:layout_constraintBottom_toBottomOf="parent" 24 app:layout_constraintBottom_toBottomOf="parent"
24 app:layout_constraintStart_toStartOf="parent" 25 app:layout_constraintStart_toStartOf="parent"
...@@ -29,6 +30,7 @@ ...@@ -29,6 +30,7 @@
29 android:layout_width="wrap_content" 30 android:layout_width="wrap_content"
30 android:layout_height="wrap_content" 31 android:layout_height="wrap_content"
31 android:text="@string/cos_analysis" 32 android:text="@string/cos_analysis"
33 + android:contentDescription="@string/cos_analysis"
32 android:textColor="@color/cos_light_black" 34 android:textColor="@color/cos_light_black"
33 android:textSize="19sp" 35 android:textSize="19sp"
34 app:layout_constraintBottom_toBottomOf="parent" 36 app:layout_constraintBottom_toBottomOf="parent"
......
...@@ -277,6 +277,10 @@ ...@@ -277,6 +277,10 @@
277 <string name="accessibility_market_pass_info">Πληροφορίες</string> 277 <string name="accessibility_market_pass_info">Πληροφορίες</string>
278 <string name="accessibility_market_pass_barcode_value">Αριθμός barcode</string> 278 <string name="accessibility_market_pass_barcode_value">Αριθμός barcode</string>
279 <string name="accessibility_market_pass_barcode">Barcode</string> 279 <string name="accessibility_market_pass_barcode">Barcode</string>
280 + <string name="accessibility_market_dfy">Deals for you</string>
281 + <string name="accessibility_market_sm">Supermarket deals</string>
282 + <string name="accessibility_market_free_coupons">Free coupons</string>
283 + <string name="accessibility_market_box">Box</string>
280 284
281 <string-array name="coupons_array"> 285 <string-array name="coupons_array">
282 <item>Κουπόνια</item> 286 <item>Κουπόνια</item>
......