bauiv1lib.v2upgrade
UI for upgrading V1 accounts to V2.
1# Released under the MIT License. See LICENSE for details. 2# 3"""UI for upgrading V1 accounts to V2.""" 4 5from __future__ import annotations 6 7import bauiv1 as bui 8 9 10class V2UpgradeWindow(bui.Window): 11 """A window presenting a URL to the user visually.""" 12 13 def __init__(self, login_name: str, code: str): 14 15 app = bui.app 16 assert app.classic is not None 17 uiscale = app.ui_v1.uiscale 18 19 self._code = code 20 21 self._width = 700 22 self._height = 270 23 super().__init__( 24 root_widget=bui.containerwidget( 25 size=(self._width, self._height + 40), 26 transition='in_right', 27 scale=( 28 1.25 29 if uiscale is bui.UIScale.SMALL 30 else 1.25 if uiscale is bui.UIScale.MEDIUM else 1.25 31 ), 32 ) 33 ) 34 bui.getsound('error').play() 35 36 bui.textwidget( 37 parent=self._root_widget, 38 position=(self._width * 0.5, self._height - 46), 39 size=(0, 0), 40 color=app.ui_v1.title_color, 41 h_align='center', 42 v_align='center', 43 text=bui.Lstr( 44 resource='deviceAccountUpgradeText', 45 subs=[('${NAME}', login_name)], 46 ), 47 maxwidth=self._width * 0.95, 48 ) 49 bui.textwidget( 50 parent=self._root_widget, 51 position=(self._width * 0.5, 125), 52 size=(0, 0), 53 scale=0.8, 54 color=(0.7, 0.8, 0.7), 55 h_align='center', 56 v_align='center', 57 text=( 58 bui.charstr(bui.SpecialChar.LOCAL_ACCOUNT) 59 + login_name 60 + ' ----> ' 61 + bui.charstr(bui.SpecialChar.V2_LOGO) 62 + login_name 63 ), 64 maxwidth=self._width * 0.95, 65 ) 66 button_width = 200 67 68 cancel_button = bui.buttonwidget( 69 parent=self._root_widget, 70 position=(20, 25), 71 size=(button_width, 65), 72 autoselect=True, 73 label=bui.Lstr(resource='notNowText'), 74 on_activate_call=self._done, 75 ) 76 77 _what_is_this_button = bui.buttonwidget( 78 parent=self._root_widget, 79 position=(self._width * 0.5 - button_width * 0.5, 25), 80 size=(button_width, 65), 81 autoselect=True, 82 label=bui.Lstr(resource='whatIsThisText'), 83 color=(0.55, 0.5, 0.6), 84 textcolor=(0.75, 0.7, 0.8), 85 on_activate_call=show_what_is_v2_page, 86 ) 87 88 upgrade_button = bui.buttonwidget( 89 parent=self._root_widget, 90 position=(self._width - button_width - 20, 25), 91 size=(button_width, 65), 92 autoselect=True, 93 label=bui.Lstr(resource='upgradeText'), 94 on_activate_call=self._upgrade_press, 95 ) 96 97 bui.containerwidget( 98 edit=self._root_widget, 99 selected_child=upgrade_button, 100 cancel_button=cancel_button, 101 ) 102 103 def _upgrade_press(self) -> None: 104 plus = bui.app.plus 105 assert plus is not None 106 107 # Get rid of the window and sign out before kicking the 108 # user over to a browser to do the upgrade. This hopefully 109 # makes it more clear when they come back that they need to 110 # sign in with the 'BombSquad account' option. 111 bui.containerwidget(edit=self._root_widget, transition='out_left') 112 plus.sign_out_v1() 113 bamasteraddr = plus.get_master_server_address(version=2) 114 bui.open_url(f'{bamasteraddr}/v2uda/{self._code}') 115 116 def _done(self) -> None: 117 bui.containerwidget(edit=self._root_widget, transition='out_left') 118 119 120def show_what_is_v2_page() -> None: 121 """Show the webpage describing V2 accounts.""" 122 plus = bui.app.plus 123 assert plus is not None 124 125 bamasteraddr = plus.get_master_server_address(version=2) 126 bui.open_url(f'{bamasteraddr}/whatisv2')
class
V2UpgradeWindow(bauiv1._uitypes.Window):
11class V2UpgradeWindow(bui.Window): 12 """A window presenting a URL to the user visually.""" 13 14 def __init__(self, login_name: str, code: str): 15 16 app = bui.app 17 assert app.classic is not None 18 uiscale = app.ui_v1.uiscale 19 20 self._code = code 21 22 self._width = 700 23 self._height = 270 24 super().__init__( 25 root_widget=bui.containerwidget( 26 size=(self._width, self._height + 40), 27 transition='in_right', 28 scale=( 29 1.25 30 if uiscale is bui.UIScale.SMALL 31 else 1.25 if uiscale is bui.UIScale.MEDIUM else 1.25 32 ), 33 ) 34 ) 35 bui.getsound('error').play() 36 37 bui.textwidget( 38 parent=self._root_widget, 39 position=(self._width * 0.5, self._height - 46), 40 size=(0, 0), 41 color=app.ui_v1.title_color, 42 h_align='center', 43 v_align='center', 44 text=bui.Lstr( 45 resource='deviceAccountUpgradeText', 46 subs=[('${NAME}', login_name)], 47 ), 48 maxwidth=self._width * 0.95, 49 ) 50 bui.textwidget( 51 parent=self._root_widget, 52 position=(self._width * 0.5, 125), 53 size=(0, 0), 54 scale=0.8, 55 color=(0.7, 0.8, 0.7), 56 h_align='center', 57 v_align='center', 58 text=( 59 bui.charstr(bui.SpecialChar.LOCAL_ACCOUNT) 60 + login_name 61 + ' ----> ' 62 + bui.charstr(bui.SpecialChar.V2_LOGO) 63 + login_name 64 ), 65 maxwidth=self._width * 0.95, 66 ) 67 button_width = 200 68 69 cancel_button = bui.buttonwidget( 70 parent=self._root_widget, 71 position=(20, 25), 72 size=(button_width, 65), 73 autoselect=True, 74 label=bui.Lstr(resource='notNowText'), 75 on_activate_call=self._done, 76 ) 77 78 _what_is_this_button = bui.buttonwidget( 79 parent=self._root_widget, 80 position=(self._width * 0.5 - button_width * 0.5, 25), 81 size=(button_width, 65), 82 autoselect=True, 83 label=bui.Lstr(resource='whatIsThisText'), 84 color=(0.55, 0.5, 0.6), 85 textcolor=(0.75, 0.7, 0.8), 86 on_activate_call=show_what_is_v2_page, 87 ) 88 89 upgrade_button = bui.buttonwidget( 90 parent=self._root_widget, 91 position=(self._width - button_width - 20, 25), 92 size=(button_width, 65), 93 autoselect=True, 94 label=bui.Lstr(resource='upgradeText'), 95 on_activate_call=self._upgrade_press, 96 ) 97 98 bui.containerwidget( 99 edit=self._root_widget, 100 selected_child=upgrade_button, 101 cancel_button=cancel_button, 102 ) 103 104 def _upgrade_press(self) -> None: 105 plus = bui.app.plus 106 assert plus is not None 107 108 # Get rid of the window and sign out before kicking the 109 # user over to a browser to do the upgrade. This hopefully 110 # makes it more clear when they come back that they need to 111 # sign in with the 'BombSquad account' option. 112 bui.containerwidget(edit=self._root_widget, transition='out_left') 113 plus.sign_out_v1() 114 bamasteraddr = plus.get_master_server_address(version=2) 115 bui.open_url(f'{bamasteraddr}/v2uda/{self._code}') 116 117 def _done(self) -> None: 118 bui.containerwidget(edit=self._root_widget, transition='out_left')
A window presenting a URL to the user visually.
V2UpgradeWindow(login_name: str, code: str)
14 def __init__(self, login_name: str, code: str): 15 16 app = bui.app 17 assert app.classic is not None 18 uiscale = app.ui_v1.uiscale 19 20 self._code = code 21 22 self._width = 700 23 self._height = 270 24 super().__init__( 25 root_widget=bui.containerwidget( 26 size=(self._width, self._height + 40), 27 transition='in_right', 28 scale=( 29 1.25 30 if uiscale is bui.UIScale.SMALL 31 else 1.25 if uiscale is bui.UIScale.MEDIUM else 1.25 32 ), 33 ) 34 ) 35 bui.getsound('error').play() 36 37 bui.textwidget( 38 parent=self._root_widget, 39 position=(self._width * 0.5, self._height - 46), 40 size=(0, 0), 41 color=app.ui_v1.title_color, 42 h_align='center', 43 v_align='center', 44 text=bui.Lstr( 45 resource='deviceAccountUpgradeText', 46 subs=[('${NAME}', login_name)], 47 ), 48 maxwidth=self._width * 0.95, 49 ) 50 bui.textwidget( 51 parent=self._root_widget, 52 position=(self._width * 0.5, 125), 53 size=(0, 0), 54 scale=0.8, 55 color=(0.7, 0.8, 0.7), 56 h_align='center', 57 v_align='center', 58 text=( 59 bui.charstr(bui.SpecialChar.LOCAL_ACCOUNT) 60 + login_name 61 + ' ----> ' 62 + bui.charstr(bui.SpecialChar.V2_LOGO) 63 + login_name 64 ), 65 maxwidth=self._width * 0.95, 66 ) 67 button_width = 200 68 69 cancel_button = bui.buttonwidget( 70 parent=self._root_widget, 71 position=(20, 25), 72 size=(button_width, 65), 73 autoselect=True, 74 label=bui.Lstr(resource='notNowText'), 75 on_activate_call=self._done, 76 ) 77 78 _what_is_this_button = bui.buttonwidget( 79 parent=self._root_widget, 80 position=(self._width * 0.5 - button_width * 0.5, 25), 81 size=(button_width, 65), 82 autoselect=True, 83 label=bui.Lstr(resource='whatIsThisText'), 84 color=(0.55, 0.5, 0.6), 85 textcolor=(0.75, 0.7, 0.8), 86 on_activate_call=show_what_is_v2_page, 87 ) 88 89 upgrade_button = bui.buttonwidget( 90 parent=self._root_widget, 91 position=(self._width - button_width - 20, 25), 92 size=(button_width, 65), 93 autoselect=True, 94 label=bui.Lstr(resource='upgradeText'), 95 on_activate_call=self._upgrade_press, 96 ) 97 98 bui.containerwidget( 99 edit=self._root_widget, 100 selected_child=upgrade_button, 101 cancel_button=cancel_button, 102 )
def
show_what_is_v2_page() -> None:
121def show_what_is_v2_page() -> None: 122 """Show the webpage describing V2 accounts.""" 123 plus = bui.app.plus 124 assert plus is not None 125 126 bamasteraddr = plus.get_master_server_address(version=2) 127 bui.open_url(f'{bamasteraddr}/whatisv2')
Show the webpage describing V2 accounts.