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