Example #1
0
def configure_logging(config):
    verbosity = config.get('verbosity')
    verbosity_shortcuts = config.get('verbosity_shortcuts')
    _configure_verbosity(verbosity=verbosity,
                         verbosity_shortcuts=verbosity_shortcuts)

    log_to_file = config.get('log_to_file', False)
    is_android = 'ANDROID_DATA' in os.environ
    if is_android:
        from jnius import autoclass
        from plyer.platforms.android import activity
        package_name = activity.getPackageName().lower()
        build_config = autoclass(f'{package_name}.BuildConfig')
        log_to_file |= bool(build_config.DEBUG)
    if log_to_file:
        log_directory = pathlib.Path(config.path) / "logs"
        _configure_file_logging(log_directory)

    # if using kivy, avoid kivy's own logs to get printed twice
    logging.getLogger('kivy').propagate = False

    from . import ELECTRUM_VERSION
    from .constants import GIT_REPO_URL
    _logger.info(f"Dash Electrum version: {ELECTRUM_VERSION} - "
                 f"https://electrum.dash.org - {GIT_REPO_URL}")
    _logger.info(
        f"Python version: {sys.version}. On platform: {describe_os_version()}")
    _logger.info(f"Logging to file: {str(_logfile_path)}")
    _logger.info(
        f"Log filters: verbosity {repr(verbosity)}, verbosity_shortcuts {repr(verbosity_shortcuts)}"
    )
Example #2
0
def android_backup_dir():
    from plyer.platforms.android import activity
    package_name = activity.getPackageName().lower()
    d = os.path.join(android_ext_dir(), package_name)
    if not os.path.exists(d):
        os.mkdir(d)
    return d
Example #3
0
    def _start(self):
        intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
        intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
                        activity.getPackageName())

        # language preferences
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE,
                        self.language)
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                        RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH)

        # results settings
        intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1000)
        intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, True)
        if self.prefer_offline:
            intent.putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE, True)

        # listener and callbacks
        listener = SpeechListener()
        listener.error_callback = self._on_error
        listener.result_callback = self._on_result
        listener.partial_result_callback = self._on_partial

        # create recognizer and start
        self.speech = SpeechRecognizer.createSpeechRecognizer(activity)
        self.speech.setRecognitionListener(listener)
        self.speech.startListening(intent)
Example #4
0
 def runGeneric(self, what, pidid):
     if self.isRunning(pidid):
         print("Skip starting %s, already running as %s" %
               (what, self.getPid(pidid)))
         return False
     service_fullname = activity.getPackageName() + '.Service' + what
     service = autoclass(service_fullname)
     argument = ""
     service.start(mActivity, argument)
Example #5
0
def configure_logging(config):
    verbosity = config.get('verbosity')
    verbosity_shortcuts = config.get('verbosity_shortcuts')
    _configure_stderr_logging(verbosity=verbosity,
                              verbosity_shortcuts=verbosity_shortcuts)

    log_to_file = config.get('log_to_file', False)
    is_android = 'ANDROID_DATA' in os.environ
    if is_android:
        from jnius import autoclass
        from plyer.platforms.android import activity
        package_name = activity.getPackageName().lower()
        build_config = autoclass(f'{package_name}.BuildConfig')
        log_to_file |= bool(build_config.DEBUG)
    if log_to_file:
        log_directory = pathlib.Path(config.path) / "logs"
        _configure_file_logging(log_directory)

    # clean up and delete in-memory logs
    global _inmemory_startup_logs
    if _inmemory_startup_logs:
        num_discarded = _inmemory_startup_logs.num_messages_seen - _inmemory_startup_logs.max_size
        if num_discarded > 0:
            _logger.warning(
                f"Too many log messages! Some have been discarded. "
                f"(discarded {num_discarded} messages)")
        _inmemory_startup_logs.close()
        root_logger.removeHandler(_inmemory_startup_logs)
        _inmemory_startup_logs = None

    # if using kivy, avoid kivy's own logs to get printed twice
    logging.getLogger('kivy').propagate = False

    from . import ELECTRUM_VERSION
    from .constants import GIT_REPO_URL
    _logger.info(f"Firo Electrum version: {ELECTRUM_VERSION} - "
                 f"https://electrum.dash.org - {GIT_REPO_URL}")
    _logger.info(
        f"Python version: {sys.version}. On platform: {describe_os_version()}")
    _logger.info(f"Logging to file: {str(_logfile_path)}")
    _logger.info(
        f"Log filters: verbosity {repr(verbosity)}, verbosity_shortcuts {repr(verbosity_shortcuts)}"
    )
from jnius import autoclass
from plyer.facades import Notification
from plyer.platforms.android import activity

AndroidString = autoclass('java.lang.String')
Context = autoclass('android.content.Context')
NotificationBuilder = autoclass('android.app.Notification$Builder')
Drawable = autoclass("{}.R$drawable".format(activity.getPackageName()))


class AndroidNotification(Notification):
    def _get_notification_service(self):
        if not hasattr(self, '_ns'):
            self._ns = activity.getSystemService(Context.NOTIFICATION_SERVICE)
        return self._ns

    def _notify(self, **kwargs):
        icon = getattr(Drawable, kwargs.get('icon_android', 'icon'))
        noti = NotificationBuilder(activity)
        #noti.setDefaults(Notification.DEFAULT_ALL)
        noti.setContentTitle(AndroidString(
            kwargs.get('title').encode('utf-8')))
        noti.setContentText(
            AndroidString(kwargs.get('message').encode('utf-8')))
        noti.setSmallIcon(icon)
        noti.setAutoCancel(True)
        self._get_notification_service().notify(0, noti.build())


def instance():
    return AndroidNotification()
Example #7
0
 def __init__(self):
     self._ns = None
     self._channel_id = activity.getPackageName()
Example #8
0
def getDebug():
    return autoclass(activity.getPackageName() + ".BuildConfig").DEBUG
Example #9
0
import os
from os.path import dirname, realpath
from kivy.utils import platform
from adventureskiing.Database.MySQL.db_commands import SqlCommands

if platform == 'android':
    from common_alarms.android_alarm import AlarmManager
    from plyer.platforms.android import activity
    from common_notifications.android_notification import AndroidNotification as notifier
    notification_event = '{}.NOTIFICATION_ALARM'.format(
        activity.getPackageName())


class NotificationManager(object):
    def __init__(self, session_id):
        super(NotificationManager, self).__init__()
        self.session_id = session_id
        self.alarm_manager = AlarmManager(notification_event)
        self.notifier = notifier()

    def dispatch_incoming_notifications(self, *args):
        notifications = SqlCommands.get_notifications(self.session_id)
        for data, godzina, ilosc_os, operacja in notifications:
            message, ticker = self.get_message_ticker(data, godzina, ilosc_os,
                                                      operacja)
            icon_path = os.path.join(dirname(dirname(realpath(__file__))),
                                     'adventureskiing', 'graphics', 'logo.png')
            self.notifier.notify(title=ticker,
                                 message=message,
                                 app_name='ASy',
                                 app_icon=icon_path,
from jnius import autoclass
from plyer.facades import Notification
from plyer.platforms.android import activity

AndroidString = autoclass('java.lang.String')
Context = autoclass('android.content.Context')
NotificationBuilder = autoclass('android.app.Notification$Builder')
Drawable = autoclass("{}.R$drawable".format(activity.getPackageName()))


class AndroidNotification(Notification):
    def _get_notification_service(self):
        if not hasattr(self, '_ns'):
            self._ns = activity.getSystemService(Context.NOTIFICATION_SERVICE)
        return self._ns

    def _notify(self, **kwargs):
        icon = getattr(Drawable, kwargs.get('icon_android', 'icon'))
        noti = NotificationBuilder(activity)
        #noti.setDefaults(Notification.DEFAULT_ALL)
        noti.setContentTitle(AndroidString(
            kwargs.get('title').encode('utf-8')))
        noti.setContentText(AndroidString(
            kwargs.get('message').encode('utf-8')))
        noti.setSmallIcon(icon)
        noti.setAutoCancel(True)
        if hasattr(noti, 'build'):
            # API >= 16
            self._get_notification_service().notify(0, noti.build())
        elif hasattr(noti, 'getNotification'):
            # API >= 11 and API < 16
Example #11
0
 def __init__(self, service_name, arg):
     self.service = autoclass(activity.getPackageName() + '.Service' + service_name.capitalize())
     self.arg = arg