Panagiotis Triantafyllou

accessibility couponset

......@@ -6,13 +6,18 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.core.text.HtmlCompat;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
......@@ -111,6 +116,50 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe
WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontButtonGetIt);
WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvTerms);
//Accessibility
ViewCompat.setAccessibilityDelegate(mFontHeader, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.TextView");
info.setHeading(true);
}
});
mFontHeader.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
ViewCompat.setAccessibilityDelegate(mIvBack, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setContentDescription(getString(R.string.accessibility_back));
}
});
mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
mIvBack.postDelayed(() -> {
mIvBack.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
}, 1000);
ViewCompat.setAccessibilityDelegate(mLlRedeem, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setContentDescription(getString(R.string.cos_redeem_coupon2));
}
});
mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setContentDescription(getString(R.string.cos_coupon_terms_title));
info.setStateDescription(getString(R.string.accessibility_collapse));
}
});
initViews();
}
......@@ -173,11 +222,38 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe
if (view.getId() == R.id.ll_terms_inner) {
if (mIsTermsPressed) {
mIsTermsPressed = false;
mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setContentDescription(getString(R.string.cos_coupon_terms_title));
info.setStateDescription(getString(R.string.accessibility_collapse));
}
});
mTvTermsValue.setVisibility(View.GONE);
mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_down_dark_new));
} else {
mIsTermsPressed = true;
ViewCompat.setAccessibilityDelegate(mLlTerms, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setContentDescription(getString(R.string.cos_coupon_terms_title));
info.setStateDescription(getString(R.string.accessibility_expand));
}
});
mTvTermsValue.setVisibility(View.VISIBLE);
mTvTermsValue.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
mTvTermsValue.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
mIvTermsArrow.setImageDrawable(getDrawable(R.drawable.ic_up_dark_new));
}
}
......
......@@ -902,9 +902,6 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener
.setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> {
dialogPositive.dismiss();
})
.setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichPositive) -> {
dialogNegative.dismiss();
})
.setCancelable(false)
.show();
}
......
......@@ -18,6 +18,7 @@
android:layout_marginStart="16dp"
android:scaleType="centerInside"
android:src="@drawable/ic_back"
android:contentDescription="@string/accessibility_back"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -27,6 +28,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cos_coupon_info_title"
android:contentDescription="@string/cos_coupon_info_title"
android:textColor="@color/cos_light_black"
android:textSize="19sp"
app:layout_constraintBottom_toBottomOf="parent"
......@@ -57,6 +59,7 @@
android:layout_width="match_parent"
android:layout_height="222dp"
android:scaleType="centerCrop"
android:contentDescription="@string/accessibility_coupon_image"
tools:src="@drawable/carousel_banner" />
<TextView
......