class KivMobDemoUI(FloatLayout): def switch_to_screen(self, name, title): self.ids.toolbar.title = title self.ids.toolbar.left_action_items = [ ["chevron-left", lambda x: self.back_to_menu()] ] self.ids.scr_mngr.transition.direction = "left" self.ids.scr_mngr.current = name self.interstitial_snack = Snackbar( text="Interstitial has not yet loaded." ) def back_to_menu(self): self.ids.scr_mngr.transition.direction = "right" self.ids.scr_mngr.current = "menu" self.ids.toolbar.title = "KivMob 2.0" self.ids.toolbar.left_action_items = [] def show_interstitial_msg(self): self.interstitial_snack.show() def hide_interstitial_msg(self): self.interstitial_snack.hide() def open_dialog(self): pass
class FinishPage(GridLayout): account_type = None def __init__(self, **kwargs): super().__init__(**kwargs) self.snackbar = None def start(self): self.tsc = SmartCardBehavior( self.name, card_insert_callback=None, card_remove_callback=None, card_reinsert_callback=None, card_remove_forever_callback=self.card_remove_forever_callback, card_removable=True) #self.tsc.monitor(4) def card_remove_forever_callback(self): pass def snackbar_show(self, text, duration=8): if self.snackbar: self.snackbar = None self.snackbar = Snackbar(text=text, duration=duration) self.snackbar.show() #Clock.schedule_once(self.snackbar_hide, wait) def snackbar_hide(self, instance=None): if self.snackbar: self.snackbar.hide() self.snackbar = None
class CPECafeApp(MDApp): title = 'CPE Cafe WiFi' #title = 'ระบบบริการบัญชีสมาชิกอินเทอร์เน็ต มทร.อีสาน' font_thin = APP_FOLDER_NAME + '\\lib\\resources\\SukhumvitSet-Text.ttf' font_regular = APP_FOLDER_NAME + '\\lib\\resources\\SukhumvitSet-Medium.ttf' font_bold = APP_FOLDER_NAME + '\\lib\\resources\\SukhumvitSet-SemiBold.ttf' font_name = 'SukhumvitSet' smart_card = None citizen = None account = None menu = None def __init__(self, **kwargs): LabelBase.register(name='SukhumvitSet', fn_regular=APP_FOLDER_NAME + '\\lib\\resources\\SukhumvitSet-Medium.ttf', fn_italic=APP_FOLDER_NAME + '\\lib\\resources\\SukhumvitSet-Medium.ttf', fn_bold=APP_FOLDER_NAME + '\\lib\\resources\\SukhumvitSet-Bold.ttf', fn_bolditalic=APP_FOLDER_NAME + '\\lib\\resources\\SukhumvitSet-Bold.ttf') theme_font_styles.append('SukhumvitSet') self.theme_cls.font_styles['SukhumvitSet'] = [ 'SukhumvitSet', 16, False, 0.15, ] self.theme_cls.primary_palette = 'Blue' super().__init__(**kwargs) #self.dialog_change_theme = None #self.toolbar = None self.snackbar = None def build(self): self.screen_manager = ScreenManager(transition=NoTransition()) self.tsc = SmartCardBehavior( 'Home', reader_added_callback=self.smart_card_reader_added_callback, reader_removed_callback=self.smart_card_reader_removed_callback, card_insert_callback=self.smart_card_inserted_callback, #card_remove_callback=self.smart_card_remove_callback, card_reinsert_callback=None, card_remove_forever_callback=None) with open(f'lib\\Loading.kv', encoding='utf8') as f: Builder.load_string(f.read()) self.loading_page = LoadingPage() screen = Screen(name='Loading') screen.on_enter = self.loading_page.load_pages screen.add_widget(self.loading_page) self.screen_manager.add_widget(screen) return self.screen_manager def smart_card_reader_added_callback(self, added_readers): #CPECafe.home_page.smartcard_text.text = f'Citizen Card was inserted' #CPECafe.home_page.smartcard_text.text = f'มีการต่ออุปกรณ์อ่านบัตรประจำตัวประชาชน' Logger.info('CPECafeApp: SmartCard reader added') def smart_card_reader_removed_callback(self, removed_readers): #CPECafe.home_page.smartcard_text.text = f'Citizen Card was inserted' #CPECafe.home_page.smartcard_text.text = f'มีการถอดอุปกรณ์อ่านบัตรประจำตัวประชาชน' Logger.info('CPECafeApp: SmartCard reader removed') def smart_card_inserted_callback(self, **kwargs): Logger.info('CPECafeApp: SmartCard inserted') #CPECafe.home_page.smartcard_text.text = f'Citizen Card was inserted' CPECafe.home_page.smartcard_text.text = f'มีการเสียบบัตรประจำตัวประชาชน' #CPECafe.home_page.smartcard_image.source = f'lib\\resources\\card_in_use_512px.png' # Read Citizen ID if self.tsc.citizen != None: self.citizen = self.tsc.citizen #self.citizen = '0409000609020' self.account = None Logger.info('CPECafeApp: Open Register screen') CPECafe.screen_manager.transition = SlideTransition( direction='left') CPECafe.screen_manager.current = 'RegisterPolicy' self.tsc.smart_card_removable = True CPECafe.register_policy_page.start() return def smart_card_remove_callback(self, **kwargs): Logger.info('CPECafeApp: SmartCard removed') def snackbar_show(self, text, duration=8): if self.snackbar: self.snackbar = None self.snackbar = Snackbar(text=text, duration=duration) self.snackbar.show() def snackbar_hide(self, instance=None): if self.snackbar: self.snackbar.hide() self.snackbar = None def callback_earthe(self): print('callback_earthe') menu = 1 return menu def callback_wifi(self): hostname = "www.google.com" response = os.system("ping " + hostname) # and then check the response... if response == 0: pingstatus = "Network Active" else: pingstatus = "Network Error" return pingstatus # def check_ping(): # hostname = "taylor" # response = os.system("ping -c 1 " + hostname) # # and then check the response... # if response == 0: # pingstatus = "Network Active" # else: # pingstatus = "Network Error" # return pingstatus def callback_key(self): print('callback_key') menu = 3 return menu def callback_setting(self): print('callback_setting') menu = 4 CPECafe.screen_manager.transition = SlideTransition(direction='left') CPECafe.screen_manager.current = 'Setting' return menu def callback_login(self, menu): pass # setting screen menu def callback_home(self): CPECafe.screen_manager.current = 'Home' CPECafe.screen_manager.transition = SlideTransition(direction='right') def callback_save(self): # save to database print('callback_save')
class RegisterPolicyPage(GridLayout): registration_policy = ObjectProperty(None) account_type = None citizen = None campus = None code = None def __init__(self, **kwargs): super().__init__(**kwargs) self.snackbar = None def start(self, account_type, citizen, campus, code=None): self.tsc = SmartCardBehavior( self.name, card_insert_callback=None, card_remove_callback=None, card_reinsert_callback=None, card_remove_forever_callback=self.card_remove_forever_callback) self.account_type = account_type.lower() self.citizen = citizen self.campus = campus self.code = code #self.tsc.monitor(4, self.citizen) f = open("lib\\Policy.txt", "r", encoding="utf8") policy = f.read() self.ids.registration_policy.text = policy self.ids.account_policy_refuse.size_hint = [.8, None] self.ids.account_policy_accept.size_hint = [.8, None] def account_creation_not_accept_click_callback(self): Logger.info( 'RegisterPolicyPage: Not accept policy, then return to Home screen' ) CPECafe.tsc.reject() def account_creation_accept_click_callback(self): Logger.info( 'RegisterPolicyPage: Register a new Account and then open Set Password screen' ) self.snackbar_show( text= f'กรุณารอสักครู่ - กำลังสมัครบัญชีสมาชิกใหม่กับระบบจัดการข้อมูลและบริการอินเทอร์เน็ต' ) self.tsc = SmartCardBehavior(self) self.citizen = self.tsc.citizen # fail = False # print(self.citizen) # # # Insert data to database # # self.snackbar_hide() if self.citizen: Logger.info('RegisterPolicyPage: Open SetPassword screen') #self.snackbar_show('We are register your information as RMUTi internet account. Please wait...') CPECafe.screen_manager.transition = SlideTransition( direction='left') CPECafe.screen_manager.current = 'Finish' #CPECafe.tsc.smart_card_removable = False CPECafe.finish_page.start() #self.tsc.unmonitor() return CPECafe.tsc.dialog( title='เกิดข้อผิดพลาด...', size=('380dp', '180dp'), size_hint=(None, None), #text='The RMUTI Internet Accounting Service is down', text='ขออภัย.. เราไม่สามารถให้บริการได้', text_button_ok='OK') return def card_remove_forever_callback(self): if self.account_type != None: self.account_type_select.add_widget(self.ids.account_type_text) self.account_type = None def snackbar_show(self, text, duration=8): if self.snackbar: self.snackbar = None self.snackbar = Snackbar(text=text, duration=duration) self.snackbar.show() #Clock.schedule_once(self.snackbar_hide, wait) def snackbar_hide(self, instance=None): if self.snackbar: self.snackbar.hide() self.snackbar = None