@@ -382,12 +382,35 @@ private void gotoState(State newState) {
382382 gotoState (newState , true );
383383 }
384384
385+ private String getTitle () {
386+ if (options .getTitle () != null ) {
387+ return options .getTitle ();
388+ }
389+ switch (options .getPinMode ()) {
390+ case PIN_INPUT : {
391+ return getString (R .string .hwsecurity_ui_title_login );
392+ }
393+ case NO_PIN_INPUT : {
394+ return getString (R .string .hwsecurity_ui_title_add );
395+ }
396+ case RESET_PIN : {
397+ return getString (R .string .hwsecurity_ui_title_reset_pin );
398+ }
399+ case SETUP : {
400+ return getString (R .string .hwsecurity_ui_title_setup );
401+ }
402+ default : {
403+ throw new IllegalArgumentException ("unknown PinMode!" );
404+ }
405+ }
406+ }
407+
385408 private void gotoState (State newState , boolean isTransportNfc ) {
386409 switch (newState ) {
387410 case NORMAL_ENTER_PIN : {
388411 keypadPinInput .reset (options .getPinLength ());
389412
390- textViewTitle .setText (options . getTitle () != null ? options . getTitle () : getString ( R . string . hwsecurity_ui_title_login ));
413+ textViewTitle .setText (getTitle ());
391414 textViewDescription .setText (R .string .hwsecurity_ui_description_enter_pin );
392415
393416 showHidePinInput (keyboardPreference .isKeyboardPreferred ());
@@ -406,6 +429,7 @@ private void gotoState(State newState, boolean isTransportNfc) {
406429 SecurityKeyManager .getInstance ().rediscoverConnectedSecurityKeys ();
407430 keypadPinInput .reset (options .getPinLength ());
408431
432+ textViewTitle .setText (getTitle ());
409433 textViewDescription .setText (R .string .hwsecurity_ui_description_start );
410434
411435 TransitionManager .beginDelayedTransition (innerBottomSheet );
@@ -424,7 +448,7 @@ private void gotoState(State newState, boolean isTransportNfc) {
424448 break ;
425449 }
426450 case NORMAL_SECURITY_KEY_HOLD : {
427- textViewTitle .setText (options . getTitle () != null ? options . getTitle () : getString ( R . string . hwsecurity_ui_title_login ));
451+ textViewTitle .setText (getTitle ());
428452 textViewDescription .setText (isTransportNfc ? R .string .hwsecurity_ui_description_hold_nfc : R .string .hwsecurity_ui_description_hold_usb );
429453
430454 // no animation for speed!
@@ -548,7 +572,7 @@ private void gotoState(State newState, boolean isTransportNfc) {
548572 int pinLength = options .getPinLength () == null ? SETUP_DEFAULT_PIN_LENGTH : options .getPinLength ();
549573 keypadPinInput .reset (pinLength );
550574
551- textViewTitle .setText (R . string . hwsecurity_ui_title_setup );
575+ textViewTitle .setText (getTitle () );
552576 textViewDescription .setText (R .string .hwsecurity_ui_description_choose_pin );
553577
554578 keyboardPinInput .setVisibility (View .GONE );
@@ -571,7 +595,7 @@ private void gotoState(State newState, boolean isTransportNfc) {
571595 setupPuk .displayOnTextView (textPuk );
572596
573597 TransitionManager .beginDelayedTransition (innerBottomSheet );
574- textViewTitle .setText (R . string . hwsecurity_ui_title_setup );
598+ textViewTitle .setText (getTitle () );
575599 textViewDescription .setText (R .string .hwsecurity_ui_description_puk );
576600 keyboardPinInput .setVisibility (View .GONE );
577601 keypadPinInput .setVisibility (View .GONE );
@@ -588,7 +612,7 @@ private void gotoState(State newState, boolean isTransportNfc) {
588612 case SETUP_CONFIRM_WIPE : {
589613
590614 TransitionManager .beginDelayedTransition (innerBottomSheet );
591- textViewTitle .setText (R . string . hwsecurity_ui_title_setup );
615+ textViewTitle .setText (getTitle () );
592616 textViewDescription .setText ("" );
593617 keyboardPinInput .setVisibility (View .GONE );
594618 keypadPinInput .setVisibility (View .GONE );
0 commit comments