diff options
Diffstat (limited to 'android/src')
3 files changed, 59 insertions, 13 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/TimeSinceLabel.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/TimeSinceLabel.kt index 2fa2c4f2be..8d2e0aa2f3 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/TimeSinceLabel.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/TimeSinceLabel.kt @@ -22,6 +22,12 @@ class TimeSinceLabel(val context: Context, val view: View) { updateLabel() } + var visibility + get() = label.visibility + set(value) { + label.visibility = value + } + private fun updateLabel() { val instant = timeInstant diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt index 2e678e2d33..0a8f341929 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/WireguardKeyFragment.kt @@ -50,7 +50,10 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre private lateinit var publicKey: TextView private lateinit var publicKeyAge: TimeSinceLabel + private lateinit var publicKeyContainer: View private lateinit var statusMessage: TextView + private lateinit var publicKeySpinner: View + private lateinit var timeSinceSpinner: View private lateinit var verifyingKeySpinner: View private lateinit var manageKeysButton: Button private lateinit var generateKeyButton: android.widget.Button @@ -84,7 +87,7 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre publicKeyAge = TimeSinceLabel(parentActivity, view) - view.findViewById<View>(R.id.public_key_container).apply { + publicKeyContainer = view.findViewById<View>(R.id.public_key_container).apply { setOnClickListener { copyPublicKeyToClipboard() } @@ -102,6 +105,8 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre } } + publicKeySpinner = view.findViewById(R.id.public_key_spinner) + timeSinceSpinner = view.findViewById(R.id.time_since_spinner) verifyingKeySpinner = view.findViewById(R.id.verifying_key_spinner) val keyUrl = parentActivity.getString(R.string.wg_key_url) @@ -252,7 +257,20 @@ class WireguardKeyFragment : ServiceDependentFragment(OnNoService.GoToLaunchScre updateViews() currentJob = GlobalScope.launch(Dispatchers.Main) { + publicKeyContainer.setEnabled(false) + publicKey.visibility = View.INVISIBLE + publicKeyAge.visibility = View.INVISIBLE + timeSinceSpinner.visibility = View.VISIBLE + publicKeySpinner.visibility = View.VISIBLE + keyStatusListener.generateKey().join() + + publicKeySpinner.visibility = View.INVISIBLE + timeSinceSpinner.visibility = View.INVISIBLE + publicKeyAge.visibility = View.VISIBLE + publicKey.visibility = View.VISIBLE + publicKeyContainer.setEnabled(true) + generatingKey = false updateViews() } diff --git a/android/src/main/res/layout/wireguard_key.xml b/android/src/main/res/layout/wireguard_key.xml index 604c4f2f2a..2afacd8ada 100644 --- a/android/src/main/res/layout/wireguard_key.xml +++ b/android/src/main/res/layout/wireguard_key.xml @@ -52,12 +52,23 @@ android:textColor="@color/white60" android:textSize="13sp" android:textStyle="bold" /> - <TextView android:id="@+id/wireguard_public_key" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/white" - android:textSize="16sp" - android:textStyle="bold" /> + <FrameLayout android:layout_width="wrap_content" + android:layout_height="wrap_content"> + <TextView android:id="@+id/wireguard_public_key" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="@color/white" + android:textSize="16sp" + android:textStyle="bold" /> + <ProgressBar android:id="@+id/public_key_spinner" + android:layout_width="20dp" + android:layout_height="20dp" + android:indeterminate="true" + android:indeterminateOnly="true" + android:indeterminateDuration="600" + android:indeterminateDrawable="@drawable/icon_spinner" + android:visibility="gone" /> + </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" @@ -71,12 +82,23 @@ android:textSize="13sp" android:textStyle="bold" android:text="@string/wireguard_key_generated" /> - <TextView android:id="@+id/time_since" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/white" - android:textSize="16sp" - android:textStyle="bold" /> + <FrameLayout android:layout_width="wrap_content" + android:layout_height="wrap_content"> + <TextView android:id="@+id/time_since" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="@color/white" + android:textSize="16sp" + android:textStyle="bold" /> + <ProgressBar android:id="@+id/time_since_spinner" + android:layout_width="20dp" + android:layout_height="20dp" + android:indeterminate="true" + android:indeterminateOnly="true" + android:indeterminateDuration="600" + android:indeterminateDrawable="@drawable/icon_spinner" + android:visibility="gone" /> + </FrameLayout> </LinearLayout> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" |
