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 provider status banner and add unsupported state
This commit is contained in:
@@ -1072,36 +1072,36 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
private fun checkProviderStatus() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
|
||||
// Check if credentials feature is supported
|
||||
if (!packageManager.hasSystemFeature(PackageManager.FEATURE_CREDENTIALS)) {
|
||||
providerStatusContainer.visibility = View.GONE
|
||||
return
|
||||
providerStatusContainer.visibility = View.VISIBLE
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE ||
|
||||
!packageManager.hasSystemFeature(PackageManager.FEATURE_CREDENTIALS)) {
|
||||
providerStatusContainer.backgroundTintList = ColorStateList.valueOf(getColor(R.color.provider_not_supported_background))
|
||||
providerStatusText.setTextColor(getColor(R.color.provider_not_supported_text))
|
||||
providerStatusText.text = getString(R.string.provider_not_supported)
|
||||
btnEnableProvider.visibility = View.GONE
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
val credentialManager = getSystemService(android.credentials.CredentialManager::class.java)
|
||||
val componentName = ComponentName(this, AuthnkeyCredentialService::class.java)
|
||||
val isEnabled = credentialManager?.isEnabledCredentialProviderService(componentName) ?: false
|
||||
|
||||
if (isEnabled) {
|
||||
providerStatusContainer.backgroundTintList = ColorStateList.valueOf(getColor(R.color.provider_enabled_background))
|
||||
providerStatusText.setTextColor(getColor(R.color.provider_enabled_text))
|
||||
providerStatusText.text = getString(R.string.provider_enabled)
|
||||
btnEnableProvider.visibility = View.GONE
|
||||
} else {
|
||||
providerStatusContainer.backgroundTintList = ColorStateList.valueOf(getColor(R.color.provider_not_enabled_background))
|
||||
providerStatusText.setTextColor(getColor(R.color.provider_not_enabled_text))
|
||||
providerStatusText.text = getString(R.string.provider_not_enabled)
|
||||
btnEnableProvider.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
providerStatusContainer.visibility = View.VISIBLE
|
||||
|
||||
try {
|
||||
val credentialManager = getSystemService(android.credentials.CredentialManager::class.java)
|
||||
val componentName = ComponentName(this, AuthnkeyCredentialService::class.java)
|
||||
val isEnabled = credentialManager?.isEnabledCredentialProviderService(componentName) ?: false
|
||||
|
||||
if (isEnabled) {
|
||||
providerStatusContainer.setBackgroundColor(getColor(R.color.provider_enabled_background))
|
||||
providerStatusText.setTextColor(getColor(R.color.provider_enabled_text))
|
||||
providerStatusText.text = getString(R.string.provider_enabled)
|
||||
btnEnableProvider.visibility = View.GONE
|
||||
} else {
|
||||
providerStatusContainer.setBackgroundColor(getColor(R.color.provider_not_enabled_background))
|
||||
providerStatusText.setTextColor(getColor(R.color.provider_not_enabled_text))
|
||||
providerStatusText.text = getString(R.string.provider_not_enabled)
|
||||
btnEnableProvider.visibility = View.VISIBLE
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
providerStatusContainer.visibility = View.GONE
|
||||
}
|
||||
} else {
|
||||
} catch (e: Exception) {
|
||||
providerStatusContainer.visibility = View.GONE
|
||||
resultText.text = e.message
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
6
app/src/main/res/drawable/bg_provider_status.xml
Normal file
6
app/src/main/res/drawable/bg_provider_status.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="12dp" />
|
||||
<solid android:color="@android:color/white" />
|
||||
</shape>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
@@ -17,7 +18,7 @@
|
||||
android:gravity="center_vertical"
|
||||
android:padding="12dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="?android:attr/colorBackground"
|
||||
android:background="@drawable/bg_provider_status"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
@@ -29,13 +30,14 @@
|
||||
android:textSize="14sp"
|
||||
android:textColor="?android:attr/textColorPrimary" />
|
||||
|
||||
<Button
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btnEnableProvider"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/btn_enable"
|
||||
android:visibility="gone"
|
||||
style="?android:attr/buttonBarButtonStyle" />
|
||||
app:strokeColor="@color/provider_button_outline"
|
||||
style="@style/Widget.Material3.Button.OutlinedButton" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
<!-- Provider status - not enabled (dark theme) -->
|
||||
<color name="provider_not_enabled_background">#BF360C</color>
|
||||
<color name="provider_not_enabled_text">#FFCC80</color>
|
||||
<color name="provider_button_outline">#60D0BCFF</color>
|
||||
|
||||
<!-- Provider status - not supported (dark theme) -->
|
||||
<color name="provider_not_supported_background">#B71C1C</color>
|
||||
<color name="provider_not_supported_text">#FFCDD2</color>
|
||||
|
||||
<!-- Tag lost warning state -->
|
||||
<color name="warning_container">#7C2D12</color>
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
<!-- Provider status - not enabled (light theme) -->
|
||||
<color name="provider_not_enabled_background">#FFF3E0</color>
|
||||
<color name="provider_not_enabled_text">#E65100</color>
|
||||
<color name="provider_button_outline">#606750A4</color>
|
||||
|
||||
<!-- Provider status - not supported (light theme) -->
|
||||
<color name="provider_not_supported_background">#FFEBEE</color>
|
||||
<color name="provider_not_supported_text">#C62828</color>
|
||||
|
||||
<!-- Tag lost warning state -->
|
||||
<color name="warning_container">#FED7AA</color>
|
||||
|
||||
@@ -235,6 +235,7 @@
|
||||
|
||||
<string name="provider_enabled">✓ Passkey provider enabled</string>
|
||||
<string name="provider_not_enabled">Passkey provider not enabled</string>
|
||||
<string name="provider_not_supported">Credential Manager is not supported on this device</string>
|
||||
<string name="btn_enable">Enable</string>
|
||||
|
||||
<!-- Main Screen Buttons -->
|
||||
|
||||
Reference in New Issue
Block a user