Source code for bauiv1lib.v2upgrade

# Released under the MIT License. See LICENSE for details.
#
"""UI for upgrading V1 accounts to V2."""

from __future__ import annotations

import bauiv1 as bui


[docs] class V2UpgradeWindow(bui.Window): """A window presenting a URL to the user visually.""" def __init__(self, login_name: str, code: str): from bauiv1lib.account.settings import show_what_is_v2_page app = bui.app assert app.classic is not None uiscale = app.ui_v1.uiscale self._code = code self._width = 700 self._height = 270 super().__init__( root_widget=bui.containerwidget( size=(self._width, self._height + 40), transition='in_right', scale=( 1.25 if uiscale is bui.UIScale.SMALL else 1.25 if uiscale is bui.UIScale.MEDIUM else 1.25 ), ) ) bui.getsound('error').play() bui.textwidget( parent=self._root_widget, position=(self._width * 0.5, self._height - 46), size=(0, 0), color=app.ui_v1.title_color, h_align='center', v_align='center', text=bui.Lstr( resource='deviceAccountUpgradeText', subs=[('${NAME}', login_name)], ), maxwidth=self._width * 0.95, ) bui.textwidget( parent=self._root_widget, position=(self._width * 0.5, 125), size=(0, 0), scale=0.8, color=(0.7, 0.8, 0.7), h_align='center', v_align='center', text=( bui.charstr(bui.SpecialChar.LOCAL_ACCOUNT) + login_name + ' ----> ' + bui.charstr(bui.SpecialChar.V2_LOGO) + login_name ), maxwidth=self._width * 0.95, ) button_width = 200 cancel_button = bui.buttonwidget( parent=self._root_widget, position=(20, 25), size=(button_width, 65), autoselect=True, label=bui.Lstr(resource='notNowText'), on_activate_call=self._done, ) _what_is_this_button = bui.buttonwidget( parent=self._root_widget, position=(self._width * 0.5 - button_width * 0.5, 25), size=(button_width, 65), autoselect=True, label=bui.Lstr(resource='whatIsThisText'), color=(0.55, 0.5, 0.6), textcolor=(0.75, 0.7, 0.8), on_activate_call=show_what_is_v2_page, ) upgrade_button = bui.buttonwidget( parent=self._root_widget, position=(self._width - button_width - 20, 25), size=(button_width, 65), autoselect=True, label=bui.Lstr(resource='upgradeText'), on_activate_call=self._upgrade_press, ) bui.containerwidget( edit=self._root_widget, selected_child=upgrade_button, cancel_button=cancel_button, ) def _upgrade_press(self) -> None: plus = bui.app.plus assert plus is not None # Get rid of the window and sign out before kicking the # user over to a browser to do the upgrade. This hopefully # makes it more clear when they come back that they need to # sign in with the 'BombSquad account' option. bui.containerwidget(edit=self._root_widget, transition='out_left') plus.sign_out_v1() bamasteraddr = plus.get_master_server_address(version=2) bui.open_url(f'{bamasteraddr}/v2uda/{self._code}') def _done(self) -> None: bui.containerwidget(edit=self._root_widget, transition='out_left')