Showing
2 changed files
with
78 additions
and
0 deletions
| ... | @@ -9,12 +9,17 @@ import android.util.Log; | ... | @@ -9,12 +9,17 @@ import android.util.Log; |
| 9 | import android.view.LayoutInflater; | 9 | import android.view.LayoutInflater; |
| 10 | import android.view.View; | 10 | import android.view.View; |
| 11 | import android.view.ViewGroup; | 11 | import android.view.ViewGroup; |
| 12 | +import android.view.accessibility.AccessibilityEvent; | ||
| 12 | import android.widget.ImageView; | 13 | import android.widget.ImageView; |
| 13 | import android.widget.LinearLayout; | 14 | import android.widget.LinearLayout; |
| 14 | import android.widget.RelativeLayout; | 15 | import android.widget.RelativeLayout; |
| 15 | import android.widget.TextView; | 16 | import android.widget.TextView; |
| 16 | 17 | ||
| 18 | +import androidx.annotation.NonNull; | ||
| 17 | import androidx.appcompat.app.AlertDialog; | 19 | import androidx.appcompat.app.AlertDialog; |
| 20 | +import androidx.core.view.AccessibilityDelegateCompat; | ||
| 21 | +import androidx.core.view.ViewCompat; | ||
| 22 | +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; | ||
| 18 | import androidx.work.OneTimeWorkRequest; | 23 | import androidx.work.OneTimeWorkRequest; |
| 19 | import androidx.work.WorkManager; | 24 | import androidx.work.WorkManager; |
| 20 | 25 | ||
| ... | @@ -108,6 +113,50 @@ public class ContextualActivity extends Activity implements View.OnClickListener | ... | @@ -108,6 +113,50 @@ public class ContextualActivity extends Activity implements View.OnClickListener |
| 108 | WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontActivateButton); | 113 | WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontActivateButton); |
| 109 | WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvTerms); | 114 | WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvTerms); |
| 110 | 115 | ||
| 116 | + //Accessibility | ||
| 117 | + ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() { | ||
| 118 | + @Override | ||
| 119 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 120 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 121 | + info.setClassName("android.widget.TextView"); | ||
| 122 | + info.setHeading(true); | ||
| 123 | + } | ||
| 124 | + }); | ||
| 125 | + mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
| 126 | + | ||
| 127 | + ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() { | ||
| 128 | + @Override | ||
| 129 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 130 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 131 | + info.setClassName("android.widget.Button"); | ||
| 132 | + info.setContentDescription(getString(R.string.accessibility_back)); | ||
| 133 | + } | ||
| 134 | + }); | ||
| 135 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 136 | + mIvBack.postDelayed(() -> { | ||
| 137 | + mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 138 | + }, 1000); | ||
| 139 | + | ||
| 140 | + ViewCompat.setAccessibilityDelegate(mLlActivateOffer, 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.setContentDescription(getString(R.string.cos_dlg_positive_button)); | ||
| 146 | + } | ||
| 147 | + }); | ||
| 148 | + | ||
| 149 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 150 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
| 151 | + @Override | ||
| 152 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 153 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 154 | + info.setClassName("android.widget.Button"); | ||
| 155 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
| 156 | + info.setStateDescription(getString(R.string.accessibility_collapse)); | ||
| 157 | + } | ||
| 158 | + }); | ||
| 159 | + | ||
| 111 | initViews(); | 160 | initViews(); |
| 112 | } | 161 | } |
| 113 | 162 | ||
| ... | @@ -143,11 +192,38 @@ public class ContextualActivity extends Activity implements View.OnClickListener | ... | @@ -143,11 +192,38 @@ public class ContextualActivity extends Activity implements View.OnClickListener |
| 143 | if (view.getId() == R.id.ll_terms_inner) { | 192 | if (view.getId() == R.id.ll_terms_inner) { |
| 144 | if (mIsTermsPressed) { | 193 | if (mIsTermsPressed) { |
| 145 | mIsTermsPressed = false; | 194 | mIsTermsPressed = false; |
| 195 | + | ||
| 196 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); | ||
| 197 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
| 198 | + @Override | ||
| 199 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 200 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 201 | + info.setClassName("android.widget.Button"); | ||
| 202 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
| 203 | + info.setStateDescription(getString(R.string.accessibility_collapse)); | ||
| 204 | + } | ||
| 205 | + }); | ||
| 206 | + | ||
| 146 | mTvTermsValue.setVisibility(View.GONE); | 207 | mTvTermsValue.setVisibility(View.GONE); |
| 147 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_down_dark_new)); | 208 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_down_dark_new)); |
| 148 | } else { | 209 | } else { |
| 149 | mIsTermsPressed = true; | 210 | mIsTermsPressed = true; |
| 211 | + | ||
| 212 | + ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() { | ||
| 213 | + @Override | ||
| 214 | + public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) { | ||
| 215 | + super.onInitializeAccessibilityNodeInfo(host, info); | ||
| 216 | + info.setClassName("android.widget.Button"); | ||
| 217 | + info.setContentDescription(getString(R.string.cos_coupon_terms_title)); | ||
| 218 | + info.setStateDescription(getString(R.string.accessibility_expand)); | ||
| 219 | + } | ||
| 220 | + }); | ||
| 221 | + | ||
| 150 | mTvTermsValue.setVisibility(View.VISIBLE); | 222 | mTvTermsValue.setVisibility(View.VISIBLE); |
| 223 | + | ||
| 224 | + mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); | ||
| 225 | + mTvTermsValue.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED); | ||
| 226 | + | ||
| 151 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_up_dark_new)); | 227 | mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_up_dark_new)); |
| 152 | } | 228 | } |
| 153 | } | 229 | } | ... | ... |
| ... | @@ -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" /> |
| ... | @@ -61,6 +62,7 @@ | ... | @@ -61,6 +62,7 @@ |
| 61 | android:layout_width="match_parent" | 62 | android:layout_width="match_parent" |
| 62 | android:layout_height="222dp" | 63 | android:layout_height="222dp" |
| 63 | android:scaleType="centerCrop" | 64 | android:scaleType="centerCrop" |
| 65 | + android:contentDescription="@string/accessibility_coupon_image" | ||
| 64 | app:layout_constraintStart_toStartOf="parent" | 66 | app:layout_constraintStart_toStartOf="parent" |
| 65 | app:layout_constraintTop_toTopOf="parent" | 67 | app:layout_constraintTop_toTopOf="parent" |
| 66 | tools:src="@drawable/carousel_banner" /> | 68 | tools:src="@drawable/carousel_banner" /> | ... | ... |
-
Please register or login to post a comment