From 789292dd8836631670035e2bbdd9326d89460c3b Mon Sep 17 00:00:00 2001
From: DK <117024745+Dhangofa@users.noreply.github.com>
Date: Sat, 15 Aug 2026 15:12:17 +0530
Subject: [PATCH 01/62] Update color palette for module cards and dynamic
themes
- Modified brand_primary_container from #EADDFF (purple tint) to #F3EDF7 (softer grayish-purple) for better contrast.
- Modified surface_background from #FAF8F5 (warm off-white) to #FDFBFF (cooler, crisper white) to modernize the app's base background.
- Removed unused status_success_text color since the success text color is currently handled inline or elsewhere in the UI.
- Added segmented_separator (#CAC4D0) to provide a dedicated color for the vertical divider lines between the segmented control options (like Root | Shizuku).
- Added a new Colorful Accents block containing accent_green, accent_orange, and accent_pink to provide vibrant tints for icons (like the developer person icon) and badges.
- Added a new Cycle Card Custom Tones block containing specific warm/orange color overrides (cycle_card_surface, cycle_segmented_selected, cycle_badge_bg, cycle_segmented_text_selected) to give the Quick Tile Cycle card its distinct warm visual identity.
- Added a new Exec Card Custom Tones block containing specific cool/blue color overrides (exec_accent, exec_card_surface, exec_segmented_selected, exec_segmented_text_selected) to give the Execution Mode card its distinct cool visual identity.
---
app/src/main/res/values/colors.xml | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index b71b1d3..262aeb9 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -2,11 +2,11 @@
#6750A4
- #EADDFF
+ #F3EDF7
#21005D
- #FAF8F5
+ #FDFBFF
#FFFFFF
#E7E0EC
#F3EDF7
@@ -18,7 +18,6 @@
#E8F5E9
- #1E4620
#FFEDEA
#8C1D18
@@ -26,8 +25,26 @@
#F4EFF4
+ #CAC4D0
#F3EDF7
#EADDFF
#21005D
#49454F
+
+
+ #198754
+ #D96509
+ #C2185B
+
+
+ #FFF8F3
+ #FFE0C2
+ #F3EDF7
+ #7A3600
+
+
+ #005B9F
+ #F2F8FF
+ #D6EBFF
+ #004275
From 8ba2e1a598fd807c1f7a3a55cf3d57e9a20dcb0a Mon Sep 17 00:00:00 2001
From: DK <117024745+Dhangofa@users.noreply.github.com>
Date: Sat, 15 Aug 2026 15:16:05 +0530
Subject: [PATCH 02/62] Update night color palette for module cards and pure
black themes
- Modified brand_primary_container from #4F378B (deep purple) to #23212A (dark grayish-purple) for a more muted, elegant dark mode contrast.
- Modified surface_background from #141218 (dark gray) to #000000 (pure black) to improve AMOLED screen battery efficiency and provide a higher contrast canvas.
- Modified card_surface from #211F26 to #141218 to match the darker overall theme.
- Modified card_border from #36343B to #2B2930 for subtler edge highlights on cards.
- Removed unused status_success_text color, as text color logic for status badges is handled efficiently via inline colors or specific badge shapes now.
- Added segmented_separator (#49454F) to provide a dedicated, visible divider line between segmented control tabs (like Root | Shizuku) in dark mode.
- Added a new Colorful Accents block (accent_green, accent_orange, accent_pink) to ensure UI icons and developer graphics remain vibrant against the dark backgrounds.
- Added a new Cycle Card Custom Tones block (cycle_card_surface, cycle_segmented_selected, cycle_badge_bg, cycle_segmented_text_selected) bringing dark, warm/orange variants to the Quick Tile Cycle card so it visually distinguishes itself in dark mode.
- Added a new Exec Card Custom Tones block (exec_accent, exec_card_surface, exec_segmented_selected, exec_segmented_text_selected) bringing dark, cool/blue variants to the Execution Mode card so it visually distinguishes itself in dark mode.
---
app/src/main/res/values-night/colors.xml | 27 +++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index b3b7f98..7b9931a 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -2,13 +2,13 @@
#D0BCFF
- #4F378B
+ #23212A
#EADDFF
- #141218
- #211F26
- #36343B
+ #000000
+ #141218
+ #2B2930
#2B2930
@@ -18,7 +18,6 @@
#1A3822
- #A8F2B2
#3E1A19
#F2B8B5
@@ -26,8 +25,26 @@
#2B2930
+ #49454F
#1B1A20
#36323F
#EADDFF
#938F96
+
+
+ #61D48A
+ #FFB782
+ #F48FB1
+
+
+ #1A130F
+ #3D210F
+ #1B1A20
+ #FFB782
+
+
+ #57AFFF
+ #11161A
+ #1A364F
+ #8ECCFF
From 2856ae1f0cf40d8a9ae18ee9b1d21e31baed4f52 Mon Sep 17 00:00:00 2001
From: DK <117024745+Dhangofa@users.noreply.github.com>
Date: Sat, 15 Aug 2026 15:18:38 +0530
Subject: [PATCH 03/62] Update night theme status bar color for improved layout
blending
- Changed android:statusBarColor from @color/surface_background to @color/card_surface. This ensures the status bar visually blends with the top header cards and components rather than matching the pure black background, creating a more cohesive, edge-to-edge aesthetic in dark mode.
---
app/src/main/res/values-night/themes.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index b82eec7..d4d0294 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -2,7 +2,7 @@
+
From dbd61c34ab565ba714a88677e9ebd1d325ea565c Mon Sep 17 00:00:00 2001
From: DK <117024745+Dhangofa@users.noreply.github.com>
Date: Mon, 17 Aug 2026 00:33:59 +0530
Subject: [PATCH 58/62] Inject diagnostic error banner layout in landscape mode
- Added
---
app/src/main/res/layout-land/activity_main.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml
index 473cf68..34f4c44 100644
--- a/app/src/main/res/layout-land/activity_main.xml
+++ b/app/src/main/res/layout-land/activity_main.xml
@@ -208,6 +208,8 @@
android:textColor="@color/text_secondary" />
+
+
Date: Mon, 17 Aug 2026 00:44:58 +0530
Subject: [PATCH 59/62] Add android:id="@+id/targetSimHeaderContainer"
attribute
- Added android:id="@+id/targetSimHeaderContainer" attribute in the Target SIM's RelativeLayout
- MainActivity.java uses findViewById(R.id.targetSimHeaderContainer) to dim the text opacity when Root/Shizuku is not authorized
---
app/src/main/res/layout/view_execution_card.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/src/main/res/layout/view_execution_card.xml b/app/src/main/res/layout/view_execution_card.xml
index cf0e013..9171237 100644
--- a/app/src/main/res/layout/view_execution_card.xml
+++ b/app/src/main/res/layout/view_execution_card.xml
@@ -105,6 +105,7 @@
From 2866cfd043c6f91aa00923ac783dfc94a75fe160 Mon Sep 17 00:00:00 2001
From: DK <117024745+Dhangofa@users.noreply.github.com>
Date: Mon, 17 Aug 2026 01:00:40 +0530
Subject: [PATCH 60/62] Added button shape
---
app/src/main/res/drawable/shape_button_primary.xml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 app/src/main/res/drawable/shape_button_primary.xml
diff --git a/app/src/main/res/drawable/shape_button_primary.xml b/app/src/main/res/drawable/shape_button_primary.xml
new file mode 100644
index 0000000..efa2239
--- /dev/null
+++ b/app/src/main/res/drawable/shape_button_primary.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
From 29b8fdb18909ccb472fa863d0916c2db0665cc3e Mon Sep 17 00:00:00 2001
From: DK <117024745+Dhangofa@users.noreply.github.com>
Date: Mon, 17 Aug 2026 01:19:48 +0530
Subject: [PATCH 61/62] Expand LTEandAbove carrier registry with global 2G/3G
sunset data
- Updated USA Registry: Added at&t, t-mobile, and dish to reflect the completed 2G/3G shutdowns across all major US networks as of August 2026.
- Added Japan Registry: Created JAPAN_LTE_AND_ABOVE to include docomo, au (KDDI), softbank, and rakuten, reflecting the final termination of Docomo's FOMA network.
- Added Australia Registry: Created AUSTRALIA_LTE_AND_ABOVE to include telstra, optus, and vodafone australia (TPG) following their nationwide 3G switch-offs.
- Added Taiwan Registry: Created TAIWAN_LTE_AND_ABOVE to include chunghwa, taiwan mobile, and far eastone following their mid-2024 shutdowns.
Added Singapore Registry: Created SINGAPORE_LTE_AND_ABOVE to include singtel, starhub, and m1 following their 2024 shutdowns.
- Added South Korea Registry: Created SOUTHKOREA_LTE_AND_ABOVE for lg u+, which is fully LTE/5G (intentionally omitting SK Telecom and KT as they still operate 3G networks).
- Updated Logic Flow: Appended new for loops inside the isLteAndAboveOnly() method to dynamically cross-reference the device's current SIM carrier against all the newly added regional lists.
---
.../telephony/LteAndAboveCarrierRegistry.java | 58 +++++++++++++++++--
1 file changed, 54 insertions(+), 4 deletions(-)
diff --git a/app/src/main/java/com/dhangofa/networktoggle/telephony/LteAndAboveCarrierRegistry.java b/app/src/main/java/com/dhangofa/networktoggle/telephony/LteAndAboveCarrierRegistry.java
index 8de62ef..4b99aea 100644
--- a/app/src/main/java/com/dhangofa/networktoggle/telephony/LteAndAboveCarrierRegistry.java
+++ b/app/src/main/java/com/dhangofa/networktoggle/telephony/LteAndAboveCarrierRegistry.java
@@ -4,16 +4,46 @@
import java.util.List;
public final class LteAndAboveCarrierRegistry {
-
+
// REGION: INDIA
- // Jio is purely 4G/5G. It has no 2G/3G infrastructure.
private static final List INDIA_LTE_AND_ABOVE = Arrays.asList(
"jio", "ind-jio", "jio 4g", "jio true5g"
);
- // REGION: USA (Examples)
+ // REGION: USA
+ // Verizon, AT&T, and T-Mobile have fully shut down 2G/3G networks as of 2026. Dish is 5G only.
private static final List USA_LTE_AND_ABOVE = Arrays.asList(
- "verizon", "vzw"
+ "verizon", "vzw", "at&t", "att", "t-mobile", "tmobile", "dish", "dish wireless"
+ );
+
+ // REGION: JAPAN
+ // Docomo, KDDI (au), SoftBank, and Rakuten have shut down their 3G networks.
+ private static final List JAPAN_LTE_AND_ABOVE = Arrays.asList(
+ "docomo", "ntt docomo", "au", "kddi", "softbank", "rakuten", "rakuten mobile"
+ );
+
+ // REGION: AUSTRALIA
+ // Telstra, Optus, and Vodafone Australia (TPG) have fully shut down 3G.
+ private static final List AUSTRALIA_LTE_AND_ABOVE = Arrays.asList(
+ "telstra", "optus", "vodafone au", "vodafone australia", "tpg"
+ );
+
+ // REGION: TAIWAN
+ // Chunghwa Telecom, Taiwan Mobile, and Far EasTone fully shut down 3G in mid-2024.
+ private static final List TAIWAN_LTE_AND_ABOVE = Arrays.asList(
+ "chunghwa", "chunghwa telecom", "taiwan mobile", "far eastone", "fet"
+ );
+
+ // REGION: SINGAPORE
+ // Singtel, StarHub, and M1 fully shut down 3G in 2024.
+ private static final List SINGAPORE_LTE_AND_ABOVE = Arrays.asList(
+ "singtel", "starhub", "m1"
+ );
+
+ // REGION: SOUTH KOREA
+ // LG U+ never had 3G and shut down 2G. (SK Telecom and KT still operate 3G as of 2026).
+ private static final List SOUTHKOREA_LTE_AND_ABOVE = Arrays.asList(
+ "lg u+", "lgu+", "lg uplus", "uplus"
);
private LteAndAboveCarrierRegistry() {
@@ -38,6 +68,26 @@ public static boolean isLteAndAboveOnly(String carrierName) {
if (normalized.equals(name) || normalized.contains(name)) return true;
}
+ for (String name : JAPAN_LTE_AND_ABOVE) {
+ if (normalized.equals(name) || normalized.contains(name)) return true;
+ }
+
+ for (String name : AUSTRALIA_LTE_AND_ABOVE) {
+ if (normalized.equals(name) || normalized.contains(name)) return true;
+ }
+
+ for (String name : TAIWAN_LTE_AND_ABOVE) {
+ if (normalized.equals(name) || normalized.contains(name)) return true;
+ }
+
+ for (String name : SINGAPORE_LTE_AND_ABOVE) {
+ if (normalized.equals(name) || normalized.contains(name)) return true;
+ }
+
+ for (String name : SOUTHKOREA_LTE_AND_ABOVE) {
+ if (normalized.equals(name) || normalized.contains(name)) return true;
+ }
+
return false;
}
}
From 29187a067089ffb45ca6bc76dd8b1556e1d72cb6 Mon Sep 17 00:00:00 2001
From: DK <117024745+Dhangofa@users.noreply.github.com>
Date: Mon, 17 Aug 2026 01:21:57 +0530
Subject: [PATCH 62/62] Updated version code and name
---
app/build.gradle.kts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 22a5513..6726641 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -10,8 +10,8 @@ android {
applicationId = "com.dhangofa.networktoggle"
minSdk = 24
targetSdk = 36
- versionCode = 32
- versionName = "1.0.32"
+ versionCode = 65
+ versionName = "1.0.65"
}
// Suggested by IzzyOnDroid
dependenciesInfo {