import time from kivy.app import App from kivy.core.window import Window from kivy.uix.boxlayout import BoxLayout from kivy.uix.gridlayout import GridLayout from debug import logger from addresses import addBMIfNotPresent, decodeAddress from bmconfigparser import BMConfigParser from helper_ackPayload import genAckPayload from helper_sql import sqlExecute import queues import shutdown statusIconColor = 'red' class LoginScreen(BoxLayout): """This will use for sending message to recipents from mobile client.""" def send(self): """It is used for sending message with subject and body.""" queues.apiAddressGeneratorReturnQueue.queue.clear() streamNumberForAddress = 1 label = "CisDevelper" eighteenByteRipe = False nonceTrialsPerByte = 1000 payloadLengthExtraBytes = 1000 queues.addressGeneratorQueue.put(( 'createRandomAddress', 4, streamNumberForAddress, label, 1, "", eighteenByteRipe, nonceTrialsPerByte, payloadLengthExtraBytes )) fromAddress = queues.apiAddressGeneratorReturnQueue.get() toAddress = "BM-2cWyUfBdY2FbgyuCb7abFZ49JYxSzUhNFe" message = self.ids.user_input.text subject = 'Test' encoding = 3 sendMessageToPeople = True if sendMessageToPeople: if toAddress != '': status, addressVersionNumber, streamNumber, ripe = decodeAddress( toAddress) if status == 'success': toAddress = addBMIfNotPresent(toAddress) if addressVersionNumber > 4 or addressVersionNumber <= 1: logger.info("addressVersionNumber > 4 or addressVersionNumber <= 1") if streamNumber > 1 or streamNumber == 0: logger.info("streamNumber > 1 or streamNumber == 0") if statusIconColor == 'red': logger.info("shared.statusIconColor == 'red'") stealthLevel = BMConfigParser().safeGetInt( 'bitmessagesettings', 'ackstealthlevel') ackdata = genAckPayload(streamNumber, stealthLevel) sqlExecute( '''INSERT INTO sent VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''', '', toAddress, ripe, fromAddress, subject, message, ackdata, int(time.time()), int(time.time()), 0, 'msgqueued', 0, 'sent', encoding, BMConfigParser().getint('bitmessagesettings', 'ttl')) queues.workerQueue.put(('sendmessage', toAddress)) return None def sayexit(self): """Method will exit the application screen.""" shutdown.doCleanShutdown() Window.close() class MainApp(App): """The App class is the base for creating Kivy applications Think of it as your main entry point into the Kivy run loop.""" def build(self): """To initialize an app with a widget tree, we need to override the build(). method in our app class and return the widget tree which we have constructed.. """ return LoginScreen()