From 7d9c85b490952a7fe1e1bf2de3dbf2addee3691c Mon Sep 17 00:00:00 2001 From: Daniel Viana Date: Sat, 29 Aug 2026 00:38:41 -0300 Subject: [PATCH] Use string resources for connection status and tab labels The connection status label starts out localizable and stops being so as soon as the app changes state: fragment_home.xml sets the initial value from @string/main_status_disconnected, but ButtonAnimation overwrites it with hardcoded literals on every transition. The tab labels in BottomDialogFragment have the same issue. Move all six to string resources. main_status_disconnected already existed; the other five are added with the exact strings that were previously hardcoded, so the English output is unchanged. --- .../client/ui/home/BottomDialogFragment.java | 4 ++-- .../client/ui/home/ButtonAnimation.java | 18 +++++++++++------- app/src/main/res/values/strings.xml | 5 +++++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/io/netbird/client/ui/home/BottomDialogFragment.java b/app/src/main/java/io/netbird/client/ui/home/BottomDialogFragment.java index a0ed1ceb..121a0077 100644 --- a/app/src/main/java/io/netbird/client/ui/home/BottomDialogFragment.java +++ b/app/src/main/java/io/netbird/client/ui/home/BottomDialogFragment.java @@ -135,11 +135,11 @@ private void setupViewPager() { new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> { switch (position) { case 0: - tab.setText("Peers"); + tab.setText(R.string.tab_peers); tab.setIcon(R.drawable.peers); break; case 1: - tab.setText("Networks"); + tab.setText(R.string.tab_networks); tab.setIcon(R.drawable.networks); break; default: diff --git a/app/src/main/java/io/netbird/client/ui/home/ButtonAnimation.java b/app/src/main/java/io/netbird/client/ui/home/ButtonAnimation.java index 9d06fc7f..ae9bdc04 100644 --- a/app/src/main/java/io/netbird/client/ui/home/ButtonAnimation.java +++ b/app/src/main/java/io/netbird/client/ui/home/ButtonAnimation.java @@ -5,6 +5,10 @@ import android.util.Log; import android.widget.TextView; +import androidx.annotation.StringRes; + +import io.netbird.client.R; + import com.airbnb.lottie.LottieAnimationView; import com.airbnb.lottie.LottieDrawable; @@ -13,13 +17,13 @@ class ButtonAnimation { private TextView textConnStatus; private enum AnimationState { - DISCONNECTED("Disconnected"), - CONNECTING("Connecting"), - CONNECTED("Connected"), - DISCONNECTING("Disconnecting"); + DISCONNECTED(R.string.main_status_disconnected), + CONNECTING(R.string.main_status_connecting), + CONNECTED(R.string.main_status_connected), + DISCONNECTING(R.string.main_status_disconnecting); - private final String text; - AnimationState(String text) { this.text = text; } + @StringRes private final int text; + AnimationState(@StringRes int text) { this.text = text; } } private AnimationState currentState = AnimationState.DISCONNECTED; @@ -175,7 +179,7 @@ public void onAnimationEnd(Animator animation) { }); } - private void updateText(String text) { + private void updateText(@StringRes int text) { Log.i("ButtonAnimation", "set text: "+text); textConnStatus.post(() -> textConnStatus.setText(text)); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5fb4474b..9a62c9de 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -16,6 +16,9 @@ Troubleshoot Disconnected + Connecting + Connected + Disconnecting background mask connect-disconnect @@ -35,6 +38,8 @@ Close %1$d of %2$d Peers connected]]> + Peers + Networks Search peers All Idle