You've already forked FIDO2_Bridge
mirror of
https://github.com/token2/FIDO2_Bridge.git
synced 2026-03-13 11:12:26 -07:00
Redesign connection lost dialog in MainActivity
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package pl.lebihan.authnkey
|
||||
|
||||
import android.animation.ObjectAnimator
|
||||
import android.app.PendingIntent
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.ComponentName
|
||||
@@ -7,6 +8,7 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.res.ColorStateList
|
||||
import android.hardware.usb.UsbDevice
|
||||
import android.hardware.usb.UsbManager
|
||||
import android.nfc.NfcAdapter
|
||||
@@ -18,11 +20,13 @@ import android.provider.Settings
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.animation.AccelerateDecelerateInterpolator
|
||||
import android.widget.Button
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
@@ -347,9 +351,23 @@ class MainActivity : AppCompatActivity() {
|
||||
statusText.text = getString(R.string.connection_lost)
|
||||
resultText.text = getString(R.string.waiting_reconnection)
|
||||
|
||||
reconnectDialog = AlertDialog.Builder(this)
|
||||
.setTitle(getString(R.string.connection_lost_title))
|
||||
.setMessage(getString(R.string.connection_lost_message))
|
||||
val dialogView = layoutInflater.inflate(R.layout.dialog_connection_lost, null)
|
||||
val iconBackground = dialogView.findViewById<View>(R.id.iconBackground)
|
||||
|
||||
iconBackground.backgroundTintList = ColorStateList.valueOf(
|
||||
ContextCompat.getColor(this, R.color.warning_container)
|
||||
)
|
||||
|
||||
val pulseAnimator = ObjectAnimator.ofFloat(iconBackground, View.ALPHA, 1f, 0.3f).apply {
|
||||
duration = 750
|
||||
repeatCount = ObjectAnimator.INFINITE
|
||||
repeatMode = ObjectAnimator.REVERSE
|
||||
interpolator = AccelerateDecelerateInterpolator()
|
||||
start()
|
||||
}
|
||||
|
||||
reconnectDialog = MaterialAlertDialogBuilder(this)
|
||||
.setView(dialogView)
|
||||
.setCancelable(false)
|
||||
.setNegativeButton(getString(R.string.cancel)) { _, _ ->
|
||||
awaitingNfcReconnect = false
|
||||
@@ -357,7 +375,10 @@ class MainActivity : AppCompatActivity() {
|
||||
resultText.text = getString(R.string.operation_cancelled)
|
||||
updateConnectionStatus()
|
||||
}
|
||||
.show()
|
||||
.setOnDismissListener { pulseAnimator.cancel() }
|
||||
.create()
|
||||
|
||||
reconnectDialog?.show()
|
||||
}
|
||||
|
||||
private fun getDeviceInfo() {
|
||||
|
||||
54
app/src/main/res/layout/dialog_connection_lost.xml
Normal file
54
app/src/main/res/layout/dialog_connection_lost.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center"
|
||||
android:paddingHorizontal="24dp"
|
||||
android:paddingTop="24dp"
|
||||
android:paddingBottom="8dp">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/iconContainer"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="80dp"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<View
|
||||
android:id="@+id/iconBackground"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_icon_circle"
|
||||
android:backgroundTint="@color/warning_container" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iconStatus"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/sensors_24"
|
||||
android:contentDescription="@string/security_key_icon_desc" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/titleText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/connection_lost_title"
|
||||
android:textSize="22sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:layout_marginBottom="8dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/messageText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/connection_lost_message"
|
||||
android:textSize="14sp"
|
||||
android:textAlignment="center"
|
||||
android:gravity="center"
|
||||
android:textColor="?android:attr/textColorSecondary" />
|
||||
|
||||
</LinearLayout>
|
||||
Reference in New Issue
Block a user