Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/android_app_plugin/kolibri_plugin.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import logging

from android_utils import is_active_network_metered
from android_utils import os_user
from android_utils import share_by_intent
from django.utils import timezone
from jnius import autoclass
from kolibri.core.device.hooks import CheckIsMeteredHook
from kolibri.core.device.hooks import GetOSUserHook
from kolibri.core.device.hooks import ShareFileHook
from kolibri.core.tasks.hooks import StorageHook
from kolibri.core.tasks.job import Priority
from kolibri.plugins import KolibriPluginBase
Expand All @@ -20,6 +26,27 @@ class AndroidApp(KolibriPluginBase):
pass


@register_hook
class AndroidGetOSUserHook(GetOSUserHook):
def get_os_user(self, auth_token=None):
return os_user(auth_token)


@register_hook
class AndroidCheckIsMeteredHook(CheckIsMeteredHook):
def check_is_metered(self):
try:
return bool(is_active_network_metered())
except Exception:
return False


@register_hook
class AndroidShareFileHook(ShareFileHook):
def share_file(self, *args, **kwargs):
return share_by_intent(*args, **kwargs)


@register_hook
class StorageHook(StorageHook):
def schedule(
Expand Down
18 changes: 5 additions & 13 deletions src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,9 @@

import initialization # noqa: F401 keep this first, to ensure we're set up for other imports
from android_utils import get_os_user_auth_token
from android_utils import is_active_network_metered
from android_utils import os_user
from android_utils import share_by_intent
from jnius import autoclass
from kolibri.core.device.utils import app_initialize_url
from kolibri.main import enable_plugin
from kolibri.plugins.app.utils import interface
from kolibri.utils.cli import initialize
from kolibri.utils.server import BaseKolibriProcessBus
from kolibri.utils.server import KolibriServerPlugin
Expand All @@ -34,25 +31,20 @@ def __init__(self, bus):
self.bus.subscribe("SERVING", self.SERVING)

def SERVING(self, port):
start_url = "http://127.0.0.1:{port}".format(
port=port
) + interface.get_initialize_url(auth_token=auth_token_value)
start_url = "http://127.0.0.1:{port}".format(port=port) + app_initialize_url(
auth_token=auth_token_value
)
loadUrl(start_url)


logging.info("Initializing Kolibri and running any upgrade routines")

# activate app mode
enable_plugin("kolibri.plugins.app")

enable_plugin("android_app_plugin")

# we need to initialize Kolibri to allow us to access the app key
initialize()

interface.register(share_file=share_by_intent)
interface.register(check_is_metered=is_active_network_metered)
interface.register(get_os_user=os_user)

kolibri_bus = BaseKolibriProcessBus()
# Setup zeroconf plugin
zeroconf_plugin = ZeroConfPlugin(kolibri_bus, kolibri_bus.port)
Expand Down
5 changes: 2 additions & 3 deletions src/taskworker.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import logging

import initialization # noqa: F401 keep this first, to ensure we're set up for other imports
from android_utils import os_user
from kolibri.main import enable_plugin
from kolibri.main import initialize
from kolibri.plugins.app.utils import interface

enable_plugin("android_app_plugin")
initialize(skip_update=True)
interface.register(get_os_user=os_user)

logger = logging.getLogger(__name__)

Expand Down
Loading