Panagiotis Triantafyllou

accessibility history, minor fixes

......@@ -7,14 +7,19 @@ import android.os.Handler;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
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.cardview.widget.CardView;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
......@@ -98,6 +103,88 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis
WarpUtils.renderCustomFont(this, R.font.peridot_bold, mFontExpiredMore,
mFontSharedMore);
//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(mLlExpiredTab, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setSelected(true);
info.setContentDescription(getString(R.string.cos_redeemed_coupons_tab));
}
});
ViewCompat.setAccessibilityDelegate(mLlSharedTab, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setSelected(false);
info.setContentDescription(getString(R.string.cos_shared_gifts_tab));
}
});
ViewCompat.setAccessibilityDelegate(mFontExpired, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.TextView");
info.setHeading(true);
}
});
ViewCompat.setAccessibilityDelegate(mFontShared, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.TextView");
info.setHeading(true);
}
});
ViewCompat.setAccessibilityDelegate(mLlShowMoreShared, 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_see_more));
info.setStateDescription(getString(R.string.accessibility_collapse));
}
});
ViewCompat.setAccessibilityDelegate(mLlShowMoreExpired, 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_see_more));
info.setStateDescription(getString(R.string.accessibility_collapse));
}
});
initViews();
}
......@@ -182,6 +269,26 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis
mRlSharedView.setVisibility(View.GONE);
mRlExpiredView.setVisibility(View.VISIBLE);
ViewCompat.setAccessibilityDelegate(mLlExpiredTab, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setSelected(true);
info.setContentDescription(getString(R.string.cos_redeemed_coupons_tab));
}
});
ViewCompat.setAccessibilityDelegate(mLlSharedTab, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setSelected(false);
info.setContentDescription(getString(R.string.cos_shared_gifts_tab));
}
});
return;
}
if (view.getId() == R.id.ll_tab_shared) {
......@@ -215,6 +322,26 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis
mRlExpiredView.setVisibility(View.GONE);
mRlSharedView.setVisibility(View.VISIBLE);
ViewCompat.setAccessibilityDelegate(mLlExpiredTab, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setSelected(false);
info.setContentDescription(getString(R.string.cos_redeemed_coupons_tab));
}
});
ViewCompat.setAccessibilityDelegate(mLlSharedTab, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.Button");
info.setSelected(true);
info.setContentDescription(getString(R.string.cos_shared_gifts_tab));
}
});
return;
}
if (view.getId() == R.id.ll_show_more_expired) {
......
......@@ -8,11 +8,16 @@ import android.os.Handler;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
......@@ -84,6 +89,30 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvDealsValue, mTvMarketValue,
mTvGiftsValue, mTvBoxValue);
//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);
initViews();
}
......@@ -250,6 +279,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
sBuilder.setSpan(typefaceBoldSpanFirst, 24, 24 + badgeValueFirst.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTvDealsValueAll.setText(sBuilder, TextView.BufferType.SPANNABLE);
mFavValue += WarplyManagerHelper.getDealsCouponsSum();
ViewCompat.setAccessibilityDelegate(mRlDealsBanner, 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_market_dfy) + ", " + mTvDealsValueAll.getText().toString());
}
});
/** First Banner */
/** Second Expandable Banner */
......@@ -287,6 +325,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
sBuilderThird.setSpan(typefaceBoldSpanThird, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTvMarketAll.setText(sBuilderThird, TextView.BufferType.SPANNABLE);
ViewCompat.setAccessibilityDelegate(mRlUnifiedBanner, 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_market_sm) + ", " + mTvMarketAll.getText().toString());
}
});
} else {
String badgeValue = String.format(Locale.GERMAN, "%.02f", 0.0f);
mTvMarketValue.setText(String.format(getString(R.string.cos_value), badgeValue));
......@@ -298,6 +345,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
sBuilderThird.setSpan(typefaceBoldSpanThird, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTvMarketAll.setText(sBuilderThird, TextView.BufferType.SPANNABLE);
ViewCompat.setAccessibilityDelegate(mRlUnifiedBanner, 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_market_sm) + ", " + mTvMarketAll.getText().toString());
}
});
}
/** Second Expandable Banner */
......@@ -319,6 +375,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
sBuilderSecond.setSpan(typefaceBoldSpanSecond, 24, 24 + badgeValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTvGiftsValueAll.setText(sBuilderSecond, TextView.BufferType.SPANNABLE);
mFavValue += WarplyManagerHelper.getLoyaltyBadge().getValue();
ViewCompat.setAccessibilityDelegate(mRlGiftsBanner, 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_market_free_coupons) + ", " + mTvGiftsValueAll.getText().toString());
}
});
}
/** Third Banner */
......@@ -339,6 +404,15 @@ public class LoyaltyHistoryActivity extends Activity implements View.OnClickList
sBuilderFourth.setSpan(typefaceBoldSpanFourth, 24, 24 + badgeValueFourth.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTvBoxValueAll.setText(sBuilderFourth, TextView.BufferType.SPANNABLE);
mFavValue += WarplyManagerHelper.getBoxCouponsSum();
ViewCompat.setAccessibilityDelegate(mRlBoxBanner, 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_market_box) + ", " + mTvBoxValueAll.getText().toString());
}
});
/** Fourth Banner */
/** Sum Banner */
......
......@@ -8,14 +8,19 @@ import android.os.Looper;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
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.cardview.widget.CardView;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
......@@ -98,6 +103,57 @@ public class LoyaltyMarketAnalysisActivity extends Activity implements View.OnCl
WarpUtils.renderCustomFont(this, R.font.peridot_bold, mFontExpiredMore,
mFontSharedMore);
//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(mFontExpired, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.TextView");
info.setHeading(true);
}
});
ViewCompat.setAccessibilityDelegate(mFontShared, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.TextView");
info.setHeading(true);
}
});
ViewCompat.setAccessibilityDelegate(mLlShowMoreExpired, 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_see_more));
info.setStateDescription(getString(R.string.accessibility_collapse));
}
});
if (WarplyManagerHelper.getMarketCoupons() != null && WarplyManagerHelper.getMarketCoupons().size() > 0) {
final ExecutorService executor = Executors.newFixedThreadPool(1);
......
......@@ -28,7 +28,7 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList
// Fields
// ===========================================================
private ImageView mIvBack;
private ImageView mIvBack, mIvGenericImage;
private TextView mFontHeader, mTvPassInfoHeader, mTvBasketTitle, mTvBasketSubtitle,
mTvEshopTitle, mTvEshopSubtitle, mTvAbTitle, mTvAbSubtitle, mTvPassBack;
private LinearLayout mLlPassReturn;
......@@ -53,6 +53,7 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList
mTvAbSubtitle = findViewById(R.id.tv_pass_info_ab_subtitle);
mTvPassBack = findViewById(R.id.tv_button_back);
mLlPassReturn = findViewById(R.id.ll_return_back);
mIvGenericImage = findViewById(R.id.iv_pass_info_logo);
WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader, mTvPassInfoHeader);
WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvBasketTitle, mTvEshopTitle,
......@@ -93,6 +94,16 @@ public class MarketPassInfoActivity extends Activity implements View.OnClickList
}
});
mIvGenericImage.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
ViewCompat.setAccessibilityDelegate(mIvGenericImage, new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, @NonNull AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.setClassName("android.widget.ImageView");
info.setContentDescription(getString(R.string.cos_market_Pass_info_title));
}
});
initViews();
}
......
......@@ -18,6 +18,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginStart="16dp"
android:contentDescription="@string/accessibility_back"
android:scaleType="centerInside"
android:src="@drawable/ic_back"
app:layout_constraintBottom_toBottomOf="parent"
......@@ -28,6 +29,7 @@
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/cos_analysis"
android:text="@string/cos_analysis"
android:textColor="@color/cos_light_black"
android:textSize="19sp"
......
......@@ -20,6 +20,7 @@
android:layout_marginStart="16dp"
android:scaleType="centerInside"
android:src="@drawable/ic_close"
android:contentDescription="@string/accessibility_close"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -29,6 +30,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cos_loyalty_history"
android:contentDescription="@string/cos_loyalty_history"
android:textColor="@color/cos_light_black"
android:textSize="19sp"
app:layout_constraintBottom_toBottomOf="parent"
......
......@@ -19,6 +19,7 @@
android:layout_height="48dp"
android:layout_marginStart="16dp"
android:scaleType="centerInside"
android:contentDescription="@string/accessibility_back"
android:src="@drawable/ic_back"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
......@@ -29,6 +30,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cos_analysis"
android:contentDescription="@string/cos_analysis"
android:textColor="@color/cos_light_black"
android:textSize="19sp"
app:layout_constraintBottom_toBottomOf="parent"
......
......@@ -277,6 +277,10 @@
<string name="accessibility_market_pass_info">Πληροφορίες</string>
<string name="accessibility_market_pass_barcode_value">Αριθμός barcode</string>
<string name="accessibility_market_pass_barcode">Barcode</string>
<string name="accessibility_market_dfy">Deals for you</string>
<string name="accessibility_market_sm">Supermarket deals</string>
<string name="accessibility_market_free_coupons">Free coupons</string>
<string name="accessibility_market_box">Box</string>
<string-array name="coupons_array">
<item>Κουπόνια</item>
......