From 655ec322e4b555a23791bbf885eb8df4bde9f828 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 22:48:02 +0000 Subject: [PATCH 01/19] Initial plan From 97bf80c9aec0fde5eafd620b2d8fae335c7c8d8c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 22:50:49 +0000 Subject: [PATCH 02/19] Initial plan for Material 3 migration Co-authored-by: HenryQuan <6754708+HenryQuan@users.noreply.github.com> --- gradlew | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 gradlew diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 From 1fef187aaf337b2ce211d2ce2e98d6e8d57248e4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 22:53:18 +0000 Subject: [PATCH 03/19] Add Material 3 themes and extract hardcoded colors Co-authored-by: HenryQuan <6754708+HenryQuan@users.noreply.github.com> --- .../ui/adapter/ExpandableStatsAdapter.kt | 8 +- .../ui/viewcaptain/tabs/CaptainFragment.kt | 40 ++-- wows/src/main/res/drawable/background.xml | 2 +- wows/src/main/res/values/colors.xml | 125 ++++++++++++ wows/src/main/res/values/themes_material3.xml | 190 ++++++++++++++++++ 5 files changed, 340 insertions(+), 25 deletions(-) create mode 100644 wows/src/main/res/values/themes_material3.xml diff --git a/wows/src/main/java/com/half/wowsca/ui/adapter/ExpandableStatsAdapter.kt b/wows/src/main/java/com/half/wowsca/ui/adapter/ExpandableStatsAdapter.kt index 3ba965d..eac5862 100644 --- a/wows/src/main/java/com/half/wowsca/ui/adapter/ExpandableStatsAdapter.kt +++ b/wows/src/main/java/com/half/wowsca/ui/adapter/ExpandableStatsAdapter.kt @@ -145,13 +145,13 @@ class ExpandableStatsAdapter( xVals.add(child.titles[i]) val key = child.types[i] if (key.equals("cruiser", ignoreCase = true)) { - colorList.add(Color.parseColor("#4CAF50")) + colorList.add(ContextCompat.getColor(ctx, R.color.chart_green)) } else if (key.equals("battleship", ignoreCase = true)) { - colorList.add(Color.parseColor("#F44336")) + colorList.add(ContextCompat.getColor(ctx, R.color.chart_red)) } else if (key.equals("aircarrier", ignoreCase = true)) { - colorList.add(Color.parseColor("#673AB7")) + colorList.add(ContextCompat.getColor(ctx, R.color.chart_purple)) } else if (key.equals("destroyer", ignoreCase = true)) { - colorList.add(Color.parseColor("#FDD835")) + colorList.add(ContextCompat.getColor(ctx, R.color.chart_yellow)) } } diff --git a/wows/src/main/java/com/half/wowsca/ui/viewcaptain/tabs/CaptainFragment.kt b/wows/src/main/java/com/half/wowsca/ui/viewcaptain/tabs/CaptainFragment.kt index ca928a5..4730d2c 100644 --- a/wows/src/main/java/com/half/wowsca/ui/viewcaptain/tabs/CaptainFragment.kt +++ b/wows/src/main/java/com/half/wowsca/ui/viewcaptain/tabs/CaptainFragment.kt @@ -1351,23 +1351,23 @@ class CaptainFragment : CAFragment() { val key = itea.next() xVals.add(key) if (key == "ussr") { - colorList.add(Color.parseColor("#F44336")) // RED + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_red)) // RED } else if (key == "germany") { - colorList.add(Color.parseColor("#9E9E9E")) // blackish + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_grey)) // blackish } else if (key == "usa") { - colorList.add(Color.parseColor("#2196F3")) // Blue + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_blue)) // Blue } else if (key == "poland") { - colorList.add(Color.parseColor("#FAFA00")) // yellow + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_bright_yellow)) // yellow } else if (key == "japan") { - colorList.add(Color.parseColor("#4CAF50")) // Green + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_green)) // Green } else if (key == "uk") { - colorList.add(Color.parseColor("#E1F5FE")) // whiteish blue + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_light_blue)) // whiteish blue } } - colorList.add(Color.parseColor("#AAE157")) - colorList.add(Color.parseColor("#FF9800")) - colorList.add(Color.parseColor("#22FFCB")) - colorList.add(Color.parseColor("#795548")) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_lime)) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_orange)) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_cyan)) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_brown)) val yVals1 = ArrayList() for (i in xVals.indices) { @@ -1450,19 +1450,19 @@ class CaptainFragment : CAFragment() { while (itea.hasNext()) { val key = itea.next() if (key.equals("cruiser", ignoreCase = true)) { - colorList.add(Color.parseColor("#4CAF50")) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_green)) } else if (key.equals("battleship", ignoreCase = true)) { - colorList.add(Color.parseColor("#F44336")) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_red)) } else if (key.equals("aircarrier", ignoreCase = true)) { - colorList.add(Color.parseColor("#673AB7")) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_purple)) } else if (key.equals("destroyer", ignoreCase = true)) { - colorList.add(Color.parseColor("#FDD835")) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_yellow)) } xVals.add(key) } - colorList.add(Color.parseColor("#009688")) - colorList.add(Color.parseColor("#795548")) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_teal)) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_brown)) val yVals1 = ArrayList() for (i in xVals.indices) { @@ -1774,16 +1774,16 @@ class CaptainFragment : CAFragment() { yAxis2.textColor = textColor val colorList: MutableList = ArrayList() - colorList.add(Color.parseColor("#F44336")) - colorList.add(Color.parseColor("#FF9800")) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_red)) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_orange)) colorList.add( ContextCompat.getColor( chartSurvivalRate!!.context, R.color.average_up ) ) - colorList.add(Color.parseColor("#2196F3")) - colorList.add(Color.parseColor("#FAFA00")) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_blue)) + colorList.add(ContextCompat.getColor(requireContext(), R.color.chart_bright_yellow)) val l = chartSurvivalRate!!.legend l.isEnabled = false diff --git a/wows/src/main/res/drawable/background.xml b/wows/src/main/res/drawable/background.xml index 9c5016a..8ddad7c 100644 --- a/wows/src/main/res/drawable/background.xml +++ b/wows/src/main/res/drawable/background.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/wows/src/main/res/values/colors.xml b/wows/src/main/res/values/colors.xml index df1d022..ad37b92 100644 --- a/wows/src/main/res/values/colors.xml +++ b/wows/src/main/res/values/colors.xml @@ -65,5 +65,130 @@ #FAFA00 #CCCCCC + + #FFFFFF + #E8F5E9 + #FFFFFF + + + #424242 + #FFFFFF + #FFFFFF + #B3FFFFFF + #80FFFFFF + #1FFFFFFF + #E8F5E9 + #FFFFFF + + + #3E95DC + #FFFFFF + #D1E4FF + #001D36 + #163F6E + #FFFFFF + #C8E6FF + #001E30 + #448AFF + #FFFFFF + #D6E3FF + #001849 + #BA1A1A + #FFDAD6 + #FFFFFF + #410002 + #1A1C1E + #E2E2E6 + #1A1C1E + #E2E2E6 + #42474E + #C2C7CF + #8C9199 + #1A1C1E + #E2E2E6 + #3E95DC + #000000 + #3E95DC + #42474E + #000000 + + + #448AFF + #FFFFFF + #1565C0 + #BBDEFB + #4CAF50 + #FFFFFF + #1B5E20 + #C8E6C9 + #FF9800 + #000000 + #E65100 + #FFE0B2 + #F44336 + #B71C1C + #FFFFFF + #FFCDD2 + #000000 + #E0E0E0 + #121212 + #E0E0E0 + #1E1E1E + #BDBDBD + #757575 + #000000 + #E0E0E0 + #448AFF + #000000 + #448AFF + #424242 + #000000 + + + #1976D2 + #FFFFFF + #BBDEFB + #0D47A1 + #388E3C + #FFFFFF + #C8E6C9 + #1B5E20 + #F57C00 + #FFFFFF + #FFE0B2 + #E65100 + #B00020 + #FDECEA + #FFFFFF + #370B1E + #FAFAFA + #1A1C1E + #FFFFFF + #1A1C1E + #E0E0E0 + #424242 + #757575 + #F5F5F5 + #303030 + #82B1FF + #000000 + #1976D2 + #BDBDBD + #000000 + + + #4CAF50 + #F44336 + #673AB7 + #FDD835 + #9E9E9E + #2196F3 + #FAFA00 + #E1F5FE + #AAE157 + #FF9800 + #22FFCB + #795548 + #009688 \ No newline at end of file diff --git a/wows/src/main/res/values/themes_material3.xml b/wows/src/main/res/values/themes_material3.xml new file mode 100644 index 0000000..96f7d31 --- /dev/null +++ b/wows/src/main/res/values/themes_material3.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + From 9d9e8ecc8736bcfb5cf8d9190a24c34a6a1e7d03 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 22:54:39 +0000 Subject: [PATCH 04/19] Migrate existing themes to Material 3 and extract progress bar colors Co-authored-by: HenryQuan <6754708+HenryQuan@users.noreply.github.com> --- wows/src/main/res/drawable/progress_bar.xml | 16 ++++---- wows/src/main/res/values/colors.xml | 10 +++++ wows/src/main/res/values/styles_ca.xml | 44 +++++++++++++++++++-- 3 files changed, 58 insertions(+), 12 deletions(-) diff --git a/wows/src/main/res/drawable/progress_bar.xml b/wows/src/main/res/drawable/progress_bar.xml index 5415970..1df3520 100644 --- a/wows/src/main/res/drawable/progress_bar.xml +++ b/wows/src/main/res/drawable/progress_bar.xml @@ -5,10 +5,10 @@ + android:endColor="@color/progress_bg_end" + android:startColor="@color/progress_bg_start" /> @@ -18,10 +18,10 @@ + android:endColor="@color/progress_secondary_end" + android:startColor="@color/progress_secondary_start" /> @@ -31,8 +31,8 @@ + android:endColor="@color/progress_end" + android:startColor="@color/progress_start" /> diff --git a/wows/src/main/res/values/colors.xml b/wows/src/main/res/values/colors.xml index ad37b92..b492ac5 100644 --- a/wows/src/main/res/values/colors.xml +++ b/wows/src/main/res/values/colors.xml @@ -191,4 +191,14 @@ #795548 #009688 + + #ff9d9e9d + #ff5a5d5a + #ff747674 + #80ffd300 + #80ffb600 + #a0ffcb00 + #4CAF50 + #43A047 + \ No newline at end of file diff --git a/wows/src/main/res/values/styles_ca.xml b/wows/src/main/res/values/styles_ca.xml index fca7776..64b057a 100644 --- a/wows/src/main/res/values/styles_ca.xml +++ b/wows/src/main/res/values/styles_ca.xml @@ -19,11 +19,29 @@ - --> - @@ -177,13 +177,13 @@ @color/material_drawer_background - @color/top_background - @color/top_background - @color/top_background - @color/top_background + @color/drawer_text_primary + @color/drawer_text_primary + @color/drawer_text_primary + @color/drawer_text_primary @color/material_divider_color @color/material_drawer_selected - @color/bottom_background + @color/drawer_text_selected @color/material_drawer_header_selection_text From 3ca7acb92fc1e65d4a2f67ae7d4e091e76b543e3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 06:08:43 +0000 Subject: [PATCH 06/19] Fix ActionBar conflict - use NoActionBar variants for Material 3 themes Co-authored-by: HenryQuan <6754708+HenryQuan@users.noreply.github.com> --- wows/src/main/res/values/styles_ca.xml | 4 ++-- wows/src/main/res/values/themes_material3.xml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/wows/src/main/res/values/styles_ca.xml b/wows/src/main/res/values/styles_ca.xml index 41dc986..8c40bf1 100644 --- a/wows/src/main/res/values/styles_ca.xml +++ b/wows/src/main/res/values/styles_ca.xml @@ -19,7 +19,7 @@ - --> - - - --> - - - - --> -