Showing
4 changed files
with
414 additions
and
12 deletions
| ... | @@ -2,6 +2,7 @@ package ly.warp.sdk.activities; | ... | @@ -2,6 +2,7 @@ package ly.warp.sdk.activities; | 
| 2 | 2 | ||
| 3 | import android.Manifest; | 3 | import android.Manifest; | 
| 4 | import android.content.ActivityNotFoundException; | 4 | import android.content.ActivityNotFoundException; | 
| 5 | +import android.content.Context; | ||
| 5 | import android.content.Intent; | 6 | import android.content.Intent; | 
| 6 | import android.content.pm.PackageManager; | 7 | import android.content.pm.PackageManager; | 
| 7 | import android.graphics.Bitmap; | 8 | import android.graphics.Bitmap; | 
| ... | @@ -9,11 +10,15 @@ import android.graphics.Canvas; | ... | @@ -9,11 +10,15 @@ import android.graphics.Canvas; | 
| 9 | import android.graphics.drawable.Drawable; | 10 | import android.graphics.drawable.Drawable; | 
| 10 | import android.net.Uri; | 11 | import android.net.Uri; | 
| 11 | import android.os.Bundle; | 12 | import android.os.Bundle; | 
| 13 | +import android.os.Handler; | ||
| 12 | import android.text.TextUtils; | 14 | import android.text.TextUtils; | 
| 13 | import android.util.Log; | 15 | import android.util.Log; | 
| 14 | import android.view.View; | 16 | import android.view.View; | 
| 17 | +import android.view.accessibility.AccessibilityEvent; | ||
| 18 | +import android.view.accessibility.AccessibilityManager; | ||
| 15 | import android.widget.ImageView; | 19 | import android.widget.ImageView; | 
| 16 | import android.widget.LinearLayout; | 20 | import android.widget.LinearLayout; | 
| 21 | +import android.widget.RelativeLayout; | ||
| 17 | import android.widget.TextView; | 22 | import android.widget.TextView; | 
| 18 | 23 | ||
| 19 | import androidx.annotation.NonNull; | 24 | import androidx.annotation.NonNull; | 
| ... | @@ -21,6 +26,9 @@ import androidx.annotation.Nullable; | ... | @@ -21,6 +26,9 @@ import androidx.annotation.Nullable; | 
| 21 | import androidx.appcompat.app.AlertDialog; | 26 | import androidx.appcompat.app.AlertDialog; | 
| 22 | import androidx.core.app.ActivityCompat; | 27 | import androidx.core.app.ActivityCompat; | 
| 23 | import androidx.core.content.ContextCompat; | 28 | import androidx.core.content.ContextCompat; | 
| 29 | +import androidx.core.view.AccessibilityDelegateCompat; | ||
| 30 | +import androidx.core.view.ViewCompat; | ||
| 31 | +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; | ||
| 24 | import androidx.fragment.app.FragmentActivity; | 32 | import androidx.fragment.app.FragmentActivity; | 
| 25 | 33 | ||
| 26 | import com.bumptech.glide.Glide; | 34 | import com.bumptech.glide.Glide; | 
| ... | @@ -104,6 +112,9 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -104,6 +112,9 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | 
| 104 | mIvBack.setOnClickListener(this); | 112 | mIvBack.setOnClickListener(this); | 
| 105 | mFontHeader = findViewById(R.id.textView3); | 113 | mFontHeader = findViewById(R.id.textView3); | 
| 106 | WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader); | 114 | WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader); | 
| 115 | + | ||
| 116 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 117 | + mFontHeader.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 107 | } | 118 | } | 
| 108 | 119 | ||
| 109 | @Override | 120 | @Override | 
| ... | @@ -214,9 +225,12 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -214,9 +225,12 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | 
| 214 | final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog); | 225 | final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog); | 
| 215 | bottomSheetDialog.setContentView(R.layout.dl_map_pin); | 226 | bottomSheetDialog.setContentView(R.layout.dl_map_pin); | 
| 216 | 227 | ||
| 217 | - ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_map_pin_close); | 228 | + RelativeLayout dialogClose = (RelativeLayout) bottomSheetDialog.findViewById(R.id.rl_map_pin_close); | 
| 218 | dialogClose.setOnClickListener(view -> bottomSheetDialog.dismiss()); | 229 | dialogClose.setOnClickListener(view -> bottomSheetDialog.dismiss()); | 
| 219 | 230 | ||
| 231 | + RelativeLayout imagePhone = (RelativeLayout) bottomSheetDialog.findViewById(R.id.rl_phone); | ||
| 232 | + RelativeLayout imageLocation = (RelativeLayout) bottomSheetDialog.findViewById(R.id.rl_location); | ||
| 233 | + | ||
| 220 | TextView pinTitle = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_title); | 234 | TextView pinTitle = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_title); | 
| 221 | WarpUtils.renderCustomFont(ShopsActivity.this, R.font.pf_square_sans_pro_bold, pinTitle); | 235 | WarpUtils.renderCustomFont(ShopsActivity.this, R.font.pf_square_sans_pro_bold, pinTitle); | 
| 222 | if (mMerchantParentList != null && mMerchantParentList.size() > 0) { | 236 | if (mMerchantParentList != null && mMerchantParentList.size() > 0) { | 
| ... | @@ -267,6 +281,122 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -267,6 +281,122 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | 
| 267 | startActivity(mapIntent); | 281 | startActivity(mapIntent); | 
| 268 | }); | 282 | }); | 
| 269 | 283 | ||
| 284 | + pinTitle.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 285 | + ViewCompat.setAccessibilityDelegate(pinTitle, new AccessibilityDelegateCompat() { | ||
| 286 | + @Override | ||
| 287 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 288 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 289 | + info.setClassName("android.widget.TextView"); | ||
| 290 | + info.setContentDescription(pinTitle.getText().toString()); | ||
| 291 | + } | ||
| 292 | + }); | ||
| 293 | + | ||
| 294 | + dialogClose.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 295 | + ViewCompat.setAccessibilityDelegate(dialogClose, new AccessibilityDelegateCompat() { | ||
| 296 | + @Override | ||
| 297 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 298 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 299 | + info.setClassName("android.widget.Button"); | ||
| 300 | + info.setContentDescription(getString(R.string.accessibility_close)); | ||
| 301 | + } | ||
| 302 | + }); | ||
| 303 | + | ||
| 304 | + pinLogo.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 305 | + pinName.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 306 | + pinDays.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 307 | + pinTel.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 308 | + pinAddress.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 309 | + pinDirectionsText.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 310 | + pinDirections.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 311 | + imagePhone.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 312 | + imageLocation.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 313 | + | ||
| 314 | + View rootView = findViewById(android.R.id.content); | ||
| 315 | + if (rootView != null) { | ||
| 316 | + rootView.post(() -> { | ||
| 317 | + rootView.announceForAccessibility(getString(R.string.accessibility_pin) + ", " + getString(R.string.accessibility_shop) + ", "); | ||
| 318 | + }); | ||
| 319 | + | ||
| 320 | + new Handler().postDelayed(() -> { | ||
| 321 | + dialogClose.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 322 | + | ||
| 323 | + pinTitle.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 324 | + pinLogo.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 325 | + ViewCompat.setAccessibilityDelegate(pinLogo, new AccessibilityDelegateCompat() { | ||
| 326 | + @Override | ||
| 327 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 328 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 329 | + info.setClassName("android.widget.ImageView"); | ||
| 330 | + info.setContentDescription(getString(R.string.accessibility_shop_logo)); | ||
| 331 | + } | ||
| 332 | + }); | ||
| 333 | + | ||
| 334 | + pinName.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 335 | + ViewCompat.setAccessibilityDelegate(pinName, new AccessibilityDelegateCompat() { | ||
| 336 | + @Override | ||
| 337 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 338 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 339 | + info.setClassName("android.widget.TextView"); | ||
| 340 | + info.setContentDescription(merch.getName()); | ||
| 341 | + } | ||
| 342 | + }); | ||
| 343 | + | ||
| 344 | + pinDays.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 345 | + | ||
| 346 | + imagePhone.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 347 | + ViewCompat.setAccessibilityDelegate(imagePhone, new AccessibilityDelegateCompat() { | ||
| 348 | + @Override | ||
| 349 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 350 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 351 | + info.setClassName("android.widget.ImageView"); | ||
| 352 | + info.setContentDescription(getString(R.string.accessibility_phone)); | ||
| 353 | + } | ||
| 354 | + }); | ||
| 355 | + | ||
| 356 | + pinTel.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 357 | + ViewCompat.setAccessibilityDelegate(pinTel, new AccessibilityDelegateCompat() { | ||
| 358 | + @Override | ||
| 359 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 360 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 361 | + info.setClassName("android.widget.TextView"); | ||
| 362 | + info.setContentDescription(WarplyManagerHelper.formatPhoneNumber(merch.getTelephone())); | ||
| 363 | + } | ||
| 364 | + }); | ||
| 365 | + | ||
| 366 | + imageLocation.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 367 | + ViewCompat.setAccessibilityDelegate(imageLocation, new AccessibilityDelegateCompat() { | ||
| 368 | + @Override | ||
| 369 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 370 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 371 | + info.setClassName("android.widget.ImageView"); | ||
| 372 | + info.setContentDescription(getString(R.string.accessibility_address)); | ||
| 373 | + } | ||
| 374 | + }); | ||
| 375 | + | ||
| 376 | + pinAddress.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 377 | + ViewCompat.setAccessibilityDelegate(pinAddress, new AccessibilityDelegateCompat() { | ||
| 378 | + @Override | ||
| 379 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 380 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 381 | + info.setClassName("android.widget.TextView"); | ||
| 382 | + info.setContentDescription(merch.getAddress()); | ||
| 383 | + } | ||
| 384 | + }); | ||
| 385 | + | ||
| 386 | + pinDirectionsText.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 387 | + | ||
| 388 | + pinDirections.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 389 | + ViewCompat.setAccessibilityDelegate(pinDirections, new AccessibilityDelegateCompat() { | ||
| 390 | + @Override | ||
| 391 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 392 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 393 | + info.setClassName("android.widget.Button"); | ||
| 394 | + info.setContentDescription(getString(R.string.cos_directions)); | ||
| 395 | + } | ||
| 396 | + }); | ||
| 397 | + }, 3000); | ||
| 398 | + } | ||
| 399 | + | ||
| 270 | bottomSheetDialog.show(); | 400 | bottomSheetDialog.show(); | 
| 271 | 401 | ||
| 272 | return false; | 402 | return false; | 
| ... | @@ -338,6 +468,32 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -338,6 +468,32 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | 
| 338 | return; | 468 | return; | 
| 339 | } | 469 | } | 
| 340 | 470 | ||
| 471 | + //Accessibility | ||
| 472 | + mFontHeader.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 473 | + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() { | ||
| 474 | + @Override | ||
| 475 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 476 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 477 | + info.setClassName("android.widget.TextView"); | ||
| 478 | + info.setHeading(true); | ||
| 479 | + } | ||
| 480 | + }); | ||
| 481 | + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
| 482 | + | ||
| 483 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 484 | + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() { | ||
| 485 | + @Override | ||
| 486 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 487 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 488 | + info.setClassName("android.widget.Button"); | ||
| 489 | + info.setContentDescription(getString(R.string.accessibility_back)); | ||
| 490 | + } | ||
| 491 | + }); | ||
| 492 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 493 | + mIvBack.postDelayed(() -> { | ||
| 494 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 495 | + }, 1000); | ||
| 496 | + | ||
| 341 | for (Merchant merch : result) { | 497 | for (Merchant merch : result) { | 
| 342 | if (!TextUtils.isEmpty(merch.getImgPreview())) { | 498 | if (!TextUtils.isEmpty(merch.getImgPreview())) { | 
| 343 | Glide.with(ShopsActivity.this) | 499 | Glide.with(ShopsActivity.this) | 
| ... | @@ -440,6 +596,32 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -440,6 +596,32 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | 
| 440 | return; | 596 | return; | 
| 441 | } | 597 | } | 
| 442 | 598 | ||
| 599 | + //Accessibility | ||
| 600 | + mFontHeader.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 601 | + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() { | ||
| 602 | + @Override | ||
| 603 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 604 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 605 | + info.setClassName("android.widget.TextView"); | ||
| 606 | + info.setHeading(true); | ||
| 607 | + } | ||
| 608 | + }); | ||
| 609 | + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
| 610 | + | ||
| 611 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 612 | + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() { | ||
| 613 | + @Override | ||
| 614 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 615 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 616 | + info.setClassName("android.widget.Button"); | ||
| 617 | + info.setContentDescription(getString(R.string.accessibility_back)); | ||
| 618 | + } | ||
| 619 | + }); | ||
| 620 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 621 | + mIvBack.postDelayed(() -> { | ||
| 622 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 623 | + }, 1000); | ||
| 624 | + | ||
| 443 | if (mMerchantParentList != null && mMerchantParentList.size() > 0) { | 625 | if (mMerchantParentList != null && mMerchantParentList.size() > 0) { | 
| 444 | for (Merchant parentMerch : mMerchantParentList) { | 626 | for (Merchant parentMerch : mMerchantParentList) { | 
| 445 | for (Merchant merch : result) { | 627 | for (Merchant merch : result) { | ... | ... | 
| ... | @@ -2,6 +2,7 @@ package ly.warp.sdk.activities; | ... | @@ -2,6 +2,7 @@ package ly.warp.sdk.activities; | 
| 2 | 2 | ||
| 3 | import android.Manifest; | 3 | import android.Manifest; | 
| 4 | import android.content.ActivityNotFoundException; | 4 | import android.content.ActivityNotFoundException; | 
| 5 | +import android.content.Context; | ||
| 5 | import android.content.Intent; | 6 | import android.content.Intent; | 
| 6 | import android.content.pm.PackageManager; | 7 | import android.content.pm.PackageManager; | 
| 7 | import android.graphics.Bitmap; | 8 | import android.graphics.Bitmap; | 
| ... | @@ -9,11 +10,15 @@ import android.graphics.Canvas; | ... | @@ -9,11 +10,15 @@ import android.graphics.Canvas; | 
| 9 | import android.graphics.drawable.Drawable; | 10 | import android.graphics.drawable.Drawable; | 
| 10 | import android.net.Uri; | 11 | import android.net.Uri; | 
| 11 | import android.os.Bundle; | 12 | import android.os.Bundle; | 
| 13 | +import android.os.Handler; | ||
| 12 | import android.text.TextUtils; | 14 | import android.text.TextUtils; | 
| 13 | import android.util.Log; | 15 | import android.util.Log; | 
| 14 | import android.view.View; | 16 | import android.view.View; | 
| 17 | +import android.view.accessibility.AccessibilityEvent; | ||
| 18 | +import android.view.accessibility.AccessibilityManager; | ||
| 15 | import android.widget.ImageView; | 19 | import android.widget.ImageView; | 
| 16 | import android.widget.LinearLayout; | 20 | import android.widget.LinearLayout; | 
| 21 | +import android.widget.RelativeLayout; | ||
| 17 | import android.widget.TextView; | 22 | import android.widget.TextView; | 
| 18 | 23 | ||
| 19 | import androidx.annotation.NonNull; | 24 | import androidx.annotation.NonNull; | 
| ... | @@ -21,6 +26,9 @@ import androidx.annotation.Nullable; | ... | @@ -21,6 +26,9 @@ import androidx.annotation.Nullable; | 
| 21 | import androidx.appcompat.app.AlertDialog; | 26 | import androidx.appcompat.app.AlertDialog; | 
| 22 | import androidx.core.app.ActivityCompat; | 27 | import androidx.core.app.ActivityCompat; | 
| 23 | import androidx.core.content.ContextCompat; | 28 | import androidx.core.content.ContextCompat; | 
| 29 | +import androidx.core.view.AccessibilityDelegateCompat; | ||
| 30 | +import androidx.core.view.ViewCompat; | ||
| 31 | +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; | ||
| 24 | import androidx.fragment.app.FragmentActivity; | 32 | import androidx.fragment.app.FragmentActivity; | 
| 25 | 33 | ||
| 26 | import com.bumptech.glide.Glide; | 34 | import com.bumptech.glide.Glide; | 
| ... | @@ -103,6 +111,9 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | ... | @@ -103,6 +111,9 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | 
| 103 | mIvBack.setOnClickListener(this); | 111 | mIvBack.setOnClickListener(this); | 
| 104 | mFontHeader = findViewById(R.id.textView3); | 112 | mFontHeader = findViewById(R.id.textView3); | 
| 105 | WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader); | 113 | WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader); | 
| 114 | + | ||
| 115 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 116 | + mFontHeader.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 106 | } | 117 | } | 
| 107 | 118 | ||
| 108 | @Override | 119 | @Override | 
| ... | @@ -215,9 +226,12 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | ... | @@ -215,9 +226,12 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | 
| 215 | final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog); | 226 | final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog); | 
| 216 | bottomSheetDialog.setContentView(R.layout.dl_map_pin); | 227 | bottomSheetDialog.setContentView(R.layout.dl_map_pin); | 
| 217 | 228 | ||
| 218 | - ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_map_pin_close); | 229 | + RelativeLayout dialogClose = (RelativeLayout) bottomSheetDialog.findViewById(R.id.rl_map_pin_close); | 
| 219 | dialogClose.setOnClickListener(view -> bottomSheetDialog.dismiss()); | 230 | dialogClose.setOnClickListener(view -> bottomSheetDialog.dismiss()); | 
| 220 | 231 | ||
| 232 | + RelativeLayout imagePhone = (RelativeLayout) bottomSheetDialog.findViewById(R.id.rl_phone); | ||
| 233 | + RelativeLayout imageLocation = (RelativeLayout) bottomSheetDialog.findViewById(R.id.rl_location); | ||
| 234 | + | ||
| 221 | TextView pinTitle = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_title); | 235 | TextView pinTitle = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_title); | 
| 222 | WarpUtils.renderCustomFont(ShopsHuaweiActivity.this, R.font.pf_square_sans_pro_bold, pinTitle); | 236 | WarpUtils.renderCustomFont(ShopsHuaweiActivity.this, R.font.pf_square_sans_pro_bold, pinTitle); | 
| 223 | if (mMerchantParentList != null && mMerchantParentList.size() > 0) { | 237 | if (mMerchantParentList != null && mMerchantParentList.size() > 0) { | 
| ... | @@ -271,6 +285,122 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | ... | @@ -271,6 +285,122 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | 
| 271 | } | 285 | } | 
| 272 | }); | 286 | }); | 
| 273 | 287 | ||
| 288 | + pinTitle.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 289 | + ViewCompat.setAccessibilityDelegate(pinTitle, new AccessibilityDelegateCompat() { | ||
| 290 | + @Override | ||
| 291 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 292 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 293 | + info.setClassName("android.widget.TextView"); | ||
| 294 | + info.setContentDescription(pinTitle.getText().toString()); | ||
| 295 | + } | ||
| 296 | + }); | ||
| 297 | + | ||
| 298 | + dialogClose.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 299 | + ViewCompat.setAccessibilityDelegate(dialogClose, new AccessibilityDelegateCompat() { | ||
| 300 | + @Override | ||
| 301 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 302 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 303 | + info.setClassName("android.widget.Button"); | ||
| 304 | + info.setContentDescription(getString(R.string.accessibility_close)); | ||
| 305 | + } | ||
| 306 | + }); | ||
| 307 | + | ||
| 308 | + pinLogo.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 309 | + pinName.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 310 | + pinDays.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 311 | + pinTel.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 312 | + pinAddress.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 313 | + pinDirectionsText.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 314 | + pinDirections.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 315 | + imagePhone.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 316 | + imageLocation.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 317 | + | ||
| 318 | + View rootView = findViewById(android.R.id.content); | ||
| 319 | + if (rootView != null) { | ||
| 320 | + rootView.post(() -> { | ||
| 321 | + rootView.announceForAccessibility(getString(R.string.accessibility_pin) + ", " + getString(R.string.accessibility_shop) + ", "); | ||
| 322 | + }); | ||
| 323 | + | ||
| 324 | + new Handler().postDelayed(() -> { | ||
| 325 | + dialogClose.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 326 | + | ||
| 327 | + pinTitle.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 328 | + pinLogo.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 329 | + ViewCompat.setAccessibilityDelegate(pinLogo, new AccessibilityDelegateCompat() { | ||
| 330 | + @Override | ||
| 331 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 332 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 333 | + info.setClassName("android.widget.ImageView"); | ||
| 334 | + info.setContentDescription(getString(R.string.accessibility_shop_logo)); | ||
| 335 | + } | ||
| 336 | + }); | ||
| 337 | + | ||
| 338 | + pinName.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 339 | + ViewCompat.setAccessibilityDelegate(pinName, new AccessibilityDelegateCompat() { | ||
| 340 | + @Override | ||
| 341 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 342 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 343 | + info.setClassName("android.widget.TextView"); | ||
| 344 | + info.setContentDescription(merch.getName()); | ||
| 345 | + } | ||
| 346 | + }); | ||
| 347 | + | ||
| 348 | + pinDays.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 349 | + | ||
| 350 | + imagePhone.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 351 | + ViewCompat.setAccessibilityDelegate(imagePhone, new AccessibilityDelegateCompat() { | ||
| 352 | + @Override | ||
| 353 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 354 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 355 | + info.setClassName("android.widget.ImageView"); | ||
| 356 | + info.setContentDescription(getString(R.string.accessibility_phone)); | ||
| 357 | + } | ||
| 358 | + }); | ||
| 359 | + | ||
| 360 | + pinTel.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 361 | + ViewCompat.setAccessibilityDelegate(pinTel, new AccessibilityDelegateCompat() { | ||
| 362 | + @Override | ||
| 363 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 364 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 365 | + info.setClassName("android.widget.TextView"); | ||
| 366 | + info.setContentDescription(WarplyManagerHelper.formatPhoneNumber(merch.getTelephone())); | ||
| 367 | + } | ||
| 368 | + }); | ||
| 369 | + | ||
| 370 | + imageLocation.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 371 | + ViewCompat.setAccessibilityDelegate(imageLocation, new AccessibilityDelegateCompat() { | ||
| 372 | + @Override | ||
| 373 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 374 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 375 | + info.setClassName("android.widget.ImageView"); | ||
| 376 | + info.setContentDescription(getString(R.string.accessibility_address)); | ||
| 377 | + } | ||
| 378 | + }); | ||
| 379 | + | ||
| 380 | + pinAddress.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 381 | + ViewCompat.setAccessibilityDelegate(pinAddress, new AccessibilityDelegateCompat() { | ||
| 382 | + @Override | ||
| 383 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 384 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 385 | + info.setClassName("android.widget.TextView"); | ||
| 386 | + info.setContentDescription(merch.getAddress()); | ||
| 387 | + } | ||
| 388 | + }); | ||
| 389 | + | ||
| 390 | + pinDirectionsText.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 391 | + | ||
| 392 | + pinDirections.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 393 | + ViewCompat.setAccessibilityDelegate(pinDirections, new AccessibilityDelegateCompat() { | ||
| 394 | + @Override | ||
| 395 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 396 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 397 | + info.setClassName("android.widget.Button"); | ||
| 398 | + info.setContentDescription(getString(R.string.cos_directions)); | ||
| 399 | + } | ||
| 400 | + }); | ||
| 401 | + }, 3000); | ||
| 402 | + } | ||
| 403 | + | ||
| 274 | bottomSheetDialog.show(); | 404 | bottomSheetDialog.show(); | 
| 275 | 405 | ||
| 276 | return false; | 406 | return false; | 
| ... | @@ -355,6 +485,32 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | ... | @@ -355,6 +485,32 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | 
| 355 | return; | 485 | return; | 
| 356 | } | 486 | } | 
| 357 | 487 | ||
| 488 | + //Accessibility | ||
| 489 | + mFontHeader.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 490 | + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() { | ||
| 491 | + @Override | ||
| 492 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 493 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 494 | + info.setClassName("android.widget.TextView"); | ||
| 495 | + info.setHeading(true); | ||
| 496 | + } | ||
| 497 | + }); | ||
| 498 | + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
| 499 | + | ||
| 500 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 501 | + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() { | ||
| 502 | + @Override | ||
| 503 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 504 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 505 | + info.setClassName("android.widget.Button"); | ||
| 506 | + info.setContentDescription(getString(R.string.accessibility_back)); | ||
| 507 | + } | ||
| 508 | + }); | ||
| 509 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 510 | + mIvBack.postDelayed(() -> { | ||
| 511 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 512 | + }, 1000); | ||
| 513 | + | ||
| 358 | for (Merchant merch : result) { | 514 | for (Merchant merch : result) { | 
| 359 | if (!TextUtils.isEmpty(merch.getImgPreview())) { | 515 | if (!TextUtils.isEmpty(merch.getImgPreview())) { | 
| 360 | Glide.with(ShopsHuaweiActivity.this) | 516 | Glide.with(ShopsHuaweiActivity.this) | 
| ... | @@ -463,6 +619,32 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | ... | @@ -463,6 +619,32 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic | 
| 463 | return; | 619 | return; | 
| 464 | } | 620 | } | 
| 465 | 621 | ||
| 622 | + //Accessibility | ||
| 623 | + mFontHeader.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 624 | + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() { | ||
| 625 | + @Override | ||
| 626 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 627 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 628 | + info.setClassName("android.widget.TextView"); | ||
| 629 | + info.setHeading(true); | ||
| 630 | + } | ||
| 631 | + }); | ||
| 632 | + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
| 633 | + | ||
| 634 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 635 | + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() { | ||
| 636 | + @Override | ||
| 637 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 638 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 639 | + info.setClassName("android.widget.Button"); | ||
| 640 | + info.setContentDescription(getString(R.string.accessibility_back)); | ||
| 641 | + } | ||
| 642 | + }); | ||
| 643 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 644 | + mIvBack.postDelayed(() -> { | ||
| 645 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 646 | + }, 1000); | ||
| 647 | + | ||
| 466 | if (mMerchantParentList != null && mMerchantParentList.size() > 0) { | 648 | if (mMerchantParentList != null && mMerchantParentList.size() > 0) { | 
| 467 | for (Merchant parentMerch : mMerchantParentList) { | 649 | for (Merchant parentMerch : mMerchantParentList) { | 
| 468 | for (Merchant merch : result) { | 650 | for (Merchant merch : result) { | ... | ... | 
| ... | @@ -10,27 +10,39 @@ | ... | @@ -10,27 +10,39 @@ | 
| 10 | <RelativeLayout | 10 | <RelativeLayout | 
| 11 | android:id="@+id/rl_map_pin" | 11 | android:id="@+id/rl_map_pin" | 
| 12 | android:layout_width="match_parent" | 12 | android:layout_width="match_parent" | 
| 13 | - android:layout_height="wrap_content" | 13 | + android:layout_height="48dp" | 
| 14 | - android:layout_marginBottom="24dp" | 14 | + android:layout_marginTop="8dp" | 
| 15 | - android:paddingHorizontal="24dp" | 15 | + android:layout_marginBottom="24dp"> | 
| 16 | - android:paddingTop="16dp"> | ||
| 17 | 16 | ||
| 18 | <TextView | 17 | <TextView | 
| 19 | android:id="@+id/tv_pin_title" | 18 | android:id="@+id/tv_pin_title" | 
| 20 | android:layout_width="wrap_content" | 19 | android:layout_width="wrap_content" | 
| 21 | - android:layout_height="wrap_content" | 20 | + android:layout_height="match_parent" | 
| 22 | android:layout_alignParentStart="true" | 21 | android:layout_alignParentStart="true" | 
| 22 | + android:layout_marginStart="24dp" | ||
| 23 | + android:gravity="center_vertical" | ||
| 23 | android:textColor="@color/cos_grey9" | 24 | android:textColor="@color/cos_grey9" | 
| 24 | android:textSize="16sp" | 25 | android:textSize="16sp" | 
| 25 | tools:text="ΓΕΡΜΑΝΟΣ" /> | 26 | tools:text="ΓΕΡΜΑΝΟΣ" /> | 
| 26 | 27 | ||
| 28 | + <RelativeLayout | ||
| 29 | + android:id="@+id/rl_map_pin_close" | ||
| 30 | + android:layout_width="32dp" | ||
| 31 | + android:layout_height="32dp" | ||
| 32 | + android:layout_alignParentEnd="true" | ||
| 33 | + android:layout_centerVertical="true" | ||
| 34 | + android:layout_gravity="center" | ||
| 35 | + android:layout_marginEnd="12dp" | ||
| 36 | + android:gravity="center"> | ||
| 37 | + | ||
| 27 | <ImageView | 38 | <ImageView | 
| 28 | android:id="@+id/iv_map_pin_close" | 39 | android:id="@+id/iv_map_pin_close" | 
| 29 | android:layout_width="16dp" | 40 | android:layout_width="16dp" | 
| 30 | android:layout_height="16dp" | 41 | android:layout_height="16dp" | 
| 31 | - android:layout_alignParentEnd="true" | 42 | + android:contentDescription="@string/accessibility_close" | 
| 32 | android:src="@drawable/ic_close" /> | 43 | android:src="@drawable/ic_close" /> | 
| 33 | </RelativeLayout> | 44 | </RelativeLayout> | 
| 45 | + </RelativeLayout> | ||
| 34 | 46 | ||
| 35 | <LinearLayout | 47 | <LinearLayout | 
| 36 | android:layout_width="match_parent" | 48 | android:layout_width="match_parent" | 
| ... | @@ -82,18 +94,28 @@ | ... | @@ -82,18 +94,28 @@ | 
| 82 | android:layout_height="36dp" | 94 | android:layout_height="36dp" | 
| 83 | android:gravity="center_vertical" | 95 | android:gravity="center_vertical" | 
| 84 | android:orientation="horizontal" | 96 | android:orientation="horizontal" | 
| 85 | - android:paddingHorizontal="24dp"> | 97 | + android:paddingStart="24dp" | 
| 98 | + android:paddingEnd="24dp"> | ||
| 99 | + | ||
| 100 | + <RelativeLayout | ||
| 101 | + android:id="@+id/rl_phone" | ||
| 102 | + android:layout_width="28dp" | ||
| 103 | + android:layout_height="28dp" | ||
| 104 | + android:gravity="center"> | ||
| 86 | 105 | ||
| 87 | <ImageView | 106 | <ImageView | 
| 107 | + android:id="@+id/iv_phone" | ||
| 88 | android:layout_width="14dp" | 108 | android:layout_width="14dp" | 
| 89 | android:layout_height="14dp" | 109 | android:layout_height="14dp" | 
| 90 | android:src="@drawable/ic_pin_tel" /> | 110 | android:src="@drawable/ic_pin_tel" /> | 
| 111 | + </RelativeLayout> | ||
| 91 | 112 | ||
| 92 | <TextView | 113 | <TextView | 
| 93 | android:id="@+id/tv_pin_tel" | 114 | android:id="@+id/tv_pin_tel" | 
| 94 | android:layout_width="wrap_content" | 115 | android:layout_width="wrap_content" | 
| 95 | - android:layout_height="wrap_content" | 116 | + android:layout_height="match_parent" | 
| 96 | android:layout_marginStart="12dp" | 117 | android:layout_marginStart="12dp" | 
| 118 | + android:gravity="center_vertical" | ||
| 97 | android:textColor="@color/grey" | 119 | android:textColor="@color/grey" | 
| 98 | android:textSize="14sp" | 120 | android:textSize="14sp" | 
| 99 | tools:text="210-6230543" /> | 121 | tools:text="210-6230543" /> | 
| ... | @@ -110,7 +132,8 @@ | ... | @@ -110,7 +132,8 @@ | 
| 110 | android:layout_width="match_parent" | 132 | android:layout_width="match_parent" | 
| 111 | android:layout_height="wrap_content" | 133 | android:layout_height="wrap_content" | 
| 112 | android:layout_marginBottom="16dp" | 134 | android:layout_marginBottom="16dp" | 
| 113 | - android:paddingHorizontal="24dp"> | 135 | + android:paddingStart="24dp" | 
| 136 | + android:paddingEnd="24dp"> | ||
| 114 | 137 | ||
| 115 | <LinearLayout | 138 | <LinearLayout | 
| 116 | android:id="@+id/ll_pin_address" | 139 | android:id="@+id/ll_pin_address" | 
| ... | @@ -119,16 +142,25 @@ | ... | @@ -119,16 +142,25 @@ | 
| 119 | android:gravity="center_vertical" | 142 | android:gravity="center_vertical" | 
| 120 | android:orientation="horizontal"> | 143 | android:orientation="horizontal"> | 
| 121 | 144 | ||
| 145 | + <RelativeLayout | ||
| 146 | + android:id="@+id/rl_location" | ||
| 147 | + android:layout_width="28dp" | ||
| 148 | + android:layout_height="28dp" | ||
| 149 | + android:gravity="center"> | ||
| 150 | + | ||
| 122 | <ImageView | 151 | <ImageView | 
| 152 | + android:id="@+id/iv_location" | ||
| 123 | android:layout_width="14dp" | 153 | android:layout_width="14dp" | 
| 124 | android:layout_height="14dp" | 154 | android:layout_height="14dp" | 
| 125 | android:src="@drawable/ic_pin_location" /> | 155 | android:src="@drawable/ic_pin_location" /> | 
| 156 | + </RelativeLayout> | ||
| 126 | 157 | ||
| 127 | <TextView | 158 | <TextView | 
| 128 | android:id="@+id/tv_pin_address" | 159 | android:id="@+id/tv_pin_address" | 
| 129 | android:layout_width="184dp" | 160 | android:layout_width="184dp" | 
| 130 | - android:layout_height="wrap_content" | 161 | + android:layout_height="match_parent" | 
| 131 | android:layout_marginStart="12dp" | 162 | android:layout_marginStart="12dp" | 
| 163 | + android:gravity="center_vertical" | ||
| 132 | android:maxLines="2" | 164 | android:maxLines="2" | 
| 133 | android:textColor="@color/grey" | 165 | android:textColor="@color/grey" | 
| 134 | android:textSize="14sp" | 166 | android:textSize="14sp" | ... | ... | 
| ... | @@ -268,6 +268,12 @@ | ... | @@ -268,6 +268,12 @@ | 
| 268 | <string name="accessibility_expand">Ανεπτυγμένο</string> | 268 | <string name="accessibility_expand">Ανεπτυγμένο</string> | 
| 269 | <string name="accessibility_collapse">Συμπτυγμένο</string> | 269 | <string name="accessibility_collapse">Συμπτυγμένο</string> | 
| 270 | <string name="accessibility_activate">Διπλό πάτημα για επιλογή</string> | 270 | <string name="accessibility_activate">Διπλό πάτημα για επιλογή</string> | 
| 271 | + <string name="accessibility_open">Διπλό πάτημα για άνοιγμα</string> | ||
| 272 | + <string name="accessibility_pin">Πινέζα</string> | ||
| 273 | + <string name="accessibility_shop">κατάστημα</string> | ||
| 274 | + <string name="accessibility_phone">Τηλέφωνο</string> | ||
| 275 | + <string name="accessibility_address">Διεύθυνση</string> | ||
| 276 | + <string name="accessibility_shop_logo">Λογότυπο καταστήματος</string> | ||
| 271 | 277 | ||
| 272 | <string-array name="coupons_array"> | 278 | <string-array name="coupons_array"> | 
| 273 | <item>Κουπόνια</item> | 279 | <item>Κουπόνια</item> | ... | ... | 
- 
Please register or login to post a comment