diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/manage/LocalOnlyHotspotManager.kt b/mobile/src/main/java/be/mygod/vpnhotspot/manage/LocalOnlyHotspotManager.kt index c2ec0b68..fdf1ee9b 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/manage/LocalOnlyHotspotManager.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/manage/LocalOnlyHotspotManager.kt @@ -7,10 +7,14 @@ import android.content.ComponentName import android.content.Intent import android.content.ServiceConnection import android.content.pm.PackageManager +import android.graphics.Typeface import android.location.LocationManager import android.os.Build import android.os.IBinder import android.provider.Settings +import android.text.SpannableStringBuilder +import android.text.Spanned +import android.text.style.TypefaceSpan import android.view.View import android.widget.Toast import androidx.core.content.getSystemService @@ -75,7 +79,12 @@ class LocalOnlyHotspotManager(private val parent: TetheringFragment) : Manager() } override val title: CharSequence get() { val configuration = binder?.configuration ?: return parent.getString(R.string.tethering_temp_hotspot) - return "${configuration.SSID} - ${configuration.preSharedKey}" + return SpannableStringBuilder("${configuration.SSID} - ").apply { + val start = length + append(configuration.preSharedKey) + setSpan(if (Build.VERSION.SDK_INT >= 28) TypefaceSpan(Typeface.MONOSPACE) else + TypefaceSpan("monospace"), start, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) + } } override val text: CharSequence get() { return lookup[binder?.iface ?: return ""]?.formatAddresses() ?: "" diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pDialogFragment.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pDialogFragment.kt index d6c11d54..ecde3210 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pDialogFragment.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pDialogFragment.kt @@ -20,7 +20,10 @@ import com.google.android.material.textfield.TextInputLayout import java.nio.charset.Charset /** - * https://android.googlesource.com/platform/packages/apps/Settings/+/39b4674/src/com/android/settings/wifi/WifiApDialog.java + * Based on: https://android.googlesource.com/platform/packages/apps/Settings/+/39b4674/src/com/android/settings/wifi/WifiApDialog.java + * + * This dialog has been deprecated in API 28, but we are still using it since it works better for our purposes. + * Related: https://android.googlesource.com/platform/packages/apps/Settings/+/defb1183ecb00d6231bac7d934d07f58f90261ea */ class WifiP2pDialogFragment : DialogFragment(), TextWatcher, DialogInterface.OnClickListener { companion object { diff --git a/mobile/src/main/res/layout/dialog_wifi_ap.xml b/mobile/src/main/res/layout/dialog_wifi_ap.xml index 0a80f97d..2d3a445a 100644 --- a/mobile/src/main/res/layout/dialog_wifi_ap.xml +++ b/mobile/src/main/res/layout/dialog_wifi_ap.xml @@ -51,6 +51,7 @@ android:singleLine="true" android:hint="@string/wifi_password" android:inputType="textPassword" + android:typeface="monospace" android:maxLength="63" android:imeOptions="flagForceAscii" />