From 2b887a136d6da6e079e629b80101ca05ae8ab581 Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Sat, 4 Apr 2026 00:54:04 +0300 Subject: [PATCH] style: remove underlines from navigation drawer links and update text styling and labels --- .../java/com/v2ray/ang/ui/MainActivity.kt | 27 +++++++++++++++++-- .../app/src/main/res/layout/activity_main.xml | 6 +++-- .../app/src/main/res/values-ru/strings.xml | 2 +- V2rayNG/app/src/main/res/values/strings.xml | 2 +- 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt index cf95906d..d1c10a1f 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt @@ -82,8 +82,31 @@ class MainActivity : HelperBaseActivity(), NavigationView.OnNavigationItemSelect binding.drawerLayout.addDrawerListener(toggle) toggle.syncState() binding.navView.setNavigationItemSelectedListener(this) - findViewById(R.id.tv_forked)?.movementMethod = android.text.method.LinkMovementMethod.getInstance() - findViewById(R.id.tv_developed)?.movementMethod = android.text.method.LinkMovementMethod.getInstance() + fun removeUnderlines(textView: android.widget.TextView?) { + if (textView == null) return + textView.movementMethod = android.text.method.LinkMovementMethod.getInstance() + val text = textView.text + if (text is android.text.Spanned) { + val spannable = android.text.SpannableStringBuilder(text) + val spans = spannable.getSpans(0, spannable.length, android.text.style.URLSpan::class.java) + for (span in spans) { + val start = spannable.getSpanStart(span) + val end = spannable.getSpanEnd(span) + val flags = spannable.getSpanFlags(span) + val url = span.url + spannable.removeSpan(span) + spannable.setSpan(object : android.text.style.URLSpan(url) { + override fun updateDrawState(ds: android.text.TextPaint) { + super.updateDrawState(ds) + ds.isUnderlineText = false + } + }, start, end, flags) + } + textView.text = spannable + } + } + removeUnderlines(findViewById(R.id.tv_forked)) + removeUnderlines(findViewById(R.id.tv_developed)) onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) { diff --git a/V2rayNG/app/src/main/res/layout/activity_main.xml b/V2rayNG/app/src/main/res/layout/activity_main.xml index 4cd6b8ea..6126bcbb 100644 --- a/V2rayNG/app/src/main/res/layout/activity_main.xml +++ b/V2rayNG/app/src/main/res/layout/activity_main.xml @@ -150,7 +150,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/drawer_forked_text" - android:textColorLink="?attr/colorAccent" + android:textColor="#9E9E9E" + android:textColorLink="#9E9E9E" android:linksClickable="true" android:textIsSelectable="true" /> @@ -160,7 +161,8 @@ android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="@string/drawer_developed_text" - android:textColorLink="?attr/colorAccent" + android:textColor="#9E9E9E" + android:textColorLink="#9E9E9E" android:linksClickable="true" android:textIsSelectable="true" /> diff --git a/V2rayNG/app/src/main/res/values-ru/strings.xml b/V2rayNG/app/src/main/res/values-ru/strings.xml index d9676ad0..f08eb2a5 100644 --- a/V2rayNG/app/src/main/res/values-ru/strings.xml +++ b/V2rayNG/app/src/main/res/values-ru/strings.xml @@ -7,7 +7,7 @@ Закрыть панель навигации Успешный перенос данных! forked from V2RayNG - developed by developers from openlibrecommunity + developed by developers from Olc Остановить службу Перенос данных не выполнен! Потяните вниз для обновления! diff --git a/V2rayNG/app/src/main/res/values/strings.xml b/V2rayNG/app/src/main/res/values/strings.xml index 7ede02d6..473476ea 100644 --- a/V2rayNG/app/src/main/res/values/strings.xml +++ b/V2rayNG/app/src/main/res/values/strings.xml @@ -8,7 +8,7 @@ Close navigation drawer Data migration success! forked from V2RayNG - developed by developers from openlibrecommunity + developed by developers from Olc Stop service Data migration failed! Please pull down to refresh!