From 00c38f899b71db3271a6a84dc1b1551fceb6c294 Mon Sep 17 00:00:00 2001 From: Amaan Qureshi Date: Thu, 20 Nov 2025 19:42:54 -0500 Subject: [PATCH] fix: use the user-set device name before falling back to the device model Signed-off-by: Amaan Qureshi --- android/src/main/java/com/tailscale/ipn/App.kt | 7 ++++++- libtailscale/interfaces.go | 4 ++-- libtailscale/tailscale.go | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/tailscale/ipn/App.kt b/android/src/main/java/com/tailscale/ipn/App.kt index 909e305..481e85d 100644 --- a/android/src/main/java/com/tailscale/ipn/App.kt +++ b/android/src/main/java/com/tailscale/ipn/App.kt @@ -279,7 +279,12 @@ class App : UninitializedApp(), libtailscale.AppContext, ViewModelStoreOwner { TSLog.d("App", "Set Tile Ready: $ableToStartVPN") } - override fun getModelName(): String { + override fun getDeviceName(): String { + // Try user-defined device name first + android.provider.Settings.Global.getString(contentResolver, android.provider.Settings.Global.DEVICE_NAME) + ?.let { return it } + + // Otherwise fallback to manufacturer + model val manu = Build.MANUFACTURER var model = Build.MODEL // Strip manufacturer from model. diff --git a/libtailscale/interfaces.go b/libtailscale/interfaces.go index 7155f06..f0d6c6d 100644 --- a/libtailscale/interfaces.go +++ b/libtailscale/interfaces.go @@ -36,8 +36,8 @@ type AppContext interface { // GetOSVersion gets the Android version. GetOSVersion() (string, error) - // GetModelName gets the Android device's model name. - GetModelName() (string, error) + // GetDeviceName gets the Android device's user-set name, or hardware model name as a fallback. + GetDeviceName() (string, error) // GetInstallSource gets information about how the app was installed or updated. GetInstallSource() string diff --git a/libtailscale/tailscale.go b/libtailscale/tailscale.go index 63b4032..f3c6938 100644 --- a/libtailscale/tailscale.go +++ b/libtailscale/tailscale.go @@ -91,7 +91,7 @@ func (a *App) osVersion() string { // modelName return the MANUFACTURER + MODEL from // android.os.Build. func (a *App) modelName() string { - model, err := a.appCtx.GetModelName() + model, err := a.appCtx.GetDeviceName() if err != nil { panic(err) }