Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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')
Exemple #4
0
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