Custom BiometricPrompt.Builder - PullRequest
       0

Custom BiometricPrompt.Builder

0 голосов
/ 11 сентября 2018

Можем ли мы изменить / настроить наш BiometricPrompt?

Например, сейчас я использую что-то вроде этого:

BiometricPrompt.Builder(AppResources.appContext)
            .setTitle("title")
            .setSubtitle("subTitle")
            .setDescription("description")
            .setNegativeButton("Cancel", AppResources.appContext?.mainExecutor,
                    DialogInterface.OnClickListener { dialogInterface, i -> biometricCallback.onAuthenticationCancelled() })
            .build()
            .authenticate(CancellationSignal(), AppResources.appContext?.mainExecutor,
                    BiometricCallbackV28(biometricCallback))

Есть ли у меня возможность менять стиль текста, заголовок, negativeButton цвет?

Ответы [ 3 ]

0 голосов
/ 24 мая 2019

Можем ли мы изменить / настроить наш BiometricPrompt?

BiometricPrompt использует стиль "buttonStyle", установленный для вашей темы, который вы можете настроить в файле styles.xml. Имейте в виду, что это стиль кнопок по умолчанию, поэтому, если вы не хотите, чтобы другие кнопки менялись, вам нужно назначить кнопки и т. Д. Их собственный стиль. (и диалоги и т. д.)

Например, если вы хотите, чтобы цвет текста в BiometricPrompt отличался, вы можете сделать что-то вроде этого:

<style name="myTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="buttonStyle">@style/ButtonPrimaryStyle</item>
</style>

<style name="ButtonPrimaryStyle" parent="ButtonParentStyle">
    <item name="android:textColor">454545</item>
</style>

<style name="ButtonPrimaryStyleMain" parent="ButtonPrimaryStyle">
    <item name="android:textColor">e2e2e2</item>
</style>

Это даст BiometricPrompt темно-серый текст для кнопки отмены, в то время как каждая кнопка со стилем "ButtonPrimaryStyleMain" будет иметь светло-серый, почти белый цвет текста.

Вам также придется назначить эту тему для вашего приложения в манифесте.

<application
    android:theme="@style/myTheme"
0 голосов
/ 09 августа 2019

Я нашел два способа сделать это, ни один из них не является специфическим для BiometricPrompt, один - переопределить стиль кнопки темы: <item name="android:buttonStyle">@style/CustomButtonStyle</item>

другой вариант - переопределить тему диалога предупреждений:

Стиль AppTheme

<item name="android:alertDialogTheme">@style/AlertDialogTheme</item>

    <style name="AlertDialogTheme" parent="ThemeOverlay.AppCompat.Dialog.Alert">
        <item name="android:buttonBarNegativeButtonStyle">@style/NegativeButtonStyle</item>
        <item name="android:buttonBarPositiveButtonStyle">@style/PositiveButtonStyle</item>
    </style>

    <style name="NegativeButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
        <item name="android:textSize">10sp</item>
        <item name="android:textColor">@color/primary_text</item>
    </style>

    <style name="PositiveButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog">
        <item name="android:textColor">@color/primary_text</item>
    </style>

И тогда вы можете применить конкретную тему к конкретному виду деятельности. Возможно, они могли открыть API, чтобы разрешить стили, но мне пришлось изменить цвет, потому что было невозможно увидеть кнопки (все было белым), и это то, что я нашел, чтобы решить мою проблему. Я надеюсь, что это поможет вам.

0 голосов
/ 11 сентября 2018

Вы не можете устанавливать свойства в приглашении, которые не отображаются через Builder - пользовательский интерфейс предоставляется системой и имеет одинаковую структуру для всех приложений.

Это своего рода основной пункт этого API, поэтому пользователь знакомится с подсказкой и знает, что все, с чем он взаимодействует, безопасно для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...