Skip to content

Commit 907d050

Browse files
author
ukanth
committed
#1308 checkbox color in high contrast theme
1 parent 3b5844b commit 907d050

2 files changed

Lines changed: 54 additions & 0 deletions

File tree

app/src/main/java/dev/ukanth/ufirewall/util/AppListArrayAdapter.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,12 @@
4040
import java.text.SimpleDateFormat;
4141
import java.util.Date;
4242
import java.util.Locale;
43+
import android.graphics.Color;
4344
import android.graphics.PorterDuff;
4445
import android.graphics.drawable.Drawable;
46+
import android.content.res.ColorStateList;
4547
import androidx.core.content.ContextCompat;
48+
import androidx.core.widget.CompoundButtonCompat;
4649

4750
public class AppListArrayAdapter extends ArrayAdapter<PackageInfoData> {
4851

@@ -220,6 +223,9 @@ public View getView(final int position, View convertView, ViewGroup parent) {
220223
holder.box_tor = addSupport(holder.box_tor, holder.app, 3);
221224
}
222225

226+
// Apply high contrast checkbox tinting for e-paper displays
227+
applyHighContrastCheckboxTint(holder);
228+
223229
setupExpandableView(holder, convertView, position);
224230
addEventListenter(holder);
225231

@@ -618,6 +624,40 @@ private CheckBox removeSupport(View convertView, int id) {
618624
return check;
619625
}
620626

627+
/**
628+
* Apply high contrast checkbox tinting for e-paper displays
629+
*/
630+
private void applyHighContrastCheckboxTint(AppStateHolder holder) {
631+
if (!"LHC".equals(G.getSelectedTheme())) {
632+
return;
633+
}
634+
635+
// Pure black color for maximum contrast on e-paper
636+
ColorStateList colorStateList = ColorStateList.valueOf(Color.BLACK);
637+
638+
if (holder.box_wifi != null) {
639+
CompoundButtonCompat.setButtonTintList(holder.box_wifi, colorStateList);
640+
}
641+
if (holder.box_3g != null) {
642+
CompoundButtonCompat.setButtonTintList(holder.box_3g, colorStateList);
643+
}
644+
if (holder.box_roam != null) {
645+
CompoundButtonCompat.setButtonTintList(holder.box_roam, colorStateList);
646+
}
647+
if (holder.box_vpn != null) {
648+
CompoundButtonCompat.setButtonTintList(holder.box_vpn, colorStateList);
649+
}
650+
if (holder.box_tether != null) {
651+
CompoundButtonCompat.setButtonTintList(holder.box_tether, colorStateList);
652+
}
653+
if (holder.box_lan != null) {
654+
CompoundButtonCompat.setButtonTintList(holder.box_lan, colorStateList);
655+
}
656+
if (holder.box_tor != null) {
657+
CompoundButtonCompat.setButtonTintList(holder.box_tor, colorStateList);
658+
}
659+
}
660+
621661

622662
static class AppStateHolder {
623663
private CheckBox box_lan;

app/src/main/res/values/styles.xml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,22 @@
4949
<item name="android:textColorPrimary">@color/black</item>
5050
<item name="android:textColorSecondary">@color/black</item>
5151

52+
<!-- Checkbox colors - pure black for maximum contrast -->
5253
<item name="colorControlNormal">@color/black</item>
54+
<item name="colorControlActivated">@color/black</item>
55+
<item name="colorControlHighlight">@color/black</item>
56+
<item name="android:colorControlNormal">@color/black</item>
57+
<item name="android:colorControlActivated">@color/black</item>
5358
<item name="tint">@color/black</item>
59+
60+
<!-- Explicit checkbox style -->
61+
<item name="checkboxStyle">@style/HighContrastCheckBox</item>
62+
</style>
63+
64+
<!-- High contrast checkbox style for e-paper displays -->
65+
<style name="HighContrastCheckBox" parent="Widget.AppCompat.CompoundButton.CheckBox">
66+
<item name="android:buttonTint">@color/black</item>
67+
<item name="buttonTint">@color/black</item>
5468
</style>
5569

5670
<!-- Dark style for all standard Locale and Locale plug-in Activity instances -->

0 commit comments

Comments
 (0)